Overview
The Model Context Protocol is an open standard that lets AI assistants (Claude, GPT, Cursor, custom agents) safely invoke external tools. Hone CRM ships an official MCP server that exposes 43+ tools spanning every first-class entity — deals, contacts, companies, pipelines, tags, activities, insights, and more.
Point your AI client at the server once, and the model can list, create, update, and analyze CRM data on your behalf — without ever leaving the chat.
Package
@honecrm/mcp-serverTransport
JSON-RPC over stdioInstall
The server runs on Node.js ≥ 18 and has zero native dependencies. You can run it directly with npx — most MCP clients invoke it this way and no prior install is needed. For faster cold-starts you can also install globally.
Run via npx (recommended)
HONECRM_API_KEY=hone_xxxx npx @honecrm/mcp-server
Install globally
npm install -g @honecrm/mcp-server HONECRM_API_KEY=hone_xxxx honecrm-mcp
Authentication
The MCP server authenticates to the Hone CRM REST API using an API key — the same keys used by the SDKs and CLI. Create one in Settings → Developer → API Keys and scope it narrowly: read-only where possible, or restricted to specific resources (deals:read, contacts:write, etc.).
HONECRM_API_KEY.Tool calls inherit the API key's scopes. If a tool tries to mutate something the key isn't allowed to touch, the backend returns FORBIDDEN and the MCP server surfaces the error back to the model.
Client setup
Pick your MCP client and copy the config below. Replace hone_xxxx with your real API key. Restart the client after editing its config file.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
%APPDATA%\Claude\claude_desktop_config.json (Windows){
"mcpServers": {
"honecrm": {
"command": "npx",
"args": ["@honecrm/mcp-server"],
"env": {
"HONECRM_API_KEY": "hone_xxxx"
}
}
}
}Verify it works
After restarting your client, open a new conversation and try:
The model should call list_deals with status: 'active', sort client-side, and report results. If you don't see the tool invocation, double-check the config file path, the API key, and your client's MCP-tool permissions.
Available tools
43 tools across 9 categoriesEvery tool wraps a REST endpoint on the public API. Input schemas follow JSON Schema; the full schema (types, enums, required fields) is advertised via tools/list at connection time, so modern clients show parameter docs inline.
Full CRUD on sales deals, including pipeline and stage transitions.
list_dealsList deals with optional filters (stage, status, search, teamId, pipelineId)get_dealRetrieve a single deal by IDcreate_dealCreate a new deal — name, value, contact, pipeline, stage, tags, customFieldsupdate_dealUpdate an existing deal; stage is validated against the pipelinedelete_dealDelete a deal permanentlyManage contact records linked to deals and companies.
list_contactsList contacts with search / company / team filtersget_contactRetrieve a single contact by IDcreate_contactCreate a contact — requires at least one identifierupdate_contactUpdate contact fields; replaces identifiers array if provideddelete_contactDelete a contact permanentlyComposite tools for managing a contact’s identifier list (email, phone, linkedin, etc.).
add_contact_identifierAppend a new identifier (normalized & deduplicated)update_contact_identifierChange value, label, or primary status of an existing identifierdelete_contact_identifierRemove an identifier; refuses if it would leave the contact with zeroset_primary_identifierMark one identifier as primary, unset primary on all othersManage company records with firmographic enrichment.
list_companiesList companies with search / industry / domain filtersget_companyRetrieve a single company by IDcreate_companyCreate a company — name, domain, industry, website, tags, customFieldsupdate_companyUpdate company fieldsdelete_companyDelete a company permanentlyCreate custom deal pipelines (sales, recruiting, fundraising, etc.).
list_pipelinesList all pipelines (default Sales pipeline is auto-created on first access)get_pipelineRetrieve a single pipeline by IDcreate_pipelineCreate a custom pipeline with named stages (open / won / lost)update_pipelineRename, reorder, or add stages; removing a stage with active deals failsdelete_pipelineDelete a pipeline; use force=true to move deals to the default firstAccount-level tag registry with merge and bulk-assignment.
list_tagsList all tags, optionally filtered by groupget_tagRetrieve a tag by IDcreate_tagCreate a tag (name is normalized: lowercased, trimmed, spaces → dashes)update_tagUpdate tag name, color, description, or groupdelete_tagDelete a tag (requires confirm=true if in use)merge_tagsMerge source tag into target tag; source is deletedadd_entity_tagsApply tags to a contact, deal, or company; auto-creates unknown tagsremove_entity_tagsRemove tags from a contact, deal, or companyTrack recurring themes across contacts, deals, and activities (objections, feature requests, etc.).
list_insightsList insights, filter by priority / category / status / linked entityget_insightRetrieve an insight by IDcreate_insightCreate a new insight with category, priority, and optional linked entitiesupdate_insightAppend linked entities, bump occurrence count, change priority/statusdelete_insightDelete an insightLog and manage interactions on deals and contacts.
list_activitiesList activities, filter by deal / contact / companyget_activityRetrieve a single activity by IDlog_activityLog an activity (call, email, meeting, message, etc.)update_activityUpdate user-created activities; system-generated ones are read-onlydelete_activityDelete a user-created activityFull-text search across all entity types.
searchSearch deals, contacts, companies, and notes with merged, ranked resultsEnvironment variables
| Variable | Required | Default | Description |
|---|---|---|---|
| HONECRM_API_KEY | Yes | — | API key used for all requests |
| HONECRM_BASE_URL | No | https://api.honecrm.com/v1 | Override for staging / local development |
Protocol details
- Transport
- JSON-RPC 2.0 framed one message per line on stdio
- Protocol version
2024-11-05- Capabilities
- Tools only (no prompts or resources yet)
- Methods
initialize,tools/list,tools/call
The server never touches your database directly — all tool calls flow through theREST APIusing the standard Authorization: Bearer header. Rate limits, scopes, and audit logging apply identically to MCP and direct API traffic.
Troubleshooting
Client doesn't list any tools
Confirm the client loaded the config (restart fully, not just the window). Run HONECRM_API_KEY=... npx @honecrm/mcp-server manually; you should see [MCP] Hone CRM MCP Server starting… on stderr.
401 / UNAUTHORIZED from tool calls
The API key is missing, revoked, or malformed. Create a new key in Settings → Developer and update the env var. Keys must start with hone_.
403 / FORBIDDEN on a specific tool
Your API key doesn't include the required scope. Either broaden the key's scopes, or create a separate key specifically for the agent.
429 / RATE_LIMIT_EXCEEDED
The agent is calling faster than your tier allows. See rate limits for the per-tier request-per-minute ceilings.
Tool hangs or times out
Check your network; the server proxies to api.honecrm.com. If you're behind a corporate proxy, set HTTPS_PROXY in the env block of your MCP client config.