Twenty MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Twenty MCP Servershow me my recent contacts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Twenty MCP Server
A Model Context Protocol (MCP) server that provides seamless integration with the Twenty CRM API, enabling LLM agents to interact with your CRM data through well-defined, typed tools.
π Table of Contents
Related MCP server: Twenty MCP Server
Overview
This MCP server transforms your Twenty CRM instance into a powerful tool accessible by Claude and other MCP-compatible AI assistants. It provides comprehensive access to contacts, companies, tasks, and notes with full TypeScript support and robust error handling.
Key Features
π€ Contact Management: Create, retrieve, update, and search contacts
π’ Company Management: Full company lifecycle management
πΌ Opportunity Tracking: Complete sales pipeline management
π Activity Management: Unified timeline view with filtering
β Task Management: Create and manage tasks
π Relationship Management: Link entities and analyze connections
π Metadata Discovery: Explore CRM schema and field definitions
π OAuth 2.1 Authentication: Secure user-specific API key management
π Full TypeScript Support: Type-safe operations with validation
Total: 29 MCP Tools providing comprehensive CRM automation capabilities. See full tool list β
Understanding MCP Servers
MCP (Model Context Protocol) servers are tools that extend AI assistants like Claude with new capabilities. Once configured, this server allows Claude to:
π Read your CRM data (contacts, companies, opportunities)
βοΈ Create new records directly from conversations
π Update existing information
π€ Automate CRM workflows through natural language
Think of it as giving Claude direct access to your Twenty CRM, turning it into a powerful CRM assistant.
Prerequisites
Before installing, ensure you have:
β Node.js 18 or higher - Download from nodejs.org
β npm (included with Node.js)
β Git for cloning the repository
β Twenty CRM instance with API access
β Text editor for configuration files
Checking Prerequisites
# Check Node.js version (should be 18+)
node --version
# Check npm is installed
npm --version
# Check git is installed
git --versionβ οΈ Windows Users: The quick install script requires Git Bash or WSL. See Windows Installation Guide for alternatives.
π Quick Start
Option 1: Instant Trial (No Installation Required) β‘
# Try instantly with npx - no installation needed!
npx twenty-mcp-server setup
# Test your configuration
npx twenty-mcp-server test
# Start the server
npx twenty-mcp-server startPerfect for trying Twenty MCP Server before committing to installation!
Option 2: Global Installation (Best for Regular Use)
# Install globally with npm
npm install -g twenty-mcp-server
# Run the interactive setup wizard
twenty-mcp setup
# Start the server
twenty-mcp startThat's it! The CLI will guide you through everything else.
Option 3: Git Clone (For Developers)
For experienced users who want to clone and modify the source:
# Clone, install, configure, and run
git clone https://github.com/jezweb/twenty-mcp.git && \
cd twenty-mcp && \
chmod +x install.sh && \
./install.sh && \
cp .env.example .env && \
echo "Now edit .env with your API key and base URL" && \
nano .envThen configure your IDE using the absolute path shown by the installer.
Installation
πΊοΈ Installation Overview
βββββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββββββββββββββ
β 1. Install β --> β 2. Configure β --> β 3. Verify β --> β 4. Connect β
β - Clone repo β β - API key β β - Validateβ β - IDE β
β - Build β β - Base URLβ β - Test β β - Use! β
βββββββββββββββββββ ββββββββββββββββ ββββββββββββββββ βββββββββββββββ
(~3 min) (~2 min) (~1 min) (~2 min)Choose Your Installation Method
Method | When to Use | Time | Platform |
π³ Docker MCP | Docker Desktop users with MCP Toolkit | ~1 minute | All platforms |
β‘ npx Instant Trial | Try before installing - no commitment! | ~30 seconds | All platforms |
π npm Global Install | Regular use and best performance | ~1 minute | All platforms |
π― Git Clone + Install | Developers who want to modify code | ~3 minutes | Linux/macOS/Git Bash |
π§ Manual Git Setup | Windows Command Prompt or custom needs | ~5 minutes | All platforms |
Option 0: Docker MCP (Docker Desktop Users)
If you have Docker Desktop with MCP Toolkit enabled:
Open Docker Desktop
Go to MCP Catalog
Search for "Twenty CRM"
Click Install and configure your API key
Or use the Docker CLI:
docker mcp install twenty-mcpLearn more at hub.docker.com/mcp
Option 1: npx Instant Trial (Try Before Installing)
Experience Twenty MCP Server instantly without any installation:
# Try it right now - no installation required!
npx twenty-mcp-server setup
# Configuration is saved globally for future npx runs
npx twenty-mcp-server test
# Start using it immediately
npx twenty-mcp-server startBenefits:
β Zero installation - try instantly
β Always runs the latest version
β Configuration persists between runs
β Perfect for testing and evaluation
β No global installation clutter
Ready to install permanently? Simply run: npm install -g twenty-mcp-server
Option 2: npm Global Install (Best for Regular Use)
For users who want Twenty MCP Server permanently installed:
# Install globally
npm install -g twenty-mcp-server
# Verify installation
twenty-mcp --version
# Run setup wizard
twenty-mcp setupBenefits:
β Works on all platforms (Windows, macOS, Linux)
β Automatic PATH configuration
β Interactive setup wizard guides you through everything
β No manual file management or path configuration
β Easy updates with
npm update -g twenty-mcp-serverβ Built-in CLI commands for management and testing
β Professional configuration management
What the setup wizard configures:
π§ Twenty CRM API connection
π OAuth 2.1 authentication (optional)
π‘οΈ IP address protection (optional)
βοΈ Server preferences and defaults
π Cross-platform configuration storage
Option 3: Git Clone Installation
For developers who want to modify the source code:
# Step 1: Clone the repository
git clone https://github.com/jezweb/twenty-mcp.git
cd twenty-mcp
# Step 2: Make install script executable (Linux/macOS only)
chmod +x install.sh
# Step 3: Run the installation
./install.shThe install script will:
β Check Node.js version (18+ required)
β Install all dependencies
β Build the TypeScript project
β Run tests (if API key is configured)
β Show your absolute path for IDE configuration
β Provide next steps
π Note: Save the absolute path shown by the installer - you'll need it for IDE configuration!
Option 4: Manual Installation
Perfect for Windows Command Prompt users or those who prefer manual control:
# Step 1: Clone the repository
git clone https://github.com/jezweb/twenty-mcp.git
cd twenty-mcp
# Step 2: Install dependencies
npm install
# Step 3: Build the TypeScript project
npm run build
# Step 4: Verify the build succeeded
# Linux/macOS:
ls -la dist/index.js
# Windows:
dir dist\index.jsβ
If you see dist/index.js, the build succeeded!
π Finding Your Installation Path (IMPORTANT!)
π¨ Critical: You MUST use the absolute path to
dist/index.jsfor IDE configuration. Relative paths will NOT work!
# Get your absolute path
pwd
# Example output: /home/username/twenty-mcp
# Your MCP server path will be:
# /home/username/twenty-mcp/dist/index.js# Command Prompt
cd
# Example output: C:\Users\username\twenty-mcp
# Your path: C:\Users\username\twenty-mcp\dist\index.js
# PowerShell
Get-Location
# Example output: C:\Users\username\twenty-mcp
# Your path: C:\Users\username\twenty-mcp\dist\index.js
# Git Bash
pwd
# Example output: /c/Users/username/twenty-mcp
# Your path: C:/Users/username/twenty-mcp/dist/index.jsβ οΈ Warning: If your path contains spaces (e.g., "Program Files"), use quotes in your IDE configuration!
Your MCP server path will be: [absolute-path]/dist/index.js
π§ͺ Installation Quick Check
Before proceeding to configuration, verify your installation:
# 1. Check Node modules installed
test -d node_modules && echo "β
Dependencies installed" || echo "β Run: npm install"
# 2. Check build completed
test -f dist/index.js && echo "β
Build successful" || echo "β Run: npm run build"
# 3. Check your path
echo "π Your MCP path: $(pwd)/dist/index.js"Windows Installation Guide
πͺ Windows Users: See our detailed Windows Installation Guide for step-by-step instructions with Command Prompt, PowerShell, and Git Bash options.
Configuration
Step 1: Get Your Twenty CRM API Key
Log into your Twenty CRM instance
For Twenty Cloud: https://app.twenty.com
For self-hosted: Your instance URL
Navigate to Settings
Click on your profile avatar (top right)
Select "Settings" from the dropdown
Find API & Webhooks
Look in the "Developers" section
Click on "API & Webhooks"
Generate Your API Key
Click "Generate API Key" button
Important: Copy the key immediately - it won't be shown again!
Store it securely (password manager recommended)
Step 2: Configure Environment Variables
Option A: Using .env File (Recommended)
# Copy the example configuration
cp .env.example .env
# Edit with your favorite editor
nano .env # or vim, code, notepad, etc.Add your configuration to the .env file:
# Your Twenty CRM API Key (from Step 1)
TWENTY_API_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
# Your Twenty instance URL (no trailing slash!)
TWENTY_BASE_URL=https://api.twenty.comCommon Base URLs:
Twenty Cloud:
https://api.twenty.comSelf-hosted:
https://your-company.twenty.comLocal development:
http://localhost:3000
Option B: Using Export Commands
# Linux/macOS
export TWENTY_API_KEY="your-api-key-here"
export TWENTY_BASE_URL="https://api.twenty.com"
# Windows (Command Prompt)
set TWENTY_API_KEY=your-api-key-here
set TWENTY_BASE_URL=https://api.twenty.com
# Windows (PowerShell)
$env:TWENTY_API_KEY="your-api-key-here"
$env:TWENTY_BASE_URL="https://api.twenty.com"Step 3: Load Your Configuration
π Important: Environment variables must be loaded in your current shell session!
.env files store configuration but don't automatically load into your shell:
Linux/macOS: Must use
source .envto load variablesWindows: The npm scripts automatically read .env files
IDE Configuration: Usually reads .env files directly
If using a .env file:
# Linux/macOS - Load variables into current session
source .env
# Verify they're loaded
echo $TWENTY_API_KEY # Should show your key
# Windows - npm scripts read .env automatically
# No manual loading needed for npm commandsOAuth Authentication
The Twenty MCP Server supports OAuth 2.1 authentication following the MCP Authentication Specification. This enables secure, user-specific API key management and multi-user deployments.
π OAuth Features
π Secure API Key Storage: User API keys encrypted with AES-256-GCM
π€ User-Specific Access: Each user manages their own Twenty CRM connection
π Backward Compatible: Works alongside traditional API key configuration
π‘οΈ Clerk Integration: Production-ready authentication provider
π Discovery Endpoints: Full MCP OAuth specification compliance
π Quick OAuth Setup
Run the interactive OAuth setup CLI:
npm run setup:oauthThis will guide you through:
Enabling OAuth authentication
Configuring Clerk credentials
Setting up encryption secrets
Testing the integration
π OAuth Documentation
For detailed OAuth implementation guide, see OAUTH.md:
Complete OAuth 2.1 Flow: Step-by-step implementation
Security Best Practices: Encryption, token validation, CORS
Client Integration Examples: JavaScript, Python, curl
Production Deployment: Environment setup and troubleshooting
π§ͺ OAuth Testing
Test your OAuth setup:
# Run comprehensive OAuth test suite
npm run test:oauth
# Test specific OAuth endpoints
curl http://localhost:3000/.well-known/oauth-protected-resource
curl http://localhost:3000/.well-known/oauth-authorization-serverβοΈ OAuth vs API Key Configuration
Feature | API Key Mode | OAuth Mode |
Setup Complexity | Simple | Moderate |
Security | Shared key | User-specific encrypted keys |
Multi-user | β Single user | β Multiple users |
Authentication | Query parameter | Bearer token |
Key Storage | Environment variables | Encrypted in Clerk |
Backward Compatibility | β Full | β Full (when auth disabled) |
Choose API Key mode for:
Single-user deployments
Simple integrations
Quick prototyping
Choose OAuth mode for:
Multi-user applications
Production deployments
Enhanced security requirements
Verification
Before configuring your IDE, verify everything is working:
1. Run Configuration Validator
npm run validateExpected output when everything is configured:
==================================================
Twenty MCP Server Configuration Validator
==================================================
[INFO] Checking environment variables...
[SUCCESS] TWENTY_API_KEY is set
[SUCCESS] API key appears to be in JWT format
[SUCCESS] TWENTY_BASE_URL is set: https://api.twenty.com
[SUCCESS] Base URL is valid
[INFO] Checking configuration files...
[SUCCESS] .env file exists
[INFO] Checking project build...
[SUCCESS] Project is built (dist/index.js exists)
[SUCCESS] Dependencies are installed
[INFO] Testing API connection...
[SUCCESS] API connection successful!
[INFO] Connected as: John Doe
==================================================
[SUCCESS] Configuration is valid! π2. Test Your Configuration
# Make sure environment is loaded
source .env # Linux/macOS only
# Run basic tests
npm test3. Optional: Start HTTP Server
npm startYou should see: Server running on http://localhost:3000
IDE Integration
π Before You Begin - Checklist
Installation complete (
dist/index.jsexists)Configuration valid (
npm run validatepasses)Absolute path noted (from installation step)
API key and base URL ready
π₯οΈ Claude Desktop
Configure Claude Desktop to use your Twenty MCP server:
1. Find Your Configuration File
Platform | Location |
macOS |
|
Windows |
|
Linux |
|
2. Edit Configuration
If you installed via npm or use npx:
{
"mcpServers": {
"twenty-crm": {
"command": "twenty-mcp",
"args": ["start", "--stdio"],
"env": {}
}
}
}Note for npx users: Your configuration is automatically saved globally, so Claude Desktop will work seamlessly even when using npx!
If you cloned from Git:
{
"mcpServers": {
"twenty-crm": {
"command": "node",
"args": ["REPLACE_WITH_YOUR_ABSOLUTE_PATH/dist/index.js"],
"env": {
"TWENTY_API_KEY": "REPLACE_WITH_YOUR_API_KEY",
"TWENTY_BASE_URL": "REPLACE_WITH_YOUR_BASE_URL"
}
}
}
}β οΈ Common Mistakes to Avoid:
Using relative paths (e.g.,
./dist/index.js) - won't work!Forgetting to restart Claude Desktop after changes
Missing quotes around paths with spaces
Using wrong slashes on Windows (use
/or\\)
3. Real Examples
npm Installation or npx Usage (All Platforms):
{
"mcpServers": {
"twenty-crm": {
"command": "twenty-mcp",
"args": ["start", "--stdio"],
"env": {}
}
}
}π‘ npx users: This same configuration works whether you use npx twenty-mcp-server or install globally!
Git Installation Examples:
macOS Example:
{
"mcpServers": {
"twenty-crm": {
"command": "node",
"args": ["/Users/johndoe/projects/twenty-mcp/dist/index.js"],
"env": {
"TWENTY_API_KEY": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"TWENTY_BASE_URL": "https://api.twenty.com"
}
}
}
}Windows Example:
{
"mcpServers": {
"twenty-crm": {
"command": "node",
"args": ["C:\\Users\\johndoe\\projects\\twenty-mcp\\dist\\index.js"],
"env": {
"TWENTY_API_KEY": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"TWENTY_BASE_URL": "https://api.twenty.com"
}
}
}
}4. Verify Connection
Restart Claude Desktop (required!)
Ask Claude: "What MCP tools do you have available?"
Test with: "Show me my contacts from Twenty CRM"
π» Other IDE Integrations
Open Cursor Settings (
Cmd/Ctrl + ,)Navigate to Extensions β MCP Servers
Add configuration:
{ "name": "twenty-crm", "command": "node", "args": ["/absolute/path/to/twenty-mcp/dist/index.js"], "env": { "TWENTY_API_KEY": "your-api-key", "TWENTY_BASE_URL": "https://your-instance.com" } }Restart Cursor
Quick setup:
Install Smithery:
npm install -g @smithery/cliRun:
smithery devin the twenty-mcp directoryConfigure credentials when prompted
Or use the deployed version:
Visit smithery.ai
Search for "Twenty MCP"
Click "Use this server"
Install Cline extension from VS Code marketplace
Add to VS Code settings.json:
{ "cline.mcpServers": { "twenty-crm": { "command": "node", "args": ["/path/to/twenty-mcp/dist/index.js"], "env": { "TWENTY_API_KEY": "your-api-key", "TWENTY_BASE_URL": "https://your-instance.com" } } } }
For web integrations, run as HTTP server:
npm start
# Server available at http://localhost:3000/mcpConfigure via query parameters:
http://localhost:3000/mcp?apiKey=your-key&baseUrl=https://your-instance.comCLI Commands
Twenty MCP Server includes a powerful CLI for easy management:
Setup and Configuration
# Interactive setup wizard (recommended for first-time setup)
twenty-mcp setup
# Setup with OAuth authentication
twenty-mcp setup --oauth
# Setup with IP protection
twenty-mcp setup --ip-protection
# Import existing .env configuration
twenty-mcp setup --import
# Reset to default configuration
twenty-mcp setup --resetServer Management
# Start the server (HTTP mode, default port 3000)
twenty-mcp start
# Start with custom port
twenty-mcp start --port 8080
# Start in stdio mode (for direct MCP protocol communication)
twenty-mcp start --stdio
# Start with verbose logging
twenty-mcp start --verboseTesting and Diagnostics
# Test configuration and connection
twenty-mcp test
# Run full test suite including API tests
twenty-mcp test --full
# Test OAuth authentication endpoints
twenty-mcp test --oauth
# Run smoke tests only (no API calls)
twenty-mcp test --smokeStatus and Information
# Show server status and configuration
twenty-mcp status
# Show detailed status information
twenty-mcp status --verbose
# Output status in JSON format
twenty-mcp status --json
# Show help for all commands
twenty-mcp help
# Show version
twenty-mcp --versionAI Assistant Usage
Basic Commands
Once configured in your IDE, you can ask your AI assistant to:
"Show me all contacts in Twenty CRM"
"Create a new company called Acme Corp"
"Find all opportunities in the proposal stage"
"Add a task to follow up with John Doe"
"Show me all activities from last week"
Example Conversations
You: "Create a new contact for Jane Smith at jane@example.com"
Claude: I'll create a new contact for Jane Smith in your Twenty CRM...
You: "Find all opportunities worth over $10,000"
Claude: Let me search for high-value opportunities in your CRM...
You: "Show me companies without any contacts"
Claude: I'll find orphaned company records in your system...See full tool documentation β
Troubleshooting
π§ Quick Diagnostic
First, run the configuration validator:
npm run validateThis will identify most common issues and suggest fixes.
π« Common Issues & Solutions
Installation Issues
Solution: Update Node.js
# Check current version
node --version
# Install Node.js 18+ from https://nodejs.org
# Or use nvm:
nvm install 18
nvm use 18Solution: Build the project
npm run build
# Verify build succeeded
ls -la dist/index.jsSolution: Make script executable
chmod +x install.sh
./install.shConfiguration Issues
Solution: Set your environment variables
# Option 1: Load from .env file
source .env
# Option 2: Export directly
export TWENTY_API_KEY="your-key-here"
export TWENTY_BASE_URL="https://your-instance.com"Solution:
Verify API key is correct (no extra spaces)
Check key hasn't expired
Regenerate key in Twenty CRM Settings
Ensure you're using the correct base URL
Solution:
Check base URL is correct (no trailing slash!)
Verify Twenty instance is accessible
Check firewall/proxy settings
Test with curl:
curl -H "Authorization: Bearer YOUR_API_KEY" \ https://your-instance.com/graphql
IDE Integration Issues
Solution:
Verify absolute path is correct:
# Get the correct path cd twenty-mcp && pwdCheck config file location is correct for your OS
Ensure JSON syntax is valid (no trailing commas!)
Restart Claude Desktop (required!)
Check Claude's developer console for errors
Solution: Use proper Windows paths
// Correct Windows paths:
"args": ["C:\\Users\\name\\twenty-mcp\\dist\\index.js"]
// or
"args": ["C:/Users/name/twenty-mcp/dist/index.js"]
// Incorrect:
"args": ["~/twenty-mcp/dist/index.js"] // Won't work on Windowsπ Advanced Debugging
Enable debug logging for more details:
# Enable all debug output
DEBUG=twenty-mcp:* npm start
# Test specific GraphQL queries
node test-graphql.jsπ Getting Help
If you're still stuck:
Check existing issues: GitHub Issues
Read test documentation: TESTING.md
Create a new issue with:
Your OS and Node.js version
Complete error message
Output from
npm run validateSteps to reproduce
Additional Resources
π Documentation
Full Tool Reference - Detailed documentation of all 29 tools
Testing Guide - How to run and write tests
Contributing Guide - How to contribute to the project
ποΈ Architecture
The Twenty MCP Server is built with:
TypeScript for type safety
GraphQL for Twenty API communication
MCP SDK for protocol implementation
Zod for runtime validation
π€ Contributing
We welcome contributions! Please see our Contributing Guide for details on:
Setting up development environment
Running tests
Submitting pull requests
Code style guidelines
π License
MIT License - see LICENSE file for details.
π Acknowledgments
Twenty CRM for the open-source CRM platform
Model Context Protocol for the integration standard
Anthropic for Claude and the MCP framework
Project Structure
twenty-mcp-server/
βββ src/
β βββ client/
β β βββ twenty-client.ts # GraphQL client for Twenty API
β βββ tools/
β β βββ index.ts # MCP tool implementations
β βββ types/
β β βββ twenty.ts # TypeScript interfaces
β βββ index.ts # Main server entry point
βββ tests/ # Test suites
βββ dist/ # Compiled JavaScript (after build)
βββ package.json
βββ tsconfig.json
βββ README.mdKey Components
TwentyClient: GraphQL client that handles API communication with Twenty CRM
MCP Tools: 29 tools that provide comprehensive CRM functionality to AI assistants
Type System: Comprehensive TypeScript definitions for Twenty's data structures
Schema Transformation: Converts flat tool inputs to Twenty's nested GraphQL schema
# Install dependencies
npm install
# Run in development mode with hot reload
npm run dev
# Run development HTTP server
npm run dev:http
# Build for production
npm run build
# Run linting
npm run lint
# Type checking
npm run typecheck
# Run all tests
npm test
# Run specific test suites
npm run test:smoke # Quick tests (no API)
npm run test:full # Comprehensive testsThis 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.
Latest Blog Posts
- 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/iteramind/twenty-mcp-iteramind'
If you have feedback or need assistance with the MCP directory API, please join our Discord server