pipedrive

Read deals, persons, organizations, activities and pipelines; create and update CRM records.

Should I use this

Quality & Safety

B
Description quality
100%
Schema completeness
93%
Naming quality
80%
Poisoning risk
60%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringin pipedrive_list_deals
  • MEDIUMTool description contains suspicious base64-like encoded stringin pipedrive_list_activities

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~4,925Tokens (tool definitions)
~2.3 KBTypical response size
Significant attention impact (3.85% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "pipedrive": {
      "url": "https://pipedrive.usefulapi.io/mcp"
    }
  }
}

Remote endpoints

https://pipedrive.usefulapi.io/mcpstreamable-http

What it can do

Tool inventory

Tools (19)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢pipedrive_list_deals(filter_id, owner_id, person_id, org_id, pipeline_id, ...)

List deals, optionally filtered by filter/owner/person/org/pipeline/stage/status and sorted. Pipedrive REST: GET /api/v2/deals.

Input Schema

{
  "type": "object",
  "properties": {
    "filter_id": {
      "description": "Filter by a saved filter id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "owner_id": {
      "description": "Filter by owner (user) id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "person_id": {
      "description": "Filter by linked person id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "org_id": {
      "description": "Filter by linked organization id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "pipeline_id": {
      "description": "Filter by pipeline id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "stage_id": {
      "description": "Filter by stage id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "status": {
      "description": "Filter by deal status — 'open', 'won', 'lost' or 'deleted'.",
      "type": "string",
      "enum": [
        "open",
        "won",
        "lost",
        "deleted"
      ]
    },
    "sort_by": {
      "description": "Field to sort by — 'id', 'update_time' or 'add_time'.",
      "type": "string",
      "enum": [
        "id",
        "update_time",
        "add_time"
      ]
    },
    "sort_direction": {
      "description": "Sort direction — 'asc' or 'desc'.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Max results to return (1–500, default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "Opaque pagination cursor from a previous response's `next_cursor`.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_get_deal(id)

Get a single deal by its id. Pipedrive REST: GET /api/v2/deals/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Deal id (required)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_search_deals(term, fields, person_id, organization_id, status, ...)

Search deals by term across selected fields. Pipedrive REST: GET /api/v2/deals/search.

Input Schema

{
  "type": "object",
  "properties": {
    "term": {
      "type": "string",
      "minLength": 2,
      "description": "Search term (at least 2 characters, required)."
    },
    "fields": {
      "description": "Comma-separated fields to search — any of 'custom_fields', 'notes', 'title'.",
      "type": "string"
    },
    "person_id": {
      "description": "Restrict to deals linked to this person id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "organization_id": {
      "description": "Restrict to deals linked to this organization id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "status": {
      "description": "Restrict to deals with this status — 'open', 'won' or 'lost'.",
      "type": "string",
      "enum": [
        "open",
        "won",
        "lost"
      ]
    },
    "exact_match": {
      "description": "If true, only exact matches (case-insensitive) are returned.",
      "type": "boolean"
    },
    "limit": {
      "description": "Max results to return (1–500, default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "Opaque pagination cursor from a previous response's `next_cursor`.",
      "type": "string"
    }
  },
  "required": [
    "term"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_list_persons(filter_id, owner_id, org_id, sort_by, sort_direction, ...)

List persons (contacts), optionally filtered by filter/owner/org and sorted. Pipedrive REST: GET /api/v2/persons.

Input Schema

{
  "type": "object",
  "properties": {
    "filter_id": {
      "description": "Filter by a saved filter id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "owner_id": {
      "description": "Filter by owner (user) id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "org_id": {
      "description": "Filter by linked organization id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "sort_by": {
      "description": "Field to sort by — 'id', 'update_time' or 'add_time'.",
      "type": "string",
      "enum": [
        "id",
        "update_time",
        "add_time"
      ]
    },
    "sort_direction": {
      "description": "Sort direction — 'asc' or 'desc'.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Max results to return (1–500, default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "Opaque pagination cursor from a previous response's `next_cursor`.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_get_person(id)

Get a single person (contact) by its id. Pipedrive REST: GET /api/v2/persons/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Person id (required)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_search_persons(term, fields, organization_id, exact_match, limit, ...)

Search persons (contacts) by term across selected fields. Pipedrive REST: GET /api/v2/persons/search.

Input Schema

{
  "type": "object",
  "properties": {
    "term": {
      "type": "string",
      "minLength": 2,
      "description": "Search term (at least 2 characters, required)."
    },
    "fields": {
      "description": "Comma-separated fields to search — any of 'name', 'email', 'phone', 'notes', 'custom_fields'.",
      "type": "string"
    },
    "organization_id": {
      "description": "Restrict to persons linked to this organization id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "exact_match": {
      "description": "If true, only exact matches (case-insensitive) are returned.",
      "type": "boolean"
    },
    "limit": {
      "description": "Max results to return (1–500, default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "Opaque pagination cursor from a previous response's `next_cursor`.",
      "type": "string"
    }
  },
  "required": [
    "term"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_list_organizations(filter_id, owner_id, sort_by, sort_direction, limit, ...)

List organizations, optionally filtered by filter/owner and sorted. Pipedrive REST: GET /api/v2/organizations.

Input Schema

{
  "type": "object",
  "properties": {
    "filter_id": {
      "description": "Filter by a saved filter id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "owner_id": {
      "description": "Filter by owner (user) id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "sort_by": {
      "description": "Field to sort by — 'id', 'update_time' or 'add_time'.",
      "type": "string",
      "enum": [
        "id",
        "update_time",
        "add_time"
      ]
    },
    "sort_direction": {
      "description": "Sort direction — 'asc' or 'desc'.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Max results to return (1–500, default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "Opaque pagination cursor from a previous response's `next_cursor`.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_get_organization(id)

Get a single organization by its id. Pipedrive REST: GET /api/v2/organizations/{id}.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991,
      "description": "Organization id (required)."
    }
  },
  "required": [
    "id"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_search_organizations(term, fields, exact_match, limit, cursor)

Search organizations by term across selected fields. Pipedrive REST: GET /api/v2/organizations/search.

Input Schema

{
  "type": "object",
  "properties": {
    "term": {
      "type": "string",
      "minLength": 2,
      "description": "Search term (at least 2 characters, required)."
    },
    "fields": {
      "description": "Comma-separated fields to search — any of 'address', 'custom_fields', 'name', 'notes'.",
      "type": "string"
    },
    "exact_match": {
      "description": "If true, only exact matches (case-insensitive) are returned.",
      "type": "boolean"
    },
    "limit": {
      "description": "Max results to return (1–500, default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "Opaque pagination cursor from a previous response's `next_cursor`.",
      "type": "string"
    }
  },
  "required": [
    "term"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_list_activities(filter_id, owner_id, deal_id, person_id, org_id, ...)

List activities (tasks/events), optionally filtered by filter/owner/deal/person/org/done/updated_since. Pipedrive REST: GET /api/v2/activities.

Input Schema

{
  "type": "object",
  "properties": {
    "filter_id": {
      "description": "Filter by a saved filter id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "owner_id": {
      "description": "Filter by owner (user) id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "deal_id": {
      "description": "Filter by linked deal id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "person_id": {
      "description": "Filter by linked person id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "org_id": {
      "description": "Filter by linked organization id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "done": {
      "description": "Filter by completion — true for done, false for not done.",
      "type": "boolean"
    },
    "updated_since": {
      "description": "Only activities updated after this RFC 3339 timestamp, e.g. '2024-01-01T00:00:00Z'.",
      "type": "string"
    },
    "limit": {
      "description": "Max results to return (1–500, default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "Opaque pagination cursor from a previous response's `next_cursor`.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_list_pipelines(sort_by, sort_direction, limit, cursor)

List all pipelines. Pipedrive REST: GET /api/v2/pipelines.

Input Schema

{
  "type": "object",
  "properties": {
    "sort_by": {
      "description": "Field to sort by — 'id', 'update_time' or 'add_time'.",
      "type": "string",
      "enum": [
        "id",
        "update_time",
        "add_time"
      ]
    },
    "sort_direction": {
      "description": "Sort direction — 'asc' or 'desc'.",
      "type": "string",
      "enum": [
        "asc",
        "desc"
      ]
    },
    "limit": {
      "description": "Max results to return (1–500, default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "Opaque pagination cursor from a previous response's `next_cursor`.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_list_stages(pipeline_id, limit, cursor)

List stages, optionally restricted to a single pipeline. Pipedrive REST: GET /api/v2/stages.

Input Schema

{
  "type": "object",
  "properties": {
    "pipeline_id": {
      "description": "Restrict to stages of this pipeline id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Max results to return (1–500, default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "Opaque pagination cursor from a previous response's `next_cursor`.",
      "type": "string"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_search_items(term, item_types, fields, search_for_related_items, exact_match, ...)

Global search across multiple item types (deals, persons, organizations, products, leads, files, etc.). Pipedrive REST: GET /api/v2/itemSearch.

Input Schema

{
  "type": "object",
  "properties": {
    "term": {
      "type": "string",
      "minLength": 2,
      "description": "Search term (at least 2 characters, required)."
    },
    "item_types": {
      "description": "Comma-separated item types to search — any of 'deal', 'person', 'organization', 'product', 'lead', 'file', 'mail_attachment', 'project'.",
      "type": "string"
    },
    "fields": {
      "description": "Comma-separated fields to search within (depends on item types).",
      "type": "string"
    },
    "search_for_related_items": {
      "description": "If true, also return items related to the matches (e.g. deals of a matched person).",
      "type": "boolean"
    },
    "exact_match": {
      "description": "If true, only exact matches (case-insensitive) are returned.",
      "type": "boolean"
    },
    "limit": {
      "description": "Max results to return (1–500, default 100).",
      "type": "integer",
      "minimum": 1,
      "maximum": 500
    },
    "cursor": {
      "description": "Opaque pagination cursor from a previous response's `next_cursor`.",
      "type": "string"
    }
  },
  "required": [
    "term"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_get_current_user

Get the authenticated user's profile (name, email, company, locale, timezone). Pipedrive REST: GET /api/v1/users/me.

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢pipedrive_list_notes(user_id, deal_id, person_id, org_id, lead_id, ...)

List notes, optionally filtered by user/deal/person/org/lead. Uses v1 (v2 has no notes endpoint) with start+limit pagination. Pipedrive REST: GET /api/v1/notes.

Input Schema

{
  "type": "object",
  "properties": {
    "user_id": {
      "description": "Filter by the note author (user) id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "deal_id": {
      "description": "Filter by linked deal id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "person_id": {
      "description": "Filter by linked person id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "org_id": {
      "description": "Filter by linked organization id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "lead_id": {
      "description": "Filter by linked lead id (a UUID string).",
      "type": "string"
    },
    "sort": {
      "description": "Sort expression, e.g. 'add_time DESC'.",
      "type": "string"
    },
    "start": {
      "description": "Pagination offset (v1 start; default 0).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "limit": {
      "description": "Max results to return (v1 limit).",
      "type": "integer",
      "minimum": 1,
      "maximum": 9007199254740991
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴pipedrive_create_deal(title, value, currency, person_id, org_id, ...)

Create a new deal. `title` is required; link it to a person/org/pipeline/stage/owner as needed. Pipedrive REST: POST /api/v2/deals.

Input Schema

{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "minLength": 1,
      "description": "Deal title (required)."
    },
    "value": {
      "description": "Deal monetary value.",
      "type": "number"
    },
    "currency": {
      "description": "Currency code for `value`, e.g. 'USD'.",
      "type": "string"
    },
    "person_id": {
      "description": "Link to this person id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "org_id": {
      "description": "Link to this organization id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "pipeline_id": {
      "description": "Place in this pipeline id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "stage_id": {
      "description": "Place in this stage id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "owner_id": {
      "description": "Assign to this owner (user) id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "status": {
      "description": "Deal status — 'open' (default), 'won' or 'lost'.",
      "type": "string",
      "enum": [
        "open",
        "won",
        "lost"
      ]
    },
    "expected_close_date": {
      "description": "Expected close date, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "visible_to": {
      "description": "Visibility group id (Pipedrive visibility setting).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "title"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴pipedrive_create_person(name, owner_id, org_id, email, phone, ...)

Create a new person (contact). `name` is required; `email`/`phone` are convenience strings mapped to Pipedrive's structured emails/phones arrays. Pipedrive REST: POST /api/v2/persons.

Input Schema

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "description": "Person full name (required)."
    },
    "owner_id": {
      "description": "Assign to this owner (user) id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "org_id": {
      "description": "Link to this organization id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "email": {
      "description": "Primary email address (mapped to the emails array).",
      "type": "string"
    },
    "phone": {
      "description": "Primary phone number (mapped to the phones array).",
      "type": "string"
    },
    "visible_to": {
      "description": "Visibility group id (Pipedrive visibility setting).",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    }
  },
  "required": [
    "name"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴pipedrive_create_activity(subject, type, due_date, due_time, duration, ...)

Create a new activity (task/event). `subject` is required; link it to a deal/person/org and set type/date/time as needed. Pipedrive REST: POST /api/v2/activities.

Input Schema

{
  "type": "object",
  "properties": {
    "subject": {
      "type": "string",
      "minLength": 1,
      "description": "Activity subject/title (required)."
    },
    "type": {
      "description": "Activity type key, e.g. 'call', 'meeting', 'task', 'email'.",
      "type": "string"
    },
    "due_date": {
      "description": "Due date, yyyy-mm-dd.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "due_time": {
      "description": "Due time, HH:MM (24h).",
      "type": "string",
      "pattern": "^\\d{2}:\\d{2}$"
    },
    "duration": {
      "description": "Duration, HH:MM.",
      "type": "string",
      "pattern": "^\\d{2}:\\d{2}$"
    },
    "deal_id": {
      "description": "Link to this deal id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "person_id": {
      "description": "Link to this person id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "org_id": {
      "description": "Link to this organization id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "owner_id": {
      "description": "Assign to this owner (user) id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "done": {
      "description": "Whether the activity is already marked done.",
      "type": "boolean"
    },
    "note": {
      "description": "Free-text note attached to the activity.",
      "type": "string"
    }
  },
  "required": [
    "subject"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴pipedrive_add_note(content, deal_id, person_id, org_id, lead_id)

Add a note, linked to at least one of a deal/person/organization/lead. `content` is required (HTML or plain text). Uses v1 (v2 has no notes endpoint). Pipedrive REST: POST /api/v1/notes.

Input Schema

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "minLength": 1,
      "description": "Note body — HTML or plain text (required)."
    },
    "deal_id": {
      "description": "Attach to this deal id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "person_id": {
      "description": "Attach to this person id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "org_id": {
      "description": "Attach to this organization id.",
      "type": "integer",
      "minimum": -9007199254740991,
      "maximum": 9007199254740991
    },
    "lead_id": {
      "description": "Attach to this lead id (a UUID string).",
      "type": "string"
    }
  },
  "required": [
    "content"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Recommended Prompts

search_research
Search for information about [topic] using pipedrive
Expected tools: pipedrive_search_deals
find_specific
Find [specific item] using pipedrive
Expected tools: pipedrive_search_deals
retrieve_data
Get details about [item] from pipedrive
Expected tools: pipedrive_get_deal
fetch_info
Fetch [information type] using pipedrive
Expected tools: pipedrive_get_deal
list_items
List all [items] available in pipedrive
Expected tools: pipedrive_list_deals

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded19 tools
verifiedversion not recorded19 tools