pipedrive-mcp
A full-featured Pipedrive CRM MCP server exposing 93 tools for reading, creating, updating, and deleting CRM data through AI assistants.
Deals: list, get, search, summarize (single deal or pipeline), move stage, create, update, delete
Persons & Organizations: full CRUD plus merge (with confirmation)
Activities: list, get, create, update, mark done/undone, delete, and list activity types
Notes & Comments: full CRUD on notes and their comments (HTML content)
Pipelines & Stages: list and get pipelines and stages
Products: full CRUD, search, variations, and deal-product attachments (add/update/remove)
Leads: list, get, create, update, delete, search
Mail: list/read threads and messages, link threads to deals/leads, archive, delete, and look up mail by deal or person
Files: list, get metadata/download URL, and upload base64 files attached to entities
Users, Filters, Custom Fields, Webhooks: list users/permissions, run saved filters, discover custom fields, manage webhook subscriptions
Shortcuts: user-centric workflows like my open deals, overdue/upcoming activities, pipeline summary, stale deals, and people needing follow-up
Custom fields by name: reference fields like
{"Tier": "Enterprise"}instead of API keysSafety guards: destructive ops require confirm tokens (
DELETE/MERGE/YES) and supportdry_runpreviews; write tools can be disabled entirelyExplicit pagination: cursor-based with configurable limits, no silent truncation
Shared-token support:
as_userparameter resolves teammates by name or email on shortcut tools
Enables error tracking and monitoring by forwarding the MCP server's errors and events to a Sentry project, configurable via a Sentry DSN with environment and release tagging.
Click on "Deploy 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., "@pipedrive-mcp find deals with status 'won' this quarter"
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.
pipedrive-mcp
A Model Context Protocol (MCP) server for Pipedrive CRM. Provides 93 tools covering deals, persons, organizations, activities, notes, pipelines, products, leads, files, mail, users, filters, custom fields, webhooks, and shortcut tools for common CRM workflows.
Why this exists
We use Pipedrive as our primary CRM at Comma Compliance. We wanted a way for our non-developer team members to interact with Pipedrive through AI assistants - searching contacts, updating deals, logging activities - without needing to learn the API or build custom integrations.
We're big fans of MCP as a protocol. APIs are great for structured integrations, but MCP hits a different sweet spot - self-documenting tools, built-in schema validation, and a natural interface for conversational interaction. It makes internal tools accessible to people who would never write a curl command. This is the first of several MCP servers we plan to open source, alongside an open source MCP server management tool we're building internally (coming soon).
The existing open source Pipedrive MCP servers we evaluated had issues: single-file monoliths, hardcoded field keys, silent pagination truncation, no write support, stale v1-only implementations. So we built this one from scratch with proper modular architecture, full CRUD, custom field resolution by name, and safety guards on destructive operations.
We've been running this internally for several weeks against our production Pipedrive instance. The test suite includes integration tests recorded from real API responses (sanitized for publication).
Related MCP server: PipeDrive MCP Server
Features
Full CRUD for deals, persons, organizations, activities, notes, products, leads, mail, and webhooks
Custom field resolution - reference fields by human-readable name (e.g.
{"Tier": "Enterprise"}) instead of API keysExplicit pagination - cursor/offset tokens with no silent truncation
Safety guards - destructive operations require explicit confirmation and support
dry_runpreviewsStructured errors - Claude-friendly error messages with category, guidance, and retryability
Rate limiting - respects Pipedrive's rate limits with automatic backoff
v1/v2 API support - uses v2 where available, falls back to v1 where needed
Quick start
git clone https://github.com/comma-compliance/pipedrive-mcp.git
cd pipedrive-mcp
npm install
npm run buildConfiguration
Copy .env.example to .env and set your Pipedrive credentials:
PIPEDRIVE_API_TOKEN=your-api-token-here
PIPEDRIVE_COMPANY_DOMAIN=yourcompanyFind your API token in Pipedrive under Settings > Personal preferences > API.
Your company domain is the subdomain in your Pipedrive URL (e.g. yourcompany for yourcompany.pipedrive.com).
Optional settings
Variable | Default | Description |
|
| HTTP request timeout |
|
| Default page size |
|
| Maximum page size |
|
| General rate limit per 2s |
|
| Search rate limit per 2s |
|
| Field metadata cache TTL (5 min) |
|
| Set |
|
|
|
| (none) | Sentry DSN to enable error tracking (omit to disable) |
|
| Sentry environment tag |
| (none) | Sentry release tag |
Usage with Claude Code
Add to your .mcp.json:
{
"mcpServers": {
"pipedrive": {
"type": "stdio",
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/pipedrive-mcp",
"env": {
"PIPEDRIVE_API_TOKEN": "your-api-token",
"PIPEDRIVE_COMPANY_DOMAIN": "yourcompany"
}
}
}
}Usage with Codex
Create a codex.json or pass the server config when launching Codex:
{
"mcpServers": {
"pipedrive": {
"type": "stdio",
"command": "node",
"args": ["dist/index.js"],
"cwd": "/path/to/pipedrive-mcp",
"env": {
"PIPEDRIVE_API_TOKEN": "your-api-token",
"PIPEDRIVE_COMPANY_DOMAIN": "yourcompany"
}
}
}
}Or if running via Docker:
{
"mcpServers": {
"pipedrive": {
"type": "stdio",
"command": "docker",
"args": ["run", "--rm", "-i", "-e", "PIPEDRIVE_API_TOKEN=your-api-token", "-e", "PIPEDRIVE_COMPANY_DOMAIN=yourcompany", "pipedrive-mcp"]
}
}
}Usage with Docker
docker build -t pipedrive-mcp .
docker run -e PIPEDRIVE_API_TOKEN=xxx -e PIPEDRIVE_COMPANY_DOMAIN=yourcompany pipedrive-mcpTools
Deals (8 tools)
pipedrive_deals_list pipedrive_deals_get pipedrive_deals_search pipedrive_deals_summary pipedrive_deals_move_stage pipedrive_deals_create pipedrive_deals_update pipedrive_deals_delete
Persons (7 tools)
pipedrive_persons_list pipedrive_persons_get pipedrive_persons_search pipedrive_persons_create pipedrive_persons_update pipedrive_persons_delete pipedrive_persons_merge
Organizations (7 tools)
pipedrive_organizations_list pipedrive_organizations_get pipedrive_organizations_search pipedrive_organizations_create pipedrive_organizations_update pipedrive_organizations_delete pipedrive_organizations_merge
Activities (7 tools)
pipedrive_activities_list pipedrive_activities_get pipedrive_activities_create pipedrive_activities_update pipedrive_activities_mark_done pipedrive_activities_delete pipedrive_activity_types_list
Notes & Comments (10 tools)
pipedrive_notes_list pipedrive_notes_get pipedrive_notes_create pipedrive_notes_update pipedrive_notes_delete pipedrive_note_comments_list pipedrive_note_comments_get pipedrive_note_comments_create pipedrive_note_comments_update pipedrive_note_comments_delete
Pipelines & Stages (4 tools)
pipedrive_pipelines_list pipedrive_pipelines_get pipedrive_stages_list pipedrive_stages_get
Products (15 tools)
pipedrive_products_list pipedrive_products_get pipedrive_products_create pipedrive_products_update pipedrive_products_delete pipedrive_products_search pipedrive_product_variations_list pipedrive_product_variations_create pipedrive_product_variations_update pipedrive_product_variations_delete pipedrive_product_deals_list pipedrive_deal_products_list pipedrive_deal_products_add pipedrive_deal_products_update pipedrive_deal_products_delete
Leads (6 tools)
pipedrive_leads_list pipedrive_leads_get pipedrive_leads_create pipedrive_leads_update pipedrive_leads_delete pipedrive_leads_search
Mail (8 tools)
pipedrive_mail_threads_list pipedrive_mail_threads_get pipedrive_mail_thread_messages_list pipedrive_mail_messages_get pipedrive_mail_threads_update pipedrive_mail_threads_delete pipedrive_deal_mail_messages_list pipedrive_person_mail_messages_list
Read and manage synced email threads and messages from Pipedrive's mailbox. List threads by folder (inbox, drafts, sent, archive), read individual messages with optional body content, link threads to deals or leads, and look up mail associated with a specific deal or person.
Files (3 tools)
pipedrive_files_list pipedrive_files_get pipedrive_files_upload
Users (3 tools)
pipedrive_users_list pipedrive_users_get pipedrive_users_permissions
Filters (3 tools)
pipedrive_filters_list pipedrive_filters_get pipedrive_filters_results
Custom Fields (1 tool)
pipedrive_custom_fields_list
Webhooks (3 tools)
pipedrive_webhooks_list pipedrive_webhooks_create pipedrive_webhooks_delete
Shortcuts (8 tools)
pipedrive_me pipedrive_my_open_deals pipedrive_my_overdue_activities pipedrive_my_upcoming_activities pipedrive_recently_updated pipedrive_my_pipeline_summary pipedrive_stale_deals pipedrive_people_needing_followup
These are opinionated wrappers around the core tools designed for common CRM workflows. They auto-resolve the current user from the API token so you don't need to know your numeric owner ID.
All shortcut tools support an optional as_user parameter for shared API token scenarios (e.g. multiple team members accessing Pipedrive through a single MCP server). Pass a name or email and it resolves against the Pipedrive users list:
{ "name": "pipedrive_my_open_deals", "arguments": { "as_user": "Sasha" } }
{ "name": "pipedrive_my_overdue_activities", "arguments": { "as_user": "sasha@company.com" } }Tool | What it does |
| Show current user profile, or resolve a teammate by name/email |
| Open deals owned by the current user, sorted by recently updated |
| Past-due undone activities |
| Activities in the next N days (default 7) |
| Deals, persons, or orgs updated in the last N days |
| Stage-by-stage breakdown with deal counts and total values |
| Open deals not updated in N+ days (default 30) |
| Contacts with no next activity scheduled |
Custom fields
Reference custom fields by name instead of API key:
{
"name": "pipedrive_deals_update",
"arguments": {
"deal_id": 42,
"custom_fields_by_name": {
"Tier": "Enterprise",
"Expected Revenue": 50000
}
}
}Use pipedrive_custom_fields_list to discover available fields for each entity type.
Safety guards
All destructive operations require explicit confirmation:
Delete tools require
confirm: "DELETE"Merge tools require
confirm: "MERGE"Webhook create/delete require
confirm: "YES"
All destructive tools support dry_run: true to preview what would happen without executing.
Set PIPEDRIVE_ENABLE_WRITE_TOOLS=false to disable all write operations entirely.
Development
npm run dev # Watch mode
npm test # Run tests
npm run test:watch # Watch tests
npm run lint # Type checkTesting
Tests use vitest with nock for HTTP mocking. No live API calls are made during tests.
npm testArchitecture
src/
index.ts # Entry point
server.ts # MCP server setup
config.ts # Environment variable loading
logging.ts # Structured logging
mcp/ # MCP protocol helpers
pipedrive/ # HTTP client, pagination, rate limiting, retries
services/ # Custom fields, summaries, guards, cache
schemas/ # Zod input schemas per entity
tools/ # Tool handlers per entity
presenters/ # Response formattingContributing
Contributions are welcome! Here's how to get started:
Fork the repo and create a feature branch
npm install && npm run buildto verify the buildMake your changes - follow the existing patterns (one file per entity in
src/tools/andsrc/schemas/)Add tests for new functionality
npm testto make sure everything passesnpm run lintto verify typesOpen a PR with a clear description of what you changed and why
A few ground rules:
No
@ts-ignore- fix the types properlyNo hardcoded Pipedrive field keys or option IDs
All destructive tools must require explicit confirmation and support
dry_runUse native
fetch(not axios)Never commit real Pipedrive data - sanitize any test fixtures
License
MIT
Available Tools
93 toolspipedrive_activities_createC
Create a new activity (call, meeting, task, etc). The note field, if supplied, is plain HTML, passed directly with no CDATA wrapper.
Inputs: type (required), subject (required), done, note, +9 more.
pipedrive_activities_deleteB
Delete an activity. Requires confirm: "DELETE". Supports dry_run.
Inputs: confirm (required), activity_id (required), reason, dry_run.
pipedrive_activities_getB
Get a single activity by ID.
Inputs: activity_id (required).
pipedrive_activities_listC
List activities with filters and pagination.
Inputs: done, limit, cursor, org_id, +7 more.
pipedrive_activities_mark_doneC
Mark an activity as done or undone.
Inputs: done (required), activity_id (required).
pipedrive_activities_updateC
Update an existing activity. The note field, if supplied, is plain HTML, passed directly with no CDATA wrapper.
Inputs: activity_id (required), done, note, type, +10 more.
pipedrive_activity_types_listA
List the activity type key_strings configured for this workspace. Call this before creating an activity if you aren't sure which 'type' values are valid.
Inputs: no named parameters.
pipedrive_custom_fields_listA
List field metadata for an entity type. Returns field keys, names, types, and options for enum/set fields. Use this to discover available custom fields before using custom_fields_by_name.
Inputs: entity_type (required), limit, cursor, refresh_cache, +1 more.
pipedrive_deal_mail_messages_listC
List mail messages linked to a deal.
Inputs: deal_id (required), limit, cursor.
pipedrive_deal_products_addC
Attach a product to a deal with price/quantity.
Inputs: deal_id (required), quantity (required), item_price (required), product_id (required), +4 more.
pipedrive_deal_products_deleteB
Remove a product from a deal. Requires confirm: "DELETE". Supports dry_run.
Inputs: confirm (required), deal_id (required), deal_product_id (required), reason, +1 more.
pipedrive_deal_products_listB
List products attached to a deal.
Inputs: deal_id (required), limit, cursor, sort_by, +1 more.
pipedrive_deal_products_updateC
Update a product attachment on a deal.
Inputs: deal_id (required), deal_product_id (required), comments, discount, +4 more.
pipedrive_deals_createC
Create a new deal. Supports custom fields by name or key, and the native Label field via label_ids (IDs or label names).
Inputs: title (required), value, org_id, status, +9 more.
pipedrive_deals_deleteA
Delete a deal. Requires confirm: "DELETE". Supports dry_run for preview.
Inputs: confirm (required), deal_id (required), reason, dry_run.
pipedrive_deals_getA
Get a single deal by ID with full details including resolved custom fields.
Inputs: deal_id (required), include_fields, custom_field_keys.
pipedrive_deals_listB
List deals with filters and pagination. Returns compact deal summaries with IDs, titles, stages, values, and linked entity IDs.
Inputs: ids, limit, cursor, org_id, +12 more.
pipedrive_deals_move_stageC
Move a deal to a different stage (and optionally pipeline).
Inputs: deal_id (required), stage_id (required), pipeline_id.
pipedrive_deals_searchB
Search deals by term. Returns matching deals with relevance scoring.
Inputs: term (required), limit, cursor, fields, +5 more.
pipedrive_deals_summaryB
Get a Claude-friendly deal or pipeline snapshot. Pass deal_id for a single deal summary with optional activities/notes/products. Omit deal_id for a pipeline overview with stage counts.
Inputs: org_id, status, deal_id, owner_id, +6 more.
pipedrive_deals_updateC
Update an existing deal. Supports custom fields by name or key, and the native Label field via label_ids (IDs or label names).
Inputs: deal_id (required), title, value, org_id, +10 more.
pipedrive_files_getB
Get file metadata and optional download URL.
Inputs: file_id (required), include_download_url.
pipedrive_files_listC
List files, optionally scoped to an entity.
Inputs: sort, limit, cursor, org_id, +5 more.
pipedrive_files_uploadC
Upload a base64-encoded file and attach to an entity.
Inputs: file_name (required), content_base64 (required), org_id, deal_id, +5 more.
pipedrive_filters_getA
Get a single filter definition by ID.
Inputs: filter_id (required).
pipedrive_filters_listA
List all saved filters, optionally by entity type.
Inputs: type.
pipedrive_filters_resultsB
Run a saved filter and return matching entities with pagination.
Inputs: filter_id (required), entity_type (required), limit, cursor, +2 more.
pipedrive_leads_createB
Create a new lead. Requires at least person_id or organization_id.
Inputs: title (required), value, owner_id, label_ids, +4 more.
pipedrive_leads_deleteB
Delete a lead. Requires confirm: "DELETE". Supports dry_run.
Inputs: confirm (required), lead_id (required), reason, dry_run.
pipedrive_leads_getA
Get a single lead by ID.
Inputs: lead_id (required).
pipedrive_leads_listB
List leads with filters and pagination.
Inputs: sort, limit, cursor, owner_id, +4 more.
pipedrive_leads_searchC
Search leads by term (uses v2 search API).
Inputs: term (required), limit, cursor, fields, +4 more.
pipedrive_leads_updateC
Update an existing lead.
Inputs: lead_id (required), title, value, owner_id, +5 more.
pipedrive_mail_messages_getB
Get a single mail message by ID. Set include_body to true for full content.
Inputs: message_id (required), include_body.
pipedrive_mail_thread_messages_listC
List messages within a mail thread. Use include_body for full content.
Inputs: thread_id (required), include_body.
pipedrive_mail_threads_deleteA
Delete a mail thread. Requires confirm: "DELETE". Supports dry_run.
Inputs: confirm (required), thread_id (required), reason, dry_run.
pipedrive_mail_threads_getA
Get a single mail thread by ID with full details.
Inputs: thread_id (required).
pipedrive_mail_threads_listB
List mail threads, optionally filtered by folder (inbox, drafts, sent, archive).
Inputs: limit, cursor, folder.
pipedrive_mail_threads_updateC
Update a mail thread: link to deal/lead, mark read/unread, archive/unarchive, share.
Inputs: thread_id (required), deal_id, lead_id, read_flag, +2 more.
pipedrive_meA
Show the current Pipedrive user (API token owner). Pass as_user to resolve a different team member by name or email.
Inputs: as_user.
pipedrive_my_open_dealsA
List open deals owned by the current user (or as_user). Sorted by most recently updated.
Inputs: limit, cursor, as_user, pipeline_id.
pipedrive_my_overdue_activitiesA
Show activities that are past due and not yet done for the current user (or as_user).
Inputs: limit, cursor, as_user.
pipedrive_my_pipeline_summaryB
Pipeline snapshot for the current user (or as_user) showing deal counts and values by stage.
Inputs: as_user, pipeline_id.
pipedrive_my_upcoming_activitiesA
Show upcoming activities for the next N days (default 7) for the current user (or as_user).
Inputs: days, limit, cursor, as_user.
pipedrive_note_comments_createC
Add a comment to a note. content_html is plain HTML, passed directly with no CDATA wrapper.
Inputs: note_id (required), content_html (required).
pipedrive_note_comments_deleteB
Delete a comment from a note. Requires confirm: "DELETE". Supports dry_run.
Inputs: confirm (required), note_id (required), comment_id (required), reason, +1 more.
pipedrive_note_comments_getB
Get a single comment by UUID on a note.
Inputs: note_id (required), comment_id (required).
pipedrive_note_comments_listC
List comments on a note.
Inputs: note_id (required), limit, cursor.
pipedrive_note_comments_updateB
Update a comment on a note. content_html is plain HTML, passed directly with no CDATA wrapper.
Inputs: note_id (required), comment_id (required), content_html (required).
pipedrive_notes_createC
Create a note attached to a deal, person, org, or lead. content_html is plain HTML, passed directly with no CDATA wrapper.
Inputs: content_html (required), org_id, deal_id, lead_id, +4 more.
pipedrive_notes_deleteC
Delete a note. Requires confirm: "DELETE". Supports dry_run.
Inputs: confirm (required), note_id (required), reason, dry_run.
pipedrive_notes_getA
Get a single note by ID.
Inputs: note_id (required).
pipedrive_notes_listB
List notes, optionally scoped to a deal, person, org, or lead.
Inputs: sort, limit, cursor, org_id, +4 more.
pipedrive_notes_updateC
Update a note's content and pin flags. content_html is plain HTML, passed directly with no CDATA wrapper.
Inputs: note_id (required), content_html (required), pinned_to_deal_flag, pinned_to_person_flag, +1 more.
pipedrive_organizations_createB
Create a new organization. Supports custom fields by name or key, and the native Label field via label_ids (IDs or label names).
Inputs: name (required), address, owner_id, label_ids, +3 more.
pipedrive_organizations_deleteB
Delete an organization. Requires confirm: "DELETE". Supports dry_run.
Inputs: org_id (required), confirm (required), reason, dry_run.
pipedrive_organizations_getB
Get a single organization by ID with full details including resolved custom fields.
Inputs: org_id (required), include_fields, custom_field_keys.
pipedrive_organizations_listC
List organizations with filters and pagination.
Inputs: ids, limit, cursor, sort_by, +7 more.
pipedrive_organizations_mergeB
Merge two organizations. Source is merged into target. Requires confirm: "MERGE". Supports dry_run.
Inputs: confirm (required), source_org_id (required), target_org_id (required), dry_run.
pipedrive_organizations_searchC
Search organizations by name, address, or custom fields.
Inputs: term (required), limit, cursor, fields, +1 more.
pipedrive_organizations_updateC
Update an existing organization. Supports custom fields by name or key, and the native Label field via label_ids (IDs or label names).
Inputs: org_id (required), name, address, owner_id, +4 more.
pipedrive_people_needing_followupA
Find contacts owned by the current user (or as_user) that have no next activity scheduled.
Inputs: limit, cursor, as_user.
pipedrive_person_mail_messages_listC
List mail messages linked to a person.
Inputs: person_id (required), limit, cursor.
pipedrive_persons_createC
Create a new person. Supports custom fields by name or key, and the native Label field via label_ids (IDs or label names).
Inputs: name (required), emails, org_id, phones, +5 more.
pipedrive_persons_deleteA
Delete a person. Requires confirm: "DELETE". Supports dry_run.
Inputs: confirm (required), person_id (required), reason, dry_run.
pipedrive_persons_getA
Get a single person by ID with full details including resolved custom fields.
Inputs: person_id (required), include_fields, custom_field_keys.
pipedrive_persons_listC
List persons with filters and pagination.
Inputs: ids, limit, cursor, org_id, +8 more.
pipedrive_persons_mergeA
Merge two persons. Source is merged into target. Requires confirm: "MERGE". Supports dry_run.
Inputs: confirm (required), source_person_id (required), target_person_id (required), dry_run.
pipedrive_persons_searchC
Search persons by name, email, phone, or custom fields.
Inputs: term (required), limit, cursor, fields, +3 more.
pipedrive_persons_updateC
Update an existing person. Supports custom fields by name or key, and the native Label field via label_ids (IDs or label names).
Inputs: person_id (required), name, emails, org_id, +6 more.
pipedrive_pipelines_getB
Get a single pipeline by ID.
Inputs: pipeline_id (required).
pipedrive_pipelines_listC
List all pipelines.
Inputs: limit, cursor.
pipedrive_product_deals_listB
List deals a product is attached to, optionally filtered by status.
Inputs: product_id (required), limit, cursor, status.
pipedrive_products_createC
Create a new product.
Inputs: name (required), tax, code, unit, +6 more.
pipedrive_products_deleteB
Delete a product. Requires confirm: "DELETE". Supports dry_run.
Inputs: confirm (required), product_id (required), reason, dry_run.
pipedrive_products_getB
Get a single product by ID.
Inputs: product_id (required).
pipedrive_products_listC
List products with filters and pagination.
Inputs: ids, limit, cursor, sort_by, +4 more.
pipedrive_products_searchC
Search products by name or code.
Inputs: term (required), limit, cursor, fields, +1 more.
pipedrive_products_updateC
Update an existing product.
Inputs: product_id (required), tax, code, name, +7 more.
pipedrive_product_variations_createC
Add a variation to a product.
Inputs: name (required), product_id (required), prices.
pipedrive_product_variations_deleteB
Delete a product variation. Requires confirm: "DELETE". Supports dry_run.
Inputs: confirm (required), product_id (required), product_variation_id (required), reason, +1 more.
pipedrive_product_variations_listC
List a product's variations (id, name, prices).
Inputs: product_id (required), limit, cursor.
pipedrive_product_variations_updateC
Update a product variation's name or prices.
Inputs: product_id (required), product_variation_id (required), name, prices.
pipedrive_recently_updatedB
Show deals, persons, or organizations updated in the last N days (default 7). Optionally filter by user.
Inputs: entity_type (required), days, limit, cursor, +1 more.
pipedrive_stages_getA
Get a single stage by ID.
Inputs: stage_id (required).
pipedrive_stages_listA
List stages, optionally filtered by pipeline.
Inputs: limit, cursor, sort_by, pipeline_id, +1 more.
pipedrive_stale_dealsA
Find open deals that haven't been updated in N days (default 30). Optionally filter by user or pipeline.
Inputs: days, limit, cursor, as_user, +1 more.
pipedrive_users_getA
Get a single user by ID.
Inputs: user_id (required).
pipedrive_users_listC
List all Pipedrive users in the account.
Inputs: active_flag.
pipedrive_users_permissionsB
Get permissions for a specific user.
Inputs: user_id (required).
pipedrive_webhooks_createB
Create a webhook subscription. Requires confirm: "YES". Supports dry_run.
Inputs: confirm (required), event_action (required), event_object (required), subscription_url (required), +5 more.
pipedrive_webhooks_deleteA
Delete a webhook. Requires confirm: "YES". Supports dry_run.
Inputs: confirm (required), webhook_id (required), reason, dry_run.
pipedrive_webhooks_listB
List all webhooks.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 93 tools
While most tools target distinct resources and actions, the set includes several overlapping convenience wrappers (e.g., pipedrive_deals_summary vs pipedrive_my_pipeline_summary, pipedrive_my_open_deals vs pipedrive_deals_list, and the similarly named pipedrive_product_deals_list vs pipedrive_deal_products_list). Descriptions help clarify intent, but an agent still faces multiple ambiguous pairs.
All tools use the pipedrive_ prefix and snake_case with a generally consistent entity_action pattern. Minor deviations exist (e.g., reversed entity order in pipedrive_product_deals_list vs pipedrive_deal_products_list; singular pipedrive_mail_thread_messages_list vs plural pipedrive_mail_threads_list), but naming is largely predictable.
93 tools is an extreme mismatch for a single MCP server; even for a broad CRM like Pipedrive, this far exceeds the well-scoped 3-15 range. Many tools are convenience wrappers that could be consolidated or parameterized to reduce surface area.
Core CRM entities (deals, persons, orgs, leads, activities, notes, products, mail) have near-complete CRUD/search coverage with useful lifecycle operations like merge, move_stage, and mark_done. Gaps remain for filter create/update/delete, webhook update, and pipeline/stage management, but these are relatively minor for agent workflows.
Maintenance
Related MCP Connectors
Pipedrive MCP Pack — wraps the Pipedrive REST API v1
API-first CRM for LLMs - contacts, companies, deals and activities over a native MCP server.
Native MCP access to CRM contacts, organizations, deals and tasks with user permissions.
MCP server for Getfly CRM — customers, opportunities, orders, tickets and tasks.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceUniversal MCP server for Pipedrive, enabling interaction with Pipedrive's tools and services through a standardized API.1MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server for the Pipedrive CRM API, enabling AI assistants to read, write, and analyze CRM data conversationally through 100 tools including performance reporting and loss analysis.101 npm8MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Pipedrive API v2, enabling management of deals, persons, organizations, products, activities, and pipelines through natural language in MCP clients like Cursor and Claude Desktop.14 npm2MIT
- AlicenseNot gradedqualityDmaintenanceComprehensive MCP server for Pipedrive CRM with 118 tools and 27 UI apps, enabling full CRM operations via natural language.87 npmMIT