An open-source MCP server that gives your AI agent the tools of a co-founder: ship code, find leads, track deals, take meeting notes, handle email and your calendar, all from one conversation.
Your agent stops being a chatbot that writes text and starts doing the work: it reads your repo, opens the pull request, finds companies that are hiring, logs them in your pipeline, books the follow-up, and reminds you on Telegram.
Everything runs on your machine. Your keys, your data, your approval for anything risky.
causly.mp4
Once it is installed, just talk to your agent:
- "Find companies hiring React developers and add the best three to my pipeline."
- "Save notes from my call with Acme: they want a demo next week, follow up on Friday."
- "What is due this week? Include meeting action items and reminders."
- "Prep me for my next meeting."
- "Ship this change: run the checks, open a pull request, and tell me when CI is green."
- "Audit this page for SEO and suggest keywords."
- "Find a free slot with this lead on Thursday and send the invite."
Requires Node.js 20 or newer.
npm install -g causly-server
causly-server initinit finds Claude Desktop, Cursor and Windsurf on your machine and adds Causly Server to each. Restart your editor and you are done. Using Claude Code instead? init prints the one-line command for it.
Useful options:
causly-server init --client cursor # pick editors instead of auto-detecting
causly-server init --workspace D:\my-project # limit file tools to one folder
causly-server init --toolsets research,pipeline,meetings # choose startup packsYou only need keys for the services you actually use.
causly-server setup # step by step, each key is checked live
causly-server doctor --test # verify every configured service
causly-server status # one screen: editors, keys, pipeline, reminders, updatesKeys are stored in ~/.causly/.env (hidden prompt, never printed back) and picked up without a restart.
Google needs a one-time OAuth client that you own. It takes about five minutes.
- Open Google Cloud Console, create or pick a project.
- Enable the APIs you want: Gmail API, Google Calendar API, and optionally Google Search Console API.
- Go to Google Auth Platform. Under Branding, fill in the app name and your support email. Under Audience, choose External and add your own Google account as a test user.
- Go to Clients → Create client and choose Desktop app as the application type. (A "Web application" client fails with
redirect_uri_mismatch.) Copy the client ID and secret. - Save them in Causly:
causly-server setup, orcausly-server keys set GMAIL_CLIENT_IDandcausly-server keys set GMAIL_CLIENT_SECRET. - Sign in once in your browser:
causly-server login google # Gmail and Calendar
causly-server login google all # also Search ConsoleWhile the Google app is in Testing status, Google expires the sign-in token every 7 days. You can renew it any time with causly-server login google.
To stop that for good, go to Google Auth Platform → Audience and click Publish app (set it to In production). This needs the Branding page from step 3 to be filled in first. For personal use you do not need Google verification; at sign-in you will see an "unverified app" warning, which is expected for your own client: choose Advanced, then continue.
Tools are grouped in packs and loaded lazily, so your agent is never flooded with hundreds of tool definitions. The packs below load at startup:
| Pack | What it does |
|---|---|
| files, directory, command, project | Read, write, edit and search files; run commands with safety checks; detect your stack and run build, test, lint and typecheck |
| research | Search the web and read pages as clean text |
| leads | Find companies hiring (Hacker News, remote job boards) and public company contact details |
| pipeline | Local sales pipeline: leads, deals, contacts, activity log, report, CSV export |
| meetings | Transcribe recordings, save summaries, track action items, link them to deals and calendar events, prep for calls |
| reminders | Follow-ups saved locally; ask what is due |
| seo | Keyword ideas, page audit, draft check, Search Console |
More packs are one command away and load on demand:
| Pack | What it does |
|---|---|
| calendar, gmail | Events, free/busy, find meeting slots; search, read, send, reply, forward |
| telegram | Alert yourself, read messages sent to your bot |
| git, github, workflow | Full Git; repos, issues, pull requests, reviews, Actions; ship_change, fix_ci, verify_ci_fix, deploy_project |
| vercel, docker, terraform | Deployments and health checks; containers and Compose; plan, apply, state |
| database, supabase | Postgres and MySQL queries and schema; Supabase projects and SQL |
| slack, notion, linear | Channels and threads; pages and databases; issues |
| sentry, secrets | Issue triage; encrypted local secrets store |
That is 230+ tools in total. Choose which packs load at startup:
causly-server toolsets # show what loads at startup
causly-server toolsets add github,gmail
causly-server toolsets remove seo
causly-server toolsets resetSome editors do not refresh their tool list mid-chat. use_tool lets your agent call any tool by name, even one that is not loaded yet; the pack loads automatically and every safety check still applies.
Single tools are building blocks. These combine them into verified outcomes:
ship_change: inspects changes, creates a branch, runs project checks, commits, pushes, opens a pull request.fix_ci: finds a failing GitHub Actions run and fetches the real failure output.verify_ci_fix: commits and pushes the fix, polls the workflow, confirms CI is green.deploy_project: checks health, runs tests and build, deploys, polls, and HTTP-verifies the live URL.
flowchart TD
A["You describe a task"] --> B["Agent edits files"]
B --> C["ship_change runs checks"]
C --> D["Commit, push, open PR"]
D --> E{"CI passes?"}
E -- "No" --> F["fix_ci gets failure logs"]
F --> G["Agent fixes the code"]
G --> H["verify_ci_fix pushes and confirms CI"]
H --> E
E -- "Yes" --> I["deploy_project deploys"]
I --> J["HTTP verification"]
J --> K["Shipped"]
Tested with Claude Desktop, Cursor, Windsurf, a plain JavaScript MCP client, and LangChain (JS) through @langchain/mcp-adapters. Any MCP-compatible client or agent framework can connect to the same stdio server.
Causly can touch your files, repositories and infrastructure, so the controls live in the server itself.
- Permission levels: every tool is
READ,LOW,MEDIUM,HIGHorDESTRUCTIVE.HIGHandDESTRUCTIVEactions (deploys, merges, shell commands, deletes, raw SQL, Terraform apply and destroy, Docker removal) need an explicitconfirm: true. - Workspace limit:
init --workspace <folder>restricts file and command tools to one folder. - Approval for outside actions: anything that emails real people, such as calendar invites with guests, needs confirmation first.
- Secret redaction: tokens, passwords and API keys are redacted before anything is written to logs.
- Command risk checks: drive wipes, formatting and shutdown commands are blocked; force-pushes,
DROP TABLE,curl | bashandsudoare flagged. - Path protection: writes and deletes inside protected system directories are blocked.
- Local encrypted secrets: AES-256-GCM with a key you control, no external vault.
- Activity log: every call is recorded in
logs/activity.logas structured JSONL (timestamp, operation ID, risk, status, redacted input, duration). - Your data stays local: the pipeline, meetings and reminders live in a local SQLite file.
causly-server backupandrestorekeep it safe.
Optional BoundaryAttest receipts for ship_change, verify_ci_fix and deploy_project are described in the docs.
causly-server init | status | doctor [--test] | setup [service]
causly-server keys list | set NAME | unset NAME | open
causly-server login google [gmail,calendar,gsc|all]
causly-server toolsets [add|remove|reset]
causly-server backup [file] | restore <file> [--yes]
causly-server remove [--client <name>]
vercel_create_deploymentanddeploy_projectneed the Vercel project to be Git-linked already.supabase_run_sqluses the Supabase Management API; some personal access tokens get a403for SQL.slack_search_messagesneeds a Slack user token with thesearch:readscope.docker_pushneeds registry authentication already configured on the host.- Sentry
resolve_issue,ignore_issueandadd_commentneed a token with theevent:writescope. - On Windows, if
npm installfails with'node' is not recognizedin a postinstall script, retry withnpm install --ignore-scripts(issue #2).
- Detailed docs: agenv.causly.in/docs/server
- ROADMAP.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, CHANGELOG.md
MIT: free to use, modify and distribute, including commercially.
Need a custom MCP server, a specific integration, or a related service for your product or team? Reach out: nihal@causly.in
Do not want to run Causly Server yourself? Causly Hosted is a managed version, currently in development.