Pipedrive MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PIPEDRIVE_DOMAIN | Yes | Your Pipedrive domain (e.g., your-company.pipedrive.com) | |
| PIPEDRIVE_API_TOKEN | Yes | Your Pipedrive API token | |
| PIPEDRIVE_RATE_LIMIT_MIN_TIME_MS | No | Minimum time between requests in milliseconds | 250 |
| PIPEDRIVE_RATE_LIMIT_MAX_CONCURRENT | No | Maximum concurrent requests | 2 |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_usersA | Get all users/owners from Pipedrive. Returns all users in your Pipedrive account with their ID, name, email, active status, and role. Useful for filtering deals by owner. Returns: JSON array of users Examples: - get_users() - Get all users to see available owners |
| get_dealsA | Get deals from Pipedrive with filtering options. Retrieves deals with various filter options. Can filter by title search, date ranges, owner, stage, status, pipeline, and value range. Results are sorted by creation date (newest first) by default. Args: search_title: Search by deal title (partial matches) owner_id: Filter by owner/user ID stage_id: Filter by pipeline stage status: Filter by status - 'open', 'won', 'lost', or 'deleted' (default: 'open') pipeline_id: Filter by pipeline filter_id: ID of a saved filter from Pipedrive (use get_filters to see available filters) min_value: Minimum deal value filter max_value: Maximum deal value filter created_after: Only deals created after this date (ISO format: YYYY-MM-DD) created_before: Only deals created before this date (ISO format: YYYY-MM-DD) updated_after: Only deals updated after this date (ISO format: YYYY-MM-DD) updated_before: Only deals updated before this date (ISO format: YYYY-MM-DD) sort_by: Field to sort by - 'add_time', 'update_time', 'title', 'value' (default: 'add_time') sort_order: Sort direction - 'asc' or 'desc' (default: 'desc' for newest first) limit: Maximum number of results (default: 500) Returns: JSON array of deals with summary Examples: - get_deals() - Get all open deals (newest first) - get_deals(limit=10) - Get 10 most recent open deals - get_deals(status="won") - Get won deals - get_deals(created_after="2026-01-01") - Get deals created this year - get_deals(filter_id=5) - Get deals matching saved filter #5 - get_deals(sort_by="value", sort_order="desc") - Get highest value deals first |
| get_dealA | Get a single deal by ID with all details. Retrieves comprehensive information about a specific deal including all custom fields, owner info, pipeline stage, and related entities. Args: deal_id: The Pipedrive deal ID Returns: JSON object with deal details Examples: - get_deal(deal_id=123) - Get deal with ID 123 |
| get_deal_notesA | Get notes for a specific deal. Retrieves all notes and comments associated with a deal. Args: deal_id: The Pipedrive deal ID Returns: JSON array of notes Examples: - get_deal_notes(deal_id=123) - Get notes for deal 123 |
| search_dealsA | Full-text search deals by term. Searches across deal titles, notes, and related content. Args: term: Search term limit: Maximum results (default: 100) Returns: JSON array of matching deals Examples: - search_deals(term="acme") - Search for deals mentioning "acme" - search_deals(term="enterprise", limit=50) - Search with limit |
| get_personsB | Get all persons/contacts from Pipedrive. Retrieves all contacts with their details including custom fields. Use filter_id to apply a saved filter for custom field filtering. Args: filter_id: ID of a saved filter from Pipedrive (use get_filters to see available filters). Create filters in Pipedrive UI to filter by custom fields like "User Type". limit: Maximum number of persons to return (default: 500) Returns: JSON array of persons Examples: - get_persons() - Get all contacts - get_persons(limit=100) - Get first 100 contacts - get_persons(filter_id=12) - Get contacts matching saved filter #12 |
| get_personA | Get a single person/contact by ID. Retrieves comprehensive information about a specific contact including all custom fields and related data. Args: person_id: The Pipedrive person ID Returns: JSON object with person details Examples: - get_person(person_id=456) - Get person with ID 456 |
| search_personsC | Full-text search persons/contacts by term. Searches across person names, emails, phone numbers, and notes. Args: term: Search term limit: Maximum results (default: 100) Returns: JSON array of matching persons Examples: - search_persons(term="john") - Search for persons named John - search_persons(term="@acme.com") - Search by email domain |
| get_organizationsB | Get all organizations from Pipedrive. Retrieves all organizations/companies with their details. Use filter_id to apply a saved filter for custom field filtering. Args: filter_id: ID of a saved filter from Pipedrive (use get_filters to see available filters) limit: Maximum number of organizations to return (default: 500) Returns: JSON array of organizations Examples: - get_organizations() - Get all organizations - get_organizations(limit=100) - Get first 100 organizations - get_organizations(filter_id=8) - Get organizations matching saved filter #8 |
| get_organizationA | Get a single organization by ID. Retrieves comprehensive information about a specific organization including all custom fields. Args: org_id: The Pipedrive organization ID Returns: JSON object with organization details Examples: - get_organization(org_id=789) - Get organization with ID 789 |
| search_organizationsA | Full-text search organizations by term. Searches across organization names and other fields. Args: term: Search term limit: Maximum results (default: 100) Returns: JSON array of matching organizations Examples: - search_organizations(term="acme") - Search for Acme organizations |
| get_pipelinesA | Get all pipelines from Pipedrive. Retrieves all sales pipelines configured in your Pipedrive account. Returns: JSON array of pipelines Examples: - get_pipelines() - Get all pipelines |
| get_pipelineC | Get a single pipeline by ID. Retrieves details about a specific pipeline. Args: pipeline_id: The Pipedrive pipeline ID Returns: JSON object with pipeline details Examples: - get_pipeline(pipeline_id=1) - Get pipeline with ID 1 |
| get_stagesA | Get all stages, optionally filtered by pipeline. Retrieves all stages across pipelines. Can filter to show only stages for a specific pipeline. Args: pipeline_id: Optional pipeline ID to filter stages Returns: JSON array of stages with pipeline information Examples: - get_stages() - Get all stages across all pipelines - get_stages(pipeline_id=1) - Get stages for pipeline 1 |
| search_leadsB | Full-text search leads by term. Searches across lead titles and related content. Args: term: Search term limit: Maximum results (default: 100) Returns: JSON array of matching leads Examples: - search_leads(term="startup") - Search for leads mentioning "startup" |
| search_allA | Search across all item types in Pipedrive. Performs a cross-type search across deals, persons, organizations, products, files, activities, and leads. Args: term: Search term item_types: Comma-separated item types to search (deal, person, organization, product, file, activity, lead). If not specified, searches all types. limit: Maximum results (default: 100) Returns: JSON array of matching items across types Examples: - search_all(term="acme") - Search "acme" across all types - search_all(term="enterprise", item_types="deal,person") - Search specific types |
| get_filtersA | Get all saved filters from Pipedrive. Returns the list of saved filters that can be used with get_deals, get_persons, and get_organizations. Filters allow you to query by custom fields that aren't directly supported in the API. To filter by custom fields (like "User Type = cemoh"):
Args: filter_type: Filter by type - 'deals', 'persons', 'org', 'products', 'activities' If not specified, returns all filters. Returns: JSON array of filters with id, name, and type Examples: - get_filters() - Get all saved filters - get_filters(filter_type="persons") - Get only person/contact filters - get_filters(filter_type="deals") - Get only deal filters |
| get_deal_fieldsA | Get all deal field definitions from Pipedrive. Returns field metadata that maps the hash IDs (like 'c3976c9693716fc786c2092081506816441ee526') to human-readable names. Essential for understanding custom fields in deal data. Returns: JSON array of field definitions with: - key: The field ID/hash used in deal data - name: Human-readable field name - field_type: Type of field (text, number, date, enum, etc.) - options: Available options for enum/set fields Examples: - get_deal_fields() - Get all deal field definitions |
| get_person_fieldsA | Get all person/contact field definitions from Pipedrive. Returns field metadata that maps the hash IDs to human-readable names. Essential for understanding custom fields in person data. Returns: JSON array of field definitions with key, name, field_type, and options Examples: - get_person_fields() - Get all person field definitions |
| get_organization_fieldsA | Get all organization field definitions from Pipedrive. Returns field metadata that maps the hash IDs to human-readable names. Essential for understanding custom fields in organization data. Returns: JSON array of field definitions with key, name, field_type, and options Examples: - get_organization_fields() - Get all organization field definitions |
| get_activitiesA | Get activities (calls, meetings, tasks, emails) from Pipedrive. Retrieves activities with various filter options. Can filter by linked entities, type, completion status, and date range. Args: deal_id: Filter by deal ID person_id: Filter by person ID org_id: Filter by organization ID user_id: Filter by assigned user ID activity_type: Filter by type (call, meeting, task, email, etc.) done: Filter by completion status (True=done, False=not done) start_date: Activities from this date (ISO format: YYYY-MM-DD) end_date: Activities until this date (ISO format: YYYY-MM-DD) limit: Maximum results (default: 100) Returns: JSON array of activities with subject, type, due date, done status, notes, and linked entities Examples: - get_activities() - Get recent activities - get_activities(deal_id=123) - Get activities for a specific deal - get_activities(done=False) - Get incomplete activities - get_activities(activity_type="call") - Get all calls - get_activities(start_date="2026-01-01", end_date="2026-01-31") - Get January activities |
| get_activity_typesA | Get all activity types configured in Pipedrive. Returns the list of activity types (call, meeting, task, lunch, etc.) available in your Pipedrive account. Use this to know what types can be used when filtering activities. Returns: JSON array of activity types with id, name, and icon Examples: - get_activity_types() - Get all available activity types |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/osherai/pipedrive-mcp-python'
If you have feedback or need assistance with the MCP directory API, please join our Discord server