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. |
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 | {} |
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
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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