Pipedrive MCP Server
An MCP (Model Context Protocol) server for Pipedrive CRM integration with Claude Code and Claude Desktop. Query, create, and update CRM data directly from your AI assistant.
에이전트 강화
게시자의 자체 명령입니다. PlugMCP 엔드포인트가 아닙니다.
Host a copy with our keys and logs.
npx -y @ckalima/[email protected]Claude Code에는 로컬 명령용 설치 링크가 없습니다. 아래 명령을 복사해 터미널에서 실행합니다.
claude mcp add ckalima-pipedrive-mcp-server -- npx -y @ckalima/pipedrive-mcp-server@2.7.1터미널에서 실행합니다.
{ "mcpServers": { "ckalima-pipedrive-mcp-server": { "command": "npx", "args": [ "-y", "@ckalima/[email protected]" ] } }}claude_desktop_config.json
원격 URL인가요, 내 컴퓨터에서 실행하는 명령인가요? 두 설치 방식의 차이
PlugMCP에서 실행
A new server you create. It is not this listing's official endpoint. Use the publisher install when you want their URL and their credentials.
실행docs/api/openapi-v2.yaml) in tests/contract/, so the v2 tools can't silently drift from the documented API.scripts/smoke-coverage.ts), with only API-unseedable surfaces (e.g. mail threads, project templates) left to manual checks. Coverage includes plan-gated endpoints such as Growth+ deal installments (scripts/smoke-installments.ts). Key write smokes (e.g. the task is_done flag) assert the field value actually changed on the wire, not just a 200.PIPEDRIVE_MODE picks a safety tier — read-only, safe-write (the default: reads + non-destructive writes), or full — and out-of-mode tools are both hidden from tools/list and refused if called directly. Deletes, conversions, and other irreversible writes (🔒 in the tool table) require full, so the server is read-and-create only out of the box. Every tool also carries MCP annotations (readOnlyHint/destructiveHint/idempotentHint) so policy-aware clients can tell reads from writes from deletes. See Capability modes.Honest limitations. Transport is STDIO only today (a Streamable HTTP flag is planned), and auth is via a Pipedrive API key, which matches the local/self-hosted tier this server targets. There is no hosted OAuth offering yet.
npx … initRun the one-command guided installer and follow the prompts. It opens the Pipedrive API-token page, validates your key live against your account, and generates a working MCP config for your client (Claude Desktop, Claude Code, Cursor, Windsurf, or VS Code):
npx -y @ckalima/pipedrive-mcp-server init
It always prints a paste-ready block and can optionally write it into your client's
config file after a timestamped backup. Committed/shared config files use
${PIPEDRIVE_API_KEY} indirection, never a raw key. Prefer to configure by hand? The
manual steps below still work.
Add to your .mcp.json file:
{
"mcpServers": {
"pipedrive": {
"command": "npx",
"args": ["-y", "@ckalima/pipedrive-mcp-server"],
"env": {
"PIPEDRIVE_API_KEY": "your-40-character-api-key"
}
}
}
}
Package name: the supported package is the scoped
@ckalima/pipedrive-mcp-server. If you arrived from an older snippet that referenced the unscopedpipedrive-mcp-server, update your config to the scoped name above — the unscoped name is a different, unrelated package.
You can also start it directly to verify your setup:
npx -y @ckalima/pipedrive-mcp-server
Or set the environment variable:
export PIPEDRIVE_API_KEY="your-40-character-api-key"
To enable destructive tools, set PIPEDRIVE_MODE=full (or, for back-compat, PIPEDRIVE_ENABLE_DESTRUCTIVE=true) in the env block of your .mcp.json alongside PIPEDRIVE_API_KEY. Below full, every 🔒 tool returns a DESTRUCTIVE_DISABLED error instead of acting, and tools above the active tier return a MODE_RESTRICTED error.
PIPEDRIVE_MODE sets a server-enforced safety tier. The tier is enforced two ways: out-of-mode tools are filtered out of tools/list (so the agent never sees them) and the dispatcher refuses any out-of-mode call by name before its handler runs, so the tier is a real guarantee rather than a UI hint.
Recommended for first-time setup and agent evaluation: read-only. Let the agent look before it can touch anything, then widen the tier as you build trust.
Backward compatibility. PIPEDRIVE_MODE is authoritative when set. When it is unset, the mode is derived from the legacy PIPEDRIVE_ENABLE_DESTRUCTIVE flag (true → full, otherwise safe-write), so existing installs keep their execution behavior on upgrade: every tool that ran before still runs, and every tool gated before is still gated. The one observable change at the unset default (safe-write) is that the 32 destructive tools — already refused at execution unless enabled — are now also hidden from tools/list rather than listed-then-refused (so the listed surface is 123, not 155). An unrecognized PIPEDRIVE_MODE value falls back to read-only.
Once configured, Claude can access your Pipedrive data:
The API token decides which Pipedrive company you are talking to, and until now nothing in a tool result said which one that was. Two registrations of this server in the same client (say, a project-scoped entry and a local-scoped one that reads a stale .env) resolve to different companies, and the one that loses precedence is invisible. The server now names the account it actually resolved, in two places.
On startup, one line on stderr:
[pipedrive-mcp-server] Connected as [email protected] -> company "Example Corp" (id 12345)
If the check fails, that line says so (Could not verify connected account: ...) instead of the server starting silently. If the API key is missing or malformed it reports that the account was not checked, because no request was made.
On the first tool response after the boot check settles, a one-shot connection block naming the same company, so the agent knows which account the data came from without being asked and without spending a tool call. It is emitted once per process. The check runs in the background, so any tool call that finishes while it is still in flight is returned unchanged and the block lands on a later response instead. Treat it as a fact the server volunteers once it knows, not as a guarantee that every early response carries it. Delivery is also not consumption: a host that passes the block through unchanged still leaves it to the model whether to act on it, and smaller models skip it on some runs.
Inside that block, company_id and verified are asserted by the server and sit at the top level. The display strings the server cannot vouch for - company_name and user_email, or reason when the check did not succeed - are nested under untrusted_display, because a company name is CRM content that anyone with write access to the account can set. If you parse the block, bind everything under that key to the same trust level you give data. See SECURITY.md.
The check is a single GET /v1/users/me at boot, capped at one attempt with a 10-second timeout. It never blocks startup and never fails a tool call. Nothing is checked against an expected value: verified: true means the token resolved to an account, not to the right one.
To read the same information on demand, call pipedrive_get_current_user, which returns the connected company's name, id, and domain alongside the token owner's user details.
For contributors: the banner line and the notice both carry a real Pipedrive company id. If you paste either into a document in this repo, that document belongs in gitignored docs/private/ (see CLAUDE.md), not in the public tree.
155 tools. 🔒 destructive (require PIPEDRIVE_MODE=full, off by default) · ⭑ requires a Growth+ plan. The active capability mode governs which tools are listed.
This section is generated by npm run gen:docs from the live tool registry. Do not edit by hand - CI fails on drift.
"Show me all open deals in the Sales pipeline, sorted by value"
"Get details for deal 12345 including custom fields"
"Move deal 12345 to the Proposal stage"
"Find contacts at Acme Corp"
"Get emails for person 456 to analyze their engagement"
"What custom fields do we have for persons?"
"List my overdue activities"
"Create a follow-up call with John Smith for tomorrow at 2pm"
"Mark activity 789 as done"
"List all custom fields for deals"
"What does field '8a4d7f...' mean?" (40-char hash)
git clone https://github.com/ckalima/pipedrive-mcp-server.git
cd pipedrive-mcp-server
npm install
cp .env.example .env
# Edit .env with your API key
npm run build
npm run start
npm run dev
npx @modelcontextprotocol/inspector node dist/index.js
This server uses both Pipedrive API versions, routing each call to the correct one automatically:
/api/v2): Deals, Persons, Organizations, Activities, Products, Projects, Tasks, Boards & Phases, Fields, Pipelines & Stages, and Leads search/v1): Mail, Notes, Users, and Leads CRUDPipedrive is sunsetting v1. Selected v1 endpoints that have v2 equivalents reach end-of-life on 2025-12-31, with full v1 sunset expected around 2026-07-31; the v1 surfaces above (Mail, Notes, Users, Leads CRUD) have no v2 replacement yet. See docs/v1-only-capabilities.md for details.
Errors are returned with actionable suggestions:
{
"error": {
"code": "INVALID_API_KEY",
"message": "API key is invalid or expired",
"suggestion": "Verify your API key at Pipedrive Settings > Personal preferences > API"
}
}
Common error codes:
MISSING_API_KEY - Set PIPEDRIVE_API_KEY environment variableINVALID_API_KEY - Check your API key in Pipedrive settingsNOT_FOUND - The requested resource doesn't existRATE_LIMITED - Wait 60 seconds before retryingVALIDATION_ERROR - Check your request parametersSee SECURITY.md for the threat model (data flows, credential handling, prompt-injection honesty, the AI/agent attack-surface catalog, operator best practices, and known limitations) and how to report a vulnerability privately. In short: STDIO-only with no network listener, the API token is read from the environment and never logged, destructive operations are gated off by default, and CRM tool output is structurally labeled as untrusted (an advisory mitigation, not a guarantee, see the residual-risk note).
For least-privilege deployment, mint the token from a dedicated, restricted Pipedrive user, keep destructive ops disabled unless needed, and isolate the agent's context so a prompt injection in CRM data has no exfiltration channel. See Operator best practices.
See CONTRIBUTING.md for guidelines.
MIT - see LICENSE
MCP server for Pipedrive CRM integration with Claude Code
{ "mcpServers": { "ckalima-pipedrive-mcp-server": { "command": "npx", "args": [ "-y", "@ckalima/[email protected]" ] } }}도구
아직 도구 목록이 없습니다. 원격 서버는 첫 상태 확인 후에 도구 목록이 생깁니다.
FAQ
이 페이지에서 Cursor, Claude Desktop, Claude Code 또는 VS Code용 stdio 설정을 복사합니다. PlugMCP 프록시가 아니라 게시자의 설치 방식을 사용합니다.
이 레코드에는 필수 환경 변수가 등록되어 있지 않습니다.
@ckalima/pipedrive은(는) stdio를 통해 로컬에서 실행됩니다.
마지막 확인: 2026-10-27. MCP server for Pipedrive CRM integration with Claude Code