home / mcp / pipedrive mcp server

Pipedrive MCP Server

Provides full CRUD access to Pipedrive CRM data via MCP for reads and writes across deals, persons, organizations, activities, notes, and leads.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "teapot-agency-mcp_pipedrive": {
      "url": "http://localhost:3000",
      "headers": {
        "MCP_PORT": "3000",
        "MCP_JWT_TOKEN": "eyJhbGciOi...",
        "MCP_TRANSPORT": "stdio",
        "MCP_JWT_SECRET": "your_jwt_secret",
        "PIPEDRIVE_DOMAIN": "your-company.pipedrive.com",
        "MCP_JWT_ALGORITHM": "HS256",
        "PIPEDRIVE_API_TOKEN": "YOUR_API_TOKEN",
        "PIPEDRIVE_RATE_LIMIT_MIN_TIME_MS": "250",
        "PIPEDRIVE_RATE_LIMIT_MAX_CONCURRENT": "2"
      }
    }
  }
}

You set up a dedicated MCP server that provides full create, read, update, and delete access to Pipedrive CRM data. It enables Claude and other LLM-based tools to read and write Pipedrive records like deals, persons, organizations, activities, notes, and leads while offering safe operations, rate limiting, and flexible transport options.

How to use

Connect to the MCP server using your preferred MCP client. You can run the server locally in stdio mode for direct development or use Docker to expose an HTTP/SSE endpoint that your clients can reach. Once connected, you can perform read operations to fetch data, and write operations to create, update, or delete records. For safety, delete operations require explicit confirmation, and most deletions are soft deletes with a 30-day recovery period.

How to install

# Standard setup
npm install

# Create configuration
```

```
PIPEDRIVE_API_TOKEN=your_api_token_here
PIPEDRIVE_DOMAIN=your-company.pipedrive.com
```

```
# Build the project
npm run build
```

```
# Start the server locally (stdio transport)
npm start
```

```
# Docker Compose (standalone)
docker-compose up -d
```

```
# Docker (pre-built image, SSE transport)
docker run -d \
  -p 3000:3000 \
  -e PIPEDRIVE_API_TOKEN=your_api_token_here \
  -e PIPEDRIVE_DOMAIN=your-company.pipedrive.com \
  -e MCP_TRANSPORT=sse \
  -e MCP_PORT=3000 \
  ghcr.io/juhokoskela/pipedrive-mcp-server:main
```

```
# Docker (stdio transport for local use)
docker run -i \
  -e PIPEDRIVE_API_TOKEN=your_api_token_here \
  -e PIPEDRIVE_DOMAIN=your-company.pipedrive.com \
  ghcr.io/juhokoskela/pipedrive-mcp-server:main
```

```
# Integrating into an existing project via docker-compose
```

```
# Final startup command for stdio transport
npm start

Additional configuration and security

Environment variables control access and behavior. Required values are your Pipedrive API token and domain. Optional JWT settings enable secured SSE transport. You can tune rate limiting to respect API quotas. When using SSE, an Authorization header with a Bearer token is required if JWT is enabled.

Troubleshooting and notes

If you encounter connectivity issues, verify that the server port is reachable (default 3000 for the SSE transport) and that your API token and domain are correct. For deletions, ensure confirm is true and remember that most deletions are soft with a 30-day recovery period.

Examples and quick-start prompts

Use the tools to fetch data quickly, for example getting all deals or all persons, then filtering or searching as needed. When a search yields no results, try fuzzy matching tools that score potential matches and guide you toward likely IDs.

Available tools

get-users

Get all users/owners from Pipedrive to identify owner IDs for filtering

search-all

Search across deals, persons, organizations, and more with improved error messages

get-deals

Fetch deals with flexible filtering by title, date, owner, stage, status, value, and more

get-deal

Get a specific deal by ID including custom fields

get-deal-notes

Retrieve detailed notes and custom booking details for a deal

search-deals

Search deals by a query term

get-persons

Fetch persons with optional filters by name, email, phone, organization ID, or organization name

find-person

Find persons using fuzzy matching with scoring across multiple fields

get-persons-by-organization

Get all persons belonging to a specific organization

get-person

Get a specific person by ID including custom fields

get-person-notes

Get all notes attached to a person

search-persons

Search persons with improved error messages and suggestions

search-persons-by-notes

Search for persons with notes containing a keyword

get-organizations

Get all organizations with optional filtering by name

get-organization

Get a specific organization by ID including custom fields

search-organizations

Search organizations with improved error messages and suggestions

get-pipelines

Get all pipelines from Pipedrive

get-pipeline

Get a specific pipeline by ID

get-stages

Get all stages from all pipelines

search-leads

Search leads by term

create-deal

Create a new deal with custom fields support

update-deal

Update an existing deal

delete-deal

Delete a deal (soft delete with 30-day recovery, requires confirmation)

create-person

Create a new person (contact) with email and phone support

update-person

Update an existing person

delete-person

Delete a person (soft delete with 30-day recovery, requires confirmation)

create-organization

Create a new organization with address support

update-organization

Update an existing organization

delete-organization

Delete an organization (soft delete with 30-day recovery, requires confirmation)

create-activity

Create tasks, calls, meetings, deadlines, etc.

update-activity

Update an existing activity

delete-activity

Delete an activity (soft delete with 30-day recovery, requires confirmation)

create-note

Create notes attached to deals, persons, organizations, or leads

update-note

Update note content

delete-note

Delete a note (requires confirmation)

create-lead

Create a new lead

update-lead

Update an existing lead

delete-lead

Delete a lead (requires confirmation)

convert-lead-to-deal

Convert a lead to a deal with conversion tracking