Codext CRM

Codext CRM for Claude

Your CRM as a connector: Claude can look up a customer, summarise a pipeline, log a call, create a task or move a deal — in the workspace you approved, as you.

Connector documentation · Updated 23 August 2026

The short version. Codext CRM is an open-source, AI-first CRM that is also its own MCP server and its own OAuth provider. Connect it in Claude, sign in to your CRM, approve a workspace, and Claude gets 55 tools over that workspace — 37 that read, 18 that write — every call attributed to you in the CRM's audit log. It never sends anything to a customer, never issues or cancels an invoice, and never touches a workspace you did not approve.

1. What you need

2. Connect

From the Connectors directory (hosted instance)

  1. In Claude, open Settings → Connectors and find Codext CRM.
  2. Click Connect. Claude sends you to crm.codext.de.
  3. Sign in if you are not already, pick the workspace Claude may use, and choose what it may do: Read your CRM, Make changes in your CRM, or both.
  4. Approve. You are back in Claude and the tools are live.

As a custom connector (your own instance)

A self-hosted Codext CRM exposes exactly the same server at https://your-crm.example.com/api/mcp. Add that URL under Settings → Connectors → Add custom connector; the OAuth flow is identical, because the CRM discovers and registers itself — there is no client id or secret to fill in. Your instance needs to be reachable over HTTPS with APP_URL set to its public address, which the installer does for you.

In Claude Code the same server is one line:

claude mcp add --transport http codext-crm https://your-crm.example.com/api/mcp

The CRM's own Settings → MCP server page shows your instance's URL, the same steps, and every assistant currently connected.

3. What Claude can do

Tools are grouped by the part of the business they cover. Read tools carry the MCP readOnlyHint and run without a prompt. Write tools that change an existing record carry destructiveHint, so Claude asks before running them; the four that only ever add a row (create_deal, create_task, create_project, create_product) do not. Read tools are the only ones offered on a read-only connection — they are not merely refused, they are not shown.

People, accounts and pipeline

ToolWhat it doesAccess
get_workspace_overviewPipelines, stages, team and currency — call this first; other tools need the ids it returns.read
search_contacts · get_contactFind people by name, email, company or status; read one in full with timeline and open tasks.read
search_companies · get_companyFind accounts by name, domain or industry; read one with its people and deals.read
search_deals · get_dealFind deals by stage, owner, value or close date; read one with its history.read
list_pipelines · get_pipeline_summaryStage definitions, and counts and value per stage.read
find_stale_dealsOpen deals nobody has touched in a while.read
list_tasks · list_activities · list_team_membersOpen work, the timeline, and who is on the team.read
search_knowledgeThe workspace's sales knowledge base — pricing, objections, playbooks.read
create_contact · create_companyAdd a person or an account; both deduplicate, so they merge rather than double up.write
update_contact · update_company · update_dealChange fields on an existing record. Only the fields passed are touched.write · asks first
create_dealOpen a new deal in a pipeline stage.write
move_deal_stageAdvance a deal. Moving into a won or lost stage closes it and notifies the team, so Claude confirms with you first.write · asks first
log_activityRecord a note, call or meeting on the timeline.write · asks first
create_task · complete_taskAdd a follow-up, or tick one off.write

Money

ToolWhat it doesAccess
search_offers · get_offerQuotes and their line items.read
search_invoices · get_invoiceInvoices, what is paid and what is outstanding.read
get_revenue_summary · list_retainersRevenue over a period; recurring retainers.read
list_products · list_deal_line_itemsThe catalogue, and what is on a deal.read
record_invoice_paymentBook money that has arrived. It does not send anything to the customer.write · asks first
create_productAdd a product or price to the catalogue.write

Delivery

ToolWhat it doesAccess
search_projects · get_projectProjects, their health, milestones and updates.read
list_meetings · get_meetingUpcoming and past meetings with attendees and notes.read
search_documentsContracts and signed documents.read
create_project · add_project_milestoneStart a project after a won deal; add a phase to it.write
update_project · update_project_milestoneChange status, health, dates or owner; tick a phase off.write · asks first
log_meeting_outcomeWrite up what was decided and close the meeting out.write · asks first

Conversations, forms and goals

ToolWhat it doesAccess
search_emails · list_email_templatesCorrespondence synced into the CRM, and the templates the team uses.read
list_campaigns · get_campaignOutbound campaigns and their steps and results.read
list_forms · list_form_submissionsWeb forms and the answers they collected.read
get_record_note · write_record_noteThe long-form note on a record. Append is the default; replace only when asked.read / write · asks first
list_goals · list_custom_fields · list_ai_employeesTargets and attainment, custom fields, and the AI colleagues configured in the workspace.read

Two resources come along for orientation: crm://workspace/overview and crm://guide, a short guide to which tool answers which question.

4. What it never does

Where a task ends in one of those, Claude prepares the work — the draft, the line items, the summary — and hands back a link to finish it in the CRM.

5. Permissions, tokens and revoking

The consent screen offers two scopes: Read your CRM (crm:read) and Make changes in your CRM (crm:write). Grant only what you need; a read-only connection is a perfectly good one for reporting. Each connection is bound to one user in one workspace, and every call it makes is written to the workspace's audit log with the connector's name, so an administrator can always tell which assistant did what.

Access tokens last eight hours and are refreshed automatically; refresh tokens rotate on every use, and a refresh token that is replayed revokes the whole connection. To disconnect, remove the connector in Claude, or open Settings → MCP server in the CRM and revoke it there — the CRM side wins, and takes effect immediately.

6. Good first prompts

7. Troubleshooting

SymptomWhat it means
"Couldn't reach the MCP server" when connecting your own instanceThe instance is not reachable over HTTPS from the internet, or APP_URL is not its public address. Check https://your-crm/.well-known/oauth-protected-resource loads and names the right host.
Claude says a tool needs the crm:write scopeThe connection was approved read-only. Disconnect and reconnect, allowing changes.
"Too many requests"A connection may make 300 calls a minute. Claude backs off by itself; just try again.
A tool says a record is not in this workspaceThe id belongs to another workspace, or the record was deleted. Search again.

8. Privacy and support

What the connector stores, where it goes and for how long is set out in the connector privacy policy. For help, write to crm@codext.de, or — for anything reproducible — open an issue at github.com/codextde/codext-crm/issues, where it lands with the people who wrote the code. Security reports go to the address in SECURITY.md.