Copper CRM 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., "@Copper CRM MCP ServerWhat deals are closing this month in my main pipeline?"
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.
Copper CRM MCP Server
An MCP server that lets an AI agent (Claude Desktop, or any MCP client) read your Copper CRM and run light pipeline hygiene — search deals, spot stale opportunities, log a note, and schedule a follow-up.
Unofficial. Built to show what an official Copper MCP server could look like. It's a focused, read-heavy demo — not a production integration.
Why it looks the way it does
Read-heavy by design. Six of the seven tools only read. Exactly one tool writes (
log_activity), and even that only appends an activity — it can't edit or delete existing records. A deliberately small blast radius is the right security posture for letting an agent touch your CRM.Descriptions written for an agent. Each tool says what it returns and when to reach for it, so the model chains them correctly (e.g. call
list_pipelinesto turn a stage name into the IDs the other tools need).Clean errors, not stack traces. A bad key comes back as
Copper API returned 401 — check COPPER_API_KEY, so the agent can explain the problem instead of choking on it.
Related MCP server: Twenty CRM MCP Server
Install (3 steps)
git clone https://github.com/hasankhadra/copper-mcp.git
cd copper-mcp
npm install && npm run buildThen add this block to your Claude Desktop config
(~/Library/Application Support/Claude/claude_desktop_config.json on macOS),
and restart Claude Desktop:
{
"mcpServers": {
"copper": {
"command": "node",
"args": ["/absolute/path/to/copper-mcp/dist/index.js"],
"env": {
"COPPER_API_KEY": "your_copper_api_key",
"COPPER_USER_EMAIL": "you@yourcompany.com"
}
}
}
}Get your API key from Copper under Settings → Integrations → API Keys. The
COPPER_USER_EMAIL must be the email of the user who owns that key.
Tools
Tool | Reads / Writes | What it does |
| read | Find people by name or email. |
| read | Find companies by name. |
| read | List/filter deals by pipeline, stage, or assignee. |
| read | Every pipeline and its stages — maps stage names → IDs. |
| read | Full detail of one deal (custom fields, tags, contact). |
| write* | Schedule a follow-up task, optionally linked to a record. |
| write | Append a note/call to a person, company, opportunity, or lead. |
* create_task creates a new task record; it never modifies existing CRM data.
log_activity is the only tool that writes onto an existing record.
Try it
Once it's wired into Claude Desktop, ask:
"Which deals in my main pipeline are closing this month and have had no activity in the last 2 weeks? Log a note on the top one reminding me to send pricing, and create a follow-up task for Friday."
The agent calls list_pipelines → search_opportunities → get_opportunity to
triage, then log_activity + create_task to act.
Configuration
Read from the environment (never hardcoded):
Variable | Description |
| Your Copper API key. |
| Email of the key's owner. |
For local testing outside Claude Desktop, copy .env.example to .env and run
COPPER_API_KEY=... COPPER_USER_EMAIL=... npm start.
Development
npm run build # compile TypeScript → dist/
npm run dev # tsc --watch
npm start # run the built server on stdioLayout: src/copperClient.ts is the single HTTP/auth/error layer; each tool
lives in its own file under src/tools/; src/index.ts registers them and
opens the stdio transport.
Built by Hasan Khadra — hk@hasankhadra.me · hasankhadra.me.
The official version ships with full OAuth 2.1, write coverage across the CRM, and a two-week fixed-scope delivery.
License
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/hasankhadra/copper-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server