# Pipedrive CRM (mcpb · pipedrive-mcp-server-2.5.0.mcpb)

MCP server for Pipedrive CRM. 155 tools for deals, persons, organizations, activities, and more.

- Trust score: 47/100 (low)
- Change this week: +10
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- mcpb · `pipedrive-mcp-server-2.5.0.mcpb`: 47/100 (this document), [markdown](https://verifymcp.io/servers/ckalima-pipedrive-mcp-server/https-github-com-ckalima-pipedrive-mcp-server-releases-download-v2-5-0-pipedrive.md), [page](https://verifymcp.io/servers/ckalima-pipedrive-mcp-server/https-github-com-ckalima-pipedrive-mcp-server-releases-download-v2-5-0-pipedrive)
- npm · `@ckalima/pipedrive-mcp-server`: 75/100, [markdown](https://verifymcp.io/servers/ckalima-pipedrive-mcp-server/ckalima-pipedrive-mcp-server.md), [page](https://verifymcp.io/servers/ckalima-pipedrive-mcp-server/ckalima-pipedrive-mcp-server)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/ckalima/pipedrive-mcp-server/releases/download/v2.5.0/pipedrive-mcp-server-2.5.0.mcpb`
- Version: `2.5.0`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Supply Chain Security**: 13/100
  - Malware scan not yet available for this package.
  - CVE data not yet available for this package.
  - No install/post-install scripts declared.
  - Only part of the dependency tree could be resolved (94 of 98), so this covers what we could see, not the whole tree.
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (MIT).
  - Actively maintained (last published 11 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 74/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 14161 tokens (~115/item across 123 items; 123 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

- Download bundle: `https://github.com/ckalima/pipedrive-mcp-server/releases/download/v2.5.0/pipedrive-mcp-server-2.5.0.mcpb`

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 47, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-02 (score 46, +18)

- [functional regression] Security disclosure: fail → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional improvement] Schema quality: unverified → excellent
- [functional improvement] Stability: unverified → 0.23
- [functional improvement] MCP protocol: unverified → pass

### 2026-08-01 (score 28, −5)

- [security] Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet.
- [functional regression] Capabilities: pass → unverified

### 2026-07-31 (score 33, +17)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 16, −21)

- [functional regression] Tool coverage: 100 → unverified
- [functional improvement] Dependency health: unverified → partial
- [functional] First check of Schema quality: unverified

### 2026-07-27 (score 37)

First indexed and scored.

## MCP tools (123)

### `pipedrive_list_deals` (~331 tokens)

List deals from Pipedrive with optional filtering by owner, person, organization, pipeline, stage, or status. Returns paginated results.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `custom_fields` (string): Include custom fields in response (comma-separated field keys or 'all')
- `filter_id` (number): Filter by saved filter ID
- `ids` (string): Comma-separated deal IDs to fetch (max 100)
- `include_fields` (string): Comma-separated extra fields (v2 enum, e.g. next_activity_id, last_activity_id, products_count, files_count, notes_count, followers_count)
- `limit` (number): Number of items to return (1-100, default 50)
- `org_id` (number): Filter by linked organization ID
- `owner_id` (number): Filter by owner user ID
- `person_id` (number): Filter by linked person ID
- `pipeline_id` (number): Filter by pipeline ID
- `sort_by` (string): Field to sort by
- `sort_direction` (string): Sort direction (default: desc)
- `stage_id` (number): Filter by stage ID
- `status` (string): Filter by deal status (omit to return all non-deleted deals)
- `updated_since` (string): Filter deals updated after this time (RFC3339 format, e.g. 2024-01-01T00:00:00Z)
- `updated_until` (string): Filter deals updated before this time (RFC3339 format)

### `pipedrive_get_deal` (~100 tokens)

Get detailed information about a specific deal by ID, including all standard and custom fields.

Input parameters:

- `custom_fields` (string): Include custom fields in response (comma-separated field keys or 'all')
- `id` (number, required): The deal ID
- `include_fields` (string): Comma-separated extra fields (v2 enum, e.g. next_activity_id, last_activity_id, products_count, files_count, notes_count, followers_count)

### `pipedrive_create_deal` (~231 tokens)

Create a new deal in Pipedrive. Only title is required; all other fields are optional.

Input parameters:

- `currency` (string): 3-letter currency code (e.g., USD, EUR)
- `custom_fields` (object): Custom field values as object with field keys
- `expected_close_date` (string): Expected close date (YYYY-MM-DD)
- `label_ids` (array): Label IDs to attach to deal
- `org_id` (number): ID of organization to link to deal
- `owner_id` (number): Owner user ID
- `person_id` (number): ID of person to link to deal
- `pipeline_id` (number): Pipeline ID
- `probability` (number): Success probability (0-100)
- `stage_id` (number): Stage ID
- `status` (string): Deal status
- `title` (string, required): Deal title (required)
- `value` (number): Deal monetary value
- `visible_to` (number): Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company

### `pipedrive_update_deal` (~279 tokens)

Update an existing deal in Pipedrive. Specify the deal ID and any fields to update.

Input parameters:

- `currency` (string): New currency code
- `custom_fields` (object): Custom field values as object with field keys
- `expected_close_date` (string): New expected close date (YYYY-MM-DD)
- `id` (number, required): Deal ID to update
- `label_ids` (array): Label IDs to set on deal
- `lost_reason` (string): Lost reason (when status is 'lost')
- `lost_time` (string): Lost time (when status is 'lost')
- `org_id` (number): New linked organization ID
- `owner_id` (number): New owner user ID
- `person_id` (number): New linked person ID
- `pipeline_id` (number): New pipeline ID
- `probability` (number): New success probability (0-100)
- `stage_id` (number): New stage ID
- `status` (string): New deal status
- `title` (string): New deal title
- `value` (number): New deal value
- `visible_to` (number): Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company
- `won_time` (string): Won time (when status is 'won')

### `pipedrive_search_deals` (~144 tokens)

Search for deals by text in title. Supports fuzzy matching by default.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `exact_match` (boolean): Use exact match instead of fuzzy
- `fields` (string): Comma-separated fields to search (title, notes, custom_fields). Defaults to all.
- `limit` (number): Number of results (1-100)
- `org_id` (number): Filter by linked organization
- `person_id` (number): Filter by linked person
- `status` (string): Filter by status (omit to return all non-deleted deals)
- `term` (string, required): Search term

### `pipedrive_list_deal_followers` (~55 tokens)

List all followers for a deal.

Input parameters:

- `cursor` (string): Cursor for pagination
- `id` (number, required): The deal ID
- `limit` (number): Number of items (1-100)

### `pipedrive_add_deal_follower` (~51 tokens)

Add a follower to a deal.

Input parameters:

- `id` (number, required): The deal ID
- `user_id` (number, required): The ID of the user to add as a follower (required)

### `pipedrive_get_deal_followers_changelog` (~59 tokens)

Get the followers changelog for a deal.

Input parameters:

- `cursor` (string): Cursor for pagination
- `id` (number, required): The deal ID
- `limit` (number): Number of items (1-100)

### `pipedrive_list_deal_products` (~83 tokens)

List line-item products attached to a deal. Returns paginated results.

Input parameters:

- `cursor` (string): Cursor for pagination
- `id` (number, required): The deal ID
- `limit` (number): Number of items (1-100)
- `sort_by` (string): Field to sort by
- `sort_direction` (string): Sort direction

### `pipedrive_add_deal_product` (~241 tokens)

Attach a single product as a line item to a deal.

Input parameters:

- `billing_frequency` (string): Billing frequency for recurring products
- `billing_frequency_cycles` (number|null): Number of billing cycles (null = unlimited)
- `billing_start_date` (string|null): Billing start date (YYYY-MM-DD, null to clear)
- `comments` (string): Free-text comments for this line item
- `discount` (number): Discount applied to the line item (default 0)
- `discount_type` (string): Whether discount is a percentage or fixed amount (default percentage)
- `id` (number, required): The deal ID
- `is_enabled` (boolean): Whether the product is enabled on the deal (default true)
- `item_price` (number, required): Price of one unit (required)
- `product_id` (number, required): The product ID to attach (required)
- `product_variation_id` (number|null): Product variation ID (null to clear)
- `quantity` (number, required): Quantity of the product (required)
- `tax` (number): Tax percentage (default 0)
- `tax_method` (string): How tax is applied

### `pipedrive_update_deal_product` (~247 tokens)

Update a line-item product attached to a deal. All body fields optional.

Input parameters:

- `billing_frequency` (string): Billing frequency for recurring products
- `billing_frequency_cycles` (number|null): Number of billing cycles (null = unlimited)
- `billing_start_date` (string|null): Billing start date (YYYY-MM-DD, null to clear)
- `comments` (string): Free-text comments for this line item
- `discount` (number): Discount applied to the line item
- `discount_type` (string): Whether discount is a percentage or fixed amount
- `id` (number, required): The deal ID
- `is_enabled` (boolean): Whether the product is enabled on the deal
- `item_price` (number): Price of one unit
- `product_attachment_id` (number, required): The product-attachment ID (the line item's own ID on the deal)
- `product_id` (number): The product ID to attach
- `product_variation_id` (number|null): Product variation ID (null to clear)
- `quantity` (number): Quantity of the product
- `tax` (number): Tax percentage
- `tax_method` (string): How tax is applied

### `pipedrive_bulk_add_deal_products` (~58 tokens)

Bulk-add up to 100 line-item products to a deal in one request.

Input parameters:

- `data` (array, required): Array of 1-100 line-item products to add
- `id` (number, required): The deal ID

### `pipedrive_list_deal_discounts` (~33 tokens)

List all additional discounts applied to a deal.

Input parameters:

- `id` (number, required): The deal ID

### `pipedrive_add_deal_discount` (~74 tokens)

Add an additional discount to a deal.

Input parameters:

- `amount` (number, required): Discount amount, must be positive (required)
- `description` (string, required): Discount description (required)
- `id` (number, required): The deal ID
- `type` (string, required): Whether amount is a percentage or fixed amount (required)

### `pipedrive_update_deal_discount` (~86 tokens)

Update an additional discount on a deal. All fields except IDs are optional.

Input parameters:

- `amount` (number): Discount amount, must be positive
- `description` (string): Discount description
- `discount_id` (string, required): The discount UUID
- `id` (number, required): The deal ID
- `type` (string): Whether amount is a percentage or fixed amount

### `pipedrive_list_deal_installments` (~97 tokens)

List installments across one or more deals. Requires deal_ids. Growth+ plan required.

Input parameters:

- `cursor` (string): Cursor for pagination
- `deal_ids` (array, required): Deal IDs to fetch installments for (1-100, required)
- `limit` (number): Number of items (1-100)
- `sort_by` (string): Field to sort by
- `sort_direction` (string): Sort direction

### `pipedrive_add_deal_installment` (~101 tokens)

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.

Input parameters:

- `amount` (number, required): Installment amount, must be positive (required)
- `billing_date` (string, required): Billing date in YYYY-MM-DD format (required)
- `description` (string, required): Installment description (required)
- `id` (number, required): The deal ID

### `pipedrive_update_deal_installment` (~91 tokens)

Update an installment on a deal. Growth+ plan required; all body fields optional.

Input parameters:

- `amount` (number): Installment amount, must be positive
- `billing_date` (string): Billing date in YYYY-MM-DD format
- `description` (string): Installment description
- `id` (number, required): The deal ID
- `installment_id` (number, required): The installment ID

### `pipedrive_list_archived_deals` (~335 tokens)

List archived deals with the same filtering as the active deals list (owner, person, organization, pipeline, stage, status). Returns paginated results.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `custom_fields` (string): Include custom fields in response (comma-separated field keys or 'all')
- `filter_id` (number): Filter by saved filter ID
- `ids` (string): Comma-separated deal IDs to fetch (max 100)
- `include_fields` (string): Comma-separated extra fields (v2 enum, e.g. next_activity_id, last_activity_id, products_count, files_count, notes_count, followers_count)
- `limit` (number): Number of items to return (1-100, default 50)
- `org_id` (number): Filter by linked organization ID
- `owner_id` (number): Filter by owner user ID
- `person_id` (number): Filter by linked person ID
- `pipeline_id` (number): Filter by pipeline ID
- `sort_by` (string): Field to sort by
- `sort_direction` (string): Sort direction (default: desc)
- `stage_id` (number): Filter by stage ID
- `status` (string): Filter by deal status (omit to return all non-deleted deals)
- `updated_since` (string): Filter deals updated after this time (RFC3339 format, e.g. 2024-01-01T00:00:00Z)
- `updated_until` (string): Filter deals updated before this time (RFC3339 format)

### `pipedrive_get_deal_conversion_status` (~173 tokens)

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.

Input parameters:

- `conversion_id` (string, required): Conversion job UUID returned by the convert call
- `id` (number, required): The deal ID that was converted

### `pipedrive_list_persons` (~236 tokens)

List persons (contacts) from Pipedrive with optional filtering by owner, organization, or first letter of name.

Input parameters:

- `cursor` (string): Cursor for pagination
- `custom_fields` (string): Include custom fields in response (comma-separated field keys or 'all')
- `filter_id` (number): Filter by saved filter ID
- `ids` (string): Comma-separated person IDs to fetch (max 100)
- `include_fields` (string): Comma-separated extra fields (v2 enum, e.g. next_activity_id, open_deals_count, won_deals_count, notes_count, followers_count)
- `limit` (number): Number of items (1-100)
- `org_id` (number): Filter by organization ID
- `owner_id` (number): Filter by owner user ID
- `sort_by` (string): Field to sort by
- `sort_direction` (string): Sort direction
- `updated_since` (string): Filter persons updated after this time (RFC3339 format)
- `updated_until` (string): Filter persons updated before this time (RFC3339 format)

### `pipedrive_get_person` (~92 tokens)

Get detailed information about a specific person by ID.

Input parameters:

- `custom_fields` (string): Include custom fields in response (comma-separated field keys or 'all')
- `id` (number, required): The person ID
- `include_fields` (string): Comma-separated extra fields (v2 enum, e.g. next_activity_id, open_deals_count, won_deals_count, notes_count, followers_count)

### `pipedrive_create_person` (~202 tokens)

Create a new person (contact) in Pipedrive. Only name is required.

Input parameters:

- `add_time` (string): Creation time (RFC3339 format) - backdate the person
- `custom_fields` (object): Custom field values as object with field keys
- `emails` (array): Email addresses (array of objects, e.g. [{ value, primary, label }])
- `label_ids` (array): Label IDs to attach to person
- `marketing_status` (string): Marketing status
- `name` (string, required): Person name (required)
- `org_id` (number): Organization ID to link to
- `owner_id` (number): Owner user ID
- `phones` (array): Phone numbers (array of objects, e.g. [{ value, primary, label }])
- `visible_to` (number): Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company

### `pipedrive_update_person` (~163 tokens)

Update an existing person in Pipedrive.

Input parameters:

- `custom_fields` (object): Custom field values as object with field keys
- `emails` (array): New email addresses (array of objects)
- `id` (number, required): Person ID to update
- `label_ids` (array): Label IDs to set on person
- `marketing_status` (string): New marketing status
- `name` (string): New name
- `org_id` (number): New organization ID
- `owner_id` (number): New owner user ID
- `phones` (array): New phone numbers (array of objects)
- `visible_to` (number): New visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company

### `pipedrive_search_persons` (~111 tokens)

Search for persons by name, email, or phone number.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `exact_match` (boolean): Use exact match
- `fields` (string): Comma-separated fields to search (name, email, phone, notes, custom_fields). Defaults to all.
- `limit` (number): Number of results (1-100)
- `org_id` (number): Filter by organization
- `term` (string, required): Search term

### `pipedrive_list_person_followers` (~54 tokens)

List all followers for a person.

Input parameters:

- `cursor` (string): Cursor for pagination
- `id` (number, required): The person ID
- `limit` (number): Number of items (1-100)

### `pipedrive_add_person_follower` (~50 tokens)

Add a follower to a person.

Input parameters:

- `id` (number, required): The person ID
- `user_id` (number, required): The ID of the user to add as a follower (required)

### `pipedrive_get_person_followers_changelog` (~58 tokens)

Get the followers changelog for a person.

Input parameters:

- `cursor` (string): Cursor for pagination
- `id` (number, required): The person ID
- `limit` (number): Number of items (1-100)

### `pipedrive_get_person_picture` (~50 tokens)

Get the picture for a person (read-only; returns picture metadata and sized image URLs). Returns an error if the person has no picture.

Input parameters:

- `id` (number, required): The person ID

### `pipedrive_list_activities` (~246 tokens)

List activities from Pipedrive with optional filtering by owner, deal, person, organization, type, or completion status.

Input parameters:

- `cursor` (string): Cursor for pagination
- `deal_id` (number): Filter by deal ID
- `done` (boolean): Filter by completion (true=done, false=pending)
- `filter_id` (number): Filter by saved filter ID
- `ids` (string): Comma-separated activity IDs to fetch (max 100)
- `include_fields` (string): Include additional data in response
- `lead_id` (string): Filter by lead ID (UUID format)
- `limit` (number): Number of items (1-100)
- `org_id` (number): Filter by organization ID
- `owner_id` (number): Filter by owner user ID
- `person_id` (number): Filter by person ID
- `sort_by` (string): Field to sort by
- `sort_direction` (string): Sort direction
- `updated_since` (string): Filter activities updated after this time (RFC3339 format)
- `updated_until` (string): Filter activities updated before this time (RFC3339 format)

### `pipedrive_get_activity` (~44 tokens)

Get detailed information about a specific activity by ID.

Input parameters:

- `id` (number, required): The activity ID
- `include_fields` (string): Include additional data in response

### `pipedrive_create_activity` (~267 tokens)

Create a new activity in Pipedrive. Subject and type are required.

Input parameters:

- `attendees` (array): External attendees (email addresses)
- `busy` (boolean): Show as busy in calendar
- `deal_id` (number): Link to deal ID
- `done` (boolean): Mark as completed
- `due_date` (string): Due date (YYYY-MM-DD)
- `due_time` (string): Due time (HH:MM)
- `duration` (string): Duration (HH:MM)
- `lead_id` (string): Link to lead ID (UUID format)
- `location` (object): Activity location (structured object)
- `note` (string): Activity notes (HTML supported)
- `org_id` (number): Link to organization ID
- `owner_id` (number): Owner user ID
- `participants` (array): Activity participants (person IDs)
- `person_id` (number): Link to person ID
- `priority` (number): Activity priority (integer)
- `project_id` (number): Link to project ID
- `public_description` (string): Public description for guests
- `subject` (string, required): Activity subject (required)
- `type` (string, required): Activity type: call, meeting, task, deadline, email, lunch (required)

### `pipedrive_update_activity` (~240 tokens)

Update an existing activity in Pipedrive. Use this to mark activities as done.

Input parameters:

- `attendees` (array): New attendees
- `busy` (boolean): Show as busy
- `deal_id` (number): New deal ID
- `done` (boolean): Mark as completed/pending
- `due_date` (string): New due date (YYYY-MM-DD)
- `due_time` (string): New due time (HH:MM)
- `duration` (string): New duration (HH:MM)
- `id` (number, required): Activity ID to update
- `lead_id` (string): New lead ID (UUID format)
- `location` (object): New location (structured object)
- `note` (string): New notes
- `org_id` (number): New organization ID
- `owner_id` (number): New owner
- `participants` (array): New participants
- `person_id` (number): New person ID
- `priority` (number): New priority (integer)
- `project_id` (number): New project ID
- `subject` (string): New subject
- `type` (string): New type

### `pipedrive_list_notes` (~175 tokens)

List notes from Pipedrive with optional filtering by deal, person, organization, or lead.

Input parameters:

- `deal_id` (number): Filter by deal ID
- `lead_id` (string): Filter by lead ID (UUID format)
- `limit` (number): Number of items (1-500)
- `org_id` (number): Filter by organization ID
- `person_id` (number): Filter by person ID
- `pinned_to_deal_flag` (boolean): Filter by pinned to deal
- `pinned_to_organization_flag` (boolean): Filter by pinned to organization
- `pinned_to_person_flag` (boolean): Filter by pinned to person
- `sort` (string): Field to sort by
- `sort_direction` (string): Sort direction
- `start` (number): Pagination offset (0-based)

### `pipedrive_get_note` (~31 tokens)

Get detailed information about a specific note by ID.

Input parameters:

- `id` (number, required): The note ID

### `pipedrive_create_note` (~145 tokens)

Create a new note in Pipedrive. Content is required. Link to a deal, person, organization, or lead.

Input parameters:

- `content` (string, required): Note content (required, HTML supported)
- `deal_id` (number): Link to deal ID
- `lead_id` (string): Link to lead ID (UUID format)
- `org_id` (number): Link to organization ID
- `person_id` (number): Link to person ID
- `pinned_to_deal_flag` (boolean): Pin note to deal
- `pinned_to_organization_flag` (boolean): Pin note to organization
- `pinned_to_person_flag` (boolean): Pin note to person

### `pipedrive_update_note` (~139 tokens)

Update an existing note in Pipedrive.

Input parameters:

- `content` (string): New note content (HTML supported)
- `deal_id` (number): New linked deal ID
- `id` (number, required): Note ID to update
- `lead_id` (string): New linked lead ID (UUID format)
- `org_id` (number): New linked organization ID
- `person_id` (number): New linked person ID
- `pinned_to_deal_flag` (boolean): Pin note to deal
- `pinned_to_organization_flag` (boolean): Pin note to organization
- `pinned_to_person_flag` (boolean): Pin note to person

### `pipedrive_list_leads` (~136 tokens)

List active (non-archived) leads from Pipedrive with optional filtering by owner, person, or organization.

Input parameters:

- `filter_id` (number): Filter by saved filter ID
- `limit` (number): Number of items (1-500, default 50)
- `organization_id` (number): Filter by linked organization ID
- `owner_id` (number): Filter by owner user ID
- `person_id` (number): Filter by linked person ID
- `sort` (string): Sort field and direction (e.g. 'id ASC')
- `start` (number): Pagination offset (0-based)

### `pipedrive_list_archived_leads` (~132 tokens)

List archived leads from Pipedrive with optional filtering by owner, person, or organization.

Input parameters:

- `filter_id` (number): Filter by saved filter ID
- `limit` (number): Number of items (1-500, default 50)
- `organization_id` (number): Filter by linked organization ID
- `owner_id` (number): Filter by owner user ID
- `person_id` (number): Filter by linked person ID
- `sort` (string): Sort field and direction (e.g. 'id ASC')
- `start` (number): Pagination offset (0-based)

### `pipedrive_get_lead` (~31 tokens)

Get detailed information about a specific lead by UUID.

Input parameters:

- `id` (string, required): Lead UUID

### `pipedrive_create_lead` (~153 tokens)

Create a new lead in Pipedrive. Title is required; link to at least one of person_id or organization_id.

Input parameters:

- `expected_close_date` (string): Expected close date (YYYY-MM-DD)
- `label_ids` (array): Lead label UUIDs
- `organization_id` (number): Link to organization ID
- `owner_id` (number): Owner user ID
- `person_id` (number): Link to person ID
- `title` (string, required): Lead title (required)
- `value` (object): Monetary value of the lead
- `visible_to` (number): Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company

### `pipedrive_update_lead` (~164 tokens)

Update an existing lead in Pipedrive.

Input parameters:

- `expected_close_date` (string): New expected close date (YYYY-MM-DD)
- `id` (string, required): Lead UUID to update
- `is_archived` (boolean): Archive or unarchive the lead
- `label_ids` (array): New lead label UUIDs
- `organization_id` (number): New linked organization ID
- `owner_id` (number): New owner user ID
- `person_id` (number): New linked person ID
- `title` (string): New lead title
- `value` (object): New monetary value
- `visible_to` (number): New visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company

### `pipedrive_search_leads` (~146 tokens)

Search for leads in Pipedrive by title or associated contacts.

Input parameters:

- `cursor` (string): Cursor for pagination
- `exact_match` (boolean): Use exact match instead of fuzzy search
- `fields` (string): Comma-separated fields to search (title, notes, custom_fields). Defaults to all.
- `include_fields` (string): Optional extra field: only 'lead.was_seen'
- `limit` (number): Number of results (1-500, default 50)
- `organization_id` (number): Filter by linked organization ID
- `person_id` (number): Filter by linked person ID
- `term` (string, required): Search term (required)

### `pipedrive_get_lead_conversion_status` (~73 tokens)

Get the status of an async lead-to-deal conversion by conversion ID (Pipedrive v2 GET /leads/{id}/convert/status/{conversion_id}).

Input parameters:

- `conversion_id` (string, required): Conversion job UUID returned by the convert call
- `id` (string, required): Lead UUID

### `pipedrive_list_projects` (~128 tokens)

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.)

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `filter_id` (number): Filter by saved filter ID
- `limit` (number): Number of items to return (1-100, default 50)
- `phase_id` (number): Filter by phase ID
- `status` (string): Filter by project status (e.g. open, completed, canceled, deleted)

### `pipedrive_get_project` (~45 tokens)

Get detailed information about a specific project by ID. (Requires the Projects add-on; Projects API is in public beta.)

Input parameters:

- `id` (number, required): The project ID

### `pipedrive_create_project` (~202 tokens)

Create a new project in Pipedrive. Requires title, board_id, and phase_id. (Requires the Projects add-on; Projects API is in public beta.)

Input parameters:

- `board_id` (number, required): Board ID the project belongs to (required)
- `deal_ids` (array): Deal IDs linked to the project
- `description` (string): Project description
- `end_date` (string): Project end date (YYYY-MM-DD)
- `label_ids` (array): Label IDs to attach to the project
- `org_ids` (array): Organization IDs linked to the project
- `owner_id` (number): Owner user ID
- `person_ids` (array): Person IDs linked to the project
- `phase_id` (number, required): Phase ID within the board (required)
- `start_date` (string): Project start date (YYYY-MM-DD)
- `status` (string): Project status
- `title` (string, required): Project title (required)

### `pipedrive_update_project` (~209 tokens)

Update an existing project in Pipedrive. (Requires the Projects add-on; Projects API is in public beta.)

Input parameters:

- `board_id` (number): New board ID the project belongs to
- `deal_ids` (array): New deal IDs linked to the project
- `description` (string): New project description
- `end_date` (string): New project end date (YYYY-MM-DD)
- `id` (number, required): Project ID to update
- `label_ids` (array): New label IDs to attach to the project
- `org_ids` (array): New organization IDs linked to the project
- `owner_id` (number): New owner user ID
- `person_ids` (array): New person IDs linked to the project
- `phase_id` (number): New phase ID within the board
- `start_date` (string): New project start date (YYYY-MM-DD)
- `status` (string): New project status
- `title` (string): New project title

### `pipedrive_search_projects` (~89 tokens)

Search for projects in Pipedrive by title. (Requires the Projects add-on; Projects API is in public beta.)

Input parameters:

- `cursor` (string): Cursor for pagination
- `exact_match` (boolean): Use exact match instead of fuzzy search
- `limit` (number): Number of results (1-100, default 50)
- `term` (string, required): Search term (required)

### `pipedrive_archive_project` (~46 tokens)

Archive a project by setting its status to archived. (Requires the Projects add-on; Projects API is in public beta.)

Input parameters:

- `id` (number, required): Project ID to archive

### `pipedrive_list_project_tasks` (~97 tokens)

List tasks for a project you already have the ID for — pass only `id` (the project ID). For broader task queries use pipedrive_list_tasks. (Projects add-on; Projects API in public beta.)

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `id` (number, required): Project ID
- `limit` (number): Number of items (1-100, default 50)

### `pipedrive_list_project_templates` (~61 tokens)

List all project templates available in Pipedrive. Returns paginated results.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `limit` (number): Number of items to return (1-100, default 50)

### `pipedrive_get_project_template` (~34 tokens)

Get detailed information about a specific project template by ID.

Input parameters:

- `id` (number, required): The project template ID

### `pipedrive_list_archived_projects` (~121 tokens)

List archived projects from Pipedrive with optional filtering by filter, phase, or status. (Projects add-on; Projects API in public beta.)

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `filter_id` (number): Filter by saved filter ID
- `limit` (number): Number of items to return (1-100, default 50)
- `phase_id` (number): Filter by phase ID
- `status` (string): Filter by project status (e.g. open, completed, canceled)

### `pipedrive_get_project_permitted_users` (~57 tokens)

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.)

Input parameters:

- `id` (number, required): The project ID

### `pipedrive_get_project_changelog` (~102 tokens)

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.)

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `id` (number, required): The project ID
- `limit` (number): Number of items to return (1-100, default 50)

### `pipedrive_list_products` (~159 tokens)

List products from Pipedrive with optional filtering by owner, IDs, or filter.

Input parameters:

- `cursor` (string): Cursor for pagination
- `custom_fields` (string): Include custom fields in response (comma-separated field keys, max 15)
- `filter_id` (number): Filter by saved filter ID
- `ids` (string): Comma-separated product IDs to fetch (max 100)
- `limit` (number): Number of items (1-100)
- `owner_id` (number): Filter by owner user ID
- `sort_by` (string): Field to sort by
- `sort_direction` (string): Sort direction
- `updated_since` (string): Filter products updated after this time (RFC3339 format)

### `pipedrive_get_product` (~31 tokens)

Get detailed information about a specific product by ID.

Input parameters:

- `id` (number, required): The product ID

### `pipedrive_search_products` (~101 tokens)

Search for products by name, code, or custom fields.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `exact_match` (boolean): Use exact match
- `fields` (string): Field to search in. Defaults to all.
- `include_fields` (string): Extra fields to include (product.price)
- `limit` (number): Number of results (1-100)
- `term` (string, required): Search term

### `pipedrive_create_product` (~213 tokens)

Create a new product in Pipedrive. Only name is required.

Input parameters:

- `billing_frequency` (string): Billing frequency (default one-time)
- `billing_frequency_cycles` (number|null): Number of billing cycles (max 208, null = unlimited)
- `category` (number): Product category ID
- `code` (string): Product code
- `custom_fields` (object): Custom field values as object with field keys
- `description` (string): Product description
- `is_linkable` (boolean): Whether the product can be linked to deals (default true)
- `name` (string, required): Product name (required)
- `owner_id` (number): Owner user ID
- `prices` (array): Array of price objects per currency
- `tax` (number): Tax percentage (default 0)
- `unit` (string): Unit of measurement
- `visible_to` (number): Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company

### `pipedrive_update_product` (~214 tokens)

Update an existing product in Pipedrive.

Input parameters:

- `billing_frequency` (string): Billing frequency
- `billing_frequency_cycles` (number|null): Number of billing cycles (max 208, null = unlimited)
- `category` (number): New product category ID
- `code` (string): New product code
- `custom_fields` (object): Custom field values as object with field keys
- `description` (string): New product description
- `id` (number, required): Product ID to update
- `is_linkable` (boolean): Whether the product can be linked to deals
- `name` (string): New product name
- `owner_id` (number): New owner user ID
- `prices` (array): Array of price objects per currency
- `tax` (number): New tax percentage
- `unit` (string): New unit of measurement
- `visible_to` (number): New visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company

### `pipedrive_list_product_variations` (~54 tokens)

List all variations for a product.

Input parameters:

- `cursor` (string): Cursor for pagination
- `id` (number, required): The product ID
- `limit` (number): Number of items (1-100)

### `pipedrive_add_product_variation` (~60 tokens)

Add a variation to a product.

Input parameters:

- `id` (number, required): The product ID
- `name` (string, required): Product variation name (required, max 255 chars)
- `prices` (array): Array of price objects per currency

### `pipedrive_update_product_variation` (~71 tokens)

Update an existing product variation.

Input parameters:

- `id` (number, required): The product ID
- `name` (string): Product variation name (max 255 chars)
- `prices` (array): Array of price objects per currency
- `product_variation_id` (number, required): The product variation ID

### `pipedrive_list_product_followers` (~54 tokens)

List all followers for a product.

Input parameters:

- `cursor` (string): Cursor for pagination
- `id` (number, required): The product ID
- `limit` (number): Number of items (1-100)

### `pipedrive_add_product_follower` (~50 tokens)

Add a follower to a product.

Input parameters:

- `id` (number, required): The product ID
- `user_id` (number, required): The ID of the user to add as a follower (required)

### `pipedrive_get_product_followers_changelog` (~58 tokens)

Get the followers changelog for a product.

Input parameters:

- `cursor` (string): Cursor for pagination
- `id` (number, required): The product ID
- `limit` (number): Number of items (1-100)

### `pipedrive_get_product_image` (~43 tokens)

Get the image of a product (returns a single image with a public URL valid for 7 days).

Input parameters:

- `id` (number, required): The product ID

### `pipedrive_upload_product_image` (~214 tokens)

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.

Input parameters:

- `base64_data` (string): Base64-encoded image bytes (transport-safe). Mutually exclusive with file_path.
- `file_name` (string, required): Original filename including extension (e.g. product.png)
- `file_path` (string): Path the server reads via fs.readFile, confined to PIPEDRIVE_IMAGE_BASE_DIR (filesystem reads are disabled unless that variable is set). Mutually exclusive with base64_data.
- `id` (number, required): The product ID
- `mime_type` (string): MIME type. Inferred from file_name if omitted.

### `pipedrive_update_product_image` (~217 tokens)

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.

Input parameters:

- `base64_data` (string): Base64-encoded image bytes (transport-safe). Mutually exclusive with file_path.
- `file_name` (string, required): Original filename including extension (e.g. product.png)
- `file_path` (string): Path the server reads via fs.readFile, confined to PIPEDRIVE_IMAGE_BASE_DIR (filesystem reads are disabled unless that variable is set). Mutually exclusive with base64_data.
- `id` (number, required): The product ID
- `mime_type` (string): MIME type. Inferred from file_name if omitted.

### `pipedrive_list_tasks` (~171 tokens)

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.)

