capsulemcp
capsulemcp is a Model Context Protocol server connecting AI assistants (like Claude) to Capsule CRM via 81 tools, enabling natural-language querying and full CRM management.
Contacts & Organisations (Parties): Search, filter (free-text or structured conditions), batch-fetch (up to 10), create, update, delete, list linked opportunities/projects/employees, and atomically manage emails, phones, addresses, and website handles.
Opportunities: Search, filter, batch-fetch, create, update (including Won/Lost transitions with lost reasons/probability), delete, and list associated projects and timeline entries.
Projects (Cases): List, filter, batch-fetch, create, update (boards, stages, owner/team), close, and delete projects, plus list their timeline entries.
Tasks: List, get, batch-fetch, create, update, complete, and delete tasks — standalone or linked to any CRM record.
Timeline Entries: List globally or per entity, fetch single entries, add notes (with optional backdating), update, delete, and upload/download file attachments (images rendered natively, text decoded, binaries as base64).
Workflow Tracks: List track definitions (task-automation templates), apply to opportunities/projects (auto-creates tasks), update instances, and remove (requires confirm: true).
Saved Filters: List filters configured in Capsule's web UI and run them with pagination and server-side sorting.
Tags: List available tags per entity type; add or remove tags on parties, opportunities, and projects.
Additional Parties: List, add, and remove secondary party links on opportunities or projects for multi-party deals.
Reference & Metadata: List pipelines, milestones, boards, stages, users, teams, custom field definitions, loss reasons, activity types, entry/task categories, sales goals, and current site/user info.
Audit: List recently deleted parties, opportunities, and projects since a given timestamp.
Safety & Access Control:
Read-only mode (
CAPSULE_MCP_READONLY=1) disables all write/delete tools at the MCP layer.Delete safety gate: every destructive operation requires
confirm: truein the call arguments.Supports both local (stdio) and hosted (HTTP+OAuth) transport options.
capsulemcp
A Model Context Protocol server for Capsule CRM. Connect Claude (Desktop, Code, or web Projects via Custom Connector) to your CRM and let it answer natural-language questions across the full record graph: contacts, organisations, opportunities, projects, tasks, and timeline activity. Beyond the basics it covers structured filters with field/operator conditions, saved searches with sort, workflow tracks (templates and instances), file attachments (read + write), audit of deleted records, and batch fetches up to 10 records per call.
81 tools across the Capsule resource graph (49 in read-only mode) — full read coverage plus careful, confirm-gated writes
Two transports: stdio for local installs (Claude Desktop / Code), HTTP+OAuth for hosted Custom Connectors
Read-only mode as a one-env-var flag; works alongside read-scoped Capsule tokens
Apache 2.0
Pick your install
You want | Read this |
Example questions to ask once the connector is running | |
To use it locally with Claude Desktop or Claude Code | |
To deploy it once and have your whole team use it via Claude.ai | |
To contribute, debug, add a tool, or cut a release | HOWTO.md (procedures) · CONTRIBUTING.md (style & PR checks) |
To understand what's intentionally not implemented (and why) | |
To see ideas for features that might land in future versions | |
To learn the surprising parts of Capsule's v2 API (with verbatim doc quotes) |
For most individual users the install is a single JSON snippet pasted into Claude Desktop's config — see INSTALL.md.
Quick start (Claude Desktop)
Generate a Capsule API token: My Preferences → API Authentication Tokens → Generate, choose the Read scope for safety.
Add this to your
claude_desktop_config.json(~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS):{ "mcpServers": { "capsule": { "command": "npx", "args": ["-y", "capsulemcp"], "env": { "CAPSULE_API_TOKEN": "<paste token here>", "CAPSULE_MCP_READONLY": "1" } } } }Restart Claude Desktop. The Capsule tools appear in the tool picker.
That's it. The first launch fetches the package from npm (a few seconds); subsequent launches are instant from the npx cache. To pin a specific version, use "capsulemcp@1.0.0" in args. If you're tracking a fork or an unreleased branch, use the GitHub-ref form instead: "github:soil-dev/capsulemcp#v1.0.0" — same arguments, just installs from a git clone rather than the npm registry. See INSTALL.md for the Claude Code path, manual install, and troubleshooting.
Tools
Group | Read | Write |
Parties (people/orgs) |
|
|
Opportunities |
|
|
Projects (cases) |
|
|
Additional parties (multi-party deals) |
|
|
Tasks |
|
|
Entries (notes / captured emails) |
|
|
Attachments (file upload / download) |
|
|
Audit (deleted records) |
| — |
Pipelines & milestones (opportunities) |
| — |
Boards & stages (projects) |
| — |
Tracks (workflow instances) |
|
|
Saved filters |
| — |
Custom fields (schema) |
| — |
Tags |
|
|
Users & teams |
| — |
Reference metadata |
| — |
Most record-list tools default perPage=25; reference-data tools default perPage=100 so small accounts usually fit in one response. All paginated tools cap perPage at 100 and return a nextPage cursor when more results exist. Many GET tools accept an embed parameter (e.g. tags,fields) — see Capsule's API docs for the full list per resource.
The filter_* tools wrap Capsule's structured filter endpoint (POST /<entity>/filters/results) and accept an array of {field, operator, value} conditions ANDed together. Capsule's API does not support ad-hoc sort, so for "most recent X" questions filter by a date condition (e.g. addedOn is within last 7) and pick the highest id from the result — Capsule's numeric IDs are monotonically incrementing.
If you want sortable queries, use saved filters instead. Create the filter once in Capsule's web UI (it lets you set conditions, columns, and orderBy), then call run_saved_filter with its id. Use list_saved_filters to discover what's available.
Read-only mode
Set CAPSULE_MCP_READONLY=1 to disable every write/delete tool at the MCP layer (none of create_*, update_*, complete_task, add_note, or delete_* are registered). Pair it with a Capsule token that has the Read scope for defence in depth — your token's scope is the hard ceiling regardless of the env var.
Delete safety
Every whole-record delete_* tool, plus remove_track and remove_additional_party, requires confirm: true in its arguments. Without it, the schema rejects the call before any HTTP is made. Tool descriptions tell Claude to read the entity first and confirm with the user before invoking. The combined design — read-scoped token, read-only mode flag, schema-level confirm gate — means destructive actions are deliberate, not accidental.
License
Apache License 2.0 — Copyright 2026 Anton Arapov.
Maintenance
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/soil-dev/capsulemcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server