Provider REST API

CRM

Connect Claude to Pipedrive

Search and update deals, people, organizations, activities and notes in the Pipedrive CRM. Toolspoke puts 14 of its actions behind one MCP endpoint that Claude, Cursor, and Codex all speak.

Connection
Provider REST API
Authentication
API token
Actions exposed
14
Cost per call (typical)
1 credit
Adapter
Maintained by Toolspoke

Connected in three steps

  1. 1

    Install Pipedrive

    Open the marketplace in your workspace, add Pipedrive to the project your agents work in, and it appears on the gateway immediately.

  2. 2

    Connect the credential

    Authenticate with api token. Where to get one, and what it has to be able to reach, is the next section.

  3. 3

    Point your agent at the gateway

    Give your client one address, https://toolspoke.com/mcp. Claude Code takes it as a command, Claude and Claude Desktop add it as a custom connector, and Cursor, Codex and VS Code each read it from a config file of their own.

.mcp.json
{
  "mcpServers": {
    "toolspoke": {
      "type": "http",
      "url": "https://toolspoke.com/mcp"
    }
  }
}

One block covers every tool you have installed. Pipedrive shows up in the client as soon as your policy allows it, and so does everything else you install later.

Where the address goes, per client

Claude Code

Run it in your project, then /mcp to sign in

claude mcp add --transport http toolspoke https://toolspoke.com/mcp
Claude and Claude Desktop

Settings, then Connectors, then Add custom connector

https://toolspoke.com/mcp
Cursor

~/.cursor/mcp.json, or .cursor/mcp.json for one project

{ "mcpServers": { "toolspoke": { "url": "https://toolspoke.com/mcp" } } }
Codex

~/.codex/config.toml

[mcp_servers.toolspoke]
url = "https://toolspoke.com/mcp"
VS Code

.vscode/mcp.json, or the MCP: Add Server command

{ "servers": { "toolspoke": { "type": "http", "url": "https://toolspoke.com/mcp" } } }

What Pipedrive asks for

API token. You provide it once, when you install the connector. Toolspoke encrypts it at rest and decrypts it only for the length of a single call, and the gateway attaches it to the outbound request itself, so it is never part of the arguments an agent sends.

API tokenRequired
Pipedrive → your profile menu → Personal preferences → API → Your personal API token. The token carries your own user's permissions, so what this connection can see and change is what you can see and change. It is sent as an x-api-token header, never in the URL.
Pipedrive personal API token

What Claude can do in Pipedrive

14 actions, each one declared and named by the connector rather than discovered at runtime. A workspace policy grants a person all of them, a hand-picked selection, everything on the read side, everything on the write side, or none.

Reads
9Reads
Writes
5Writes
Destructive
0Destructive

Reads

9

Fetches data and changes nothing.

  • search_deals

    Search deals by free text. `term` is required and must be at least two characters - Pipedrive has no "list every deal" search, so start from a name, a company or a keyword. Narrow with person_id or organization_id when you already know who the deal belongs to, and with status to separate open work from won and lost. Returns deal ids; pass one to get_deal for the whole record. Pages by cursor rather than by offset.

  • get_deal

    Fetch one deal in full, by the id search_deals returns. Ask for custom_fields when the account keeps anything important in them, and for include_option_labels when you want a dropdown's label rather than its numeric id. The returned stage_id is an internal id, which list_stages translates into a name.

  • search_persons

    Search people by name, email address or phone number. `term` is required and must be at least two characters. Set `fields` to "email" to look somebody up by address without matching their name as well. Returns person ids and the matching contact details; pass an id to get_person for the whole record.

  • get_person

    Fetch one person in full - their name, every email address and phone number on the record, their employer, owner and custom fields. Takes the id search_persons returns.

  • search_organizations

    Search organizations by name or address. `term` is required and must be at least two characters. Returns organization ids; use one as org_id on a deal or a person, or as organization_id when narrowing search_deals or search_persons. Unlike the deal and person searches this one takes no owner filter and no include_fields.

  • list_activities

    List activities - Pipedrive's calls, meetings, emails and tasks - newest change first. Narrow by deal_id, person_id, org_id or owner_id to see one thing's history, and by done to separate what is outstanding from what is finished. Note what v2 does not have: there is no start_date or end_date window any more, so bound a query with updated_since and updated_until, or sort by due_date and page.

  • list_pipelines

    List the account's pipelines, each with its id and name. A pipeline id is what create_deal and update_deal take, and it is also the filter list_stages needs. This is account configuration - it holds no deal and no person.

  • list_stages

    List pipeline stages with their ids, names and order. This is the translation table between what a person says and what the API takes: "Negotiation" is a name, and create_deal and update_deal only accept the numeric stage_id. Pass pipeline_id to see one pipeline's stages rather than every stage in the account. Account configuration - no deal and no person appears here.

  • list_users

    List the account's own Pipedrive users, with their ids, names and email addresses. Call it to turn a colleague's name into the owner_id that create_deal, update_deal, create_activity and add_note take. These are the caller's own colleagues rather than anybody the account sells to, which is why the response stays in the audit log. It is the connection check as well, because it takes no parameters at all and reads no record. This is the second of the two operations still on API v1 - Pipedrive built no v2 user list.

Writes

5