Input parameters:

- `assignee_id` (number): Filter by assignee user ID
- `cursor` (string): Cursor for pagination (from previous response)
- `is_done` (boolean): Filter by done status
- `is_milestone` (boolean): Filter by milestone status
- `limit` (number): Number of items (1-100, default 50)
- `parent_task_id` (string): Filter by parent task ID. Use the literal string "null" to return only root-level tasks.
- `project_id` (number): Filter by project ID

### `pipedrive_get_task` (~42 tokens)

Get detailed information about a specific task by ID. (Projects add-on; Projects API in public beta.)

Input parameters:

- `id` (number, required): The task ID

### `pipedrive_create_task` (~271 tokens)

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.)

Input parameters:

- `assignee_id` (number|null): Assignee user ID (null to unassign)
- `assignee_ids` (array): Array of assignee user IDs (max 10)
- `description` (string|null): Task description (null to clear)
- `due_date` (string|null): Task due date (YYYY-MM-DD, null to clear)
- `is_done` (boolean): Mark as done (true/false)
- `is_milestone` (boolean): Mark as milestone (true/false); a milestone task must have a due_date
- `parent_task_id` (number|null): ID of the parent task (null for root-level)
- `priority` (number|null): Task priority (integer >= 0, or null to unset)
- `project_id` (number, required): ID of the project this task belongs to (required)
- `start_date` (string|null): Task start date (YYYY-MM-DD, null to clear)
- `title` (string, required): Task title (required, 1-255 chars)

