Twenty MCP
Twenty MCP
Удаленный MCP-сервер (Model Context Protocol), который подключает Claude к рабочему пространству Twenty CRM, развернутый на Cloudflare Workers с OAuth для установки командой в один клик.
Что он делает
Предоставляет 9 универсальных инструментов, управляемых схемой, которые работают с любым объектом Twenty (человек, компания, сделка или любой пользовательский объект). MCP анализирует метаданные API Twenty во время выполнения — вам никогда не нужно обновлять MCP при добавлении полей или объектов.
Инструменты
list_objects,describe_object— узнайте, что находится в CRMfind_records,get_record— запрос с фильтрацией/сортировкой/пагинациейcreate_record,update_record,delete_record— мутации (только при подключении в режиме записи)run_graphql— «черный ход» для необработанных метаданных/graphqlget_primer— контекст домена конкретной организации + актуальный снимок схемы
Ресурсы (автоматически загружаются Claude при запуске сессии)
twenty://primer— контекст организации, объединенный с компактным снимком схемыtwenty://api/info— статус коннектора и текущие области действия (scopes)
Related MCP server: twentycrm-graphql-mcp
Установка (для члена команды)
В Claude → Settings → Connectors → Add custom connector
URL:
https://<your-worker>.workers.dev/mcpClaude перенаправит вас на страницу согласия, где вам понадобится ваш личный API-ключ Twenty. Чтобы получить его:
Войдите в свое рабочее пространство Twenty в браузере
Нажмите на значок шестеренки (внизу слева) → Settings
Перейдите в Developers (в разделе Workspace на боковой панели)
Нажмите + Create API key, дайте ему имя (например, "Claude MCP") и скопируйте ключ
Вставьте API-ключ в форму согласия. Выберите разрешение (только чтение или чтение+запись) и дополнительные области объектов.
Готово. Ваш ключ хранится в зашифрованном виде в Cloudflare KV, привязанный к вашей сессии.
Изменения, которые вы вносите в Twenty, приписываются вашему пользователю Twenty, а не общей сервисной учетной записи.
Развертывание (для администратора, первый раз)
Предварительные требования
Учетная запись Cloudflare (подходит бесплатный тариф)
Node.js 18+
Запущенный экземпляр Twenty CRM (самостоятельно размещенный или облачный)
Шаги
# 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 deployВаш URL Worker будет https://hia-twenty-mcp.<your-subdomain>.workers.dev. Поделитесь <url>/mcp с командой.
Для команд, управляемых Claude: зарегистрируйте <url>/mcp один раз в консоли администратора команды Claude — он появится в списке коннекторов каждого члена команды. Каждый участник все равно проходит однократную страницу согласия, чтобы вставить свой собственный API-ключ Twenty.
Дополнительно: установка токена администратора
Включает конечные точки /admin/* для загрузки контекста primer, специфичного для организации (см. Настройка primer):
npx wrangler secret put ADMIN_TOKEN --config wrangler.local.jsonc
# Paste the output of: openssl rand -hex 32Настройка primer
Ресурс twenty://primer дает Claude контекст о вашей CRM перед любыми вызовами инструментов. Он содержит две части:
Контекст организации — документ в формате markdown, описывающий вашу модель домена, пользовательские объекты, бизнес-правила и соглашения. То, что интроспекция не может уловить (например, «Объект A и Объект B независимы — не делайте выводов об одном из другого»).
Снимок схемы — автоматически генерируется из API метаданных Twenty, кэшируется на 1 час.
Из коробки часть (1) является общим шаблоном Twenty. Чтобы загрузить контекст, специфичный для вашей организации:
# 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>"Контекст в формате markdown должен описывать: чем занимается ваша организация, что означает каждый пользовательский объект и как они связаны, модели классификации, соглашения об именовании и любые правила «делай это / не делай того» для ИИ. См. src/primer/default-context.md для структуры шаблона.
Локальная разработка
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 typecheckЧтобы подключить локальный Claude Desktop к рабочему экземпляру (dev worker), добавьте http://localhost:8787/mcp в качестве коннектора.
Как работает аутентификация
У Twenty нет вышестоящего провайдера OAuth — аутентификация осуществляется через API-ключи для каждого рабочего пространства. Поэтому:
Worker запускает свою собственную конечную точку OAuth 2.1 (требуется коннекторами Claude).
Во время шага согласия OAuth пользователь вставляет свой API-ключ Twenty в HTML-форму.
Worker проверяет ключ через конечную точку
/metadataTwenty, затем сохраняет{twentyApiKey, mode, allowedObjects, label}как зашифрованные свойства OAuth.Каждый последующий вызов инструмента MCP имеет ключ пользователя, доступный через
this.props.
Это означает, что MCP — это OAuth снаружи (для Claude) и API-ключ внутри (для Twenty).
Области действия (Scoping)
Каждое соединение может быть ограничено во время установки:
Режим: только чтение скрывает
create_record/update_record/delete_record.Разрешенные объекты: список через запятую для ограничения конкретными объектами.
Разрешения на уровне объектов также принудительно применяются самой Twenty через роль, привязанную к API-ключу пользователя — двойная защита.
Совместимость с версиями Twenty
Протестировано с Twenty v0.40+. MCP использует:
REST API (
/rest/<objects>) для CRUD записей — глубина ограничена 0 или 1GraphQL metadata API (
/metadata) для интроспекции схемы — использует полеsettingsв типе Field для информации о связяхСоставные поля (например,
name.firstName,emails.primaryEmail) должны быть записаны через точку в фильтрах
Если вы используете значительно более старую версию Twenty, форма запроса метаданных может отличаться. Откройте issue, если столкнетесь с ошибками.
Архитектура
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)Лицензия
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