Pipedrive MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PIPEDRIVE_API_KEY | Yes | Your Pipedrive API key (40 characters). Find it in Pipedrive under Settings > Personal preferences > API. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| pipedrive_list_dealsA | List deals from Pipedrive with optional filtering by owner, person, organization, pipeline, stage, or status. Returns paginated results. |
| pipedrive_get_dealA | Get detailed information about a specific deal by ID, including all standard and custom fields. |
| pipedrive_create_dealA | Create a new deal in Pipedrive. Only title is required; all other fields are optional. |
| pipedrive_update_dealA | Update an existing deal in Pipedrive. Specify the deal ID and any fields to update. |
| pipedrive_search_dealsA | Search for deals by text in title. Supports fuzzy matching by default. |
| pipedrive_list_deal_followersB | List all followers for a deal. |
| pipedrive_add_deal_followerB | Add a follower to a deal. |
| pipedrive_get_deal_followers_changelogA | Get the followers changelog for a deal. |
| pipedrive_list_deal_productsA | List line-item products attached to a deal. Returns paginated results. |
| pipedrive_add_deal_productB | Attach a single product as a line item to a deal. |
| pipedrive_update_deal_productA | Update a line-item product attached to a deal. All body fields optional. |
| pipedrive_bulk_add_deal_productsA | Bulk-add up to 100 line-item products to a deal in one request. |
| pipedrive_list_deal_discountsB | List all additional discounts applied to a deal. |
| pipedrive_add_deal_discountC | Add an additional discount to a deal. |
| pipedrive_update_deal_discountA | Update an additional discount on a deal. All fields except IDs are optional. |
| pipedrive_list_deal_installmentsA | List installments across one or more deals. Requires deal_ids. Growth+ plan required. |
| pipedrive_add_deal_installmentA | Add an installment (payment schedule entry) to a deal. Growth+ plan required; the deal must have at least one one-time product and no recurring products. |
| pipedrive_update_deal_installmentB | Update an installment on a deal. Growth+ plan required; all body fields optional. |
| pipedrive_list_archived_dealsA | List archived deals with the same filtering as the active deals list (owner, person, organization, pipeline, stage, status). Returns paginated results. |
| pipedrive_get_deal_conversion_statusA | Get the status of a deal-to-lead conversion job. Status contract: 'completed' (terminal, carries lead_id), 'failed'/'rejected' (terminal, stop polling, no lead produced), 'not_started'/'running' (in-progress, re-poll). Only 'completed' carries lead_id, and conversion status is purged after a few days, so a 404 returned after a prior valid status means the status was purged (terminal stop-polling signal, not a transient error). Use a bounded poll budget (e.g. up to ~6 attempts with short backoff), not an unbounded loop. |
| pipedrive_list_personsB | List persons (contacts) from Pipedrive with optional filtering by owner, organization, or first letter of name. |
| pipedrive_get_personA | Get detailed information about a specific person by ID. |
| pipedrive_create_personA | Create a new person (contact) in Pipedrive. Only name is required. |
| pipedrive_update_personB | Update an existing person in Pipedrive. |
| pipedrive_search_personsA | Search for persons by name, email, or phone number. |
| pipedrive_list_person_followersA | List all followers for a person. |
| pipedrive_add_person_followerB | Add a follower to a person. |
| pipedrive_get_person_followers_changelogA | Get the followers changelog for a person. |
| pipedrive_get_person_pictureA | Get the picture for a person (read-only; returns picture metadata and sized image URLs). Returns an error if the person has no picture. |
| pipedrive_list_activitiesA | List activities from Pipedrive with optional filtering by owner, deal, person, organization, type, or completion status. |
| pipedrive_get_activityB | Get detailed information about a specific activity by ID. |
| pipedrive_create_activityB | Create a new activity in Pipedrive. Subject and type are required. |
| pipedrive_update_activityA | Update an existing activity in Pipedrive. Use this to mark activities as done. |
| pipedrive_list_notesA | List notes from Pipedrive with optional filtering by deal, person, organization, or lead. |
| pipedrive_get_noteA | Get detailed information about a specific note by ID. |
| pipedrive_create_noteA | Create a new note in Pipedrive. Content is required. Link to a deal, person, organization, or lead. |
| pipedrive_update_noteB | Update an existing note in Pipedrive. |
| pipedrive_list_leadsA | List active (non-archived) leads from Pipedrive with optional filtering by owner, person, or organization. |
| pipedrive_list_archived_leadsA | List archived leads from Pipedrive with optional filtering by owner, person, or organization. |
| pipedrive_get_leadA | Get detailed information about a specific lead by UUID. |
| pipedrive_create_leadA | Create a new lead in Pipedrive. Title is required; link to at least one of person_id or organization_id. |
| pipedrive_update_leadB | Update an existing lead in Pipedrive. |
| pipedrive_search_leadsA | Search for leads in Pipedrive by title or associated contacts. |
| pipedrive_convert_lead_to_dealA | Convert a lead into a deal (Pipedrive v2). The conversion runs asynchronously; this tool polls until it completes (typically under 5s) and returns the new deal ID. If it is still running after ~30s, it returns the conversion_id and status for manual follow-up. |
| pipedrive_get_lead_conversion_statusB | Get the status of an async lead-to-deal conversion by conversion ID (Pipedrive v2 GET /leads/{id}/convert/status/{conversion_id}). |
| pipedrive_list_projectsA | List projects from Pipedrive with optional filtering by board, phase, or status. Returns paginated results. (Requires the Projects add-on; Projects API is in public beta.) |
| pipedrive_get_projectA | Get detailed information about a specific project by ID. (Requires the Projects add-on; Projects API is in public beta.) |
| pipedrive_create_projectA | Create a new project in Pipedrive. Requires title, board_id, and phase_id. (Requires the Projects add-on; Projects API is in public beta.) |
| pipedrive_update_projectA | Update an existing project in Pipedrive. (Requires the Projects add-on; Projects API is in public beta.) |
| pipedrive_search_projectsA | Search for projects in Pipedrive by title. (Requires the Projects add-on; Projects API is in public beta.) |
| pipedrive_archive_projectA | Archive a project by setting its status to archived. (Requires the Projects add-on; Projects API is in public beta.) |
| pipedrive_list_project_tasksA | List tasks for a project you already have the ID for — pass only |
| pipedrive_list_project_templatesA | List all project templates available in Pipedrive. Returns paginated results. |
| pipedrive_get_project_templateA | Get detailed information about a specific project template by ID. |
| pipedrive_list_archived_projectsA | List archived projects from Pipedrive with optional filtering by filter, phase, or status. (Projects add-on; Projects API in public beta.) |
| pipedrive_get_project_permitted_usersA | Get the list of user IDs that have permission to access a project. Returns an array of integer user IDs. (Projects add-on; Projects API in public beta.) |
| pipedrive_get_project_changelogA | Get the changelog for a project, showing what changed, when, and by whom. Returns paginated entries with actor_user_id, new_values, and old_values. (Projects add-on; Projects API in public beta.) |
| pipedrive_list_productsA | List products from Pipedrive with optional filtering by owner, IDs, or filter. |
| pipedrive_get_productA | Get detailed information about a specific product by ID. |
| pipedrive_search_productsB | Search for products by name, code, or custom fields. |
| pipedrive_create_productB | Create a new product in Pipedrive. Only name is required. |
| pipedrive_update_productB | Update an existing product in Pipedrive. |
| pipedrive_list_product_variationsB | List all variations for a product. |
| pipedrive_add_product_variationB | Add a variation to a product. |
| pipedrive_update_product_variationB | Update an existing product variation. |
| pipedrive_list_product_followersA | List all followers for a product. |
| pipedrive_add_product_followerB | Add a follower to a product. |
| pipedrive_get_product_followers_changelogA | Get the followers changelog for a product. |
| pipedrive_get_product_imageA | Get the image of a product (returns a single image with a public URL valid for 7 days). |
| pipedrive_upload_product_imageA | Upload an image for a product. Provide the image via EITHER file_path OR base64_data (exactly one required). Supports png, jpeg, gif, and webp. Note: file_path is read by the SERVER process via the filesystem and is disabled by default; the operator must set PIPEDRIVE_IMAGE_BASE_DIR and the path must resolve within it; otherwise use base64_data, which is transport-safe. |
| pipedrive_update_product_imageA | Update (replace) the image of a product. Provide the image via EITHER file_path OR base64_data (exactly one required). Supports png, jpeg, gif, and webp. Note: file_path is read by the SERVER process via the filesystem and is disabled by default; the operator must set PIPEDRIVE_IMAGE_BASE_DIR and the path must resolve within it; otherwise use base64_data, which is transport-safe. |
| pipedrive_list_tasksA | General task query across all projects, with optional project_id, assignee_id, done/milestone, and parent filters. Use for anything beyond a single project's full task list. (Projects add-on; Projects API in public beta.) |
| pipedrive_get_taskA | Get detailed information about a specific task by ID. (Projects add-on; Projects API in public beta.) |
| pipedrive_create_taskA | Create a new task in a project. title and project_id are required. Use boolean is_done/is_milestone (same field names as the GET response); a milestone task must have a due_date. (Projects add-on; Projects API in public beta.) |
| pipedrive_update_taskA | Update an existing task. Only id is required; all other fields are optional. Use boolean is_done/is_milestone (same field names as the GET response); a milestone task must have a due_date. (Projects add-on; Projects API in public beta.) |
| pipedrive_list_boardsA | List all project boards. Returns the complete list (no pagination — the boards endpoint returns all records at once). (Projects add-on; Projects API in public beta.) |
| pipedrive_get_boardA | Get detailed information about a specific project board by ID. (Projects add-on; Projects API in public beta.) |
| pipedrive_create_boardC | Create a new project board. name is required. (Projects add-on; Projects API in public beta.) |
| pipedrive_update_boardA | Update an existing project board. Only id is required; all other fields are optional. (Projects add-on; Projects API in public beta.) |
| pipedrive_list_phasesA | List all phases for a project board. board_id is required. Returns the complete list (no pagination — the phases endpoint returns all records for a board at once). (Projects add-on; Projects API in public beta.) |
| pipedrive_get_phaseA | Get detailed information about a specific project phase by ID. (Projects add-on; Projects API in public beta.) |
| pipedrive_create_phaseB | Create a new project phase. name and board_id are required. (Projects add-on; Projects API in public beta.) |
| pipedrive_update_phaseA | Update an existing project phase. Only id is required; all other fields are optional. Set board_id to move this phase to a different board. (Projects add-on; Projects API in public beta.) |
| pipedrive_get_person_emailsA | Get email messages linked to a person (company-wide, all users' emails). Returns metadata for emails from any user's mailbox that are linked to this person. Note: To get full message body, use pipedrive_get_mail_message, but only for emails in YOUR mailbox. |
| pipedrive_get_deal_emailsA | Get email messages linked to a deal (company-wide, all users' emails). Returns metadata for emails from any user's mailbox that are linked to this deal. Note: To get full message body, use pipedrive_get_mail_message, but only for emails in YOUR mailbox. |
| pipedrive_list_mail_threadsA | List mail threads from YOUR mailbox only (authenticated user). Other users' threads are not accessible. Use folder parameter to filter by inbox, drafts, sent, or archive. |
| pipedrive_get_mail_threadA | Get a mail thread with messages. Access depends on visibility settings - threads visible within deals/persons you can access should work. Returns 404 if the thread isn't accessible to you. |
| pipedrive_get_mail_messageA | Get full email message with body. Access depends on visibility settings - messages linked to deals/persons you can access should work, even if sent by other users. |
| pipedrive_list_organization_fieldsA | List all organization field definitions, including custom fields. Use this to map 40-character field keys to human-readable names. |
| pipedrive_list_deal_fieldsA | List all deal field definitions, including custom fields. Essential for understanding deal data structure. |
| pipedrive_list_person_fieldsA | List all person field definitions, including custom fields. Use to understand contact data structure. |
| pipedrive_list_product_fieldsA | List all product field definitions, including custom fields. |
| pipedrive_list_project_fieldsA | List all project field definitions, including custom fields. (Projects add-on; Projects API in public beta.) |
| pipedrive_get_fieldA | Get details of a specific field by its key. Useful for looking up what a 40-character hash field key means. |
| pipedrive_create_deal_fieldA | Create a deal custom field. field_name and field_type are required. For enum/set types, options is required. The response data.field_code is the 40-char hash you must keep to update or delete the field later. |
| pipedrive_update_deal_fieldA | Update a deal custom field by field_code. field_type and field_code cannot be changed. |
| pipedrive_update_deal_field_optionsA | Bulk-update option labels of a deal enum/set field. Atomic: the whole request fails if any option ID does not exist. |
| pipedrive_create_person_fieldA | Create a person custom field. field_name and field_type are required. For enum/set types, options is required. The response data.field_code is the 40-char hash to keep for later updates. |
| pipedrive_update_person_fieldA | Update a person custom field by field_code. field_type and field_code cannot be changed. |
| pipedrive_update_person_field_optionsA | Bulk-update option labels of a person enum/set field. Atomic: the whole request fails if any option ID does not exist. |
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/ckalima/pipedrive-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server