MCP Server setup guide
The MihootCRM MCP Server lets third-party AI clients (Cursor, Claude Desktop, etc.) call CRM capabilities over the Model Context Protocol (MCP): search leads, contacts, opportunities, create tasks, trigger workflows, and more.
Not the same as “MCP servers” (Integrations)
- MihootCRM MCP server (this guide): expose CRM tools to external AI (inbound server).
- MCP servers (other card): connect external MCP servers into the built-in assistant (outbound client).
1. Overview
| Item | Description |
|---|---|
| Protocol | Streamable HTTP at /mcp |
| Auth | API key (format below); no separate tenant header in clients |
| Tools | Same Agent tools as /assistant (~45+) |
| Permissions | Bound to the signed-in user (service account) + CRM RBAC |
| Management | /integrations — create, rotate, revoke keys; list shows only your personal API keys |
2. Prerequisites
- Signed in with access to Integrations.
- Permission
crm:mcp:apikey:edit(or equivalent admin setup). - Client supports remote MCP over HTTP with Bearer auth.
- Production: HTTPS (e.g.
https://crm.example.com/mcp).
3. Create an API key
- Open /integrations.
- Find the MihootCRM MCP server card.
- Click Create API key, name it (e.g.
Cursor-dev). - Copy the full key or Cursor config from the one-time dialog.
- After closing, only a masked prefix is shown — use Rotate if you lose the secret.
Personal keys
On the MihootCRM MCP server card, the key list shows only API keys bound to your signed-in account. Keys created by other members in the same tenant are hidden, and you cannot revoke or rotate someone else’s key. Each user may still create multiple keys (e.g. one for Cursor, one for Claude, one for testing).
Multiple keys
Each create adds a new row (different clients/environments). Revoke unused keys (trash icon).
List actions
| Action | Purpose |
|---|---|
| Copy | Key prefix (identification) |
{ } | Cursor mcp.json template with <YOUR_SAVED_API_KEY> |
| Rotate | New secret; old key stops working |
| Revoke | Disable key |
4. API key format
mcp_<tenantCode>_<publicId>_<secret>
tenantCode: 8-char obfuscated tenant segment — clients do not need atenantheader.- Endpoint:
https://<your-domain>/mcp
5. Cursor configuration
{
"mcpServers": {
"MihootCRM": {
"url": "https://your-domain.com/mcp",
"headers": {
"Authorization": "Bearer mcp_<tenantCode>_<publicId>_<secret>"
}
}
}
}
Reload MCP in Cursor and test, e.g. “use MihootCRM search_user for 5 users”.
6. Tools
Same catalog as the assistant: search_*, create_*, update_*, run_workflow, read_file, write_file. Write tools and run_workflow require appropriate CRM permissions on the bound account.
7. Security
- Treat keys like passwords; never commit to Git.
- Rotate and revoke on leak or offboarding.
- Use HTTPS in production.
8. Troubleshooting
| Symptom | Fix |
|---|---|
| 401 | Check full Bearer token; rotate key if lost |
| Empty tools | Verify /mcp URL |
| Call denied | RBAC on service account |
Health check (no auth): GET /mcp/health → { "ok": true, ... }
9. Links
| Item | Path |
|---|---|
| Manage keys | /integrations |
| Assistant | /assistant |
| Workflows | /workflows |