Pipedrive MCP Server
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 ServerAnalyze deals in 'Negotiation' stage with no activity for 7 days"
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 Server
A high-performance Model Context Protocol (MCP) server that enables Claude (and other MCP-compatible LLMs) to analyze your Pipedrive sales pipeline, deal velocity, and activity engagement.
This server is specifically designed to help sales teams understand why deals are stalling and where the "rubber isn't hitting the road" by providing deep visibility into deal stages, activities, and contact details.
π Features
Deep Deal Analysis: Retrieve full deal details enriched with contact person and organization metadata.
Activity Tracking: Monitor user activities (calls, meetings, emails) to analyze engagement levels.
Pipeline Visibility: Explore pipelines and stages to identify bottlenecks.
Lead Management: Access the leads inbox for early-stage pipeline analysis.
Dockerized: Easy deployment via Docker with zero-config on your host machine.
Clean Protocol: Optimized for Claude Desktop with all logging redirected to
stderrto prevent protocol corruption.
Related MCP server: Pipedrive MCP Server
π Built With
TypeScript: Type-safe implementation for reliable API interactions.
MCP SDK: Built on the official
@modelcontextprotocol/sdk.Pipedrive SDK: Uses the official
pipedriveNode.js library (v2 & v1).Docker: Containerized for consistent performance across environments.
π Prerequisites
Docker installed and running.
π¦ Installation & Setup
1. Build the Image
Clone this repository and build the Docker image:
docker build -t pipedrive-mcp-server .2. Configure Claude Desktop
Add the Pipedrive MCP server to your Claude Desktop configuration.
File Location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Configuration:
{
"mcpServers": {
"pipedrive": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"PIPEDRIVE_API_KEY=your_api_key_here",
"pipedrive-mcp-server"
]
}
}
}Replace your_api_key_here with your actual Pipedrive API token.
π Available Tools
get_deals: List deals with pipeline, stage, and status filters.get_deal_details: Get a specific deal with full enrichment of Person and Organization data.get_activities: List activities filtered by deal, user, or type.get_leads: Retrieve leads from the leads inbox.get_pipelines: List all configured pipelines.get_stages: List stages for a specific pipeline.get_users: List all users in your Pipedrive company.
π Example Queries
Once connected, you can ask Claude:
"Analyze the deals in the 'Negotiation' stage. Which ones haven't had any activity in the last 7 days?"
"Who is the main contact person for the 'Big Enterprise' deal, and what was our last interaction?"
"Show me all leads owned by [User] and summarize why they haven't moved to the deal pipeline yet."
"Are we talking to the right ICP for our open deals in the 'Discovery' stage?"
π License
MIT License. See LICENSE for details.
Available Tools
7 toolsget_activitiesC
Get activities with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by activity type | |
| dealId | No | Filter by deal ID | |
| userId | No | Filter by user ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full behavioral burden and delivers almost nothing: it does not state that this is a read-only operation, whether results are paginated, how many records are returned by default, or any permission requirements. For a list endpoint with zero annotation coverage, this is a substantial gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with no filler, and the resource is front-loaded after the verb. It is efficient, though the brevity edges into under-specification rather than tight precision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is structurally simple (three optional scalar filters, no nesting, no output schema), so a terse description is defensible. Still, with no annotations and no output schema, an agent gets no signal about pagination, result volume, or ordering for what is likely a list endpoint.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three filters (type, dealId, userId) are documented in the schema itself. The description's phrase 'optional filters' only confirms that none are required, adding negligible meaning beyond the structured data; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a verb ('Get') and a resource ('activities'), which is minimally adequate, but 'activities' is never defined and no scope or sibling differentiation is offered against get_deals, get_leads, or get_pipelines. An agent can infer this is a read of activity records, but nothing confirms what an activity is or how it relates to the other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only guidance is 'with optional filters', which restates the schema's required-field count rather than explaining when to call this tool. No alternatives, no conditions, no mention of when-not to use it (e.g., versus pulling activities for a single deal via another tool).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deal_detailsB
Get detailed information about a specific deal, including person and organization info
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the deal |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does disclose that the response includes person and organization data, but says nothing about permissions required, whether the deal must exist, or error behavior for invalid IDs. The read-only nature is only implied by the verb 'Get'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the resource and payload front-loaded and no filler. It is efficient, though it could have used one more clause to route agents away from the list tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain the return shape; it partially does by naming person and organization info but omits other likely fields. For a simple single-parameter read this is adequate but leaves gaps around error handling and auth.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'id' parameter is already documented as 'The ID of the deal'. The description adds no format, type, or sourcing guidance for the ID, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Get') and resource ('a specific deal') and adds the payload scope (person and organization info), which distinguishes it from the sibling get_deals list tool. It is clear but never names the sibling alternative explicitly, so differentiation is inferential rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The required 'id' parameter implies the usage context (fetch one deal's detail by identifier), so an agent can infer when to reach for it over get_deals. However, there is no explicit when-to-use statement, no preconditions, and no reference to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dealsC
Get all deals with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status | |
| stageId | No | Filter by stage ID | |
| pipelineId | No | Filter by pipeline ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing about pagination, result caps, default sort/scope, or permission requirements. For a list endpoint with zero annotations this is a notable gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence, front-loaded with the verb and resource and free of redundancy. It is efficient, though its brevity borders on under-specification rather than tight concision.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With three parameters, no output schema, and no annotations, the description should explain default behavior (e.g., whether unfiltered calls return all deals), pagination, and how it differs from get_deal_details. None of this is present, leaving real gaps for a list tool in a crowded sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three filter parameters are already documented in the schema, and the phrase 'optional filters' merely confirms their optional filter role. Baseline 3 applies since the description adds no syntax or format detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Get') and resource ('deals'), making the core operation unambiguous. However, it does not differentiate itself from the sibling get_deal_details, leaving the agent to infer that this returns a collection rather than a single deal's details.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'with optional filters' hints at usage but gives no explicit when-to-use guidance, no mention of the alternative get_deal_details for single records, and no statement of what happens when no filters are supplied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_leadsC
Get leads with optional filters
| Name | Required | Description | Default |
|---|---|---|---|
| ownerId | No | Filter by owner ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The verb "Get" implies a read operation, but the description says nothing about result volume, pagination, ordering, permission requirements, or what is returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single short, front-loaded sentence with no filler or redundant phrasing. Its brevity is the only virtue, however, since it omits information an agent would need rather than trimming waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with one fully documented parameter and no output schema, the remaining obligations are light, yet the description omits any usage routing, filtering behavior, or result characteristics. With no annotations to lean on, it leaves meaningful gaps for an agent choosing among six retrieval siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single ownerId parameter, so the schema already documents its meaning. The description's generic "optional filters" adds no syntax or semantics beyond what the schema provides, making the baseline of 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
"Get leads with optional filters" names a clear verb (get) and resource (leads), so the basic purpose is recoverable, but it is close to a restatement of the tool name and adds only a generic mention of filters. Nothing distinguishes it from siblings like get_deals or get_activities beyond the noun.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus the six sibling retrieval tools, nor any stated preconditions. "With optional filters" hints that narrowing is possible but does not say when filtering is warranted or what happens if no ownerId is supplied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pipelinesC
Get all pipelines
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but offers none. It does not indicate return format, pagination behavior, permission requirements, or whether 'all' refers to all accessible pipelines globally or within a specific scope.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief at three words. While it wastes no words, it is insufficiently sized for the tool's complexity given the sibling context and lack of output schema. However, the structure itself is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of a singular variant sibling tool ('get_pipeline') and the absence of an output schema, the description should clarify the scope of 'all' and hint at return structure. It fails to provide necessary context for safe and correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters. Per evaluation guidelines, tools with 0 parameters receive a baseline score of 4, as there are no parameter semantics to clarify beyond what the empty schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get all pipelines' is essentially a tautology that restates the tool name. While it indicates the tool retrieves multiple items, it fails to distinguish from the sibling tool 'get_pipeline' (singular) or clarify what constitutes a pipeline in this CRM context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance provided on when to use this tool versus the singular 'get_pipeline' or other filtering tools. There are no stated prerequisites, constraints, or conditions that would help an agent select this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stagesC
Get all stages for a pipeline
| Name | Required | Description | Default |
|---|---|---|---|
| pipelineId | Yes | The ID of the pipeline |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. 'Get' implies a safe read, but it says nothing about ordering, pagination, whether inactive stages are included, or what happens with an invalid pipelineId. For a zero-annotation tool this is a meaningful gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no waste. It is efficient, though the brevity is partly the source of the transparency gaps rather than a virtue in itself.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool with no output schema, the description is minimally adequate. It omits how the returned stages are shaped and how pipelineId is obtained, which an agent working across the sibling list would benefit from knowing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single pipelineId parameter is documented in the schema, so the baseline is 3. The description adds no syntax, format, or sourcing detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb ('Get') and resource ('all stages for a pipeline'), so an agent knows exactly what comes back. It does not, however, distinguish itself from the pipeline-adjacent siblings (get_pipelines, get_deal_details), so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no statement of when to use this tool versus alternatives, no prerequisite that the pipeline must already exist or that get_pipelines should be called first to obtain the pipelineId. Usage must be inferred from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_usersB
Get all users in the company
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read but says nothing about permissions required, pagination, result volume, or whether 'all users' is truncated or scoped to visible users.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, efficient sentence that front-loads the verb and resource with no wasted words. It is minimal but not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with no output schema or annotations, the description conveys the resource and scope but omits any sense of return shape or volume. Adequate to call correctly, but thin on behavioral context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline of 4 applies per the rubric. There is no parameter syntax the description needs to explain.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Get) and resource (users) plus scope (all users in the company), so an agent knows exactly what it retrieves. It does not explicitly differentiate itself from siblings, though the resource (users vs. pipelines/deals/leads) is self-evidently distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this versus alternatives, and no prerequisites or conditions are stated. Usage is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v1.0.0- First observed
get_activities - First observed
get_deal_details - First observed
get_deals - First observed
get_leads - First observed
get_pipelines - First observed
get_stages - First observed
get_users
TDQS
Scored across 7 tools
Each tool targets a distinct Pipedrive entity (pipelines, stages, users, deals, activities, leads). The only mild overlap is get_deals versus get_deal_details, but the descriptions clearly differentiate a filtered list from a detailed single-deal lookup.
All tools follow a consistent get_<noun> snake_case pattern, which is predictable and readable. Minor deviation: get_deals is plural while get_deal_details is singular, but the convention is still clear.
Seven tools is well-scoped and each earns its place for a read-oriented Pipedrive surface. It is slightly lean, with no redundancy or bloat.
The surface is entirely read-only, with no create, update, or delete operations for deals, activities, or leads, which are core CRM workflows. Agents can retrieve data but cannot act on it, creating significant dead ends.
Maintenance
Related MCP Connectors
Connect AI to your Attio CRM. Manage contacts, companies, deals, and sales pipelines. Create tasksβ¦
AI-native CRM. 37 tools: pipeline, leads, health scores, GDPR rights. EU-hosted, free tier.
Connect AI assistants to Nimble CRM to access and work with customer relationship data.
Data Parrot brings AI revenue analysis of your HubSpot data into your AI tools.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables users to manage Pipedrive CRM data including deals, contacts, and activities directly through an AI assistant. It supports full CRUD operations, email engagement analysis, and mapping of custom field metadata for comprehensive pipeline management.123118 npm8MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to interact with the Pipedrive CRM to manage deals, contacts, organizations, and activities. It features automatic custom field synchronization and guided onboarding to ensure assistants follow specific business rules and pipelines.37 npmMIT
- AlicenseBqualityCmaintenanceConnects the Pipedrive API v2 to LLM applications, providing read-only access to CRM data including deals, contacts, and pipelines. It enables users to search and retrieve organization information, activities, and notes through natural language.301,930 npmMIT
- AlicenseBqualityAmaintenanceEnables read-only access to Pipedrive data including deals, persons, organizations, and pipelines, allowing LLMs like Claude to query and analyze CRM information through natural language.161,930 npm60MIT