### `pipedrive_update_task` (~280 tokens)

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.)

Input parameters:

- `assignee_id` (number|null): Assignee user ID (null to unassign)
- `assignee_ids` (array): Array of assignee user IDs (max 10)
- `description` (string|null): Task description (null to clear)
- `due_date` (string|null): Task due date (YYYY-MM-DD, null to clear)
- `id` (number, required): The task ID to update
- `is_done` (boolean): Mark as done (true/false)
- `is_milestone` (boolean): Mark as milestone (true/false); a milestone task must have a due_date
- `parent_task_id` (number|null): ID of the parent task (null to make root-level)
- `priority` (number|null): Task priority (integer >= 0, or null to unset)
- `project_id` (number): ID of the project this task belongs to
- `start_date` (string|null): Task start date (YYYY-MM-DD, null to clear)
- `title` (string): Task title (1-255 chars)

### `pipedrive_list_boards` (~45 tokens)

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_board` (~43 tokens)

Get detailed information about a specific project board by ID. (Projects add-on; Projects API in public beta.)

Input parameters:

- `id` (number, required): The board ID

### `pipedrive_create_board` (~64 tokens)

Create a new project board. name is required. (Projects add-on; Projects API in public beta.)

Input parameters:

- `name` (string, required): Board name (required, must not be empty)
- `order_nr` (number): Board order number (integer >= 1)

### `pipedrive_update_board` (~76 tokens)

Update an existing project board. Only id is required; all other fields are optional. (Projects add-on; Projects API in public beta.)

Input parameters:

- `id` (number, required): The board ID to update
- `name` (string): Board name
- `order_nr` (number): Board order number (integer >= 1)

### `pipedrive_list_phases` (~74 tokens)

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.)

Input parameters:

- `board_id` (number, required): ID of the board to list phases for (required)

### `pipedrive_get_phase` (~43 tokens)

Get detailed information about a specific project phase by ID. (Projects add-on; Projects API in public beta.)

Input parameters:

- `id` (number, required): The phase ID

### `pipedrive_create_phase` (~85 tokens)

Create a new project phase. name and board_id are required. (Projects add-on; Projects API in public beta.)

Input parameters:

- `board_id` (number, required): ID of the board this phase belongs to (required)
- `name` (string, required): Phase name (required, must not be empty)
- `order_nr` (number): Phase order number (integer >= 1)

### `pipedrive_update_phase` (~110 tokens)

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.)

Input parameters:

- `board_id` (number): ID of the board (set to move this phase to a different board)
- `id` (number, required): The phase ID to update
- `name` (string): Phase name
- `order_nr` (number): Phase order number (integer >= 1)

### `pipedrive_get_person_emails` (~103 tokens)

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.

Input parameters:

- `id` (number, required): Person ID
- `limit` (number): Number of items (1-500)
- `start` (number): Pagination offset (0-based)

### `pipedrive_get_deal_emails` (~104 tokens)

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.

Input parameters:

- `id` (number, required): Deal ID
- `limit` (number): Number of items (1-500)
- `start` (number): Pagination offset (0-based)

### `pipedrive_list_mail_threads` (~78 tokens)

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.

Input parameters:

- `folder` (string): Mail folder (default: inbox)
- `limit` (number): Number of items
- `start` (number): Pagination offset

### `pipedrive_get_mail_thread` (~58 tokens)

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.

Input parameters:

- `id` (number, required): Mail thread ID

### `pipedrive_get_mail_message` (~70 tokens)

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.

Input parameters:

- `id` (number, required): Mail message ID
- `include_body` (boolean): Include full email body (default: false)

### `pipedrive_list_organization_fields` (~65 tokens)

List all organization field definitions, including custom fields. Use this to map 40-character field keys to human-readable names.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `limit` (number): Number of items (1-100)

### `pipedrive_list_deal_fields` (~58 tokens)

List all deal field definitions, including custom fields. Essential for understanding deal data structure.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `limit` (number): Number of items (1-100)

### `pipedrive_list_person_fields` (~57 tokens)

List all person field definitions, including custom fields. Use to understand contact data structure.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `limit` (number): Number of items (1-100)

### `pipedrive_list_product_fields` (~66 tokens)

List all product field definitions, including custom fields.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `include_fields` (string): Additional data namespaces to include (ui_visibility)
- `limit` (number): Number of items (1-100)

### `pipedrive_list_project_fields` (~61 tokens)

List all project field definitions, including custom fields. (Projects add-on; Projects API in public beta.)

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `limit` (number): Number of items (1-100)

### `pipedrive_get_field` (~65 tokens)

Get details of a specific field by its key. Useful for looking up what a 40-character hash field key means.

Input parameters:

- `entity_type` (string, required): Entity type the field belongs to
- `key` (string, required): Field key (40-char hash for custom fields)

### `pipedrive_create_deal_field` (~228 tokens)

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.

Input parameters:

- `description` (string|null): Field description (null to clear)
- `field_name` (string, required): Field name (required, 1-255 chars)
- `field_type` (string, required): Field type. Use 'enum' (single choice) or 'set' (multiple choice) for option fields.
- `important_fields` (object): Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields).
- `options` (array): Field options (required for enum and set field types)
- `required_fields` (object): Required-field config: enabled, stage_ids (deal stages), statuses (per-pipeline won/lost map).
- `ui_visibility` (object): UI visibility: add_visible_flag, details_visible_flag, projects_detail_visible_flag, show_in_pipelines{show_in_all, pipeline_ids}.

### `pipedrive_update_deal_field` (~183 tokens)

Update a deal custom field by field_code. field_type and field_code cannot be changed.

Input parameters:

- `description` (string|null): Field description (null to clear)
- `field_code` (string, required): The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name.
- `field_name` (string): New field name (1-255 chars)
- `important_fields` (object): Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields).
- `required_fields` (object): Required-field config: enabled, stage_ids (deal stages), statuses (per-pipeline won/lost map).
- `ui_visibility` (object): UI visibility: add_visible_flag, details_visible_flag, projects_detail_visible_flag, show_in_pipelines{show_in_all, pipeline_ids}.

### `pipedrive_update_deal_field_options` (~98 tokens)

Bulk-update option labels of a deal enum/set field. Atomic: the whole request fails if any option ID does not exist.

Input parameters:

- `field_code` (string, required): The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name.
- `options` (array, required): Options to update (at least one). Atomic: the whole request fails if any option ID does not exist.

### `pipedrive_create_person_field` (~194 tokens)

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.

Input parameters:

- `field_name` (string, required): Field name (required, 1-255 chars)
- `field_type` (string, required): Field type. Use 'enum' (single choice) or 'set' (multiple choice) for option fields.
- `important_fields` (object): Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields).
- `options` (array): Field options (required for enum and set field types)
- `required_fields` (object): Required-field config: enabled (person/org fields support only this flag).
- `ui_visibility` (object): UI visibility: add_visible_flag, details_visible_flag, show_in_add_deal_dialog{show, order}.

### `pipedrive_update_person_field` (~154 tokens)

Update a person custom field by field_code. field_type and field_code cannot be changed.

Input parameters:

- `field_code` (string, required): The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name.
- `field_name` (string): New field name (1-255 chars)
- `important_fields` (object): Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields).
- `required_fields` (object): Required-field config: enabled (person/org fields support only this flag).
- `ui_visibility` (object): UI visibility: add_visible_flag, details_visible_flag, show_in_add_deal_dialog{show, order}.

### `pipedrive_update_person_field_options` (~97 tokens)

Bulk-update option labels of a person enum/set field. Atomic: the whole request fails if any option ID does not exist.

Input parameters:

- `field_code` (string, required): The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name.
- `options` (array, required): Options to update (at least one). Atomic: the whole request fails if any option ID does not exist.

### `pipedrive_create_organization_field` (~205 tokens)

Create an organization 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.

Input parameters:

- `field_name` (string, required): Field name (required, 1-255 chars)
- `field_type` (string, required): Field type. Use 'enum' (single choice) or 'set' (multiple choice) for option fields.
- `important_fields` (object): Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields).
- `options` (array): Field options (required for enum and set field types)
- `required_fields` (object): Required-field config: enabled (person/org fields support only this flag).
- `ui_visibility` (object): UI visibility: add_visible_flag, details_visible_flag, show_in_add_deal_dialog{show, order}, show_in_add_person_dialog{show, order}.

### `pipedrive_update_organization_field` (~165 tokens)

Update an organization custom field by field_code. field_type and field_code cannot be changed.

Input parameters:

- `field_code` (string, required): The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name.
- `field_name` (string): New field name (1-255 chars)
- `important_fields` (object): Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields).
- `required_fields` (object): Required-field config: enabled (person/org fields support only this flag).
- `ui_visibility` (object): UI visibility: add_visible_flag, details_visible_flag, show_in_add_deal_dialog{show, order}, show_in_add_person_dialog{show, order}.

### `pipedrive_update_organization_field_options` (~98 tokens)

Bulk-update option labels of an organization enum/set field. Atomic: the whole request fails if any option ID does not exist.

Input parameters:

- `field_code` (string, required): The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name.
- `options` (array, required): Options to update (at least one). Atomic: the whole request fails if any option ID does not exist.

### `pipedrive_create_product_field` (~159 tokens)

Create a product custom field. field_name and field_type are required. For enum/set types, options is required. Product fields use a simpler model: no description, important_fields, or required_fields. The response data.field_code is the 40-char hash to keep for later updates.

Input parameters:

- `field_name` (string, required): Field name (required, 1-255 chars)
- `field_type` (string, required): Field type. Use 'enum' (single choice) or 'set' (multiple choice) for option fields.
- `options` (array): Field options (required for enum and set field types)
- `ui_visibility` (object): UI visibility (product fields use a simpler model): add_visible_flag, details_visible_flag.

### `pipedrive_update_product_field` (~115 tokens)

Update a product custom field by field_code. Only field_name and ui_visibility can be changed (product fields have no description/important_fields/required_fields).

Input parameters:

- `field_code` (string, required): The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name.
- `field_name` (string): New field name (1-255 chars)
- `ui_visibility` (object): UI visibility (product fields use a simpler model): add_visible_flag, details_visible_flag.

### `pipedrive_update_product_field_options` (~97 tokens)

Bulk-update option labels of a product enum/set field. Atomic: the whole request fails if any option ID does not exist.

Input parameters:

- `field_code` (string, required): The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name.
- `options` (array, required): Options to update (at least one). Atomic: the whole request fails if any option ID does not exist.

### `pipedrive_list_organizations` (~191 tokens)

List organizations from Pipedrive with optional filtering by owner or first letter of name.

Input parameters:

- `cursor` (string): Cursor for pagination
- `custom_fields` (string): Include custom fields in response (comma-separated field keys or 'all')
- `filter_id` (number): Filter by saved filter ID
- `ids` (string): Comma-separated organization IDs to fetch (max 100)
- `include_fields` (string): Include additional data in response
- `limit` (number): Number of items (1-100)
- `owner_id` (number): Filter by owner user ID
- `sort_by` (string): Field to sort by
- `sort_direction` (string): Sort direction
- `updated_since` (string): Filter organizations updated after this time (RFC3339 format)
- `updated_until` (string): Filter organizations updated before this time (RFC3339 format)

### `pipedrive_get_organization` (~66 tokens)

Get detailed information about a specific organization by ID.

Input parameters:

- `custom_fields` (string): Include custom fields in response (comma-separated field keys or 'all')
- `id` (number, required): The organization ID
- `include_fields` (string): Include additional data in response

### `pipedrive_create_organization` (~154 tokens)

Create a new organization in Pipedrive. Only name is required.

Input parameters:

- `add_time` (string): Creation time (RFC3339 format) - backdate the organization
- `address` (object): Organization address as a structured object (v2). Provide 'value' for the full address.
- `custom_fields` (object): Custom field values as object with field keys
- `label_ids` (array): Label IDs to attach to organization
- `name` (string, required): Organization name (required)
- `owner_id` (number): Owner user ID
- `visible_to` (number): Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company

### `pipedrive_update_organization` (~140 tokens)

Update an existing organization in Pipedrive.

Input parameters:

- `address` (object): New organization address as a structured object (v2). Provide 'value' for the full address.
- `custom_fields` (object): Custom field values as object with field keys
- `id` (number, required): Organization ID to update
- `label_ids` (array): Label IDs to set on organization
- `name` (string): New name
- `owner_id` (number): New owner user ID
- `visible_to` (number): New visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company

### `pipedrive_search_organizations` (~94 tokens)

Search for organizations by name or address.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `exact_match` (boolean): Use exact match
- `fields` (string): Comma-separated fields to search (name, address, notes, custom_fields). Defaults to all.
- `limit` (number): Number of results (1-100)
- `term` (string, required): Search term

### `pipedrive_list_organization_followers` (~55 tokens)

List all followers for an organization.

Input parameters:

- `cursor` (string): Cursor for pagination
- `id` (number, required): The organization ID
- `limit` (number): Number of items (1-100)

### `pipedrive_add_organization_follower` (~51 tokens)

Add a follower to an organization.

Input parameters:

- `id` (number, required): The organization ID
- `user_id` (number, required): The ID of the user to add as a follower (required)

### `pipedrive_get_organization_followers_changelog` (~59 tokens)

Get the followers changelog for an organization.

Input parameters:

- `cursor` (string): Cursor for pagination
- `id` (number, required): The organization ID
- `limit` (number): Number of items (1-100)

### `pipedrive_list_pipelines` (~66 tokens)

List sales pipelines in Pipedrive with cursor pagination. Pipelines contain stages that deals move through.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `limit` (number): Number of items to return (1-100, default 50)

### `pipedrive_list_stages` (~85 tokens)

List stages with cursor pagination, optionally filtered by pipeline. Stages represent steps in the sales process.

Input parameters:

- `cursor` (string): Cursor for pagination (from previous response)
- `limit` (number): Number of items to return (1-100, default 50)
- `pipeline_id` (number): Filter by pipeline ID (returns all stages if not specified)

### `pipedrive_get_stage` (~29 tokens)

Get details of a specific stage by ID.

Input parameters:

- `id` (number, required): Stage ID

### `pipedrive_create_pipeline` (~74 tokens)

Create a new sales pipeline. Only name is required. Set is_deal_probability_enabled to turn on weighted deal probability for the pipeline.

Input parameters:

- `is_deal_probability_enabled` (boolean): Whether deal probability is enabled for this pipeline (default false)
- `name` (string, required): The name of the pipeline (required)

### `pipedrive_update_pipeline` (~72 tokens)

Update an existing pipeline. Provide the pipeline id and any fields to change.

Input parameters:

- `id` (number, required): The ID of the pipeline to update
- `is_deal_probability_enabled` (boolean): Whether deal probability is enabled for this pipeline
- `name` (string): The new name of the pipeline

### `pipedrive_create_stage` (~155 tokens)

Create a new stage in a pipeline. name and pipeline_id are required. Use is_deal_rot_enabled and days_to_rotten to configure deal rotting.

Input parameters:

- `days_to_rotten` (number|null): Days until a deal not updated in this stage becomes rotten (applies only when is_deal_rot_enabled is set; null to clear)
- `deal_probability` (number): The success probability percentage of deals in this stage (0-100)
- `is_deal_rot_enabled` (boolean): Whether deals in this stage can become rotten
- `name` (string, required): The name of the stage (required)
- `pipeline_id` (number, required): The ID of the pipeline to add the stage to (required)

### `pipedrive_update_stage` (~157 tokens)

Update an existing stage. Provide the stage id and any fields to change. Set pipeline_id to move the stage to another pipeline.

Input parameters:

- `days_to_rotten` (number|null): Days until a deal not updated in this stage becomes rotten (applies only when is_deal_rot_enabled is set; null to clear)
- `deal_probability` (number): The success probability percentage of deals in this stage (0-100)
- `id` (number, required): The ID of the stage to update
- `is_deal_rot_enabled` (boolean): Whether deals in this stage can become rotten
- `name` (string): The new name of the stage
- `pipeline_id` (number): Move the stage to this pipeline ID

### `pipedrive_list_users` (~32 tokens)

List all users in the Pipedrive account. Useful for finding owner IDs when creating or filtering records.

### `pipedrive_get_user` (~29 tokens)

Get details of a specific user by ID.

Input parameters:

- `id` (number, required): User ID

### `pipedrive_get_current_user` (~33 tokens)

Get details of the current user (API key owner). Useful for verifying connection and getting your user ID.

## Diagnostics

Captured diagnostic sections: Provenance, Dependencies. The full working is on the page: https://verifymcp.io/servers/ckalima-pipedrive-mcp-server/https-github-com-ckalima-pipedrive-mcp-server-releases-download-v2-5-0-pipedrive#diagnostics

## Score history

- 2026-08-03: 47
- 2026-08-02: 46
- 2026-08-01: 28
- 2026-07-31: 33
- 2026-07-30: 16
- 2026-07-28: 37
- 2026-07-27: 37

## Links

- Repository: https://github.com/ckalima/pipedrive-mcp-server
- Changelog RSS feed: https://verifymcp.io/servers/ckalima-pipedrive-mcp-server/https-github-com-ckalima-pipedrive-mcp-server-releases-download-v2-5-0-pipedrive/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/ckalima-pipedrive-mcp-server/https-github-com-ckalima-pipedrive-mcp-server-releases-download-v2-5-0-pipedrive/changelog.json
- HTML version of this page: https://verifymcp.io/servers/ckalima-pipedrive-mcp-server/https-github-com-ckalima-pipedrive-mcp-server-releases-download-v2-5-0-pipedrive
