Self-host Twenty on private infrastructure
Developers can run Twenty on their own infrastructure. Deployment options include using Docker Compose.
website·Indexed 35 days ago
https://twenty.com/user-guideDeveloper and user guides for Twenty, featuring documentation on APIs, schema-per-tenant APIs, and MCP Server capabilities including authentication methods.
https://{your-workspace-url}/mcp for both Cloud and Self-Hosted environments.Invoice) are added, REST and GraphQL endpoints are automatically created using the object and field names. Workspace-specific interactive documentation and a playground are available in Settings → API & Webhooks after an API key is created.Authentication for the Twenty CRM MCP server is handled via the Authorization header. There are two supported methods:
Bearer <api-key> token in the Authorization header./.well-known/oauth-protected-resource and /.well-known/oauth-authorization-server endpoints.The MCP server exposes tools that mirror the Twenty API. AI assistants typically use the following workflow:
learn_tools: Used to get the input schema for specific tools.execute_tool: Used to run the tool.Operation names follow a predictable grammar (e.g., find_many_companies, find_one_person, update_one_opportunity). For a full list of tools, get_tool_catalog can be used, though it is recommended as a fallback due to the high volume of operations.
| Client | Config file location |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows) |
| Claude Code | ~/.claude.json (user) or .mcp.json (project) |
| Cursor | .cursor/mcp.json (project) or ~/.cursor/mcp.json (global) |
| ChatGPT | Enable Developer Mode in Settings → Apps & Connectors → Advanced settings, then use Create in Settings → Apps & Connectors |
{
"$schema": "https://static.modelcontextprotocol.io/schemas/v1/server-card.schema.json",
"name": "com.twenty/twenty",
"version": "0.2.1",
"title": "Twenty CRM",
"description": "Read and write your Twenty CRM data - companies, people, opportunities, tasks, notes and any custom objects - from AI assistants.",
"websiteUrl": "https://twenty.com",
"repository": {
"url": "https://github.com/twentyhq/twenty",
"source": "github"
},
"remotes": [
{
"type": "streamable-http",
"url": "https://{your-workspace-url}/mcp",
"supportedProtocolVersions": [
"2025-06-18"
],
"headers": [
{
"name": "Authorization",
"description": "Optional. Bearer <api-key> for static API-key auth. Omit to use OAuth 2.1.",
"isRequired": false,
"isSecret": true
}
]
}
]
}Twenty provides two distinct API sets, both available via REST and GraphQL:
/rest/ and /graphql/): Used for CRUD operations on records such as People, Companies, Opportunities, and custom objects. Supports querying, filtering, and traversing relations./rest/metadata/ and /metadata/): Used for programmatic schema management, including creating, modifying, or deleting objects, fields, and relations.Authorization header. You can create an API key in Twenty by navigating to Settings → MCP & APIs → API → + Create key.{
"mcpServers": {
"twenty": {
"type": "streamable-http",
"url": "https://{your-workspace-url}/mcp",
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
}
}