Pipedrive MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | Logging level (debug, info, warn, error) | info |
| PIPEDRIVE_TOOLSETS | No | Comma-separated list of enabled tool categories | deals,persons,organizations,activities |
| PIPEDRIVE_API_TOKEN | Yes | Your Pipedrive API token | |
| PIPEDRIVE_READ_ONLY | No | Enable read-only mode (blocks all write operations) | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
| resources | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| deals_listA | List deals with pagination and filtering options. Returns a paginated list of deals. Use filters to narrow results by status, stage, owner, person, organization, or pipeline. Workflow tips:
Common use cases:
|
| deals_list_all_autoA | Automatically fetch ALL deals with pagination handling. This tool automatically handles pagination and fetches all deals matching the filters. Unlike deals/list, this returns ALL results in a single response. WARNING: This can return large datasets. Use filters to limit results. Workflow tips:
Common use cases:
|
| deals_list_archivedA | List archived deals with pagination and filtering options. Returns a paginated list of archived deals. Archived deals are deals that have been removed from active pipelines. Workflow tips:
Common use cases:
|
| deals_createA | Create a new deal in Pipedrive. Creates a new deal with the specified information. Only title is required. Custom fields:
Workflow tips:
Common use cases:
|
| deals_getA | Get detailed information about a specific deal by ID. Retrieves complete information about a single deal, including all custom fields. Workflow tips:
Common use cases:
|
| deals_updateA | Update an existing deal. Updates one or more fields of an existing deal. Only provide fields you want to change. Custom fields:
Workflow tips:
Common use cases:
|
| deals_move_to_stageA | Move a deal to a different stage in the pipeline. Convenience tool to move a deal to another stage. Use this instead of deals/update when only changing stages. Workflow tips:
Common use cases:
|
| deals_deleteA | Delete a deal permanently. WARNING: This permanently deletes the deal. Consider marking as lost instead. Workflow tips:
Common use cases:
|
| deals_duplicateA | Duplicate an existing deal. Creates a copy of an existing deal with all its properties. The new deal will have the same values, person, organization, etc. Workflow tips:
Common use cases:
|
| deals_searchA | Search for deals using a text query. Searches deals by title, notes, or custom fields. Much faster than filtering all deals. Workflow tips:
Common use cases:
|
| deals_get_summaryA | Get deal statistics and summary. Returns aggregated statistics about deals, including counts by status, total values, and conversion rates. Workflow tips:
Common use cases:
|
| deals_get_archived_summaryA | Get archived deals statistics and summary. Returns aggregated statistics about archived deals, including counts by status, total values, and conversion rates. Workflow tips:
Common use cases:
|
| deals_add_followerA | Add a follower to a deal. Followers receive notifications about deal updates and can track the deal's progress. Workflow tips:
Common use cases:
|
| deals_remove_followerA | Remove a follower from a deal. Stops a user from receiving notifications about this deal. Workflow tips:
Common use cases:
|
| deals_list_followersA | List all followers of a deal. Returns list of users following this deal and receiving notifications about it. Workflow tips:
Common use cases:
|
| deals_add_participantA | Add a participant (person) to a deal. Participants are persons who are involved in the deal beyond the primary contact. Workflow tips:
Common use cases:
|
| deals_remove_participantA | Remove a participant from a deal. Removes a person from the deal's participants list. Workflow tips:
Common use cases:
|
| deals_list_participantsA | List all participants of a deal. Returns all persons participating in this deal. Workflow tips:
Common use cases:
|
| deals_add_productA | Add a product to a deal. Attaches a product to the deal with specific pricing, quantity, and discount. Workflow tips:
Common use cases:
|
| deals_update_productA | Update a product attached to a deal. Modifies the price, quantity, discount, or other details of a product already attached to a deal. Workflow tips:
Common use cases:
|
| deals_remove_productA | Remove a product from a deal. Detaches a product from the deal. Workflow tips:
Common use cases:
|
| deals_list_productsA | List all products attached to a deal. Returns all products associated with this deal, including pricing and quantity details. Workflow tips:
Common use cases:
|
| deals_attach_fileA | Attach a file to a deal. Uploads and attaches a file to the deal. Useful for contracts, proposals, presentations, etc. Workflow tips:
Common use cases:
|
| deals_list_filesA | List all files attached to a deal. Returns all files associated with this deal. Workflow tips:
Common use cases:
|
| deals_get_deals_timelineA | Get deals timeline grouped by intervals. Returns open and won deals grouped by a defined interval of time set in a date-type field. Workflow tips:
Common use cases:
|
| deals_get_archived_deals_timelineA | Get archived deals timeline grouped by intervals. Returns archived deals grouped by a defined interval of time set in a date-type field. Workflow tips:
Common use cases:
|
| deals_list_activitiesA | List all activities associated with a deal. Returns all activities linked to a specific deal, including calls, meetings, tasks, emails, and deadlines. Workflow tips:
Common use cases:
|
| deals_list_field_updatesA | List updates about deal field values (changelog). Returns the complete changelog of a deal, showing all field value changes over time. Workflow tips:
Common use cases:
|
| deals_list_updatesA | List updates about a deal (flow). Returns a chronological list of all updates and activities related to a deal, including field changes, notes, emails, and other events. Workflow tips:
Common use cases:
|
| deals_list_participant_updatesA | List updates about participants of a deal. Returns the changelog of participants added to or removed from a deal. Workflow tips:
Common use cases:
|
| deals_list_mail_messagesA | List mail messages associated with a deal. Returns all email messages linked to a specific deal, including sent and received emails. Workflow tips:
Common use cases:
|
| deals_mergeA | Merge two deals together. Merges one deal into another, combining their data. The source deal will be deleted and its data will be merged into the target deal. Workflow tips:
Common use cases:
Warning: This operation is irreversible. The source deal (id) will be permanently deleted. |
| deals_list_permitted_usersA | List permitted users for a deal. Returns the list of users who have access to view and edit a specific deal based on its visibility settings. Workflow tips:
Common use cases:
|
| deals_list_personsA | List all persons associated with a deal. Returns all persons (contacts) linked to a specific deal, including the primary contact and any participants. Workflow tips:
Common use cases:
|
| deals_mark_as_wonA | Mark a deal as won. Updates the deal status to "won" and moves it to the appropriate won stage in the pipeline. Workflow tips:
Common use cases:
|
| deals_mark_as_lostA | Mark a deal as lost. Updates the deal status to "lost" and optionally records the reason why the deal was lost. Workflow tips:
Common use cases:
|
| deals_bulk_deleteA | Delete multiple deals in bulk. Marks multiple deals as deleted. After 30 days, the deals will be permanently deleted. Workflow tips:
Common use cases:
Warning: This operation marks deals as deleted. They can be recovered within 30 days. |
| deals_convert_to_leadA | Convert a deal into a lead (asynchronous, two-step flow). Step 1 (this tool): POST starts the conversion. Returns { id: conversion_id, status: 'queued' | 'running' }. Step 2 (separate tool): poll deals_convert_status with the deal id AND the conversion_id returned here, every few seconds, until status === 'completed'. The completed response includes the resulting lead_id. Related entities (notes, files, emails, activities) are transferred to the new lead. |
| deals_convert_statusA | Check the status of a deal-to-lead conversion job. Use the conversion_id returned by deals_convert_to_lead. Possible statuses: queued, running, completed, failed. When completed, the response includes the resulting lead_id. |
| deals_list_installmentsA | List installments attached to one or more deals (API v2). Installments are scheduled, fixed payments on a deal (the modern replacement for the legacy subscriptions feature). Pass the deal IDs you want installments for. Common use cases:
|
| deals_add_installmentA | Add an installment to a deal (API v2). Required: description (name), amount (positive, non-zero) and billing_date (YYYY-MM-DD). Common use cases:
|
| deals_update_installmentA | Update an existing installment on a deal (API v2). Provide the deal id, the installment_id, and any of description / amount / billing_date. |
| deals_delete_installmentB | Delete an installment from a deal (API v2). |
| persons_listA | List all persons with optional filtering and pagination. Supports filtering by:
Returns paginated results. Use start/limit for manual pagination. |
| persons_list_all_autoA | Automatically fetch ALL persons using pagination. This tool handles pagination automatically and returns all persons matching the filters. Use this when you need the complete list without managing pagination manually. Warning: This can return a large dataset if you have many persons. Supports the same filters as persons_list:
|
| persons_get_collectionA | Get all persons using the collection endpoint. This endpoint provides an alternative way to fetch persons with different capabilities:
Key differences from persons_list:
Parameters:
Use cases:
The cursor-based approach is more reliable than offset pagination for datasets that change frequently, as it maintains consistency even when records are added or deleted during pagination. |
| persons_createA | Create a new person in Pipedrive. Required fields:
Optional fields:
Example email/phone arrays: { "email": [ {"value": "john@company.com", "primary": true, "label": "work"}, {"value": "john@personal.com", "primary": false, "label": "home"} ], "phone": [ {"value": "+1234567890", "primary": true, "label": "mobile"} ] } Custom fields:
|
| persons_getA | Get detailed information about a specific person by ID. Returns all person data including:
|
| persons_updateA | Update an existing person's information. Required fields:
Optional fields (only provide fields you want to change):
Note: When updating email/phone arrays, provide the complete array (it replaces the existing one). Custom fields:
|
| persons_deleteA | Delete a person from Pipedrive. Warning: This action cannot be undone. The person will be permanently deleted. Note: Deleting a person does not automatically delete associated:
|
| persons_bulk_deleteA | Delete multiple persons in bulk. Efficiently deletes multiple person records in a single operation. This is useful for:
WARNING: This action is irreversible. All specified persons will be permanently deleted, including:
Best practices:
The 'ids' parameter should be a comma-separated string of person IDs. Example: "123,456,789" will delete persons with IDs 123, 456, and 789. Rate limits may apply for very large deletions. Consider batching if deleting hundreds or thousands of records. |
| persons_searchA | Search for persons by name, email, phone, or notes. The search uses Pipedrive's intelligent search that:
Search options:
The search is case-insensitive and supports partial matches. |
| persons_list_dealsA | List all deals associated with a specific person. Returns all deals where the person is linked, including:
Filters:
Supports pagination for large result sets. |
| persons_list_activitiesA | List all activities associated with a specific person. Returns all activities (calls, meetings, tasks, etc.) linked to the person, including:
Filters:
Supports pagination for large result sets. |
| persons_list_filesA | List all files attached to a specific person. Returns all files associated with the person, including:
Supports:
This includes files uploaded directly to the person and files from related deals/activities. |
| persons_list_productsA | List products associated with a person. Returns all products that have been sold to or associated with this person through deals. This provides an overview of:
Each entry includes:
This is useful for:
The data is aggregated from all deals associated with the person. |
| persons_list_mail_messagesA | List mail messages associated with a person. Returns all email messages linked to this person, including:
This is useful for:
Supports pagination for handling large email histories. |
| persons_add_followerA | Add a follower to a person. Followers are users who will receive notifications about updates to this person. This is useful for team collaboration and keeping stakeholders informed. When a user follows a person, they will be notified about:
Note: Users can only be added as followers if they have access to the person. |
| persons_list_followersA | List all followers of a specific person. Returns a list of users who are following this person and will receive notifications about updates. Each follower entry includes:
This is useful for:
|
| persons_delete_followerA | Delete a follower from a person. Removes a user from the list of followers for this person. After removal:
This is useful for:
Note: The follower_id is the user ID of the follower to remove. |
| persons_list_field_updatesA | List updates about person field values (changelog). Returns a chronological list of changes made to person fields. This is useful for:
The changelog shows:
Uses cursor-based pagination for efficient navigation through large change histories. |
| persons_list_updatesA | List updates about a person (activity stream). Returns a comprehensive timeline of all activities and changes related to a person:
This provides a complete audit trail and activity history for the person. Parameters:
Useful for:
|
| persons_mergeA | Merge two persons into one. Combines two person records, moving all related data to the primary person:
WARNING: This action is irreversible. The person specified in merge_with_id will be deleted permanently. Best practices:
Use cases:
|
| persons_list_permitted_usersA | List users permitted to access a person. Returns a list of all users who have permission to view and/or edit this person record. This is determined by:
Each entry includes:
This is useful for:
Note: Results depend on the visibility settings of the person (e.g., owner only, owner's team, everyone, etc.). |
| persons_add_pictureA | Add or update a person's profile picture. Uploads an image file to set as the person's profile picture. The image will be:
Image requirements:
Cropping parameters (optional):
Workflow:
Use cases:
|
| persons_delete_pictureA | Delete a person's profile picture. Removes the profile picture from the person record. The person will revert to:
This is useful for:
Note: This does not delete the image file from Pipedrive storage, it only removes the association with the person. |
| organizations_listC | List organizations with pagination support. Returns paginated list of organizations with filtering options. |
| organizations_list_all_autoB | Automatically fetch all organizations across all pages. Use this when you need complete data without manual pagination. |
| organizations_createC | Create a new organization. Name is required. Supports address fields and custom fields. Custom fields:
|
| organizations_getB | Get details of a specific organization by ID. |
| organizations_updateA | Update an existing organization. Only provided fields will be updated. Custom fields:
|
| organizations_deleteC | Delete an organization by ID. |
| organizations_searchC | Search organizations by name or other fields. Returns matching organizations. |
| organizations_list_personsB | List all persons associated with a specific organization. |
| organizations_list_dealsA | List all deals associated with a specific organization. |
| organizations_list_activitiesB | List all activities associated with a specific organization. |
| organizations_list_filesB | List all files attached to a specific organization. |
| organizations_add_followerC | Add a follower to an organization. |
| organizations_list_followersA | List all followers of a specific organization. Returns the users that are following this organization and will receive notifications about updates. Each follower entry includes:
This is useful for:
|
| organizations_bulk_deleteA | Delete multiple organizations in bulk. Efficiently deletes multiple organization records in a single operation. This is useful for:
WARNING: This action is irreversible. All specified organizations will be permanently deleted, including:
Best practices:
The 'ids' parameter should be a comma-separated string of organization IDs. Example: "123,456,789" will delete organizations with IDs 123, 456, and 789. Rate limits may apply for very large deletions. Consider batching if deleting hundreds or thousands of records. |
| organizations_get_collectionA | Get all organizations using the collection endpoint. This endpoint provides an alternative way to fetch organizations with different capabilities:
Key differences from organizations/list:
Parameters:
Use cases:
The cursor-based approach is more reliable than offset pagination for datasets that change frequently, as it maintains consistency even when records are added or deleted during pagination. |
| organizations_list_field_updatesA | List updates about organization field values (changelog). Returns a chronological list of changes made to organization fields. This is useful for:
The changelog shows:
Uses cursor-based pagination for efficient navigation through large change histories. |
| organizations_list_updatesA | List updates about an organization (activity stream). Returns a comprehensive timeline of all activities and changes related to an organization:
This provides a complete audit trail and activity history for the organization. Parameters:
Useful for:
|
| organizations_delete_followerA | Delete a follower from an organization. Removes a user from the list of followers for this organization. After removal:
This is useful for:
Note: The follower_id is the user ID of the follower to remove. |
| organizations_list_mail_messagesB | List mail messages associated with an organization. Returns all email messages linked to this organization, including:
This is useful for:
Supports pagination for handling large email histories. |
| organizations_mergeA | Merge two organizations into one. Combines two organization records, moving all related data to the primary organization:
WARNING: This action is irreversible. The organization specified in merge_with_id will be deleted permanently. Best practices:
Use cases:
|
| organizations_list_permitted_usersA | List users permitted to access an organization. Returns a list of all users who have permission to view and/or edit this organization record. This is determined by:
Each entry includes:
This is useful for:
Note: Results depend on the visibility settings of the organization (e.g., owner only, owner's team, everyone, etc.). |
| activities_listB | List activities with pagination and filtering options. Can filter by user, type, done status, and date range. |
| activities_list_all_autoA | Automatically fetch all activities across all pages. Use this when you need complete data without manual pagination. |
| activities_createA | Create a new activity. Subject, type, and due_date are required. Can link to deals, persons, organizations, projects, or leads. |
| activities_getB | Get details of a specific activity by ID. |
| activities_updateA | Update an existing activity. Only provided fields will be updated. |
| activities_deleteB | Delete an activity by ID. |
| activities_bulk_deleteA | Delete multiple activities in a single request. This endpoint allows you to delete up to 100 activities at once by providing an array of activity IDs. Workflow tips:
Common use cases:
Example: { "ids": [123, 456, 789] } |
| activities_mark_as_doneA | Mark an activity as done. This is a convenience tool that updates the activity with done: true. |
| activities_list_by_dealC | List all activities associated with a specific deal. |
| files_uploadA | Upload a file to Pipedrive and attach it to a deal, person, organization, activity, or product. Uploads a file from the specified file path and associates it with at least one entity. Workflow tips:
Common use cases:
|
| files_listA | List files with pagination and filtering options. Returns a paginated list of files. Use filters to narrow results by associated entity (deal, person, organization, activity, product). Workflow tips:
Common use cases:
|
| files_getA | Get detailed information about a specific file. Returns file metadata including name, size, type, associated entities, upload date, and more. Workflow tips:
Common use cases:
|
| files_downloadA | Get download URL for a file. Returns a temporary download URL that can be used to download the file content. Workflow tips:
Common use cases:
|
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create-deal-workflow | Guide through creating a complete deal with person and initial activity |
| sales-qualification | Run BANT qualification checklist on a deal |
| follow-up-sequence | Create a sequence of follow-up activities |
| weekly-pipeline-review | Generate weekly pipeline report |
| lost-deal-analysis | Analyze lost deals for patterns |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Sales Pipelines Configuration | All sales pipelines with stages, order, and deal counts. Use this to understand pipeline structure before moving deals. |
| Custom Fields Definitions | All custom fields across all entity types (deals, persons, organizations, activities). Check this before creating/updating records to know available fields. |
| Current User Info | Authenticated user information including permissions, timezone, and locale. |
TDQS
Scored across 303 tools
Most tools are clearly scoped by resource (deals, persons, organizations, products, leads) and action (list, create, update, delete). However, there are several pairs that could be confused: deals_list_field_updates vs deals_list_updates vs deals_list_participant_updates all provide different update feeds; users_get_current vs system_get_current_user both return the current user; leads_convert_to_deal and deals_convert_to_lead are distinct but could be mistaken for each other.
The tool names follow a consistent <entity>_<action> pattern (e.g., deals_list, deals_create, deals_update). A few minor deviations exist such as 'systems_get_current_user' instead of 'users_get_current' and 'lead_labels_create' vs 'leads_get_labels', but overall the pattern is clear and predictable.
With 303 tools, this server is vastly over-scoped for a typical agent. The sheer number makes it difficult for an agent to discover and select the right tool, even though each individual tool may be well-defined. A more curated set of essential CRUD and workflows would be more appropriate.
The server covers the full lifecycle for core entities (deals, persons, organizations, products, leads, activities, notes, files) including create, read, update, delete, search, add/remove followers, and basic analytics. However, there are gaps in edge-case operations like webhook management, permissions, and custom fields, though they are present, and the completeness of specific workflows like lead conversion is supported.