Creates or updates something on the other side.

  • create_deal

    Create a deal. Only `title` is required; everything else is optional and Pipedrive fills in the account's defaults. pipeline_id and stage_id are internal ids rather than the names shown in the UI - call list_pipelines and list_stages first and copy the ids from there. owner_id is the Pipedrive user the deal belongs to, from list_users. These are the v2 field names: it is org_id and owner_id, not the v1 organization_id and user_id.

  • update_deal

    Change fields on an existing deal - this is how a deal moves to another stage, gets re-priced, or is marked won or lost. Only the fields you send are touched. v2 uses PATCH here; v1's PUT is gone. stage_id must be an internal id from list_stages, not a stage name. This cannot delete the deal.

  • create_person

    Create a person. Nothing is strictly required, but a record with no name is not useful. Note the v2 shape for contact details: `emails` and `phones` are lists of objects, each {"value": "[email protected]", "label": "work", "primary": true} - v1's single `email` and `phone` strings are gone. Search first; Pipedrive will happily create a second record for somebody who is already there.

  • create_activity

    Schedule an activity - a call, a meeting, a task - and attach it to a deal, a person or an organization. `type` is the account's own activity type key from its settings, e.g. "call", "meeting", "task"; "call" and "meeting" exist in every account. due_date is a plain date and due_time a 24-hour clock time, both in the account's time zone. This is internal scheduling only: Pipedrive's calendar attendee list, which mails an invitation to an outside address when calendar sync is switched on, is deliberately not offered here, so nothing this operation does is visible to anybody outside the account.

  • add_note

    Log a note against a deal, a person or an organization. The note appears on that record's timeline for the account's own users and is not sent to anybody outside it, which is why this is a write. `content` is HTML, so line breaks want <br> rather than \n, and Pipedrive sanitises what it is given. Pipedrive requires at least one of deal_id, person_id, org_id or lead_id - a note attached to nothing is refused. This is one of the two operations in this connector still on API v1: Pipedrive never built a v2 for notes, and the v1 endpoint remains supported.

What it will not do

Enforced by the gateway rather than left to convention, which is why each of these can be stated flatly.

It cannot call anything else
The 14 actions above are the whole of it. A call to any other name is refused before it reaches Pipedrive rather than forwarded on, and connecting your account does not add to the list: it is fixed by the connector, not discovered at run time.
Nothing here deletes
This connector writes to Pipedrive, but nothing in it deletes or permanently alters anything.
It reaches no further than your credential
Toolspoke holds no access to Pipedrive of its own. Every call carries the credential you stored and nothing besides, so whatever that credential cannot reach, this connector cannot reach either.
It never hears from Pipedrive
Nothing is pushed to it. There is no webhook, no subscription and no polling, so this connector cannot notice by itself that something changed in Pipedrive. An agent has to ask.
It does not smooth over provider limits
Toolspoke does not retry, queue or back off around Pipedrive's own rate limits. A call that Pipedrive refuses comes back to the agent as a failed call.

Before you connect it

What can Claude do in Pipedrive?

14 named actions: 9 that only read and 5 that write. They include search_deals, get_deal and create_deal. Nothing outside that list is reachable: the connector declares each operation by name rather than proxying whatever an agent asks for.

What credentials does the Pipedrive connector need?

API token. The connector asks for api token. Values are encrypted at rest and attached to the outbound request by the gateway, so they are never part of the arguments an agent sends and never reach the audit log.

Does the Pipedrive connector work with Cursor and Codex, or only Claude?

Any client that speaks MCP, and every one of them gets the same 14 actions. There is a single address, https://toolspoke.com/mcp. Claude Code adds it with claude mcp add --transport http, Claude and Claude Desktop take it as a custom connector in settings, Cursor reads it from .cursor/mcp.json, Codex from ~/.codex/config.toml, and VS Code from .vscode/mcp.json. Each of them signs in to the gateway itself, so there is no key to paste.

What does the Pipedrive connector not do?

The 14 actions above are the whole of it. A call to any other name is refused before it reaches Pipedrive rather than forwarded on, and connecting your account does not add to the list: it is fixed by the connector, not discovered at run time. This connector writes to Pipedrive, but nothing in it deletes or permanently alters anything. Toolspoke holds no access to Pipedrive of its own. Every call carries the credential you stored and nothing besides, so whatever that credential cannot reach, this connector cannot reach either. Nothing is pushed to it. There is no webhook, no subscription and no polling, so this connector cannot notice by itself that something changed in Pipedrive. An agent has to ask. Toolspoke does not retry, queue or back off around Pipedrive's own rate limits. A call that Pipedrive refuses comes back to the agent as a failed call.

Can I limit which actions an agent can call?

Yes, in two places. The project switches Pipedrive's actions on and off one at a time, for everyone in the project at once, and the screen groups them by read, write and destructive so turning off everything that deletes is one click. An individual agent key can then be narrowed further, to particular toolkits in a project and to particular actions in a toolkit. Whatever it was granted, a key never reaches a project its owner cannot.

What gets recorded when an agent calls Pipedrive?

Every attempt, with the agent that made it and the person that agent belongs to, the full request payload, the response payload, the status, the duration, and the credits spent. Values whose key names a secret are masked out before the record is shown to anyone. An operation the connector marks as not retained never has its response body written at all, so the gateway keeps no second copy of what was read.