A Model Context Protocol (MCP) server that connects to the Pipedrive API v2, exposing Pipedrive CRM data to LLM applications like Claude.
- Full CRUD operations (Create, Read, Update, Delete) for Pipedrive data
- Full entity support including:
- Deals
- Persons (Contacts)
- Organizations
- Pipelines & Stages
- Activities
- Notes
- Batch operations for creating, updating, and deleting multiple items at once
- Search capabilities across all entity types
- Custom fields support - All fields including custom fields are exposed
- Predefined prompts for common operations
- Token-optimized responses for efficient data transfer
- Node.js (v16 or higher)
- A Pipedrive account with API access
- Pipedrive API token
- Clone the repository:
git clone https://github.com/yourusername/pipedrive-mcp-server.git
cd pipedrive-mcp-server- Install dependencies:
npm install- Create a
.envfile in the root directory:
cp .env.example .env- Add your Pipedrive API token to the
.envfile:
PIPEDRIVE_API_TOKEN=your_pipedrive_api_token_here
- Build the project:
npm run build- Log in to your Pipedrive account
- Go to Personal Settings → API
- Copy your personal API token
Run the server with auto-reload for development:
npm run devBuild and run the compiled server:
npm run build
npm startAdd the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pipedrive": {
"command": "node",
"args": ["/path/to/pipedrive-mcp-server/dist/index.js"],
"env": {
"PIPEDRIVE_API_TOKEN": "your_pipedrive_api_token_here"
}
}
}
}Read Operations:
get_deals- List deals with filtering optionsget_deal- Get a specific deal by IDsearch_deals- Search for deals by term
Write Operations:
create_deal- Create a new dealupdate_deal- Update an existing dealdelete_deal- Delete a dealbatch_create_deals- Create multiple deals at oncebatch_update_deals- Update multiple deals at oncebatch_delete_deals- Delete multiple deals at once
Read Operations:
get_persons- List persons with filtering optionsget_person- Get a specific person by IDsearch_persons- Search for persons by name
Write Operations:
create_person- Create a new personupdate_person- Update an existing persondelete_person- Delete a personbatch_create_persons- Create multiple persons at oncebatch_update_persons- Update multiple persons at oncebatch_delete_persons- Delete multiple persons at once
Read Operations:
get_organizations- List organizationsget_organization- Get a specific organization by IDsearch_organizations- Search for organizations
Write Operations:
create_organization- Create a new organizationupdate_organization- Update an existing organizationdelete_organization- Delete an organizationbatch_create_organizations- Create multiple organizations at oncebatch_update_organizations- Update multiple organizations at oncebatch_delete_organizations- Delete multiple organizations at once
Read Operations:
get_pipelines- List all pipelinesget_pipeline- Get a specific pipelineget_stages- List pipeline stagesget_stage- Get a specific stage
Write Operations:
create_pipeline- Create a new pipelineupdate_pipeline- Update an existing pipelinedelete_pipeline- Delete a pipelinecreate_stage- Create a new stage in a pipelineupdate_stage- Update an existing stagedelete_stage- Delete a stage
Read Operations:
get_activities- List activities with filteringget_activity- Get a specific activity
Write Operations:
create_activity- Create a new activityupdate_activity- Update an existing activitydelete_activity- Delete an activitymark_activity_done- Mark an activity as done (convenience method)batch_create_activities- Create multiple activities at oncebatch_update_activities- Update multiple activities at oncebatch_delete_activities- Delete multiple activities at once
Read Operations:
get_notes- List notes with filteringget_note- Get a specific note
Write Operations:
create_note- Create a new noteupdate_note- Update an existing notedelete_note- Delete a notebatch_create_notes- Create multiple notes at oncebatch_update_notes- Update multiple notes at oncebatch_delete_notes- Delete multiple notes at once
search_items- Search across multiple item types
get_users- List all usersget_user- Get a specific user by IDget_current_user- Get current authenticated user
get_deals_summary- Get summarized deals listget_persons_summary- Get summarized persons listget_organizations_summary- Get summarized organizations listget_activities_summary- Get summarized activities listget_overview- Get dashboard overviewsearch_summarized- Get summarized search results
get_current_quarter_deals- Get deals for current quarterget_quarter_summary- Get summary for specific quarterget_quarterly_progress- Get current quarter progress
The server includes several predefined prompts for common operations:
list_all_deals- List all deals with their detailssearch_person- Search for a person by nameget_organization_deals- Get all deals for a specific organizationpipeline_overview- Get overview of all pipelines and their stages
npm run dev # Run with auto-reload for development
npm run build # Build TypeScript to JavaScript
npm run start # Run the compiled server
npm run lint # Run ESLint
npm run typecheck # Run TypeScript type checking
npm test # Run tests (when implemented)pipedrive-mcp-server/
├── src/
│ ├── index.ts # Main MCP server entry point
│ ├── pipedrive-client.ts # Pipedrive API client
│ └── tools/ # Individual tool implementations
│ ├── deals.ts
│ ├── persons.ts
│ ├── organizations.ts
│ ├── pipelines.ts
│ ├── activities.ts
│ ├── notes.ts
│ └── search.ts
├── dist/ # Compiled JavaScript output
├── package.json
├── tsconfig.json
├── .eslintrc.json
└── .env.example
The Pipedrive API has rate limits. The server handles API responses appropriately, but be mindful of:
- Default rate limit: 80 requests per 2 seconds
- Consider implementing caching for frequently accessed data
- Use pagination parameters to limit data transfer
IMPORTANT: This server now supports write operations (create, update, delete) which can modify your Pipedrive data.
Security Best Practices:
- Use this server in a secure environment
- Be cautious when using delete operations - they cannot be undone
- Test write operations thoroughly before using in production
- Consider implementing additional validation layers if needed
- Review all AI-generated operations before execution in critical scenarios
- The server uses the API token's permissions - ensure the token has appropriate access levels
Batch Operations:
- Batch operations process multiple items in parallel
- Failed items in a batch are reported but don't stop other items from processing
- Always review batch operation results for any failures
The server provides detailed error messages including:
- API authentication failures
- Network errors
- Invalid parameters
- Rate limit exceeded warnings
Contributions are welcome! Please feel free to submit a Pull Request.
MIT License - see LICENSE file for details
For issues or questions:
- Create an issue on GitHub
- Check Pipedrive API documentation: https://developers.pipedrive.com/docs/api/v1
- Built for use with Claude Desktop
- Uses the Model Context Protocol
- Integrates with Pipedrive CRM