Twenty MCP
Twenty MCP
Ein Remote-MCP-Server (Model Context Protocol), der Claude mit einem Twenty CRM-Workspace verbindet und auf Cloudflare Workers mit OAuth für die Ein-Klick-Installation im Team bereitgestellt wird.
Funktionsweise
Stellt 9 generische, schema-gesteuerte Tools bereit, die mit jedem Twenty-Objekt (Person, Unternehmen, Opportunity oder benutzerdefinierte Objekte) funktionieren. Das MCP untersucht die Metadaten-API von Twenty zur Laufzeit – Sie müssen das MCP nie aktualisieren, wenn Sie Felder oder Objekte hinzufügen.
Tools
list_objects,describe_object– entdecken, was im CRM vorhanden istfind_records,get_record– Abfragen mit Filter/Sortierung/Paginierungcreate_record,update_record,delete_record– Mutationen (nur bei Verbindung im Schreibmodus)run_graphql– Notausgang für rohe Metadaten/GraphQLget_primer– organisationsspezifischer Domänenkontext + Live-Schema-Snapshot
Ressourcen (werden beim Start der Sitzung automatisch von Claude geladen)
twenty://primer– Organisationskontext zusammengeführt mit einem kompakten Schema-Snapshottwenty://api/info– Connector-Status und aktuelle Scopes
Related MCP server: twentycrm-graphql-mcp
Installation (Teammitglied)
In Claude → Einstellungen → Connectors → Benutzerdefinierten Connector hinzufügen
URL:
https://<your-worker>.workers.dev/mcpClaude leitet Sie zu einer Zustimmungsseite weiter, auf der Sie Ihren persönlichen Twenty-API-Schlüssel benötigen. So erhalten Sie einen:
Melden Sie sich in Ihrem Twenty-Workspace im Browser an
Klicken Sie auf das Zahnrad-Symbol (unten links) → Einstellungen
Gehen Sie zu Entwickler (unter dem Abschnitt Workspace in der Seitenleiste)
Klicken Sie auf + API-Schlüssel erstellen, geben Sie ihm einen Namen (z. B. "Claude MCP") und kopieren Sie den Schlüssel
Fügen Sie den API-Schlüssel in das Zustimmungsformular ein. Wählen Sie die Berechtigung (schreibgeschützt oder Lesen+Schreiben) und optionale Objekt-Scopes.
Fertig. Ihr Schlüssel wird verschlüsselt in Cloudflare KV gespeichert und an Ihre Sitzung gebunden.
Änderungen, die Sie in Twenty vornehmen, werden Ihrem Twenty-Benutzer zugeordnet, nicht einem gemeinsamen Dienstkonto.
Bereitstellung (Admin, erstmalig)
Voraussetzungen
Ein Cloudflare-Konto (kostenloser Plan reicht aus)
Node.js 18+
Eine laufende Twenty CRM-Instanz (selbst gehostet oder Cloud)
Schritte
# 1. Clone the repo
git clone https://github.com/High-Impact-Athletes/hia-twenty-mcp.git
cd hia-twenty-mcp
npm install
# 2. Create the KV namespace
npx wrangler kv namespace create twenty-mcp-oauth
# Note the ID from the output (e.g. "3cd89a10677c4d2ba32c9e59482afa23")
# 3. Create your local config (not committed to git)
cp wrangler.jsonc wrangler.local.jsonc
# Edit wrangler.local.jsonc:
# - Set "account_id" to your Cloudflare account ID
# - Replace <OAUTH_KV_ID> with the KV namespace ID from step 2
# 4. Set secrets
npx wrangler secret put COOKIE_ENCRYPTION_KEY --config wrangler.local.jsonc
# Paste the output of: openssl rand -hex 32
# This is just a random string for encrypting OAuth cookies — not a Twenty secret.
npx wrangler secret put TWENTY_BASE_URL --config wrangler.local.jsonc
# Paste your Twenty instance URL, e.g. https://crm.example.com
# This is whatever URL you use to log into Twenty in your browser.
# 5. Deploy
npm run deployIhre Worker-URL lautet https://hia-twenty-mcp.<your-subdomain>.workers.dev. Teilen Sie <url>/mcp mit dem Team.
Für von Claude verwaltete Teams: Registrieren Sie <url>/mcp einmal in der Claude-Team-Admin-Konsole – es erscheint dann in der Connector-Liste jedes Teammitglieds. Jedes Mitglied muss dennoch die einmalige Zustimmungsseite ausfüllen, um seinen eigenen Twenty-API-Schlüssel einzufügen.
Optional: Admin-Token festlegen
Aktiviert die /admin/*-Endpunkte zum Hochladen von organisationsspezifischem Primer-Kontext (siehe Anpassen des Primers):
npx wrangler secret put ADMIN_TOKEN --config wrangler.local.jsonc
# Paste the output of: openssl rand -hex 32Anpassen des Primers
Die Ressource twenty://primer gibt Claude Kontext über Ihr CRM, bevor Tool-Aufrufe getätigt werden. Sie enthält zwei Teile:
Organisationskontext – ein Markdown-Dokument, das Ihr Domänenmodell, benutzerdefinierte Objekte, Geschäftsregeln und Konventionen beschreibt. Dinge, die die Introspektion nicht erfassen kann (z. B. "Objekt A und Objekt B sind unabhängig – leiten Sie nicht eines vom anderen ab").
Schema-Snapshot – automatisch generiert aus der Metadaten-API von Twenty, zwischengespeichert für 1 Stunde.
Standardmäßig ist Teil (1) eine generische Twenty-Vorlage. Um Ihren organisationsspezifischen Kontext hochzuladen:
# Upload your context markdown:
curl -X PUT https://<your-worker>.workers.dev/admin/primer \
-H "Authorization: Bearer <your-admin-token>" \
-H "Content-Type: text/markdown" \
--data-binary @path/to/your-context.md
# Verify it's loaded:
curl https://<your-worker>.workers.dev/admin/primer \
-H "Authorization: Bearer <your-admin-token>"
# Revert to the bundled default:
curl -X DELETE https://<your-worker>.workers.dev/admin/primer \
-H "Authorization: Bearer <your-admin-token>"Das Kontext-Markdown sollte beschreiben: was Ihre Organisation tut, was jedes benutzerdefinierte Objekt bedeutet und wie sie zusammenhängen, Klassifizierungsmodelle, Namenskonventionen und alle "Tu dies / tu das nicht"-Regeln für die KI. Siehe src/primer/default-context.md für die Vorlagenstruktur.
Lokale Entwicklung
npm install
cp .dev.vars.example .dev.vars
# Edit .dev.vars — set COOKIE_ENCRYPTION_KEY, TWENTY_BASE_URL, and optionally ADMIN_TOKEN
# Make sure you have wrangler.local.jsonc set up (see Deploy section)
npm run dev # wrangler dev on http://localhost:8787
npm run typecheckUm einen lokalen Claude Desktop mit dem Entwicklungs-Worker zu verbinden, fügen Sie http://localhost:8787/mcp als Connector hinzu.
Funktionsweise der Authentifizierung
Twenty hat keinen vorgelagerten OAuth-Anbieter – die Authentifizierung erfolgt über API-Schlüssel pro Workspace. Daher:
Der Worker betreibt seinen eigenen OAuth 2.1-Endpunkt (erforderlich für Claude-Connectoren).
Während des OAuth-Zustimmungsschritts fügt der Benutzer seinen Twenty-API-Schlüssel in ein HTML-Formular ein.
Der Worker validiert den Schlüssel gegen den
/metadata-Endpunkt von Twenty und speichert dann{twentyApiKey, mode, allowedObjects, label}als verschlüsselte OAuth-Eigenschaften.Jeder nachfolgende MCP-Tool-Aufruf hat den Schlüssel des Benutzers über
this.propsverfügbar.
Das bedeutet, das MCP ist außen OAuth (für Claude) und innen API-Schlüssel (für Twenty).
Scoping
Jede Verbindung kann bei der Installation eingeschränkt werden:
Modus: schreibgeschützt blendet
create_record/update_record/delete_recordaus.Erlaubte Objekte: durch Kommas getrennte Liste, um auf bestimmte Objekte zu beschränken.
Objekt-Ebene-Berechtigungen werden auch von Twenty selbst über die Rolle erzwungen, die mit dem API-Schlüssel des Benutzers verknüpft ist – doppelt hält besser.
Twenty-Versionskompatibilität
Getestet mit Twenty v0.40+. Das MCP verwendet:
REST API (
/rest/<objects>) für Datensatz-CRUD – Tiefe auf 0 oder 1 begrenztGraphQL-Metadaten-API (
/metadata) für Schema-Introspektion – verwendet dassettings-Feld im Feldtyp für BeziehungsinformationenZusammengesetzte Felder (z. B.
name.firstName,emails.primaryEmail) müssen in Filtern mit Punktnotation angegeben werden
Wenn Sie eine deutlich ältere Twenty-Version verwenden, kann die Form der Metadatenabfrage abweichen. Eröffnen Sie ein Issue, wenn Sie auf Fehler stoßen.
Architektur
Claude ↔ OAuth 2.1 ↔ Worker ↔ REST+GraphQL ↔ Twenty workspace
│
├─ McpAgent Durable Object (per session)
├─ OAUTH_KV (token store, schema cache, primer)
└─ twenty://primer (org context + live schema)Lizenz
Apache-2.0
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Twenty CRM through a Model Context Protocol server. Provides comprehensive CRM operations including managing people, companies, opportunities, notes, tasks, and custom objects with support for filtering, pagination, and AI-powered automations.30MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for Twenty CRM that enables AI assistants to interact with the CRM via GraphQL, including schema inspection and query execution.171
- AlicenseAqualityBmaintenanceA comprehensive MCP server providing Claude with enterprise-grade access to HubSpot CRM, including contacts, deals, quotes, workflows, and automation through 37 tools.3742MIT
- AlicenseAqualityBmaintenanceEnables MCP clients to read, search, create, update, and manage records in Twenty CRM with a safe, composable 14-tool interface and guarded destructive operations.14MIT
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/High-Impact-Athletes/hia-twenty-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server