Pipedrive MCP Server
Enables LLMs like Claude to interact with Pipedrive CRM data through a standardized interface, providing 22 tools for managing deals, persons, organizations, activities, and more.
README
Pipedrive MCP Server
A Model Context Protocol (MCP) server for Pipedrive CRM. This server allows LLMs like Claude to interact with your Pipedrive data through a standardized interface.
Developed by Osher Digital
Features
- 22 Tools for comprehensive Pipedrive access
- Saved Filter Support: Use Pipedrive's saved filters to query by custom fields
- Field Definitions: Map custom field hashes to human-readable names
- Activities: Access calls, meetings, tasks, and emails
- Flexible Sorting: Sort deals by date, value, or title
- Date Range Filtering: Filter by created/updated dates
- Rate Limiting: Built-in rate limiting to respect Pipedrive API limits
Installation
cd pipedrive-mcp-python
# Install with uv
uv sync
Configuration
Create a .env file in the project root (or set environment variables):
# Required
PIPEDRIVE_API_TOKEN=your_api_token_here
PIPEDRIVE_DOMAIN=your-company.pipedrive.com
# Optional - Rate Limiting
PIPEDRIVE_RATE_LIMIT_MIN_TIME_MS=250
PIPEDRIVE_RATE_LIMIT_MAX_CONCURRENT=2
Getting Your API Token
- Log into your Pipedrive account
- Go to Settings > Personal preferences > API
- Copy your API token
Usage
Running the Server
# Run with uv
uv run pipedrive-mcp
Claude Desktop Integration
Add to your Claude Desktop configuration:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pipedrive": {
"command": "/path/to/pipedrive-mcp-python/.venv/bin/python",
"args": ["-m", "pipedrive_mcp.server"],
"cwd": "/path/to/pipedrive-mcp-python"
}
}
}
Set environment variables in your shell profile or .env file in the project directory.
Claude Code CLI Integration
claude mcp add pipedrive -- /path/to/pipedrive-mcp-python/.venv/bin/python -m pipedrive_mcp.server
Available Tools (22)
User Management
| Tool | Description |
|---|---|
get_users() |
Get all users/owners from Pipedrive |
Deals
| Tool | Description |
|---|---|
get_deals(...) |
Get deals with comprehensive filtering (see below) |
get_deal(deal_id) |
Get a single deal by ID with all custom fields |
get_deal_notes(deal_id) |
Get notes for a specific deal |
search_deals(term, limit) |
Full-text search deals |
get_deals parameters:
search_title- Search by deal title (partial matches)owner_id- Filter by owner/user IDstage_id- Filter by pipeline stagestatus- Filter by status:open,won,lost,deleted(default:open)pipeline_id- Filter by pipelinefilter_id- Use a saved filter from Pipedrivemin_value/max_value- Filter by deal value rangecreated_after/created_before- Filter by creation date (ISO format: YYYY-MM-DD)updated_after/updated_before- Filter by update datesort_by- Sort field:add_time,update_time,title,value(default:add_time)sort_order- Sort direction:asc,desc(default:desc)limit- Maximum results (default: 500)
Persons (Contacts)
| Tool | Description |
|---|---|
get_persons(filter_id, limit) |
Get all persons, optionally filtered by saved filter |
get_person(person_id) |
Get a single person by ID with all custom fields |
search_persons(term, limit) |
Full-text search persons |
Organizations
| Tool | Description |
|---|---|
get_organizations(filter_id, limit) |
Get all organizations, optionally filtered |
get_organization(org_id) |
Get a single organization by ID |
search_organizations(term, limit) |
Full-text search organizations |
Pipelines & Stages
| Tool | Description |
|---|---|
get_pipelines() |
Get all sales pipelines |
get_pipeline(pipeline_id) |
Get a single pipeline by ID |
get_stages(pipeline_id) |
Get all stages, optionally filtered by pipeline |
Leads
| Tool | Description |
|---|---|
search_leads(term, limit) |
Full-text search leads |
Universal Search
| Tool | Description |
|---|---|
search_all(term, item_types, limit) |
Search across all item types |
Supported item types: deal, person, organization, product, file, activity, lead
Filters
| Tool | Description |
|---|---|
get_filters(filter_type) |
Get all saved filters from Pipedrive |
Filter types: deals, persons, org, products, activities
Use saved filters to query by custom fields:
- Create a filter in Pipedrive UI with your criteria
- Call
get_filters()to find the filter's ID - Pass
filter_idtoget_persons(),get_deals(), orget_organizations()
Field Definitions
| Tool | Description |
|---|---|
get_deal_fields() |
Get deal field definitions (maps hash IDs to names) |
get_person_fields() |
Get person field definitions |
get_organization_fields() |
Get organization field definitions |
These tools map custom field hash keys (like c3976c9693716fc786c2092081506816441ee526) to human-readable field names.
Activities
| Tool | Description |
|---|---|
get_activities(...) |
Get activities (calls, meetings, tasks, emails) |
get_activity_types() |
Get all activity types configured in Pipedrive |
get_activities parameters:
deal_id- Filter by dealperson_id- Filter by personorg_id- Filter by organizationuser_id- Filter by assigned useractivity_type- Filter by type (call, meeting, task, email, etc.)done- Filter by completion status (True/False)start_date/end_date- Filter by date range (ISO format)limit- Maximum results (default: 100)
Examples
Get 10 most recent deals
get_deals(limit=10)
Get deals created this year
get_deals(created_after="2026-01-01")
Get highest value deals
get_deals(sort_by="value", sort_order="desc", limit=10)
Get contacts matching a saved filter
get_filters(filter_type="persons") # Find the filter ID
get_persons(filter_id=122) # Use the filter
Get all calls for a specific deal
get_activities(deal_id=123, activity_type="call")
Understand a custom field
get_deal_fields() # Returns mapping of hash keys to field names
Development
# Install with dev dependencies
uv sync --extra dev
# Run tests
uv run pytest
# Run with verbose output
uv run pytest -v
License
MIT License - see LICENSE file for details.
Attribution
Developed by Osher Digital - Digital transformation and AI integration specialists.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.