Skip to main content
Glama
osherai

Pipedrive MCP Server

by osherai

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PIPEDRIVE_DOMAINYesYour Pipedrive domain (e.g., your-company.pipedrive.com)
PIPEDRIVE_API_TOKENYesYour Pipedrive API token
PIPEDRIVE_RATE_LIMIT_MIN_TIME_MSNoMinimum time between requests in milliseconds250
PIPEDRIVE_RATE_LIMIT_MAX_CONCURRENTNoMaximum concurrent requests2

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_usersA

Get all users/owners from Pipedrive.

Returns all users in your Pipedrive account with their ID, name, email, active status, and role. Useful for filtering deals by owner.

Returns: JSON array of users

Examples: - get_users() - Get all users to see available owners

get_dealsA

Get deals from Pipedrive with filtering options.

Retrieves deals with various filter options. Can filter by title search, date ranges, owner, stage, status, pipeline, and value range. Results are sorted by creation date (newest first) by default.

Args: search_title: Search by deal title (partial matches) owner_id: Filter by owner/user ID stage_id: Filter by pipeline stage status: Filter by status - 'open', 'won', 'lost', or 'deleted' (default: 'open') pipeline_id: Filter by pipeline filter_id: ID of a saved filter from Pipedrive (use get_filters to see available filters) min_value: Minimum deal value filter max_value: Maximum deal value filter created_after: Only deals created after this date (ISO format: YYYY-MM-DD) created_before: Only deals created before this date (ISO format: YYYY-MM-DD) updated_after: Only deals updated after this date (ISO format: YYYY-MM-DD) updated_before: Only deals updated before this date (ISO format: YYYY-MM-DD) sort_by: Field to sort by - 'add_time', 'update_time', 'title', 'value' (default: 'add_time') sort_order: Sort direction - 'asc' or 'desc' (default: 'desc' for newest first) limit: Maximum number of results (default: 500)

Returns: JSON array of deals with summary

Examples: - get_deals() - Get all open deals (newest first) - get_deals(limit=10) - Get 10 most recent open deals - get_deals(status="won") - Get won deals - get_deals(created_after="2026-01-01") - Get deals created this year - get_deals(filter_id=5) - Get deals matching saved filter #5 - get_deals(sort_by="value", sort_order="desc") - Get highest value deals first

get_dealA

Get a single deal by ID with all details.

Retrieves comprehensive information about a specific deal including all custom fields, owner info, pipeline stage, and related entities.

Args: deal_id: The Pipedrive deal ID

Returns: JSON object with deal details

Examples: - get_deal(deal_id=123) - Get deal with ID 123

get_deal_notesA

Get notes for a specific deal.

Retrieves all notes and comments associated with a deal.

Args: deal_id: The Pipedrive deal ID

Returns: JSON array of notes

Examples: - get_deal_notes(deal_id=123) - Get notes for deal 123

search_dealsA

Full-text search deals by term.

Searches across deal titles, notes, and related content.

Args: term: Search term limit: Maximum results (default: 100)

Returns: JSON array of matching deals

Examples: - search_deals(term="acme") - Search for deals mentioning "acme" - search_deals(term="enterprise", limit=50) - Search with limit

get_personsB

Get all persons/contacts from Pipedrive.

Retrieves all contacts with their details including custom fields. Use filter_id to apply a saved filter for custom field filtering.

Args: filter_id: ID of a saved filter from Pipedrive (use get_filters to see available filters). Create filters in Pipedrive UI to filter by custom fields like "User Type". limit: Maximum number of persons to return (default: 500)

Returns: JSON array of persons

Examples: - get_persons() - Get all contacts - get_persons(limit=100) - Get first 100 contacts - get_persons(filter_id=12) - Get contacts matching saved filter #12

get_personA

Get a single person/contact by ID.

Retrieves comprehensive information about a specific contact including all custom fields and related data.

Args: person_id: The Pipedrive person ID

Returns: JSON object with person details

Examples: - get_person(person_id=456) - Get person with ID 456

search_personsC

Full-text search persons/contacts by term.

Searches across person names, emails, phone numbers, and notes.

Args: term: Search term limit: Maximum results (default: 100)

Returns: JSON array of matching persons

Examples: - search_persons(term="john") - Search for persons named John - search_persons(term="@acme.com") - Search by email domain

get_organizationsB

Get all organizations from Pipedrive.

Retrieves all organizations/companies with their details. Use filter_id to apply a saved filter for custom field filtering.

Args: filter_id: ID of a saved filter from Pipedrive (use get_filters to see available filters) limit: Maximum number of organizations to return (default: 500)

Returns: JSON array of organizations

Examples: - get_organizations() - Get all organizations - get_organizations(limit=100) - Get first 100 organizations - get_organizations(filter_id=8) - Get organizations matching saved filter #8

get_organizationA

Get a single organization by ID.

Retrieves comprehensive information about a specific organization including all custom fields.

Args: org_id: The Pipedrive organization ID

Returns: JSON object with organization details

Examples: - get_organization(org_id=789) - Get organization with ID 789

