Skip to main content
Glama
agranig

Pipedrive MCP Server

by agranig

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 stderr to 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 pipedrive Node.js library (v2 & v1).

  • Docker: Containerized for consistent performance across environments.

πŸ“‹ Prerequisites

πŸ“¦ 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.json

  • Windows: %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 tools
get_activitiesC

Get activities with optional filters

ParametersJSON Schema
NameRequiredDescriptionDefault
typeNoFilter by activity type
dealIdNoFilter by deal ID
userIdNoFilter by user ID

TDQS

C2.7/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe ID of the deal

TDQS

B3.4/5.0
Behavior3/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status
stageIdNoFilter by stage ID
pipelineIdNoFilter by pipeline ID

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
ownerIdNoFilter by owner ID

TDQS

C2.6/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose3/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.5/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters4/5

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.

Purpose2/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
pipelineIdYesThe ID of the pipeline

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 7 tool updatesv1.0.0
    • First observedget_activities
    • First observedget_deal_details
    • First observedget_deals
    • First observedget_leads
    • First observedget_pipelines
    • First observedget_stages
    • First observedget_users

TDQS

C2.9/5.0

Scored across 7 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count4/5

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.

Completeness2/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Enables 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.
    123
    118 npm
    8
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables 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 npm
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Connects 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.
    30
    1,930 npm
    MIT
  • A
    license
    B
    quality
    A
    maintenance
    Enables 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.
    16
    1,930 npm
    60
    MIT