Copper CRM MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| COPPER_API_KEY | Yes | API key from Settings > API Keys | |
| COPPER_BASE_URL | No | Override for testing | https://api.copper.com/developer_api/v1 |
| COPPER_USER_EMAIL | Yes | Email of the user who generated the key |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_account_infoA | Get the Copper account, the API user, and all users with their IDs. Use the user IDs as assignee_id in other tools. |
| search_peopleB | Search contacts (people) by name, email, company, tags, assignee or location. Returns a compact list. |
| find_person_by_emailA | Look up one contact by exact email address. Returns the full person record. |
| search_companiesC | Search companies by name, tags, assignee or location. |
| list_pipelinesA | List pipelines with their stages (id, name, win probability). Needed to move deals between stages. |
| search_opportunitiesA | Search deals by name, status, pipeline, stage, owner, company, value or close date. Returns totals by status and stage (count and value) and a compact list with stage names instead of IDs. Good for pipeline reviews and forecasts. |
| get_opportunityB | Get one deal with all fields, including custom fields. |
| create_opportunityA | Create a new deal. Use list_pipelines for pipeline and stage IDs and get_account_info for user IDs. |
| update_opportunityA | Update a deal: move it to another stage, mark it Won/Lost, change value, close date, owner or name. Only the fields you pass are changed. |
| search_tasksB | Search tasks by owner, status, due date or related deal. Good for 'what's overdue for me?'. |
| create_taskC | Create a task, optionally linked to a person, company, lead or opportunity. |
| complete_taskC | Mark a task as Completed. |
| log_activityA | Add a note (default) or another user activity type (call, meeting...) to a person, company, lead or opportunity. Use list_activities with types=true to see activity type IDs. |
| list_activitiesB | Recent activity (notes, emails, calls, meetings, stage changes) for a record, or across the account in a date range. Set types=true to list activity types instead. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 14 tools
Most tools target a distinct resource+action (search_opportunities vs get_opportunity vs create/update_opportunity are clearly separable). The only mild overlap is search_people vs find_person_by_email, since find_person_by_email is essentially a constrained lookup, but the descriptions clarify the difference (compact list vs full record).
All 14 tools follow a consistent snake_case verb_noun pattern (search_people, get_opportunity, create_task, list_activities, log_activity). Verbs are used predictably for their action type across resources.
14 tools is well within a sensible range and each earns its place across the CRM's core entities (people, companies, deals, tasks, activities, pipelines). No redundant or filler tools.
Coverage is strong for deals, tasks, and activities (create/search/get/update/complete), but there is no way to create or update people or companies, and no delete operations anywhere. These are notable gaps for a CRM surface and will force agents to work around missing write paths.