An open-source MCP server that gives MCP-compatible AI agents direct access to your development environment and the tools around it.
Causly Server connects an AI agent to your filesystem, Git, GitHub, databases, Docker, Terraform, Vercel, Supabase, monitoring, communication tools, and more — with built-in permissions, approval gates, secret redaction, and activity logging.
Run it locally, connect it to your MCP-compatible client, and let your agent work across your project and infrastructure from a single conversation.
causly.mp4
Building and shipping a real product usually means moving between code editors, terminals, GitHub, databases, containers, cloud dashboards, monitoring tools, and communication platforms.
Causly Server brings these capabilities into the MCP layer so an AI agent can work across the same environment instead of being limited to generating text or isolated actions.
The goal is simple: give an agent the tools it needs to inspect, build, change, verify, and deploy real projects while keeping execution local and under controls you can inspect.
Causly Server currently provides tools across the main stages of a software project's lifecycle.
| Area | Capabilities |
|---|---|
| Filesystem | Read, write, edit, move, copy, search files and directories |
| Git | Branch, commit, merge, stash, tag, diff, and other Git operations |
| GitHub | Repositories, issues, pull requests, Actions and CI workflows |
| Databases | PostgreSQL and MySQL queries and schema inspection |
| Supabase | Supabase Management API operations |
| Docker | Build, run, manage, inspect, and compose containers |
| Terraform | Plan, apply, destroy, state management, and CI/CD integration |
| Vercel | Deployments, verification, rollbacks, logs, and health checks |
| Sentry | Search, inspect, and triage issues |
| Notion | Pages, databases, blocks, and comments |
| Slack | Channels, messages, and threads |
| Gmail | Search, read, send, reply, and forward |
| Secrets | Local encrypted secrets storage |
| Project intelligence | Detects the project stack and runs relevant test, lint, and build commands |
The current server contains 181 tools across 16 categories.
The goal isn't the number of tools. It's giving an AI agent a connected set of capabilities that can work together across an actual project lifecycle.
Individual tools are the building blocks. Causly Server also includes higher-level workflow tools that combine them into verified outcomes.
Inspects the current changes, creates a branch, runs project checks, commits the changes, pushes the branch, and opens a pull request.
Finds a failing GitHub Actions run and retrieves the real failure information so the agent can work from the actual CI output.
After the code is fixed, commits and pushes the changes, polls the workflow, and verifies that CI is actually green.
Checks project health, runs tests and build checks, deploys the project, polls the deployment, and HTTP-verifies that the deployed URL is actually responding.
flowchart TD
A["You describe a task to your AI agent"] --> 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"]
A more detailed, per-category architecture breakdown lives in docs/
Causly Server can perform actions that affect your machine, repositories, infrastructure, and production systems. Security controls are therefore part of the server itself.
Every tool is classified as:
READ / LOW / MEDIUM / HIGH / DESTRUCTIVE
HIGH and DESTRUCTIVE operations require explicit confirm: true before execution. This includes actions such as deploys, merges, command execution, deletes, raw SQL, Terraform apply/destroy, and Docker removal.
Tokens, passwords, API keys, and similar sensitive fields are redacted before being written to logs.
Commands are checked for dangerous patterns such as drive wipes, formatting, and shutdown operations. Elevated-risk signals such as force-pushes, DROP TABLE, curl | bash, and sudo are also classified and surfaced for auditability.
Writes and deletes are blocked when the target path falls inside a protected system directory.
The built-in secrets manager stores secrets locally using AES-256-GCM with a key you control. It does not require an external vault service.
Tool calls are recorded in logs/activity.log as structured JSONL entries containing the timestamp, operation ID, risk level, status, redacted input, and duration.
When explicitly enabled, Causly emits separate server_attested Interop Profile v0.2 receipts for ship_change, verify_ci_fix, and deploy_project.
Interop Profile v0.2 uses RFC 8785/JCS for language-neutral canonicalization. BoundaryAttest v0.1 remains a legacy profile.
This evidence layer does not replace or change Causly's approval or security behavior.
The current setup flow is:
Fork → Clone → Install → Configure → Run → Connect your MCP client
Fork this repository to your own GitHub account.
Clone your fork locally:
git clone https://github.com/KNIHAL/causly-server.git
cd causly-servernpm installCopy the example environment file:
cp .env.example .envOpen .env and add the API keys and credentials for the services you want to use.
You only need to configure the integrations you plan to use.
Add Causly Server to your MCP client's configuration using the local index.js entry point.
For example, in Claude Desktop:
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"causly-server": {
"command": "node",
"args": ["D:\\causly-server\\index.js"]
}
}
}Use the equivalent MCP server configuration for your MCP-compatible client.
After saving the configuration, restart your MCP client.
Causly Server will then be available to the client with the tools enabled by your configuration.
setup.jsis currently kept as a helper/demo for configuring Claude Desktop. It is not the project's package installation mechanism.
vercel_create_deploymentanddeploy_projectrequire the Vercel project to already be Git-linked.supabase_run_sqluses the Supabase Management API. Some personal access tokens may restrict SQL execution and return403.slack_search_messagesrequires a Slack user token with thesearch:readscope. Other Slack tools can work with a bot token.- Gmail tools use OAuth2 with a client ID, client secret, and refresh token rather than a simple API key.
docker_pushrequires registry authentication to already be configured on the host.- Sentry
resolve_issue,ignore_issue, andadd_commentrequire an authentication token with theevent:writescope.
causly-server/
├── index.js # Server entry point, tool/resource/prompt registration
├── setup.js # Helper/demo for configuring your Claude Desktop config automatically
├── package.json
├── .env # Your local tokens (never committed)
├── .env.example
├── BUILD_LOG.md # What was built, in what order, and why
├── ROADMAP.md # What's planned next
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
├── CHANGELOG.md
├── docs/ # Detailed technical docs (GitHub Pages)
├── .github/
│ ├── workflows/ci.yml
│ ├── ISSUE_TEMPLATE/
│ └── PULL_REQUEST_TEMPLATE.md
├── tools/
│ ├── fileOps.js # File read/write/edit/move/copy
│ ├── directoryOps.js # Directory listing, tree, search
│ ├── gitOps.js # Git operations via simple-git
│ ├── commandOps.js # Shell command execution
│ ├── githubOps.js # GitHub REST API — repos, issues, PRs, Actions
│ ├── vercelOps.js # Vercel REST API — projects, deployments
│ ├── supabaseOps.js # Supabase Management API
│ ├── slackOps.js # Slack Web API — channels, messages, threads
│ ├── gmailOps.js # Gmail API (OAuth2) — search, read, send, reply, forward
│ ├── notionOps.js # Notion API — pages, databases, blocks, comments
│ ├── terraformOps.js # Terraform CLI wrapper — full lifecycle + state + CI hook
│ ├── dockerOps.js # Docker CLI wrapper — cross-platform (direct or via WSL)
│ ├── dbOps.js # Generic Postgres/MySQL query tools
│ ├── secretsOps.js # Local AES-256-GCM encrypted secrets manager
│ ├── sentryOps.js # Sentry API — issues, projects, stats
│ ├── projectOps.js # Stack detection, test/lint/build runners
│ ├── workflowOps.js # ship_change, fix_ci, verify_ci_fix, deploy_project
│ ├── boundaryAttest.js # Optional signed workflow-receipt POC
│ ├── security.js # Redaction, permission levels, risk classification
│ ├── envLoader.js # Dependency-free .env parser
│ └── logger.js # Structured JSONL activity logging
└── logs/
└── activity.log # Auto-generated
See ROADMAP.md for what's planned next.
See CONTRIBUTING.md for how to add a new tool module and the manual testing checklist. Please also read the Code of Conduct.
See CHANGELOG.md for release history.
See BUILD_LOG.md for a full account of what was built, in what order, and the bugs found and fixed along the way.
MIT — free to use, modify, and distribute, including commercially.
If you need a custom MCP server, a specific integration, or a related service built for your own product or team — reach out: nihal@causly.in
Don't want to run Causly Server on your own machine?
Causly Hosted is a managed version of Causly Server currently in development. Join the early-access waitlist to be notified when it's ready.