search_organizationsA

Full-text search organizations by term.

Searches across organization names and other fields.

Args: term: Search term limit: Maximum results (default: 100)

Returns: JSON array of matching organizations

Examples: - search_organizations(term="acme") - Search for Acme organizations

get_pipelinesA

Get all pipelines from Pipedrive.

Retrieves all sales pipelines configured in your Pipedrive account.

Returns: JSON array of pipelines

Examples: - get_pipelines() - Get all pipelines

get_pipelineC

Get a single pipeline by ID.

Retrieves details about a specific pipeline.

Args: pipeline_id: The Pipedrive pipeline ID

Returns: JSON object with pipeline details

Examples: - get_pipeline(pipeline_id=1) - Get pipeline with ID 1

get_stagesA

Get all stages, optionally filtered by pipeline.

Retrieves all stages across pipelines. Can filter to show only stages for a specific pipeline.

Args: pipeline_id: Optional pipeline ID to filter stages

Returns: JSON array of stages with pipeline information

Examples: - get_stages() - Get all stages across all pipelines - get_stages(pipeline_id=1) - Get stages for pipeline 1

search_leadsB

Full-text search leads by term.

Searches across lead titles and related content.

Args: term: Search term limit: Maximum results (default: 100)

Returns: JSON array of matching leads

Examples: - search_leads(term="startup") - Search for leads mentioning "startup"

search_allA

Search across all item types in Pipedrive.

Performs a cross-type search across deals, persons, organizations, products, files, activities, and leads.

Args: term: Search term item_types: Comma-separated item types to search (deal, person, organization, product, file, activity, lead). If not specified, searches all types. limit: Maximum results (default: 100)

Returns: JSON array of matching items across types

Examples: - search_all(term="acme") - Search "acme" across all types - search_all(term="enterprise", item_types="deal,person") - Search specific types

get_filtersA

Get all saved filters from Pipedrive.

Returns the list of saved filters that can be used with get_deals, get_persons, and get_organizations. Filters allow you to query by custom fields that aren't directly supported in the API.

To filter by custom fields (like "User Type = cemoh"):

  1. Create a filter in Pipedrive UI with your criteria

  2. Use get_filters() to find the filter's ID

  3. Pass that filter_id to get_persons(), get_deals(), etc.

Args: filter_type: Filter by type - 'deals', 'persons', 'org', 'products', 'activities' If not specified, returns all filters.

Returns: JSON array of filters with id, name, and type

Examples: - get_filters() - Get all saved filters - get_filters(filter_type="persons") - Get only person/contact filters - get_filters(filter_type="deals") - Get only deal filters

get_deal_fieldsA

Get all deal field definitions from Pipedrive.

Returns field metadata that maps the hash IDs (like 'c3976c9693716fc786c2092081506816441ee526') to human-readable names. Essential for understanding custom fields in deal data.

Returns: JSON array of field definitions with: - key: The field ID/hash used in deal data - name: Human-readable field name - field_type: Type of field (text, number, date, enum, etc.) - options: Available options for enum/set fields

Examples: - get_deal_fields() - Get all deal field definitions

get_person_fieldsA

Get all person/contact field definitions from Pipedrive.

Returns field metadata that maps the hash IDs to human-readable names. Essential for understanding custom fields in person data.

Returns: JSON array of field definitions with key, name, field_type, and options

Examples: - get_person_fields() - Get all person field definitions

get_organization_fieldsA

Get all organization field definitions from Pipedrive.

Returns field metadata that maps the hash IDs to human-readable names. Essential for understanding custom fields in organization data.

Returns: JSON array of field definitions with key, name, field_type, and options

Examples: - get_organization_fields() - Get all organization field definitions

get_activitiesA

Get activities (calls, meetings, tasks, emails) from Pipedrive.

Retrieves activities with various filter options. Can filter by linked entities, type, completion status, and date range.

Args: deal_id: Filter by deal ID person_id: Filter by person ID org_id: Filter by organization ID user_id: Filter by assigned user ID activity_type: Filter by type (call, meeting, task, email, etc.) done: Filter by completion status (True=done, False=not done) start_date: Activities from this date (ISO format: YYYY-MM-DD) end_date: Activities until this date (ISO format: YYYY-MM-DD) limit: Maximum results (default: 100)

Returns: JSON array of activities with subject, type, due date, done status, notes, and linked entities

Examples: - get_activities() - Get recent activities - get_activities(deal_id=123) - Get activities for a specific deal - get_activities(done=False) - Get incomplete activities - get_activities(activity_type="call") - Get all calls - get_activities(start_date="2026-01-01", end_date="2026-01-31") - Get January activities

get_activity_typesA

Get all activity types configured in Pipedrive.

Returns the list of activity types (call, meeting, task, lunch, etc.) available in your Pipedrive account. Use this to know what types can be used when filtering activities.

Returns: JSON array of activity types with id, name, and icon

Examples: - get_activity_types() - Get all available activity types

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/osherai/pipedrive-mcp-python'

If you have feedback or need assistance with the MCP directory API, please join our Discord server