usefulapi

Copper MCP server. Read and write Copper CRM people, companies, opportunities and activities.

Claude

  1. Open Settings → Connectors → Add custom connector
  2. Paste this URL:
    https://copper.usefulapi.io/mcp
  3. Authenticate with Copper when prompted

Cursor · VS Code · Windsurf · Cline

Add to your MCP config, then reload & authorize:

{
  "mcpServers": {
    "copper": {
      "url": "https://copper.usefulapi.io/mcp"
    }
  }
}
live22 toolsFree 100 tool calls / monthPro $9/mo · $90/yr

Tools 22

ToolTypeWhat it does
copper_get_accountread
Get account
Get details of the authenticated Copper account. Copper REST: GET /account.
copper_list_usersread
List users
List users in the Copper account (id, name, email) — useful for resolving assignee ids. Copper REST: POST /users/search.
copper_search_peopleread
Search people
Search/list people (contacts). All filters optional; returns a page of people. Copper REST: POST /people/search.
copper_get_personread
Get person
Get a single person (contact) by id. Copper REST: GET /people/{id}.
copper_search_companiesread
Search companies
Search/list companies. All filters optional; returns a page of companies. Copper REST: POST /companies/search.
copper_get_companyread
Get company
Get a single company by id. Copper REST: GET /companies/{id}.
copper_search_opportunitiesread
Search opportunities
Search/list opportunities (deals). All filters optional; returns a page of opportunities. Copper REST: POST /opportunities/search.
copper_get_opportunityread
Get opportunity
Get a single opportunity (deal) by id. Copper REST: GET /opportunities/{id}.
copper_search_leadsread
Search leads
Search/list leads. All filters optional; returns a page of leads. Copper REST: POST /leads/search.
copper_get_leadread
Get lead
Get a single lead by id. Copper REST: GET /leads/{id}.
copper_search_tasksread
Search tasks
Search/list tasks. All filters optional; returns a page of tasks. Copper REST: POST /tasks/search.
copper_get_taskread
Get task
Get a single task by id. Copper REST: GET /tasks/{id}.
copper_list_activitiesread
List activities
List activities (notes, calls, meetings, system events) attached to a record. Copper REST: POST /activities/search.
copper_list_activity_typesread
List activity types
List the account's activity types (user + system), needed to log an activity. Copper REST: GET /activity_types.
copper_list_pipelinesread
List pipelines
List sales pipelines and their stages (ids needed to place opportunities). Copper REST: GET /pipelines.
copper_create_personwrite
Create person
Create a new person (contact). Copper REST: POST /people.
copper_update_personwrite
Update person
Update fields on an existing person. Only provided fields are changed. Copper REST: PUT /people/{id}.
copper_create_companywrite
Create company
Create a new company. Copper REST: POST /companies.
copper_create_opportunitywrite
Create opportunity
Create a new opportunity (deal). `name` and `primary_contact_id` are required by Copper. Copper REST: POST /opportunities.
copper_create_leadwrite
Create lead
Create a new lead. Copper REST: POST /leads.
copper_create_taskwrite
Create task
Create a new task. Copper REST: POST /tasks.
copper_log_activitywrite
Log activity
Log a user activity (e.g. a note or call) on a record. Get the activity_type_id from copper_list_activity_types. Copper REST: POST /activities.

Pricing

PlanPriceLimit
Free$0100 tool calls / month
Pro$9/mo · $90/yrUnlimited

This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.