You can have Claude reading and writing your Relaticle CRM in about two minutes on Claude Code, or a few minutes more when connecting Claude.ai or Claude Desktop through OAuth. Once connected, Claude can search your companies, people, opportunities, tasks, and notes; read full record detail; and create, update, or delete records directly, using the same custom fields your team already configured. This is the setup guide: what the connection actually gives you, how to wire it up from each client, what the available tools can do, and, the part most guides skip, exactly how writes behave once Claude has access.
The canonical reference for every detail below lives at relaticle.com/developers/mcp. This post is the narrative walkthrough; that page is the one to bookmark for exact tool schemas and troubleshooting.
#
MCP (Model Context Protocol) is the open standard that lets an AI assistant call real tools against a real system, instead of you pasting data back and forth between a chat window and your CRM. Relaticle runs an MCP server at mcp.relaticle.com that exposes your workspace to any MCP-capable client.
Once you connect it, Claude can:
- Search and list companies, people, opportunities, tasks, and notes, with filtering, sorting, and pagination
- Fetch a single record with full detail and its relationships (a company's contacts, an opportunity's linked tasks, and so on)
- Create, update, and soft-delete records in any of those five entity types
- Read and write your workspace's custom fields, not just the built-in ones
- Attach or detach tasks and notes to companies, people, and opportunities, and assign tasks to workspace members
- Read a schema resource per entity so it knows your exact field codes and option values before it writes anything
Every one of those operations is scoped to a single workspace: the one you picked when you authorized the connection. Claude cannot see or touch a different workspace's data through the same token.
#
Relaticle's MCP server supports two authentication methods, and which one you use depends on the client.
OAuth (recommended for Claude.ai and Claude Desktop). Add Relaticle as a custom connector using the MCP endpoint URL, https://mcp.relaticle.com, or your own domain if you're self-hosting. Because the server supports OAuth 2.1 with Dynamic Client Registration, Claude registers itself automatically and walks you through a one-click consent screen: you pick the workspace this connector should use, approve access, and you're connected. There's no token to copy or paste.
That workspace choice is permanent for the connector. If you need it pointed at a different workspace, revoke the connector and reconnect rather than trying to switch it in place. Access tokens issued this way last 30 days and refresh tokens last 90; Claude refreshes them in the background, so you shouldn't notice the expiry once it's set up.
Personal access token for Claude Code. Create one in Relaticle's Access Tokens page, choose its workspace and permissions, then copy the token. Follow the Claude Code command below. For Claude Desktop, add this remote server through Settings → Connectors using OAuth. A remote URL in claude_desktop_config.json does not establish this connection. See Anthropic's connector documentation.
OAuth connections appear under Access Tokens → AI Connectors, where you can revoke them. Personal access tokens appear in the token list on that page.
ChatGPT, briefly: its custom connectors also support OAuth Dynamic Client Registration, so the setup is the same shape as Claude.ai. Relaticle's search and fetch tools are built specifically to pair with ChatGPT's Company Knowledge feature. search returns canonical URLs, and fetch resolves one of those URLs back into a full record, which is the exact contract that feature expects.
#
Claude Code doesn't need a config file edit. Create a personal access token the same way as above (Settings → Access Tokens → Create), then run:
claude mcp add relaticle \
--transport http \
https://mcp.relaticle.com \
--header "Authorization: Bearer YOUR_TOKEN"
That's the whole setup. Claude Code will list relaticle among its available MCP servers, and the same server tools used by Claude.ai and Desktop are available in your terminal sessions.
| Client | Connection method | Typical setup time |
|---|---|---|
| Claude.ai (web) | OAuth custom connector, Dynamic Client Registration | ~2 minutes |
| Claude Desktop | OAuth custom connector through Settings → Connectors | ~2-5 minutes |
| Claude Code | claude mcp add CLI plus personal access token |
~2 minutes |
| ChatGPT | OAuth custom connector, Dynamic Client Registration | ~2 minutes |
#
The server exposes 39 tools, checked September 22, 2026. One is identity (who-ami-tool, which returns the authenticated user, current workspace, workspace members, and the token's abilities, a useful first call to sanity-check a new connection). Two are cross-entity discovery (search and fetch, described above). Five work at the workspace level rather than on a single record: get-crm-schema-tool and list-custom-fields-tool for field discovery, get-crm-summary-tool for record counts and pipeline totals, aggregate-opportunities-tool for pipeline amounts grouped by stage or company, and list-activity-tool for who changed which record and what the field-level difference was. The upload tools support storing files. upload-file returns Markdown for rich-editor fields; create-upload-url prepares a signed upload. The remaining 29 tools cover CRUD and relationships across five entities:
- Companies : list/search, get, create (requires
name), update, delete - People (contacts) : list/search, get, create (requires
name, optionalcompany_id), update, delete - Opportunities (deals) : list/search, get, create (requires
name, optionalcompany_id/contact_id), update, delete - Tasks : the standard five, plus
attach-task-to-entities-toolanddetach-task-from-entities-toolto link a task to companies, people, and opportunities, or assign/unassign workspace members, without clearing existing links - Notes : the standard five, plus attach/detach to companies, people, and opportunities
List tools accept search, filter (including your custom fields, with operators like eq, gt, contains, and in), sort, per_page, and page. Create and update tools accept a custom_fields object for anything beyond the built-in fields. Relaticle's opportunity records, for example, ship with stage, amount, and close_date as custom fields out of the box, which is exactly the kind of thing a "review my pipeline" prompt needs to filter and sort on.
Custom fields are where the five schema resources come in. Before writing to an entity, Claude reads relaticle://schema/company (or /people, /opportunity, /task, /note) to learn the exact field codes and option values your team has configured. Get this wrong and the write is rejected outright: unknown field codes don't get silently dropped, they fail validation. There's also a built-in CRM Overview prompt that returns record counts and recently created companies and people, a reasonable way to start a session before asking for anything more specific.
#
This is the part worth getting right before you connect anything with write access.
Relaticle has two different places an AI can write to your CRM, and they behave differently. Inside the app, the dashboard chat assistant proposes writes: when you ask it to create or update a record, it builds a proposal card and waits for you to click approve before anything is saved to the database. That's a PendingAction, a real row that sits in a pending state until a human acts on it.
MCP is not that. When Claude calls a CRM write tool, Relaticle validates the request and invokes the relevant action. Successful writes commit directly. There's no proposal, no card, no separate approval step sitting in between. The safety net for MCP writes is the same one you'd expect from any API you hand to an agent: validation, authorization checks against Relaticle's normal policies, and the scope of the token you gave it, not a human-in-the-loop gate baked into the protocol.
That distinction matters for how you think about connecting Claude at all. A few things soften it in practice:
- Delete is soft. Every delete tool soft-deletes; nothing is permanently gone, and records can be recovered. Delete tools are also flagged as destructive in their MCP metadata, which a well-behaved client can use to add its own confirmation step. Worth checking your client's settings if you want that extra prompt.
- MCP-created records carry a source. Records created through MCP receive the "MCP Agent" creation source. Updating an existing record does not replace its creation source.
- Token scope is where you actually control this. OAuth connectors (Claude.ai, Claude Desktop's one-click flow, ChatGPT) get a single scope that authorizes the whole toolset. The finer control there is which workspace the connector can reach, chosen once at consent and fixed until you revoke it. Personal access tokens are more granular: when you create one, you check off which abilities it gets (read, create, update, delete), so a token meant for a read-only reporting workflow can be minted without write access at all, separately from a token you trust with full CRUD.
If you want Claude to have full read and write access to run real workflows, that's exactly what this is built for. If you'd rather it only look and never touch, create a token scoped to read only and use that instead. The same tools work; the write ones just get rejected.
#
None of this is cloud-only. A self-hosted Relaticle install runs the identical MCP server, the same tools, with no separate deploy step or feature to turn on. If you haven't set MCP_DOMAIN, the server is reachable at {APP_URL}/mcp right out of the Docker image; set that variable if you'd rather serve it at its own subdomain. Personal access tokens work exactly as described above, and OAuth runs the same Passport-backed flow against your own domain once you've configured it.
The only thing that changes on a self-hosted instance is which URL you point your client at. Swap https://mcp.relaticle.com for your own {APP_URL}/mcp in the config snippets above, or for your MCP_DOMAIN if you set one. Everything else, including the direct-write behavior described in the previous section, is identical to Relaticle's hosted plan. For the full deploy walkthrough, see the self-hosting guide, or our blog walkthrough on self-hosting an AI-native CRM covering Docker, Coolify, and Dokploy.
#
A few things worth trying once you're connected, all built from tools the server actually has:
- Pipeline review. "Show me every opportunity in the Negotiation/Review stage, sorted by amount, and flag any that don't have a close date set." Use
list-opportunities-toolwith the stage filter and amount sort. Follow pagination untilhas_moreis false, then inspect each returned close date. - Data entry after a call. "I just got off a call with Acme Corp. Create the company, add Jane Doe as a contact with the job title VP of Sales, and log a note summarizing what we discussed." Three tool calls:
create-company-tool, thencreate-people-toolwithcompany_idand thejob_titlecustom field, thencreate-note-toolwithcompany_idsandpeople_idsset directly, since note creation accepts those links up front and no separate attach call is needed. - Unblocking a stalled deal. "Look at the notes on the Acme opportunity and tell me what's holding it up, then update the close date if we agreed on one in the call." Reads through
list-notes-tool/get-note-tool, writes back throughupdate-opportunity-tool. - Weekly summary. "Give me an overview of the CRM, then list any companies created this week and tasks that are overdue." Starts from the built-in CRM Overview prompt, follows up with filtered
list-companies-toolandlist-tasks-toolcalls. - Follow-up tasks. "Create a task to follow up with John next week, assign it to me, and link it to the Acme company and opportunity." One
create-task-toolcall, thenattach-task-to-entities-toolwithassignee_ids,company_ids, andopportunity_idsin the same request. - Reassigning overdue work. "Find tasks that are more than a week overdue and move them from Sarah to me." A filtered
list-tasks-toolcall, thendetach-task-from-entities-toolto remove the old assignee andattach-task-to-entities-toolto add the new one.
None of these need you to explain your schema first. Claude reads it from the schema resources the first time it needs a field code. If something doesn't work the way you expect, or you want the full tool reference, relaticle.com/developers/mcp has the complete list, and relaticle.com/help covers general account and workspace questions that aren't MCP-specific.
Related posts #
[Guides](https://relaticle.com/blog/the-real-cost-of-self-hosting-a-crm)
The Real Cost of Self-Hosting a CRM #
Self-hosting a CRM can be cheap, but it is not free. Here is the infrastructure, time, and SaaS comparison math.
[Guides](https://relaticle.com/blog/migrating-from-hubspot-or-attio-to-a-self-hosted-crm)
Migrating from HubSpot or Attio to a Self-Hosted CRM #
Plan a HubSpot or Attio migration: export records and notes, map relationships, test imports, and identify the history and files needing separate work.
[Guides](https://relaticle.com/blog/let-claude-code-run-your-sales-pipeline)
Let Claude Code Run Your Sales Pipeline #
Five real Claude Code sessions against Relaticle's MCP server: pipeline review, data entry, task cleanup, custom fields, and a delete it wouldn't rush.