Pipedrive MCP Server
This server acts as an MCP interface for Pipedrive CRM, enabling AI assistants to query, create, update, and manage CRM data directly.
Core CRM Entity Management (CRUD): Deals, Persons (contacts), Organizations, Activities, Notes, Leads, Projects, Products, Tasks, Project Boards, and Project Phases.
Search: Search Deals by title, Persons by name/email/phone, Organizations by name/address, Leads by title/contacts, and Projects/Products by name/code/custom fields.
Email & Communication: Access email messages linked to persons or deals; list and read mail threads and messages from your mailbox (inbox, drafts, sent, archive).
Custom Field Management: Discover, create, update, and delete custom fields and their options for Deals, Persons, Organizations, Products, and Projects.
Pipeline & Stage Management: List, get, create, update, and delete sales pipelines and their stages.
User Management: List all users, get details for specific users, or retrieve info about the current authenticated user.
Data Conversion: Convert deals to leads and leads to deals, with status tracking for asynchronous operations.
Follower Management: Add and remove followers for Deals, Persons, Organizations, and Products.
Product Line-item Management: Attach and manage products, discounts, and payment installments on deals.
Pagination & Filtering: Cursor-based pagination and extensive filtering options across most list operations.
Safety: Destructive operations (deletes, conversions) are disabled by default and require explicitly setting PIPEDRIVE_ENABLE_DESTRUCTIVE=true. Authentication uses a Pipedrive API key.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pipedrive MCP ServerShow me all open deals worth more than $10,000"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Why this server
API v2-first. Every entity uses Pipedrive's v2 REST API where it exists; v1 is used only for the capabilities that have no v2 equivalent (notes, mail, users, and leads CRUD). See API Versioning.
Contract-tested against the real OpenAPI spec. Request params, request bodies, and response shapes are checked against the vendored Pipedrive OpenAPI v2 definition (
docs/api/openapi-v2.yaml) intests/contract/, so the v2 tools can't silently drift from the documented API.Live-smoke verified. The tool surface is broadly exercised against a real Pipedrive account (
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 taskis_doneflag) assert the field value actually changed on the wire, not just a 200.Server-enforced capability modes.
PIPEDRIVE_MODEpicks a safety tier โread-only,safe-write(the default: reads + non-destructive writes), orfullโ and out-of-mode tools are both hidden fromtools/listand refused if called directly. Deletes, conversions, and other irreversible writes (๐ in the tool table) requirefull, 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.MIT licensed, published with npm build provenance.
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.
Related MCP server: Pipedrive MCP Server by CData
Features
Full CRM Operations: Deals, persons, organizations, activities
Email Analysis: Access mail threads and messages for engagement analysis
Field Discovery: Map custom field hash codes to human-readable names
Pipeline Management: List pipelines, stages, and users
Pagination Support: Cursor-based pagination for large datasets
Error Handling: Clear, actionable error messages
Quick Start
Fastest setup: npx โฆ init
Run 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 initIt 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.
1. Get Your Pipedrive API Key
Log into Pipedrive
Go to Settings > Personal preferences > API
Copy your API key (40 characters)
2. Configure Claude Code
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-serverOr set the environment variable:
export PIPEDRIVE_API_KEY="your-40-character-api-key"Environment Variables
Variable | Required | Default | Description |
| Yes | - | Your 40-character Pipedrive API token. |
| No |
| Server-enforced capability tier: |
| No |
| Legacy flag, superseded by |
| No | (unset) | Allowlisted directory the server may read product images from when |
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.
Capability modes
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.
Mode | What's available | Tools | Destructive ops |
| read verbs only ( | 69 | no |
| reads + non-destructive writes | 123 | no |
| all tools | 155 | yes |
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.
3. Start Using
Once configured, Claude can access your Pipedrive data:
"Show me open deals worth more than $10,000"
"Create a deal called 'Acme Contract' with value $50,000"
"Find all contacts at TechCorp"
"List recent email threads in my inbox"
"What custom fields are defined for deals?"
Connected account
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 you@example.com -> 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.
Available Tools
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.
Deals
Tool | Description |
| List deals from Pipedrive with optional filtering by owner, person, organization, pipeline, stage, or status. Returns paginated results. |
| Get detailed information about a specific deal by ID, including all standard and custom fields. |
| Create a new deal in Pipedrive. Only title is required; all other fields are optional. |
| Update an existing deal in Pipedrive. Specify the deal ID and any fields to update. |
| Search for deals by text in title. Supports fuzzy matching by default. |
| Delete a deal. The deal will be marked as deleted and permanently removed after 30 days. |
| List all followers for a deal. |
| Add a follower to a deal. |
| Remove a follower from a deal. |
| Get the followers changelog for a deal. |
| List line-item products attached to a deal. Returns paginated results. |
| Attach a single product as a line item to a deal. |
| Update a line-item product attached to a deal. All body fields optional. |
| Remove a line-item product from a deal. |
| Bulk-add up to 100 line-item products to a deal in one request. |
| List all additional discounts applied to a deal. |
| Add an additional discount to a deal. |
| Update an additional discount on a deal. All fields except IDs are optional. |
| Delete an additional discount from a deal. |
| List installments across one or more deals. Requires deal_ids. Growth+ plan required. |
| 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. |
| Update an installment on a deal. Growth+ plan required; all body fields optional. |
| Delete an installment from a deal. Growth+ plan required. |
| List archived deals with the same filtering as the active deals list (owner, person, organization, pipeline, stage, status). Returns paginated results. |
| Convert a deal to a lead (async job). DESTRUCTIVE: a successful conversion marks the source deal as deleted. Returns a conversion_id; the conversion runs asynchronously, so you MUST poll pipedrive_get_deal_conversion_status with the conversion_id until a terminal status. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| 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. |
Persons
Tool | Description |
| List persons (contacts) from Pipedrive with optional filtering by owner, organization, or first letter of name. |
| Get detailed information about a specific person by ID. |
| Create a new person (contact) in Pipedrive. Only name is required. |
| Update an existing person in Pipedrive. |
| Search for persons by name, email, or phone number. |
| Delete a person. The person will be marked as deleted and permanently removed after 30 days. |
| List all followers for a person. |
| Add a follower to a person. |
| Remove a follower from a person. |
| Get the followers changelog for a person. |
| Get the picture for a person (read-only; returns picture metadata and sized image URLs). Returns an error if the person has no picture. |
Organizations
Tool | Description |
| List organizations from Pipedrive with optional filtering by owner or first letter of name. |
| Get detailed information about a specific organization by ID. |
| Create a new organization in Pipedrive. Only name is required. |
| Update an existing organization in Pipedrive. |
| Search for organizations by name or address. |
| Delete an organization. The organization will be marked as deleted and permanently removed after 30 days. |
| List all followers for an organization. |
| Add a follower to an organization. |
| Remove a follower from an organization. |
| Get the followers changelog for an organization. |
Activities
Tool | Description |
| List activities from Pipedrive with optional filtering by owner, deal, person, organization, type, or completion status. |
| Get detailed information about a specific activity by ID. |
| Create a new activity in Pipedrive. Subject and type are required. |
| Update an existing activity in Pipedrive. Use this to mark activities as done. |
| Delete an activity. |
Notes
Tool | Description |
| List notes from Pipedrive with optional filtering by deal, person, organization, or lead. |
| Get detailed information about a specific note by ID. |
| Create a new note in Pipedrive. Content is required. Link to a deal, person, organization, or lead. |
| Update an existing note in Pipedrive. |
| Delete a note. |
Leads
Tool | Description |
| List active (non-archived) leads from Pipedrive with optional filtering by owner, person, or organization. |
| List archived leads from Pipedrive with optional filtering by owner, person, or organization. |
| Get detailed information about a specific lead by UUID. |
| Create a new lead in Pipedrive. Title is required; link to at least one of person_id or organization_id. |
| Update an existing lead in Pipedrive. |
| Search for leads in Pipedrive by title or associated contacts. |
| Delete a lead. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| Convert a lead into a deal (Pipedrive v2). DESTRUCTIVE: a successful conversion marks the source lead as deleted. 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. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| Get the status of an async lead-to-deal conversion by conversion ID (Pipedrive v2 GET /leads/{id}/convert/status/{conversion_id}). |
Projects
Tool | Description |
| 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.) |
| Get detailed information about a specific project by ID. (Requires the Projects add-on; Projects API is in public beta.) |
| Create a new project in Pipedrive. Requires title, board_id, and phase_id. (Requires the Projects add-on; Projects API is in public beta.) |
| Update an existing project in Pipedrive. (Requires the Projects add-on; Projects API is in public beta.) |
| Delete a project. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). (Requires the Projects add-on; Projects API is in public beta.) |
| Search for projects in Pipedrive by title. (Requires the Projects add-on; Projects API is in public beta.) |
| Archive a project by setting its status to archived. (Requires the Projects add-on; Projects API is in public beta.) |
| List tasks for a project you already have the ID for โ pass only |
| List all project templates available in Pipedrive. Returns paginated results. |
| Get detailed information about a specific project template by ID. |
| List archived projects from Pipedrive with optional filtering by filter, phase, or status. (Projects add-on; Projects API in public beta.) |
| 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.) |
| 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.) |
Products
Tool | Description |
| List products from Pipedrive with optional filtering by owner, IDs, or filter. |
| Get detailed information about a specific product by ID. |
| Search for products by name, code, or custom fields. |
| Create a new product in Pipedrive. Only name is required. |
| Update an existing product in Pipedrive. |
| Delete a product. The product will be marked as deleted and permanently removed after 30 days. |
| List all variations for a product. |
| Add a variation to a product. |
| Update an existing product variation. |
| Delete a product variation. |
| List all followers for a product. |
| Add a follower to a product. |
| Remove a follower from a product. |
| Get the followers changelog for a product. |
| Get the image of a product (returns a single image with a public URL valid for 7 days). |
| Delete the image of a product. |
| 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. |
| 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. |
Tasks
Tool | Description |
| 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.) |
| Get detailed information about a specific task by ID. (Projects add-on; Projects API in public beta.) |
| 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.) |
| 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.) |
| Delete a task. If the task has subtasks, those will also be deleted. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). (Projects add-on; Projects API in public beta.) |
Boards & Phases
Tool | Description |
| 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.) |
| Get detailed information about a specific project board by ID. (Projects add-on; Projects API in public beta.) |
| Create a new project board. name is required. (Projects add-on; Projects API in public beta.) |
| Update an existing project board. Only id is required; all other fields are optional. (Projects add-on; Projects API in public beta.) |
| Delete a project board. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). (Projects add-on; Projects API in public beta.) |
| 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.) |
| Get detailed information about a specific project phase by ID. (Projects add-on; Projects API in public beta.) |
| Create a new project phase. name and board_id are required. (Projects add-on; Projects API in public beta.) |
| 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.) |
| Delete a project phase. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). (Projects add-on; Projects API in public beta.) |
Tool | Description |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
Fields
Tool | Description |
| List all organization field definitions, including custom fields. Use this to map 40-character field keys to human-readable names. |
| List all deal field definitions, including custom fields. Essential for understanding deal data structure. |
| List all person field definitions, including custom fields. Use to understand contact data structure. |
| List all product field definitions, including custom fields. |
| List all project field definitions, including custom fields. (Projects add-on; Projects API in public beta.) |
| Get details of a specific field by its key. Useful for looking up what a 40-character hash field key means. |
| 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. |
| Update a deal custom field by field_code. field_type and field_code cannot be changed. |
| Delete a deal custom field by field_code. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| Bulk-update option labels of a deal enum/set field. Atomic: the whole request fails if any option ID does not exist. |
| Bulk-delete options of a deal enum/set field. Atomic: fails if any ID does not exist. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| 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. |
| Update a person custom field by field_code. field_type and field_code cannot be changed. |
| Delete a person custom field by field_code. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| Bulk-update option labels of a person enum/set field. Atomic: the whole request fails if any option ID does not exist. |
| Bulk-delete options of a person enum/set field. Atomic: fails if any ID does not exist. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| 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. |
| Update an organization custom field by field_code. field_type and field_code cannot be changed. |
| Delete an organization custom field by field_code. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| Bulk-update option labels of an organization enum/set field. Atomic: the whole request fails if any option ID does not exist. |
| Bulk-delete options of an organization enum/set field. Atomic: fails if any ID does not exist. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| 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. |
| 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). |
| Delete a product custom field by field_code. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| Bulk-update option labels of a product enum/set field. Atomic: the whole request fails if any option ID does not exist. |
| Bulk-delete options of a product enum/set field. Atomic: fails if any ID does not exist. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
Pipelines & Stages
Tool | Description |
| List sales pipelines in Pipedrive with cursor pagination. Pipelines contain stages that deals move through. |
| List stages with cursor pagination, optionally filtered by pipeline. Stages represent steps in the sales process. |
| Get details of a specific stage by ID. |
| Create a new sales pipeline. Only name is required. Set is_deal_probability_enabled to turn on weighted deal probability for the pipeline. |
| Update an existing pipeline. Provide the pipeline id and any fields to change. |
| Delete a pipeline. Marks the pipeline as deleted. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
| 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. |
| Update an existing stage. Provide the stage id and any fields to change. Set pipeline_id to move the stage to another pipeline. |
| Delete a stage. Marks the stage as deleted. Requires PIPEDRIVE_MODE=full (back-compat: PIPEDRIVE_ENABLE_DESTRUCTIVE=true). |
Users
Tool | Description |
| List all users in the Pipedrive account. Useful for finding owner IDs when creating or filtering records. |
| Get details of a specific user by ID. |
| Identify the Pipedrive account this server is connected to: returns the connected company (name, id, and domain) alongside the API key owner's user details. Use it to confirm which company the data is coming from, or to get your user ID. |
Example Workflows
Analyze Deal Pipeline
"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"Customer Research
"Find contacts at Acme Corp"
"Get emails for person 456 to analyze their engagement"
"What custom fields do we have for persons?"Activity Management
"List my overdue activities"
"Create a follow-up call with John Smith for tomorrow at 2pm"
"Mark activity 789 as done"Field Discovery
"List all custom fields for deals"
"What does field '8a4d7f...' mean?" (40-char hash)Development
Local Setup
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 keyBuild & Run
npm run build
npm run startDevelopment Mode
npm run devTest with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsAPI Versioning
This server uses both Pipedrive API versions, routing each call to the correct one automatically:
v2 (
/api/v2): Deals, Persons, Organizations, Activities, Products, Projects, Tasks, Boards & Phases, Fields, Pipelines & Stages, and Leads searchv1 (
/v1): Mail, Notes, Users, and Leads CRUD
Pipedrive 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.
Error Handling
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 parameters
Security
See 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.
Contributing
See CONTRIBUTING.md for guidelines.
License
MIT - see LICENSE
Links
Available Tools
123 toolspipedrive_add_deal_discountC
Add an additional discount to a deal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| type | Yes | Whether amount is a percentage or fixed amount (required) | |
| amount | Yes | Discount amount, must be positive (required) | |
| description | Yes | Discount description (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's not read-only. The description adds no new behavioral details (e.g., idempotency, side effects, or whether it creates a new record). The openWorldHint is not explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short sentence, concise and to the point. It is front-loaded with the key action. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple add operation, but it does not mention that the deal ID must exist, or what the tool returns. Given no output schema, additional context could help.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter's description already exists. The tool description doesn't add any extra meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (add) and resource (discount to a deal). It distinguishes from sibling tools like update, list, or other add tools. However, it could be more precise about what 'additional' means.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives such as pipedrive_update_deal_discount or pipedrive_list_deal_discounts. No prerequisites or context are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_add_deal_followerB
Add a follower to a deal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| user_id | Yes | The ID of the user to add as a follower (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is not read-only, not destructive, not idempotent, and open-world. The description merely states the action without additional behavioral traits like authentication needs, side effects, or error handling. It adds no value beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with the action, no unnecessary words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two required parameters and no output schema, the description is minimally adequate. However, it lacks context on error cases (e.g., duplicate followers, invalid IDs) and the exact behavior of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (both parameters described). The description adds no additional meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a follower') and the resource ('a deal'). Among sibling tools, there are similar add_follower tools for other resources, but the name and description together disambiguate. However, it does not explicitly differentiate from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives (e.g., when to add a follower vs. remove or list followers). No prerequisites or context about when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| amount | Yes | Installment amount, must be positive (required) | |
| description | Yes | Installment description (required) | |
| billing_date | Yes | Billing date in YYYY-MM-DD format (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate write operation. Description adds that it adds an installment, but doesn't describe side effects or error behavior when prerequisites are not met. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states action, second gives prerequisites. No extraneous words, front-loaded with key verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers prerequisites well. Missing return value info (e.g., returns the created installment). Given low complexity and no output schema, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with descriptions for all parameters. The description does not add further detail beyond the schema, so baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it adds an installment (payment schedule entry) to a deal. It distinguishes from siblings like pipedrive_add_deal_discount and pipedrive_add_deal_product by specifying 'installment' and providing prerequisites.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit prerequisites are given (Growth+ plan, deal must have one-time product and no recurring products). However, it doesn't explicitly state when not to use or name alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_add_deal_productB
Attach a single product as a line item to a deal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| tax | No | Tax percentage (default 0) | |
| comments | No | Free-text comments for this line item | |
| discount | No | Discount applied to the line item (default 0) | |
| quantity | Yes | Quantity of the product (required) | |
| is_enabled | No | Whether the product is enabled on the deal (default true) | |
| item_price | Yes | Price of one unit (required) | |
| product_id | Yes | The product ID to attach (required) | |
| tax_method | No | How tax is applied | |
| discount_type | No | Whether discount is a percentage or fixed amount (default percentage) | |
| billing_frequency | No | Billing frequency for recurring products | |
| billing_start_date | No | Billing start date (YYYY-MM-DD, null to clear) | |
| product_variation_id | No | Product variation ID (null to clear) | |
| billing_frequency_cycles | No | Number of billing cycles (null = unlimited) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false, so the agent knows this is a write operation that is not destructive. The description adds 'attach' but reveals no further behavioral traits, such as whether the deal total is recalculated, whether the product must exist, or what happens on failure. It does not contradict annotations, but adds minimal value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant or filler content. It clearly states the action and object in minimal words, making it very concise and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 14 parameters including optional billing fields and multiple sibling tools for deal products, a one-line description is insufficient. It does not explain when to use this versus bulk operations, mention prerequisites like existing deal/product IDs, or highlight notable optional behaviors (e.g., recurring billing). The agent would need to rely heavily on the schema and sibling names, risking incorrect selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all 14 parameters already have descriptive text in the schema. The tool-level description does not add any parameter-specific context beyond what the schema provides, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('attach'), a specific resource (a single product as a line item to a deal), and it distinguishes itself from siblings like pipedrive_bulk_add_deal_products and pipedrive_update_deal_product by emphasizing 'single' and the add semantics. An agent can immediately understand the core function and differentiate it from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives like bulk_add_deal_products or update_deal_product. The description does not mention any conditions, prerequisites, or contexts, leaving the agent to infer usage solely from the operation name and schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_add_organization_followerB
Add a follower to an organization.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The organization ID | |
| user_id | Yes | The ID of the user to add as a follower (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false and destructiveHint=false, so the description aligns with them. However, the description adds no extra behavioral context such as permission requirements, side effects, or rate limits, relying fully on annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but lacks any structure. It is not verbose, but could benefit from slightly more detail without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and minimal annotations, the description is too sparse. It does not explain what happens after adding the follower (e.g., notifications, duplicate handling), leaving the agent with insufficient context for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both 'id' and 'user_id' documented. The description does not add any additional meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Add a follower to an organization' with a specific verb and resource. Among sibling tools like pipedrive_add_deal_follower, pipedrive_add_person_follower, etc., it is clearly distinguished by the entity type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool, when not to, or any alternatives. No prerequisites or context are mentioned, which is a significant gap given the existence of multiple follower-related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_add_person_followerB
Add a follower to a person.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The person ID | |
| user_id | Yes | The ID of the user to add as a follower (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, so the agent knows this is a write operation. The description adds no further behavioral context, such as whether the operation can fail, or what happens if the follower already exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 6 words, no redundancy, and directly states the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite low complexity, the description lacks information about return values, error conditions, or outcomes. For a write tool with no output schema, this is insufficient for an agent to understand what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with basic descriptions for both parameters. The description does not add any additional meaning or context beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('Add a follower') and the resource ('to a person'). It distinguishes from sibling tools like pipedrive_add_organization_follower and pipedrive_add_deal_follower by specifying the entity type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_add_product_followerB
Add a follower to a product.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product ID | |
| user_id | Yes | The ID of the user to add as a follower (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate this is a mutating operation (readOnlyHint=false) and non-destructive (destructiveHint=false). The description adds no additional behavioral context, such as required permissions, side effects like notifications, or response format. The minimal description does not enhance transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no extraneous words. It efficiently communicates the tool's primary function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool is simple, the description lacks information about success/error outcomes, return values, or any post-invocation behavior. Given there is no output schema, the agent is left without knowing what to expect after execution. The description is incomplete for practical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with clear descriptions for both parameters (product ID, user ID). The description does not add further meaning beyond the schema. Baseline score of 3 is appropriate as the schema already provides sufficient parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Add a follower to a product' clearly specifies the action (Add) and resource (follower to a product). It effectively distinguishes this tool from sibling add_follower tools for other entities like deals, organizations, and persons, as implied by the tool name and description.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as other add_follower tools for different entities. There is no mention of prerequisites, context, or conditions under which adding a follower is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_add_product_variationB
Add a variation to a product.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product ID | |
| name | Yes | Product variation name (required, max 255 chars) | |
| prices | No | Array of price objects per currency |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate mutation (readOnlyHint=false) and non-destructive nature (destructiveHint=false). The description adds no further behavioral context, such as permission requirements, side effects, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no extraneous information. It is appropriately front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple creation tool but lacks details on return values, error handling, or post-creation behavior. Given the lack of output schema and annotations providing some context, it is minimally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with all parameters described in the schema. The description adds no additional meaning beyond the schema, achieving the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Add'), the resource type ('variation'), and the target ('product'), distinguishing it from sibling tools like pipedrive_create_product or pipedrive_add_product_follower. However, it does not elaborate on the concept of a variation (e.g., size, color) beyond the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like pipedrive_create_product or pipedrive_add_product_follower. The usage context is only implied by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_archive_projectAIdempotent
Archive a project by setting its status to archived. (Requires the Projects add-on; Projects API is in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Project ID to archive |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the effect (setting status to archived) and adds context about the add-on requirement and beta status. Annotations indicate idempotentHint=true and no destructiveness, which are consistent with the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence plus a concise parenthetical note. No unnecessary words, perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one required parameter, no output schema), the description adequately covers purpose, effect, and prerequisites. It could mention the impact on listing visibility, but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'id' is described in the schema as 'Project ID to archive'. The description does not add additional meaning beyond what the schema already provides. With 100% schema coverage, baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Archive a project') and the resource (project). It distinguishes from sibling tools like update_project or create_project by specifying the archiving action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the requirement for the Projects add-on and that the API is in public beta, providing context for usage. However, it does not explicitly state when not to use this tool or suggest alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_bulk_add_deal_productsA
Bulk-add up to 100 line-item products to a deal in one request.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| data | Yes | Array of 1-100 line-item products to add |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish a write operation (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds the batch-size ceiling ('up to 100'), which is useful. However, it does not disclose failure semantics for bulk operations (e.g., partial success, all-or-nothing validation) or whether the call appends to or replaces existing products, leaving openWorldHint=true under-explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with zero filler. The key qualifiers 'Bulk', 'up to 100', and 'in one request' all precede the noun and convey maximum meaning in minimal space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a bulk mutation with a complex nested payload (11 properties across line items) and no output schema, the description is thin. It leaves undefined what happens on partial failure, how existing deal products are affected, and whether items validate atomically. The rich schema covers parameters, but behavioral context for a bulk write is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the nested data array properties (tax, discount, billing_frequency, etc.) are fully documented in the schema. The description adds no parameter-level detail, so the dimension sits at the baseline where the schema carries the weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Bulk-add'), resource ('line-item products'), target ('a deal'), and a batch limit ('up to 100'). The 'bulk' qualifier distinguishes it from pipedrive_add_deal_product and pipedrive_update_deal_product, though it never names them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the batch context ('up to 100 line-item products in one request') and contrasts implicitly with single-item siblings, but it does not explicitly state when to prefer this tool over pipedrive_add_deal_product or note any exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_activityB
Create a new activity in Pipedrive. Subject and type are required.
| Name | Required | Description | Default |
|---|---|---|---|
| busy | No | Show as busy in calendar | |
| done | No | Mark as completed | |
| note | No | Activity notes (HTML supported) | |
| type | Yes | Activity type: call, meeting, task, deadline, email, lunch (required) | |
| org_id | No | Link to organization ID | |
| deal_id | No | Link to deal ID | |
| lead_id | No | Link to lead ID (UUID format) | |
| subject | Yes | Activity subject (required) | |
| due_date | No | Due date (YYYY-MM-DD) | |
| due_time | No | Due time (HH:MM) | |
| duration | No | Duration (HH:MM) | |
| location | No | Activity location (structured object) | |
| owner_id | No | Owner user ID | |
| priority | No | Activity priority (integer) | |
| attendees | No | External attendees (email addresses) | |
| person_id | No | Link to person ID | |
| project_id | No | Link to project ID | |
| participants | No | Activity participants (person IDs) | |
| public_description | No | Public description for guests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide minimal behavioral info (readOnlyHint=false, destructiveHint=false). The description only states 'Create' but doesn't disclose creation behavior, side effects, success/error outcomes, or quotas. It adds little beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences, with the first sentence stating the purpose and the second highlighting key requirements. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (19 parameters, nested objects, no output schema), the description is too brief. It lacks details on return value, validation rules, or behavioral context, making it insufficient for an agent to fully understand the tool's effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the schema already details all parameters. The description only reiterates that subject and type are required, which is already in the schema's required array. No extra semantic value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Create' and the resource 'activity in Pipedrive', with required fields mentioned. It distinguishes from sibling tools like pipedrive_update_activity and pipedrive_list_activities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Beyond stating that subject and type are required, the description gives no guidance on when to use this tool vs alternatives (e.g., using pipedrive_update_activity for updates) or any prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_boardC
Create a new project board. name is required. (Projects add-on; Projects API in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Board name (required, must not be empty) | |
| order_nr | No | Board order number (integer >= 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's a write operation (readOnlyHint=false), not destructive, and not idempotent. The description adds only the note about the add-on and public beta. It does not disclose side effects, prerequisites, or behavior beyond creating a board, which is already implied. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with a single clear statement of purpose and a parenthetical note. It is front-loaded and efficient, though it could include structured bullet points for better readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple creation tool, the description covers the basic purpose and required parameter. However, it lacks context about whether the board belongs to a specific project (given sibling pipedrive_create_project), and the return value is not described (no output schema). It is adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters fully described. The description redundantly states that name is required but adds no new semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new project board' with the verb 'Create' and resource 'project board'. It distinguishes itself from sibling tools like pipedrive_create_project and pipedrive_create_phase by being specific to boards. However, it does not explicitly differentiate from these alternatives, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance: it notes 'name is required' and mentions 'Projects add-on; Projects API in public beta.' There is no indication of when to use this tool versus alternatives like pipedrive_create_project or pipedrive_create_phase, nor are prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_dealA
Create a new deal in Pipedrive. Only title is required; all other fields are optional.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Deal title (required) | |
| value | No | Deal monetary value | |
| org_id | No | ID of organization to link to deal | |
| status | No | Deal status | |
| currency | No | 3-letter currency code (e.g., USD, EUR) | |
| owner_id | No | Owner user ID | |
| stage_id | No | Stage ID | |
| label_ids | No | Label IDs to attach to deal | |
| person_id | No | ID of person to link to deal | |
| visible_to | No | Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company | |
| pipeline_id | No | Pipeline ID | |
| probability | No | Success probability (0-100) | |
| custom_fields | No | Custom field values as object with field keys | |
| expected_close_date | No | Expected close date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=false, destructiveHint=false, etc. Description adds that only title is required, but does not disclose side effects, permissions, or response behavior. With annotations present, minimal additional value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the tool's purpose and key constraint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool has 14 parameters with 100% schema coverage but no output schema. The description does not mention return value, typical usage, or prerequisites. For a create tool with many optional fields, more context on behavior after creation would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with detailed parameter descriptions. The description only reiterates the required field, adding no new semantic info. Baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Create a new deal in Pipedrive' with a specific verb and resource. It also distinguishes from sibling tools like pipedrive_update_deal by focusing on creation. The requirement of only title is highlighted.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description indicates when to use (creating a deal) and notes that only title is required, but lacks explicit when-not-to-use or alternatives. However, sibling tools imply clear distinctions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Field options (required for enum and set field types) | |
| field_name | Yes | Field name (required, 1-255 chars) | |
| field_type | Yes | Field type. Use 'enum' (single choice) or 'set' (multiple choice) for option fields. | |
| description | No | Field description (null to clear) | |
| ui_visibility | No | UI visibility: add_visible_flag, details_visible_flag, projects_detail_visible_flag, show_in_pipelines{show_in_all, pipeline_ids}. | |
| required_fields | No | Required-field config: enabled, stage_ids (deal stages), statuses (per-pipeline won/lost map). | |
| important_fields | No | Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false and openWorldHint=true, indicating an unconstrained mutation. The description adds genuinely useful behavioral context: it reveals the return payload shape (response.data.field_code) and instructs the agent to retain that 40-char hash for later updates/deletes. This anticipates a real workflow need beyond what annotations provide. No contradiction with annotations found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences with zero filler. The core purpose is front-loaded, followed immediately by the most important parameter constraints. The field_code guidance gives a forward-looking note without bloat. Slightly more detail on the field_code implications could be added, but the current text is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema present, the description correctly carries the return-value burden by documenting the field_code that must be preserved. It covers required parameters and the conditional options requirement. It doesn't detail auth/error handling, but for a field-creation tool where annotations signal an open-world, non-destructive operation, the essential call-time context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage of all 7 parameters, but the description adds value by surfacing the conditional dependency between options and enum/set field types, and by re-emphasizing the two required parameters. Since the schema already documents each parameter, the description's reinforcement of the options-required-for-enum/set rule is meaningful added guidance rather than repetition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Create a deal custom field' โ a specific verb + resource combination that clearly states the operation. The 'deal' qualifier distinguishes it from siblings like pipedrive_create_person_field, pipedrive_create_organization_field, and pipedrive_create_product_field. An agent can immediately tell this is the right tool for creating a custom field on deal records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives parameter usage guidance โ field_name and field_type are required, and options is required for enum/set types โ which helps the agent assemble a valid request. However, it doesn't explicitly address when to use this tool versus its siblings (create_person_field, create_organization_field, etc.) or mention any exclusions. The differentiation relies on the name itself rather than the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_leadA
Create a new lead in Pipedrive. Title is required; link to at least one of person_id or organization_id.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Lead title (required) | |
| value | No | Monetary value of the lead | |
| owner_id | No | Owner user ID | |
| label_ids | No | Lead label UUIDs | |
| person_id | No | Link to person ID | |
| visible_to | No | Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company | |
| organization_id | No | Link to organization ID | |
| expected_close_date | No | Expected close date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false). The description adds the linking requirement but does not disclose additional behaviors like idempotency or error handling. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action and includes essential constraints with no extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 8-parameter creation tool with no output schema, the description covers the most critical business rule but lacks explanation of other important parameters like value, owner_id, or visible_to. The sibling context includes many create tools, but the description only minimally differentiates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds a critical business rule: 'link to at least one of person_id or organization_id', which is not enforced by the schema alone. This extra guidance justifies above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new lead in Pipedrive' with a specific verb and resource, and adds a key constraint about linking to person/org, which distinguishes it from sibling tools that create other entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating leads and notes a requirement (link to person/org), but does not explicitly differentiate when to use this tool vs alternatives like pipedrive_create_deal or pipedrive_create_person.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_noteA
Create a new note in Pipedrive. Content is required. Link to a deal, person, organization, or lead.
| Name | Required | Description | Default |
|---|---|---|---|
| org_id | No | Link to organization ID | |
| content | Yes | Note content (required, HTML supported) | |
| deal_id | No | Link to deal ID | |
| lead_id | No | Link to lead ID (UUID format) | |
| person_id | No | Link to person ID | |
| pinned_to_deal_flag | No | Pin note to deal | |
| pinned_to_person_flag | No | Pin note to person | |
| pinned_to_organization_flag | No | Pin note to organization |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readOnly and non-destructive. The description adds that content is required and linking is possible, but does not disclose potential side effects, permissions, or return values.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the purpose, and no wasted words. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers creation and linking but omits mention of return value (e.g., note ID), pin flags, content length limits, or other constraints. Adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with detailed descriptions for each parameter. The description reiterates required content and linking options but adds no new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new note in Pipedrive', specifying the verb and resource. It distinguishes from sibling tools (e.g., create_deal, create_activity) by focusing on notes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (create note) and notes required content. However, it does not explicitly state when not to use this tool (e.g., for updating notes) or compare with alternatives like pipedrive_update_note.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_organizationB
Create a new organization in Pipedrive. Only name is required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Organization name (required) | |
| address | No | Organization address as a structured object (v2). Provide 'value' for the full address. | |
| add_time | No | Creation time (RFC3339 format) - backdate the organization | |
| owner_id | No | Owner user ID | |
| label_ids | No | Label IDs to attach to organization | |
| visible_to | No | Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company | |
| custom_fields | No | Custom field values as object with field keys |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, so the mutation behavior is known. The description adds no additional behavioral context such as side effects, permissions, rate limits, or response behavior, leaving agents with minimal extra insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence of seven words, conveying the essential action and the only requirement without any filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 parameters (including a nested address object) and no output schema, the description lacks details about return values, error handling, or integration with other Pipedrive entities, making it incomplete for full agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all parameters. The description merely reiterates the required status of name, adding no new semantics beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Create' and resource 'organization', clearly distinguishing it from sibling tools like pipedrive_create_deal or pipedrive_create_person. It also specifies the only required field (name), adding precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states 'Only name is required', which indicates a mandatory field but provides no explicit guidance on when to use this tool versus alternatives (e.g., update tools or other create tools). Usage is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_organization_fieldA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Field options (required for enum and set field types) | |
| field_name | Yes | Field name (required, 1-255 chars) | |
| field_type | Yes | Field type. Use 'enum' (single choice) or 'set' (multiple choice) for option fields. | |
| ui_visibility | No | UI visibility: add_visible_flag, details_visible_flag, show_in_add_deal_dialog{show, order}, show_in_add_person_dialog{show, order}. | |
| required_fields | No | Required-field config: enabled (person/org fields support only this flag). | |
| important_fields | No | Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context about required parameters and the field_code in the response. Annotations already indicate non-destructive, non-readonly behavior; description does not contradict and provides moderate additional behavioral info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences) with no unnecessary information. It front-loads the main action and follows with key details. Every sentence is useful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description covers essential points, it lacks information about the return value structure beyond field_code. Given the complexity of the input schema (nested objects), a bit more context on the response would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value beyond the schema by emphasizing required fields and the condition for options. It also notes the response includes field_code for future updates. Schema coverage is 100%, so baseline 3, but description provides extra meaningful guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Create an organization custom field.' It specifies required parameters and conditions for enum/set types, distinguishing it from other field creation tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating organization custom fields but does not explicitly guide when to use this tool versus alternatives like create_deal_field or provide use/no-use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_personA
Create a new person (contact) in Pipedrive. Only name is required.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Person name (required) | |
| emails | No | Email addresses (array of objects, e.g. [{ value, primary, label }]) | |
| org_id | No | Organization ID to link to | |
| phones | No | Phone numbers (array of objects, e.g. [{ value, primary, label }]) | |
| add_time | No | Creation time (RFC3339 format) - backdate the person | |
| owner_id | No | Owner user ID | |
| label_ids | No | Label IDs to attach to person | |
| visible_to | No | Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company | |
| custom_fields | No | Custom field values as object with field keys | |
| marketing_status | No | Marketing status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate non-readonly, non-destructive, non-idempotent, and open world. The description adds the constraint that only name is required, which is useful but already implied by the schema. No additional behavioral details like side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two sentences, front-loading the action. Could potentially add more detail without becoming verbose, but it's efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters, nested objects, and no output schema, the description is too brief. It does not explain return values, error handling, or what happens on success. The agent may need more context to correctly interpret the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters are described in the schema. The description reinforces that name is required, which matches the schema's required field. No new semantic meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool creates a new person/contact in Pipedrive with a specific verb and resource. Differentiates from sibling tools like create_deal or update_person.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions that only name is required, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., creating an organization or lead). No when-not scenarios or competitor tools mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Field options (required for enum and set field types) | |
| field_name | Yes | Field name (required, 1-255 chars) | |
| field_type | Yes | Field type. Use 'enum' (single choice) or 'set' (multiple choice) for option fields. | |
| ui_visibility | No | UI visibility: add_visible_flag, details_visible_flag, show_in_add_deal_dialog{show, order}. | |
| required_fields | No | Required-field config: enabled (person/org fields support only this flag). | |
| important_fields | No | Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false) and non-destructive. The description adds that the response includes a field_code for later updates. It does not elaborate on other behaviors like idempotency or limits, so it provides moderate added value.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose and then providing critical usage details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with detailed schema and no output schema, the description covers required fields, special cases, and the response field_code. It could mention potential errors or uniqueness constraints, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description goes beyond by highlighting that options is required for enum/set types and that the response field_code is important for updates, adding value over the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a person custom field, a specific verb-resource pair. It distinguishes from sibling tools like pipedrive_create_deal_field or pipedrive_create_organization_field by explicitly mentioning 'person custom field'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use this tool by specifying required parameters and noting that options is required for enum/set types. It does not provide explicit alternatives or when-not-to-use guidance, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_phaseB
Create a new project phase. name and board_id are required. (Projects add-on; Projects API in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Phase name (required, must not be empty) | |
| board_id | Yes | ID of the board this phase belongs to (required) | |
| order_nr | No | Phase order number (integer >= 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate it is a write operation (readOnlyHint false) with no destructive or idempotent hints. The description only restates 'create,' adding no new behavioral context such as side effects, authorization needs, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely conciseโone sentence plus a parentheticalโwith no wasted words. The purpose is stated first, fulfilling the front-loading principle.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool creates a new entity (phase) with three parameters and no output schema, the description lacks important context: what a phase is, its relationship to boards/projects, any uniqueness constraints, or expected response behavior. The openWorldHint suggests side effects, but these are not explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the schema already fully documents each parameter. The description redundantly mentions required fields but adds no additional semantic meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the purpose as 'Create a new project phase,' using a specific verb and resource. Among sibling tools, only this one is for creating phases, so it is well-distinguished.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions required parameters and the Projects add-on beta status, but it does not provide explicit guidance on when to use this tool versus alternatives (e.g., create_stage) or any exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_pipelineB
Create a new sales pipeline. Only name is required. Set is_deal_probability_enabled to turn on weighted deal probability for the pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the pipeline (required) | |
| is_deal_probability_enabled | No | Whether deal probability is enabled for this pipeline (default false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's not read-only, not destructive, not idempotent, and open world. The description adds that name is required and that is_deal_probability_enabled controls weighted probability. However, it does not disclose potential side effects (e.g., pipeline creation implications) or authentication requirements, but this is acceptable given annotations cover the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two well-structured sentences with no redundancy. The first sentence states the primary action, the second adds parameter details. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (2 params, no nested objects) and no output schema, the description is mostly adequate. However, it lacks any information about the return value or expected response, which would help an agent understand what to do after creation. This is a minor gap given the tool's straightforward nature.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes both parameters. The description adds value by clarifying that name is the only required field and explaining the purpose of is_deal_probability_enabled ('turn on weighted deal probability'), which goes beyond the schema's simple type/description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new sales pipeline'), and specifies that only name is required. It distinguishes this tool from sibling tools like pipedrive_create_deal or pipedrive_create_phase by the unique resource (pipeline), but does not explicitly differentiate from similar pipeline-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, context of use, or when not to use it. The only instruction is that name is required and the optional boolean, but no broader usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_productB
Create a new product in Pipedrive. Only name is required.
| Name | Required | Description | Default |
|---|---|---|---|
| tax | No | Tax percentage (default 0) | |
| code | No | Product code | |
| name | Yes | Product name (required) | |
| unit | No | Unit of measurement | |
| prices | No | Array of price objects per currency | |
| category | No | Product category ID | |
| owner_id | No | Owner user ID | |
| visible_to | No | Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company | |
| description | No | Product description | |
| is_linkable | No | Whether the product can be linked to deals (default true) | |
| custom_fields | No | Custom field values as object with field keys | |
| billing_frequency | No | Billing frequency (default one-time) | |
| billing_frequency_cycles | No | Number of billing cycles (max 208, null = unlimited) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the high-level characteristics (readOnlyHint=false, destructiveHint=false, idempotentHint=false). The description adds no further behavioral contextโno mention of side effects, permission requirements, reversibility, or expected outcome. For a create operation with no additional detail, the description contributes little beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single, compact sentence that immediately conveys the action and the essential requirement. No filler, no unnecessary detailsโmaximally concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (13 parameters, nested objects), the description is thin but the schema handles parameter details. Missing is any indication of what the tool returns upon success (e.g., the created product object) or any caveats about behavior, which would help an agent set expectations. It's adequate for a straightforward create but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all 13 parameters are documented in the schema with clear explanations. The description's note 'Only name is required' is redundant with the schema's required array but does reinforce the minimal input needed. This is the baseline value expected when the schema is comprehensive.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('product' in Pipedrive), and adds that only the name is required. It is distinct from sibling tools like pipedrive_update_product by the verb and intent, though it does not explicitly name alternatives to disambiguate further.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives such as pipedrive_update_product, pipedrive_list_products, or pipedrive_search_products. It only states the creation action without any contextual advice or exclusion criteria, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_product_fieldA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| options | No | Field options (required for enum and set field types) | |
| field_name | Yes | Field name (required, 1-255 chars) | |
| field_type | Yes | Field type. Use 'enum' (single choice) or 'set' (multiple choice) for option fields. | |
| ui_visibility | No | UI visibility (product fields use a simpler model): add_visible_flag, details_visible_flag. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavioral details beyond annotations: it clarifies required fields, conditional options for enum/set types, the simpler model for product fields, and the importance of the response field_code. Annotations are consistent with the create operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short and front-loaded with the main purpose. It efficiently conveys key points without unnecessary fluff, though minor restructuring could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create tool with no output schema, the description explains the response field and constraints. It covers all required aspects, but lacks information on errors or side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description reinforces the requirements and adds nuance about ui_visibility having a simpler model, but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a product custom field and specifies required parameters. However, it does not differentiate from sibling tools like pipedrive_create_deal_field or pipedrive_create_organization_field, leaving ambiguity about when to use this specific tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool versus alternatives. It lacks context on prerequisites, limitations, or exclusive use cases, which is a significant gap given the number of sibling field creation tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Project title (required) | |
| status | No | Project status | |
| org_ids | No | Organization IDs linked to the project | |
| board_id | Yes | Board ID the project belongs to (required) | |
| deal_ids | No | Deal IDs linked to the project | |
| end_date | No | Project end date (YYYY-MM-DD) | |
| owner_id | No | Owner user ID | |
| phase_id | Yes | Phase ID within the board (required) | |
| label_ids | No | Label IDs to attach to the project | |
| person_ids | No | Person IDs linked to the project | |
| start_date | No | Project start date (YYYY-MM-DD) | |
| description | No | Project description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false. The description adds the add-on and beta context, which is valuable behavioral information beyond annotations. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences with no wasted words. The most important information is front-loaded: action, resource, and required fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 12 parameters and no output schema, the description covers the essential context (required fields, add-on requirement). It could mention expected return value, but the schema's parameter descriptions fill most gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description's mention of required parameters is not adding much beyond the schema. It does not elaborate on optional parameters, which is adequate given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('a new project'), and the required fields. It distinguishes from sibling tools like pipedrive_create_deal or pipedrive_archive_project.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the prerequisite (Projects add-on) and beta status, which helps the agent decide when to use it. However, it does not explicitly state when not to use or provide alternative tools for creating projects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_create_stageA
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The name of the stage (required) | |
| pipeline_id | Yes | The ID of the pipeline to add the stage to (required) | |
| days_to_rotten | No | 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 | No | The success probability percentage of deals in this stage (0-100) | |
| is_deal_rot_enabled | No | Whether deals in this stage can become rotten |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false and destructiveHint=false, so the description carries a lower burden. It adds that the tool creates a stage and points to deal rotting configuration, but it does not disclose any side effects, prerequisites, or further behavioral context. It adds minimal value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences without filler. The purpose is front-loaded with the verb and resource, and the deal rotting note is efficiently placed. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple create operation with full schema coverage, the description is mostly adequate. However, it does not mention the return value (e.g., the created stage object) or any implicit prerequisites like the pipeline existing. This leaves some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are fully documented. The description reiterates that name and pipeline_id are required and highlights the deal rotting parameters, but this adds little beyond what the schema already states. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Create a new stage in a pipeline' with a specific verb and resource. It also identifies required parameters. However, it does not explicitly differentiate from the sibling tool pipedrive_create_phase, though the domain difference is clear from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that name and pipeline_id are required and how to configure deal rotting, but does not provide explicit guidance on when to use this tool versus alternatives like pipedrive_update_stage. The intended usage is implied (creation), but no exclusions or alternatives are named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Task title (required, 1-255 chars) | |
| is_done | No | Mark as done (true/false) | |
| due_date | No | Task due date (YYYY-MM-DD, null to clear) | |
| priority | No | Task priority (integer >= 0, or null to unset) | |
| project_id | Yes | ID of the project this task belongs to (required) | |
| start_date | No | Task start date (YYYY-MM-DD, null to clear) | |
| assignee_id | No | Assignee user ID (null to unassign) | |
| description | No | Task description (null to clear) | |
| assignee_ids | No | Array of assignee user IDs (max 10) | |
| is_milestone | No | Mark as milestone (true/false); a milestone task must have a due_date | |
| parent_task_id | No | ID of the parent task (null for root-level) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description aligns with annotations (readOnlyHint=false, destructiveHint=false) and adds behavioral context: it warns that the Projects API is in public beta, and clarifies the milestone/due_date constraint and field-name consistency with GET responses. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence states the action and required fields; the second adds precise guidance on boolean fields and the beta caveat. Every sentence earns its place, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core action, required fields, the milestone constraint, and beta status. However, it does not specify the return value (e.g., the created task object or an ID) on success, and there is no output schema. It also omits error behavior and prerequisites beyond the Projects add-on, leaving some gaps for a complex create operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema describes all 11 parameters at 100% coverage, so the baseline is 3. The description adds a minor note about is_done/is_milestone using the same field names as the GET response, but this does not significantly expand on parameter meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Create') and the resource ('a new task in a project'). It identifies required fields and provides context about the Projects API, distinguishing it from sibling tools like pipedrive_create_project or pipedrive_update_task. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides some usage guidance: it notes required fields, advises on boolean field names matching GET responses, and states the milestone requires a due_date. However, it does not explicitly contrast with sibling tools like pipedrive_update_task or pipedrive_list_tasks, so when-not-to-use is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_activityBRead-onlyIdempotent
Get detailed information about a specific activity by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The activity ID | |
| include_fields | No | Include additional data in response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds minimal behavioral context beyond the annotations. Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description only reiterates that it 'gets' information, without addressing edge cases, error behavior, or response details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no unnecessary words. It is well-structured for a simple tool, though it could optionally detail the optional parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID operation, the description is partially complete. However, it omits any mention of the optional 'include_fields' parameter and does not describe the return format, which is relevant given the absence of an output schema. Some context about what 'detailed information' entails would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage for both parameters (id and include_fields) with clear descriptions. The description adds no further semantic information about the parameters, so it meets the baseline but does not enhance understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Get) and the resource (detailed information about a specific activity), with the identifier (by ID). It effectively distinguishes this tool from sibling tools like pipedrive_list_activities (list) and pipedrive_create_activity (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when to use pipedrive_list_activities instead. It does not mention prerequisites or context, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_boardARead-onlyIdempotent
Get detailed information about a specific project board by ID. (Projects add-on; Projects API in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The board ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows it's a safe read. The description adds the beta status of the API, which is important behavioral context. However, it does not mention error handling (e.g., what if ID is invalid) or rate limits, but the annotations cover the core safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. The first sentence is the main purpose; the second is a brief context note. It could be slightly more compact (e.g., merging the parenthetical), but it's efficient overall.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, no output schema), the description is complete enough for an agent to understand its use. It identifies the board ID requirement and the beta status. Missing details like expected output structure are partially mitigated by the readOnlyHint annotation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters (id with description 'The board ID'). The description does not add any new information about the parameter beyond what the schema already provides. With high schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get detailed information' and the resource 'specific project board by ID'. It distinguishes from siblings like pipedrive_list_boards (which returns a list) and pipedrive_create_board (which creates). The parenthetical about the Projects add-on and beta status adds context that helps differentiate this tool from other 'get' tools (e.g., pipedrive_get_project).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you need detailed info on a single board by ID, but it does not explicitly compare with alternatives like pipedrive_get_project (which gets a project, not a board) or when not to use it. It lacks when-to-use/when-not advice. The sibling list is large, so more guidance would be helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_current_userARead-onlyIdempotent
Identify the Pipedrive account this server is connected to: returns the connected company (name, id, and domain) alongside the API key owner's user details. Use it to confirm which company the data is coming from, or to get your user ID.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false, covering the safety and side-effect profile. The description adds context about the response content (company and user details) but does not disclose additional behavioral traits such as authentication requirements or rate limits. With annotations handling most behavioral disclosure, a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose ('Identify the Pipedrive account this server is connected to') followed by the return details and use cases. There is no wasted wording, and it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description should ideally specify the return structure. It mentions company name, id, domain, and user details, which gives a general idea, but does not provide exact field names or nesting. For a simple tool, this is adequate, but an agent may need to infer the location of the user ID. More specificity on field names would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (trivially). The description does not need to explain parameters, and the baseline for 0 parameters is 4. No additional parameter information is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool identifies the connected Pipedrive account and returns company details (name, id, domain) and the API key owner's user details. It is distinct from siblings like get_user and list_users, which target specific or all users, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly provides use cases: 'confirm which company the data is coming from, or to get your user ID.' This gives clear guidance on when to use it. It does not mention alternatives or exclusions, but given the tool's uniqueness, this is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_dealARead-onlyIdempotent
Get detailed information about a specific deal by ID, including all standard and custom fields.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| custom_fields | No | Include custom fields in response (comma-separated field keys or 'all') | |
| include_fields | No | Comma-separated extra fields (v2 enum, e.g. next_activity_id, last_activity_id, products_count, files_count, notes_count, followers_count) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the description's addition of 'including all standard and custom fields' provides useful context but does not disclose any additional behavioral traits beyond what is safe. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. It efficiently conveys the purpose and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 3 parameters fully described in schema and annotations providing safety hints, the description is mostly complete. However, since there is no output schema, mentioning that the result is a full deal object adds some context, but the description is still adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description mentions 'including all standard and custom fields' but does not add significantly to the schema descriptions of the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get detailed information' and resource 'specific deal by ID', distinguishing it from other deal-specific tools like pipedrive_get_deal_conversion_status or pipedrive_get_deal_emails. It also highlights inclusion of custom fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives such as pipedrive_list_deals or pipedrive_search_deals. It implicitly suggests use for detailed info, but lacks when-not or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_deal_conversion_statusARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID that was converted | |
| conversion_id | Yes | Conversion job UUID returned by the convert call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond annotations by detailing the status contract (completed/failed/rejected/not_started/running), purging behavior (404 signals terminal), and that only 'completed' carries lead_id. Also warns against unbounded loops. Annotations already indicate readOnly and idempotent, but description adds critical polling logic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is comprehensive yet concise, with each sentence serving a distinct purpose: purpose, status contract, purge behavior, polling advice. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an async polling tool, the description covers all critical aspects: status meanings, terminal states, edge case of purge, and polling strategy. No output schema, but description clarifies output expectations (lead_id only on 'completed'). Exceptionally complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description adds context: 'id' is the deal that was converted, 'conversion_id' is the job UUID from the convert call. This helps the agent understand the origin of parameters beyond type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets the status of a deal-to-lead conversion job, specifying the resource (conversion job) and action (get status). However, it does not explicitly distinguish from the sibling tool pipedrive_get_lead_conversion_status, which likely covers the reverse direction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to poll (after conversion call) and when to stop (terminal statuses or 404 after prior valid status). Advises bounded poll budget. Lacks explicit comparison to alternatives but effectively tells when to use and when not to poll indefinitely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_deal_emailsARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Deal ID | |
| limit | No | Number of items (1-500) | |
| start | No | Pagination offset (0-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by specifying that it returns metadata only (not full body), and that the full body is only accessible for the user's own mailbox. The annotations already indicate read-only and idempotent, but the description clarifies the scope and limitation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, but it effectively communicates the core purpose, scope, and a key limitation. Every sentence serves a purpose with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool has no output schema, the description states it returns 'metadata', which is adequate for an agent to understand what to expect. It also references the sibling tool for full body. However, the specific fields in the metadata are not described, but this is acceptable for a read-only metadata retrieval tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are described in the input schema with 100% coverage. The description does not add any additional semantic meaning beyond what the schema already provides, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves email messages linked to a deal, with company-wide scope (all users' emails). It distinguishes itself from siblings like pipedrive_get_mail_message by noting that this tool returns only metadata.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use this tool (to get metadata of emails linked to a deal) and points to an alternative (pipedrive_get_mail_message) for full body, but only for the user's own mailbox. No explicit when-not-to-use, but the alternative is well-motivated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_deal_followers_changelogARead-onlyIdempotent
Get the followers changelog for a deal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, covering safety and behavior. The description adds no further behavioral details (e.g., pagination, changelog contents, rate limits). With annotations, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with 6 words, no fluff, and the key information is front-loaded. Every word is necessary and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple, but without an output schema, the description does not explain what the changelog contains (e.g., fields, actions). While annotations cover safety and the tool is low complexity, a bit more detail would improve completeness for an agent unfamiliar with the concept.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% โ all three parameters (id, cursor, limit) have descriptions. The description adds no additional semantics beyond what the schema provides, so baseline score of 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'followers changelog', and the scope 'for a deal'. It distinguishes from sibling changelog tools for other entities (e.g., organization, person) through the deal-specific naming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use: to retrieve historical follower changes for a deal. It implicitly distinguishes from pipedrive_list_deal_followers (current followers) and other entity changelogs. No explicit when-not or alternatives, but the purpose is clear enough for agent selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_fieldARead-onlyIdempotent
Get details of a specific field by its key. Useful for looking up what a 40-character hash field key means.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Field key (40-char hash for custom fields) | |
| entity_type | Yes | Entity type the field belongs to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true, which establish safety and idempotency. The description adds context that the tool helps decode 40-character hash keys, going beyond structured data. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the core functionality, second adds a specific use case. No fluff, every sentence adds value. Highly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get operation with no output schema, the description adequately explains the tool's purpose and when to use it. It could mention what 'details' includes (e.g., field name, type), but given the openWorldHint, it's acceptable. The tool is straightforward, so completeness is good.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds the context that the key is a 40-character hash for custom fields, which reinforces the schema description. No additional parameter details beyond that, so it meets but does not exceed expectations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets details of a specific field by its key, using a specific verb ('Get') and resource ('details of a specific field'). It also mentions the use case of looking up what a 40-character hash field key means, distinguishing it from list tools like pipedrive_list_deal_fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Useful for looking up what a 40-character hash field key means.' It implies when to use the tool (when you have a key and need field details), but does not explicitly state when not to use it or mention alternatives like list_fields. However, the guidance is adequate for an agent to understand its primary purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_leadARead-onlyIdempotent
Get detailed information about a specific lead by UUID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Lead UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds no behavioral context beyond the annotations, which already declare the tool safe (readOnlyHint, destructiveHint false, idempotentHint). It does not disclose any additional traits like rate limits, authentication needs, or what 'detailed information' encompasses. With annotations carrying the burden, the description is adequate but not enriching.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no unnecessary words. It conveys the purpose efficiently and is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single parameter, annotations provide safety guarantees, but there is no output schema. The description says 'detailed information' without specifying return fields, which is vague. For a retrieval tool, more detail on what exactly is returned would improve completeness, but the current description is minimally acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter `id` (described as 'Lead UUID'). The description adds no new meaning beyond confirming the schema, so it meets the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Get detailed information'), the resource ('a specific lead'), and the identifier method ('by UUID'). It distinguishes itself from sibling tools like `pipedrive_list_leads` and `pipedrive_search_leads` which operate on collections or searches.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when you have a specific lead UUID and need details. However, it does not explicitly state when to use this tool versus alternatives like `pipedrive_list_leads` or `pipedrive_search_leads`, or mention any prerequisites or context. The guidance is minimal.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_lead_conversion_statusBRead-onlyIdempotent
Get the status of an async lead-to-deal conversion by conversion ID (Pipedrive v2 GET /leads/{id}/convert/status/{conversion_id}).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Lead UUID | |
| conversion_id | Yes | Conversion job UUID returned by the convert call |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, covering safety. The description adds the endpoint but no additional behavioral traits like possible status values or pagination details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that includes the endpoint. It is concise with no unnecessary words, though it could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, and the description does not explain what the status response looks like (e.g., possible values). Annotations are rich but the description lacks completeness for a status-checking tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters. The description does not add meaningful semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the status of an async lead-to-deal conversion using a conversion ID, with the API endpoint. It is specific but does not explicitly distinguish from the similar sibling pipedrive_get_deal_conversion_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs. alternatives. It does not mention that it should be used after calling pipedrive_convert_lead_to_deal, nor does it explain when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_mail_messageARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Mail message ID | |
| include_body | No | Include full email body (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and idempotentHint. The description adds context about access permissions, but does not elaborate on error scenarios or behavior when body is excluded. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying the primary action, but the access caveat could be integrated more seamlessly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the core purpose and access conditions. However, does not address the output format or the openWorldHint annotation, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds minimal value. The phrase 'with body' hints at include_body but does not clarify the default false, causing slight ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get full email message with body', specifying the verb and resource. However, it does not explicitly differentiate from sibling tools like get_mail_thread or list_mail_threads, and the mention of 'with body' somewhat contradicts the default behavior of include_body being false.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides access guidance regarding visibility settings and linked objects, but does not discuss when to use this tool versus alternatives or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_mail_threadARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Mail thread ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as read-only and idempotent. Description adds context about visibility settings and 404 response, which is valuable beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with primary purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple read tool: covers purpose, access behavior, error case, no output schema needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'id' is described as 'Mail thread ID'. The description adds no additional meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Get a mail thread with messages' - specific verb and resource. Distinguishes from sibling tools like pipedrive_get_mail_message and pipedrive_list_mail_threads by focusing on a full thread.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explains access visibility and 404 error but does not explicitly guide when to use this tool vs alternatives like pipedrive_list_mail_threads to first get thread IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_noteARead-onlyIdempotent
Get detailed information about a specific note by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The note ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description ('Get') aligns but adds no new behavioral context. With annotations present, additional transparency is minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that directly conveys the purpose. It is concise, front-loaded, and contains no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with one parameter, the description is mostly complete. However, it lacks details about the return value structure (no output schema), and 'detailed information' is somewhat vague. Still, it serves the basic purpose well.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the parameter 'id' as 'The note ID' with 100% coverage. The description does not add any further information about the parameter's format, constraints, or role beyond what is in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), the resource ('note'), and the method ('by ID'). It distinguishes from sibling tools like pipedrive_list_notes (listing) and pipedrive_update_note (mutation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided. The description implicitly suggests use for retrieving a single note, but does not compare with alternatives or provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_organizationARead-onlyIdempotent
Get detailed information about a specific organization by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The organization ID | |
| custom_fields | No | Include custom fields in response (comma-separated field keys or 'all') | |
| include_fields | No | Include additional data in response |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description 'Get detailed information' is consistent but adds no additional behavioral context beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is efficient and front-loaded. No unnecessary words or redundant details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description is minimal, it covers the core purpose. However, for a 'get by ID' tool with no output schema, it could clarify what 'detailed information' includes (e.g., full organization object with all fields).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the schema already documents all parameters. The description does not add new meaning beyond the schema; it only reiterates the resource type.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('Get detailed information') and the resource ('specific organization by ID'). It distinguishes from sibling list/search tools that return multiple records.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific organization ID, but does not explicitly state when to use this tool vs alternatives like list or search tools. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_organization_followers_changelogBRead-onlyIdempotent
Get the followers changelog for an organization.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The organization ID | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true, covering safety and idempotency. Description adds no further behavioral context (e.g., what a changelog entry contains or pagination behavior). With rich annotations, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with no waste. Every word earns its place. Front-loaded with verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so description should explain what the changelog contains or the output format. It fails to do so. Also, pagination via cursor and limit is not mentioned. Minimal context for an agent to understand what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage for parameters (id, cursor, limit) with descriptions. Description does not add any additional parameter semantics beyond the schema, so baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Get' and resource 'followers changelog for an organization'. It distinguishes from sibling changelog tools (deal, person, product) but does not differentiate from the similar list tool (pipedrive_list_organization_followers) which returns current followers rather than changelog.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like pipedrive_list_organization_followers or other changelogs. No when-not-to-use or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_personARead-onlyIdempotent
Get detailed information about a specific person by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The person ID | |
| custom_fields | No | Include custom fields in response (comma-separated field keys or 'all') | |
| include_fields | No | Comma-separated extra fields (v2 enum, e.g. next_activity_id, open_deals_count, won_deals_count, notes_count, followers_count) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds no behavioral context beyond what annotations provide. No contradiction, but no extra value. For a read-only get, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no verbose phrasing, front-loaded with key action. Every word contributes to purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description says 'detailed information', which is vague. Given the tool is a simple get with strong annotations, the description is minimally acceptable. Could be improved by indicating what kind of details are returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for all three parameters (id, include_fields, custom_fields). The description does not add any additional meaning beyond the schema. Baseline 3 applies since schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'get detailed information about a specific person by ID.' The verb and resource are unambiguous. Among siblings, many get tools exist, but the resource is specific to 'person', so differentiation is natural. Lacks an explicit distinguishing feature beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like pipedrive_get_person_emails or pipedrive_list_persons. Usage is implied: use when you need details of a single person by ID. No exclusions or alternative recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_person_emailsARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Person ID | |
| limit | No | Number of items (1-500) | |
| start | No | Pagination offset (0-based) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds value by specifying that the tool returns only metadata, is company-wide, and requires the person ID. It does not contradict annotations and provides additional behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences plus a short note, about 40 words. It is front-loaded with the main purpose and provides essential clarification about metadata versus full body. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description should explain what is returned. It states 'metadata' but does not specify fields or structure. Pagination behavior (start, limit) is not described. For a simple retrieval tool, this is minimally adequate but leaves gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters (id, start, limit) have descriptions in the schema, achieving 100% coverage. The description does not add further meaning beyond implying that id is the person identifier. The start and limit parameters are not elaborated in the description, so the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves email messages linked to a person, specifies it is company-wide (all users' emails), and differentiates from pipedrive_get_mail_message by noting it returns metadata only. This contrasts with sibling tools like pipedrive_get_deal_emails, though not explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context on when to use this tool (to get all linked emails across users) and provides a note about using pipedrive_get_mail_message for full body, but only for own mailbox. It does not explicitly list exclusions or alternatives for other scenarios, but the guidance is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_person_followers_changelogARead-onlyIdempotent
Get the followers changelog for a person.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The person ID | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true. The description adds no extra behavioral context beyond stating the resource, so it does not improve transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the core action. No unnecessary words or details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Although the tool is simple, the description does not explain what the changelog contains (e.g., timestamps, actions) or mention pagination behavior. This limits completeness for an agent generating requests without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameters are well-described in the schema. The description adds no additional meaning or clarification beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the followers changelog for a person,' which uses a specific verb and resource, and distinguishes this tool from related siblings like pipedrive_get_person and pipedrive_list_person_followers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description lacks explicit guidance on when to use this tool versus alternatives like pipedrive_list_person_followers or other changelog tools. No when-not-to-use or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_person_pictureARead-onlyIdempotent
Get the picture for a person (read-only; returns picture metadata and sized image URLs). Returns an error if the person has no picture.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The person ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint. The description adds value by specifying that an error is returned if the person has no picture and that the output includes metadata and sized image URLs. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences. The first sentence immediately conveys the core purpose and read-only nature, and the second adds an important error condition. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema), the description covers the return type and error condition adequately. It could mention that the id must refer to an existing person, but this is implied. Overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter 'id' is already described in the schema as 'The person ID'. The description does not add any additional meaning or context to the parameter beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the picture for a person' with specific verb and resource, and distinguishes it from similar tools like pipedrive_get_product_image by specifying the resource (person picture). It also notes it is read-only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a person's picture but does not explicitly guide when to use this versus other person-related tools like pipedrive_get_person. No alternatives or when-not conditions are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_phaseARead-onlyIdempotent
Get detailed information about a specific project phase by ID. (Projects add-on; Projects API in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The phase ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it returns 'detailed information' and notes the 'Projects add-on; Projects API in public beta' status, which provides useful context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no wasted words. It front-loads the core purpose and adds critical context (add-on, beta) efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter, full annotation coverage, and no output schema, the description is complete. It explains the action, the resource, the parameter, and the add-on/beta status, which is all necessary for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'id' with schema description 'The phase ID'. Schema coverage is 100%, so the description adds no extra meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'phase', and the return type 'detailed information'. It distinguishes from sibling tools like list_phases (which returns a list) and update_phase (which modifies).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific phase ID and want detailed information. It does not explicitly state when not to use or name alternatives, but the context of 'by ID' and the sibling list_phases provide implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_productARead-onlyIdempotent
Get detailed information about a specific product by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds no behavioral context beyond this, which is adequate for a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence of 10 words with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one parameter, no output schema, and comprehensive annotations, the description is fully complete for an AI agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter 'id' described as 'The product ID'. The description does not add additional semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get'), resource ('detailed information about a specific product'), and identification method ('by ID'). It distinguishes itself from sibling tools like pipedrive_list_products and pipedrive_search_products.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it or suggest other tools for listing or searching products.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_product_followers_changelogARead-onlyIdempotent
Get the followers changelog for a product.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product ID | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, covering safety and idempotency. The description adds that it returns a changelog (history of follower changes), which is useful but minimal. It does not describe pagination behavior or changelog structure beyond what annotations imply.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 7 words that perfectly front-loads the core purpose. No wasted words or redundant information; every word is essential.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, no output schema) and rich annotations, the description is mostly complete. It identifies the resource and action, but lacks detail on the changelog's structure or fields. Pagination context (cursor/limit) is in schema but not in description. Still adequate for a straightforward get operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage, so baseline is 3. The description does not add any extra meaning to parameters like 'cursor' or 'limit' beyond their schema descriptions. No additional context is provided for the required 'id' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves 'followers changelog for a product', specifying the verb 'Get' and the resource. It distinguishes from sibling tools like pipedrive_list_product_followers (current list) and pipedrive_add_product_follower (add action) by targeting the changelog specifically.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. For instance, it does not contrast with pipedrive_list_product_followers (current followers) or pipedrive_get_product (general product info). The description offers no contextual help for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_product_imageARead-onlyIdempotent
Get the image of a product (returns a single image with a public URL valid for 7 days).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint, idempotentHint), the description adds valuable behavioral context: the returned URL is valid for 7 days and is a single image. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly conveys the tool's function and key output detail. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with one parameter and clear annotations, the description fully explains the return value (public URL with expiration). No output schema exists, but the description compensates sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes the only parameter 'id' as 'The product ID' (100% coverage). The description adds no further detail about the parameter beyond what the schema provides, so baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the image of a product, specifying it returns a single image with a public URL valid for 7 days. It effectively distinguishes from siblings like pipedrive_get_product (product details) and pipedrive_upload_product_image (upload).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use this tool (to get a product image URL) and notes the 7-day URL validity. However, it does not explicitly mention when not to use it or compare with alternatives, though the sibling list implies distinct use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_projectARead-onlyIdempotent
Get detailed information about a specific project by ID. (Requires the Projects add-on; Projects API is in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds value by mentioning the add-on requirement and beta status, providing context beyond the structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence plus a parenthetical, front-loaded with the purpose. Every element earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and comprehensive annotations, the description provides necessary prerequisites and status. It could optionally detail the return format but is largely complete for a simple get operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single 'id' parameter. The description mentions 'by ID' but does not add additional meaning or constraints beyond what the schema provides, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'project by ID', distinguishing it from sibling tools that operate on different resources like deals, activities, or leads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly notes the prerequisite ('Requires the Projects add-on') and caveat ('Projects API is in public beta'), aiding in appropriate usage decisions. No direct comparison with alternatives, but adequate for a simple read tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_project_changelogARead-onlyIdempotent
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The project ID | |
| limit | No | Number of items to return (1-100, default 50) | |
| cursor | No | Cursor for pagination (from previous response) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true, so the description is not burdened with safety disclosure. The description adds context about pagination (cursor, limit), return fields (actor_user_id, new_values, old_values), and the 'public beta' status, which are valuable beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose and output details. Every sentence provides essential context: the first sentence defines the action and result, the second adds pagination and beta status. No redundant or extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema, the description compensates by specifying return fields and pagination details. The context of public beta and add-on requirement is included. However, the exact pagination structure (e.g., next cursor behavior) is not fully detailed, leaving minor gaps for implementation understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all three parameters (id, cursor, limit) with descriptions, so baseline is 3. The description does not add additional parameter documentation beyond what the schema provides, though it does mention pagination which relates to cursor and limit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'changelog for a project', specifying what is returned (changed, when, by whom) and the field structure (actor_user_id, new_values, old_values). It distinguishes from sibling tools like pipedrive_get_project by focusing on changelog rather than current state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives, nor does it provide exclusion criteria. However, the purpose is clear from the name and description, and the pagination details (cursor, limit) imply usage for large datasets. Sibling tools like pipedrive_get_project are distinct in functionality.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_project_permitted_usersARead-onlyIdempotent
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The project ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true, so the tool is safe and idempotent. The description adds value by stating the return type (array of integer user IDs) and noting the beta status, which is useful for reliability expectations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences that front-load the action ('Get the list...') and clearly specify the return format and beta context. No superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only, single-parameter tool with no output schema, the description adequately explains what it does and returns. It notes the add-on and beta status. However, it could mention potential errors or prerequisites (e.g., user must have access), but given the simplicity, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with one parameter 'id' described as 'The project ID'. The description does not add any additional syntax, constraints, or behavior details beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it gets a list of user IDs with project access permission, using a specific verb ('Get') and resource ('list of user IDs'). This distinguishes it from siblings like pipedrive_get_project (which retrieves project details) and pipedrive_list_projects (which lists projects).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description mentions it's part of the Projects add-on and in beta, but does not provide context for when to prefer this over other related tools (e.g., getting project details or listing tasks). Implied usage is clear but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_project_templateARead-onlyIdempotent
Get detailed information about a specific project template by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The project template ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description's 'Get' matches a safe read. No additional behavioral traits beyond annotations are disclosed. The description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 7 words, front-loading the key information with no extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter and clear annotations, the description is adequate. However, the absence of an output schema means the agent might benefit from a hint about what 'detailed information' includes, but overall it suffices.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'id', with its description already in the schema. The description adds only 'by ID', which doesn't provide extra meaning beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get detailed information'), the resource ('project template'), and the scope ('by ID'). It effectively distinguishes from sibling tools like pipedrive_list_project_templates (list all templates) and pipedrive_get_project (get project).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific project template ID, which is clear context. However, it does not explicitly provide when-not-to-use or alternatives, though for a simple get-by-ID tool this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_stageARead-onlyIdempotent
Get details of a specific stage by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Stage ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true, which inform the agent that this is a safe, idempotent read operation. The description adds minimal extra context beyond 'Get details', not disclosing what details are returned or any edge cases. With present annotations, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that directly states the tool's purpose without any unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with one parameter and no output schema, the description is largely complete. It does not mention what the output contains or error handling, but annotations and schema cover safety and parameter. The minimal description suffices given the low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter 'id' with description 'Stage ID'. The description's phrase 'by ID' aligns with this but adds no new meaning beyond what the schema provides. Baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get details' and the resource 'a specific stage by ID'. It distinguishes itself from sibling tools like pipedrive_list_stages (list all stages) and pipedrive_create_stage (create stage) by specifying a single stage retrieval via ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as pipedrive_get_phase or pipedrive_list_stages. An agent might not know that this tool is for retrieving details of an existing stage, and that they should first obtain the ID via list_stages. No when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_taskARead-onlyIdempotent
Get detailed information about a specific task by ID. (Projects add-on; Projects API in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The task ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, destructive, and idempotent properties. Description adds valuable context about the Projects add-on and the API being in public beta, which informs behavior expectations beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action, and no unnecessary words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get-by-ID tool with one parameter, the description is complete. It tells what it does, how to use it (by ID), and relevant context (beta, add-on). No output schema needed for clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with 'The task ID' for the id parameter. The description adds no further semantics beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get detailed information about a specific task by ID', which is a specific verb and resource. It distinguishes from sibling list tool by emphasizing 'by ID' and noting the Projects add-on context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (when you have a task ID and need details) but does not explicitly state when not to use or provide alternatives. However, the context is clear enough for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_get_userARead-onlyIdempotent
Get details of a specific user by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | User ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds no behavioral context beyond what annotations offer, such as what 'details' include or any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence, 8 words) and front-loaded. Every word is necessary and contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and rich annotations, the description is adequate. It could be improved by briefly indicating common returned fields, but it is complete enough for an agent to understand the function.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage for the sole parameter 'id' with a clear description. The tool description does not add any extra meaning or context to the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and resource 'details of a specific user', with the key qualifier 'by ID'. It effectively distinguishes this tool from sibling 'list_users' which retrieves all users, and other 'get_' tools for different entities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you have a user ID, but lacks explicit guidance on when not to use it (e.g., when you need to search users by other criteria, prefer 'list_users'). No alternatives are explicitly mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_activitiesARead-onlyIdempotent
List activities from Pipedrive with optional filtering by owner, deal, person, organization, type, or completion status.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated activity IDs to fetch (max 100) | |
| done | No | Filter by completion (true=done, false=pending) | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination | |
| org_id | No | Filter by organization ID | |
| deal_id | No | Filter by deal ID | |
| lead_id | No | Filter by lead ID (UUID format) | |
| sort_by | No | Field to sort by | |
| owner_id | No | Filter by owner user ID | |
| filter_id | No | Filter by saved filter ID | |
| person_id | No | Filter by person ID | |
| updated_since | No | Filter activities updated after this time (RFC3339 format) | |
| updated_until | No | Filter activities updated before this time (RFC3339 format) | |
| include_fields | No | Include additional data in response | |
| sort_direction | No | Sort direction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, so safety is clear. Description adds no behavioral traits beyond what annotations provide, but does not contradict them. It adequately conveys that this is a safe list operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. Front-loaded with action and resource, then lists key capabilities efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description covers the main purpose and filtering options. For a list tool with 15 parameters, the description is reasonably complete, though it omits details like pagination behavior (handled by schema). Overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described. Description only mentions a subset of filter parameters (owner, deal, etc.) but does not add meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List' and resource 'activities', and lists key filtering options. It distinguishes from sibling tools like pipedrive_get_activity (single item) and pipedrive_list_tasks (different resource).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for listing activities with filters, but does not explicitly say when to use vs alternatives (e.g., get_activity for specific, list_archived_activities for archived). Context is clear but no exclusions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_archived_dealsARead-onlyIdempotent
List archived deals with the same filtering as the active deals list (owner, person, organization, pipeline, stage, status). Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated deal IDs to fetch (max 100) | |
| limit | No | Number of items to return (1-100, default 50) | |
| cursor | No | Cursor for pagination (from previous response) | |
| org_id | No | Filter by linked organization ID | |
| status | No | Filter by deal status (omit to return all non-deleted deals) | |
| sort_by | No | Field to sort by | |
| owner_id | No | Filter by owner user ID | |
| stage_id | No | Filter by stage ID | |
| filter_id | No | Filter by saved filter ID | |
| person_id | No | Filter by linked person ID | |
| pipeline_id | No | Filter by pipeline ID | |
| custom_fields | No | Include custom fields in response (comma-separated field keys or 'all') | |
| updated_since | No | Filter deals updated after this time (RFC3339 format, e.g. 2024-01-01T00:00:00Z) | |
| updated_until | No | Filter deals updated before this time (RFC3339 format) | |
| include_fields | No | Comma-separated extra fields (v2 enum, e.g. next_activity_id, last_activity_id, products_count, files_count, notes_count, followers_count) | |
| sort_direction | No | Sort direction (default: desc) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds 'Returns paginated results', which is behavioral context, and confirms the filtering behavior without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no redundancy, to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose, filtering similarity, and pagination, but lacks details about response structure or edge cases. With no output schema, more detail would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description mentions high-level filter categories (owner, person, etc.) but adds no additional detail beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' and the resource 'archived deals', and explicitly contrasts with 'the active deals list', differentiating it from sibling tools like pipedrive_list_deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies that this tool is for archived deals and hints at the existence of an active deals list via 'same filtering as the active deals list', but does not explicitly state when to use vs. alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_archived_leadsARead-onlyIdempotent
List archived leads from Pipedrive with optional filtering by owner, person, or organization.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field and direction (e.g. 'id ASC') | |
| limit | No | Number of items (1-500, default 50) | |
| start | No | Pagination offset (0-based) | |
| owner_id | No | Filter by owner user ID | |
| filter_id | No | Filter by saved filter ID | |
| person_id | No | Filter by linked person ID | |
| organization_id | No | Filter by linked organization ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. Description adds only that it lists archived leads, which is already clear from the name. No additional behavioral traits beyond annotations are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with all essential information, no wasted words. Front-loaded with the primary action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only list tool with 7 optional parameters and no output schema, the description adequately covers purpose and key filters. However, it could mention pagination behavior (start/limit) and sorting, which are not self-explanatory from the schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description highlights the key filter parameters (owner, person, organization), adding value by summarizing the most commonly used filters, though it omits pagination and sort details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'List archived leads from Pipedrive' with specific verb (list) and resource (archived leads), and mentions optional filters. Clearly distinguishes from similar tools like pipedrive_list_leads by specifying 'archived'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies this tool is for listing archived leads, but does not explicitly state when to use it versus alternatives like pipedrive_list_leads or pipedrive_search_leads. No exclusions or usage context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_archived_projectsARead-onlyIdempotent
List archived projects from Pipedrive with optional filtering by filter, phase, or status. (Projects add-on; Projects API in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (1-100, default 50) | |
| cursor | No | Cursor for pagination (from previous response) | |
| status | No | Filter by project status (e.g. open, completed, canceled) | |
| phase_id | No | Filter by phase ID | |
| filter_id | No | Filter by saved filter ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it is part of the Projects add-on and that the Projects API is in public beta, which are important behavioral traits indicating potential instability or extra setup needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the main action and supported details. Every word is necessary; no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, the description sufficiently covers core functionality, optional filters, and important context (add-on, beta). It does not detail pagination or return format, but these are not critical for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all 5 parameters (100% coverage), so the description adds limited value by grouping optional filters (filter, phase, status). This aligns with baseline 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists archived projects, with optional filtering by filter, phase, or status. Distinguishes from sibling tools like pipedrive_list_projects (active projects) and pipedrive_search_projects (search). The verb 'list' and resource 'archived projects' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use this tool (list archived projects) but does not explicitly state when not to use it or mention alternatives. However, the sibling tool names imply other listing tools for non-archived projects, providing implicit context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_boardsARead-onlyIdempotent
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.)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds valuable behavioral context: the endpoint returns all boards without pagination, and notes the dependency on the Projects add-on and that the API is in public beta. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the main action, and every sentence adds value (action, no pagination, beta note). Zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and strong annotations, the description covers the essentials: purpose, pagination behavior, and add-on/beta status. It could mention the return format or fields, but this is not required as no output schema exists. The description is sufficient for an agent to decide when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the input schema is empty, so schema description coverage is 100%. The description does not need to add parameter information. Baseline for 0 parameters is 4, and the description is consistent with that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'List all project boards', using a specific verb and resource. It distinguishes itself from siblings by noting 'no pagination' and that it returns all records at once, which differentiates it from tools like pipedrive_get_board (single board) and pipedrive_list_projects (projects, not boards).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use this tool: to list all boards with no pagination. While it does not explicitly mention when not to use it or provide direct alternatives, the context is clear enough given the sibling tool names (e.g., pipedrive_get_board for a single board). Occasional guidance on filtering could be added but is not necessary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_deal_discountsBRead-onlyIdempotent
List all additional discounts applied to a deal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true, covering safety. The description adds no behavioral details such as pagination, response structure, or side effects beyond 'list'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise single sentence with no unnecessary words. Appropriate for a simple list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a straightforward list tool with one required parameter. However, missing details about the output (list of discount objects) and potential pagination, which are not covered by annotations or schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema's 'The deal ID' โ no elaboration on 'additional discounts' or parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all additional discounts for a deal, using a specific verb and resource. It distinguishes well from sibling tools like pipedrive_add_deal_discount and pipedrive_update_deal_discount.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., add or update discount tools). The description implies use for listing, but lacks exclusions or context to help an agent decide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_deal_fieldsARead-onlyIdempotent
List all deal field definitions, including custom fields. Essential for understanding deal data structure.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination (from previous response) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds the detail about including custom fields, which is useful but does not disclose additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that conveys the key information. It front-loads the action and specificity. Could be slightly expanded but is efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (2 parameters, no output schema, annotations covering safety), the description adequately conveys what the tool does and its purpose. It is sufficiently complete for an agent to understand when to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%. Both parameters (cursor and limit) are described in the schema. The description does not add additional meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'deal field definitions', and scope 'all, including custom fields'. It distinguishes this tool from sibling listing tools (e.g., list_organization_fields) by specifying deal fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Essential for understanding deal data structure' provides context for when to use this tool. However, it does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_deal_followersBRead-onlyIdempotent
List all followers for a deal.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true. The description adds no behavioral context beyond the annotation coverage, such as pagination behavior or response details, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states the purpose. It is front-loaded and has no unnecessary words, though it could be slightly more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (list followers), no output schema, and rich annotations, the description is minimally adequate. It lacks details on pagination or result format, but the parameters cover pagination. More context could improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 3 parameters have descriptions). The tool description does not add parameter information, but the baseline is 3 due to high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'followers for a deal', effectively conveying the tool's purpose. It is distinct from sibling tools like 'pipedrive_add_deal_follower' and 'pipedrive_get_deal_followers_changelog' due to the verb and resource specification, though not explicitly differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool over alternatives, such as when to list followers vs add them, or vs listing followers for other entities. No when-not or context for selection is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_deal_installmentsARead-onlyIdempotent
List installments across one or more deals. Requires deal_ids. Growth+ plan required.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination | |
| sort_by | No | Field to sort by | |
| deal_ids | Yes | Deal IDs to fetch installments for (1-100, required) | |
| sort_direction | No | Sort direction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, making the safety profile clear. The description adds the plan requirement but no additional behavioral details like pagination or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words, each providing distinct information: what the tool does and its prerequisites.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with good annotations and full schema coverage, the description is sufficient but could be more complete by mentioning pagination or typical use cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are fully described in the schema (100% coverage), so the description adds no extra meaning beyond stating that deal_ids is required, which is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists installments across one or more deals, with a specific verb ('List') and resource ('installments'). It distinguishes from sibling tools like add/update installment tools by being a read operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides prerequisites (deal_ids required, Growth+ plan required) but does not give when-to-use or when-not-to-use guidance relative to alternatives such as pipedrive_list_deal_discounts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_deal_productsARead-onlyIdempotent
List line-item products attached to a deal. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination | |
| sort_by | No | Field to sort by | |
| sort_direction | No | Sort direction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered. The description adds that results are paginated, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no redundancy. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and moderate complexity (5 params, 1 required), the description is sufficient for a list operation. Could mention default sorting or response structure, but covers essentials.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all parameters. The description does not add new meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'line-item products attached to a deal'. It distinguishes from sibling tools like pipedrive_add_deal_product (add) and pipedrive_bulk_add_deal_products (bulk add).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading products, but does not explicitly state when to use this tool versus alternatives (e.g., when to use list vs search/deal-level get). No when-not-to-use or context for pagination.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_dealsARead-onlyIdempotent
List deals from Pipedrive with optional filtering by owner, person, organization, pipeline, stage, or status. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated deal IDs to fetch (max 100) | |
| limit | No | Number of items to return (1-100, default 50) | |
| cursor | No | Cursor for pagination (from previous response) | |
| org_id | No | Filter by linked organization ID | |
| status | No | Filter by deal status (omit to return all non-deleted deals) | |
| sort_by | No | Field to sort by | |
| owner_id | No | Filter by owner user ID | |
| stage_id | No | Filter by stage ID | |
| filter_id | No | Filter by saved filter ID | |
| person_id | No | Filter by linked person ID | |
| pipeline_id | No | Filter by pipeline ID | |
| custom_fields | No | Include custom fields in response (comma-separated field keys or 'all') | |
| updated_since | No | Filter deals updated after this time (RFC3339 format, e.g. 2024-01-01T00:00:00Z) | |
| updated_until | No | Filter deals updated before this time (RFC3339 format) | |
| include_fields | No | Comma-separated extra fields (v2 enum, e.g. next_activity_id, last_activity_id, products_count, files_count, notes_count, followers_count) | |
| sort_direction | No | Sort direction (default: desc) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. Description adds that results are paginated, which is a useful behavioral note beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that front-loads the purpose and key capabilities, with no unnecessary words. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 16 parameters, no output schema, and rich annotations, the description covers essential filtering and pagination. It could briefly mention pagination details (cursor/limit) but the schema handles that, so completeness is adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with descriptions for all 16 parameters. The description only highlights a subset of filter options and does not add additional meaning or context beyond the schema's own field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'List deals from Pipedrive' with specific verb and resource, and lists common filtering options, distinguishing it from sibling list tools like list_archived_deals or list_deal_followers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions optional filtering but does not explicitly advise when to use this tool over alternatives like pipedrive_search_deals for text search or list_archived_deals for deleted deals. No 'when not to use' guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_leadsARead-onlyIdempotent
List active (non-archived) leads from Pipedrive with optional filtering by owner, person, or organization.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Sort field and direction (e.g. 'id ASC') | |
| limit | No | Number of items (1-500, default 50) | |
| start | No | Pagination offset (0-based) | |
| owner_id | No | Filter by owner user ID | |
| filter_id | No | Filter by saved filter ID | |
| person_id | No | Filter by linked person ID | |
| organization_id | No | Filter by linked organization ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, etc. The description adds the key behavioral constraint that only non-archived leads are returned, which is not in annotations. No contradictions. Some additional behavior (e.g., pagination) is implied by params but not described.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 15 words, front-loaded with key information. No waste. Efficiently conveys purpose and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 7 optional parameters and no output schema, the description plus annotations provide sufficient context for safe usage. Lacks mention of return format or pagination behavior, but these are standard for list tools and somewhat inferred from params.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All 7 parameters have descriptions in the input schema (100% coverage). The tool description restates the filtering purpose but adds no new semantic detail beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('List'), resource ('leads'), scope ('active (non-archived)'), and optional filtering dimensions. It effectively distinguishes from sibling tools like pipedrive_search_leads and pipedrive_list_archived_leads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly indicates use for listing active leads with filters but lacks explicit guidance on when to use vs. alternative tools (e.g., search tools for text queries) or prerequisites. No when-not-to-use or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_mail_threadsARead-onlyIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items | |
| start | No | Pagination offset | |
| folder | No | Mail folder (default: inbox) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, but the description adds critical behavioral context: the tool only accesses the authenticated user's mailbox and cannot access other users' threads. This goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no wasted words. The first sentence states the core purpose and scope, and the second provides actionable filter guidance. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with good schema coverage and no output schema, the description is complete enough. It covers purpose, scope, and folder usage. Pagination parameters (start, limit) are documented in the schema, so their absence in the description is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with all three parameters described. The description mentions the folder parameter and its enum values, but this adds minimal value beyond the schema descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool lists mail threads from the authenticated user's mailbox only, explicitly noting that other users' threads are inaccessible. This is a specific verb+resource+scope that distinguishes it from any potential sibling tools for listing all threads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description provides explicit guidance on using the folder parameter to filter by inbox, drafts, sent, or archive. It does not compare to sibling tools, but given the unique nature of this mail thread tool among siblings, the usage context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_notesARead-onlyIdempotent
List notes from Pipedrive with optional filtering by deal, person, organization, or lead.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Field to sort by | |
| limit | No | Number of items (1-500) | |
| start | No | Pagination offset (0-based) | |
| org_id | No | Filter by organization ID | |
| deal_id | No | Filter by deal ID | |
| lead_id | No | Filter by lead ID (UUID format) | |
| person_id | No | Filter by person ID | |
| sort_direction | No | Sort direction | |
| pinned_to_deal_flag | No | Filter by pinned to deal | |
| pinned_to_person_flag | No | Filter by pinned to person | |
| pinned_to_organization_flag | No | Filter by pinned to organization |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, destructiveHint=false, idempotentHint=true, so the agent knows it's safe. The description adds minimal behavioral context beyond confirming filtering, but does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no extraneous words. It is efficiently front-loaded and earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 11 optional parameters and no output schema, the description is minimal. It does not mention pagination, sorting, or return structure. However, annotations and schema mitigate some gaps, making it adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description highlights the filtering parameters but does not add meaning beyond the schema's descriptions. It is adequate but not enhanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists notes and specifies optional filtering by deal, person, organization, or lead. This distinguishes it from sibling list tools that target other entities (e.g., activities, deals).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like pipedrive_get_note or other list tools. The description only states what the tool does, not usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_organization_fieldsARead-onlyIdempotent
List all organization field definitions, including custom fields. Use this to map 40-character field keys to human-readable names.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination (from previous response) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds value by specifying inclusive scope (all fields, including custom) and the mapping purpose, enhancing transparency about what the tool returns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key info, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description hints at output as field definitions with key-name mapping. Adequate for a listing tool with good annotations; could clarify structure slightly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for cursor and limit. Description does not add new parameter details beyond schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists all organization field definitions including custom fields, and adds a practical use case of mapping field keys to human-readable names. Distinct from sibling tools like pipedrive_list_organizations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies when to use: when needing to map field keys to names. Context is clear given sibling tools are for different purposes; could explicitly mention alternatives like pipedrive_get_field.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_organization_followersARead-onlyIdempotent
List all followers for an organization.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The organization ID | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, destructive, idempotent, and openWorld hints. The description adds 'all followers' but no additional behavioral context like pagination or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, concise sentence that communicates the tool's function without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not mention return format or pagination behavior, but it covers the core purpose. Could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions for id, cursor, and limit. The description adds no extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List all followers for an organization' with a specific verb and resource, distinguishing it from sibling tools that add or get changelogs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives like 'pipedrive_add_organization_follower' or 'pipedrive_get_organization_followers_changelog', but usage is implied from the naming structure.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_organizationsCRead-onlyIdempotent
List organizations from Pipedrive with optional filtering by owner or first letter of name.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated organization IDs to fetch (max 100) | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination | |
| sort_by | No | Field to sort by | |
| owner_id | No | Filter by owner user ID | |
| filter_id | No | Filter by saved filter ID | |
| custom_fields | No | Include custom fields in response (comma-separated field keys or 'all') | |
| updated_since | No | Filter organizations updated after this time (RFC3339 format) | |
| updated_until | No | Filter organizations updated before this time (RFC3339 format) | |
| include_fields | No | Include additional data in response | |
| sort_direction | No | Sort direction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, etc. The description adds no behavioral context beyond listing, and includes a misleading filter mention, potentially confusing the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very short, but critically incomplete and inaccurate. The single sentence omits essential context and includes a false claim, making it ineffective rather than concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and 11 parameters, the description fails to explain pagination, return format, or how to use filters effectively. Insufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% but the description claims a non-existent filter (first letter of name). It does not add meaningful semantics beyond the schema and introduces error.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The purpose is clear: list organizations with optional filtering. However, it inaccurately mentions filtering by 'first letter of name', which is not supported in the schema, reducing clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over siblings like pipedrive_search_organizations or other list tools. The description does not specify context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_person_fieldsARead-onlyIdempotent
List all person field definitions, including custom fields. Use to understand contact data structure.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination (from previous response) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent, and open-world behavior. The description adds 'including custom fields' which is useful. However, it implies listing 'all' fields but the schema includes pagination, which is not addressed. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no fluff, and starts with the action verb 'List'. Every word contributes value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description could elaborate on what field definitions include (e.g., name, type, options), but it's adequate for a simple list tool. Pagination behavior is not explained, which is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes cursor and limit. The description does not add extra meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all person field definitions including custom fields, and explains its purpose (to understand contact data structure). This distinguishes it from sibling tools like pipedrive_list_persons or pipedrive_list_person_followers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a usage hint ('Use to understand contact data structure') but does not explicitly state when to use this tool versus alternatives like pipedrive_list_deal_fields or other field listing tools. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_person_followersARead-onlyIdempotent
List all followers for a person.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The person ID | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint, covering safety and idempotency. The description adds no further behavioral context, but for a simple read-only list, the annotations suffice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence (7 words) with no wasted words. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple list tool with rich annotations, but it does not specify the return format or pagination behavior, leaving some ambiguity for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear parameter descriptions. The tool description adds no extra meaning beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List all followers for a person' uses a specific verb and resource, clearly distinguishing it from sibling tools that add followers or list persons.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like pipedrive_list_deal_followers or pipedrive_list_organization_followers. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_personsBRead-onlyIdempotent
List persons (contacts) from Pipedrive with optional filtering by owner, organization, or first letter of name.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated person IDs to fetch (max 100) | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination | |
| org_id | No | Filter by organization ID | |
| sort_by | No | Field to sort by | |
| owner_id | No | Filter by owner user ID | |
| filter_id | No | Filter by saved filter ID | |
| custom_fields | No | Include custom fields in response (comma-separated field keys or 'all') | |
| updated_since | No | Filter persons updated after this time (RFC3339 format) | |
| updated_until | No | Filter persons updated before this time (RFC3339 format) | |
| include_fields | No | Comma-separated extra fields (v2 enum, e.g. next_activity_id, open_deals_count, won_deals_count, notes_count, followers_count) | |
| sort_direction | No | Sort direction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the description adds minimal behavioral context. It mentions filtering options but does not disclose pagination behavior, rate limits, or what happens when no filters are applied. With annotations covering safety, the description adds some value but is not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise, but it includes an inaccurate claim about filtering by first letter of name, undermining effectiveness. Conciseness is good, but accuracy is a concern.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 12 parameters and no output schema, the description is too minimal. It does not explain the various filter options, sorting, or pagination. The user cannot fully understand the tool's capabilities from the description alone, given its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are documented. However, the description claims a 'first letter of name' filter, but no such parameter exists in the schema, creating a discrepancy. This misleads the agent, reducing score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List persons (contacts)' with optional filters, identifying the verb and resource. It distinguishes from other list tools by mentioning specific filters unique to persons (owner, organization, first letter of name), though it does not explicitly differentiate from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when listing persons with specific filters but does not provide explicit when-not-to-use guidance or mention alternatives like pipedrive_search_persons. The guidance is implicit rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_phasesARead-onlyIdempotent
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| board_id | Yes | ID of the board to list phases for (required) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive. The description adds that the endpoint returns all records at once (no pagination) and notes the beta status, providing added behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with purpose, and contains no superfluous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter, the description sufficiently covers requirements, behavior, and limitations. The lack of output schema detail is acceptable as the purpose is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a description for board_id. The description repeats that board_id is required but adds no new meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all phases for a project board', using a specific verb and resource, distinguishing it from sibling tools like get_phase (single) or create_phase.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions board_id is required and notes the no-pagination behavior, but does not explicitly contrast with alternatives like get_phase for a single phase. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_pipelinesARead-onlyIdempotent
List sales pipelines in Pipedrive with cursor pagination. Pipelines contain stages that deals move through.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (1-100, default 50) | |
| cursor | No | Cursor for pagination (from previous response) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent, and open-world. The description adds the important behavioral detail of cursor-based pagination, which is not captured in annotations. It also notes that pipelines contain stages, providing context. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, informative sentences with no extraneous words. The first sentence states the core action and pagination; the second adds useful context about pipelines. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description is adequate but not thorough. It explains pagination and pipeline structure but does not mention the response format, default sorting, or field details. Given the tool's low complexity and rich annotations, it meets minimum standards.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters (cursor, limit) are already well-documented. The description does not add additional semantics beyond the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists sales pipelines with cursor pagination. The verb 'list' and resource 'sales pipelines' are specific, and the mention of pagination adds precision. However, it does not explicitly differentiate from sibling list tools like pipedrive_list_deals or pipedrive_list_phases, beyond the resource name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool instead of alternatives. It does not mention prerequisites, when not to use it, or scenarios where other tools would be more appropriate. The description is purely declarative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_product_fieldsARead-onlyIdempotent
List all product field definitions, including custom fields.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination (from previous response) | |
| include_fields | No | Additional data namespaces to include (ui_visibility) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent behavior. The description adds value by noting 'including custom fields,' which clarifies scope beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded, no unnecessary words. Every word serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with full schema coverage and clear annotations, the description is adequate. It could mention pagination behavior implied by cursor/limit, but the schema covers that. No output schema exists, so no need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema fully describes all parameters (cursor, limit, include_fields). The description adds no parameter-specific semantics beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists product field definitions, including custom fields. It uses a specific verb-resource pair and distinguishes from sibling list tools like pipedrive_list_deal_fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as pipedrive_get_field for a single field definition. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_product_followersARead-onlyIdempotent
List all followers for a product.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product ID | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as readOnly and idempotent. The description adds no further behavioral context, such as pagination behavior or data freshness. It is consistent with annotations, so no contradiction, but does not enhance transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, short sentence that captures the tool's purpose without unnecessary words. It is front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (list followers), the annotations cover safety and idempotency, and the schema documents pagination. The description is minimal but sufficient for the agent to understand the basic operation. Slightly less complete due to lack of output schema explanation, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the description adds no value beyond the parameter descriptions in the schema. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'followers for a product', making the tool's purpose unambiguous. It effectively distinguishes from sibling tools like pipedrive_add_product_follower (add) and pipedrive_get_product_followers_changelog (changelog).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when pagination is needed or how it compares to changelog endpoints. There is no mention of prerequisites or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_productsARead-onlyIdempotent
List products from Pipedrive with optional filtering by owner, IDs, or filter.
| Name | Required | Description | Default |
|---|---|---|---|
| ids | No | Comma-separated product IDs to fetch (max 100) | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination | |
| sort_by | No | Field to sort by | |
| owner_id | No | Filter by owner user ID | |
| filter_id | No | Filter by saved filter ID | |
| custom_fields | No | Include custom fields in response (comma-separated field keys, max 15) | |
| updated_since | No | Filter products updated after this time (RFC3339 format) | |
| sort_direction | No | Sort direction |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, destructiveHint, idempotentHint) already convey safe, read-only behavior. Description adds no additional behavioral context beyond what annotations provide, such as rate limits or response structure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, efficient sentence with no filler. Clearly communicates the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and description does not clarify what the list returns (e.g., product objects vs IDs) or pagination behavior (cursor/limit). Could be more complete for a complex tool with 9 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so descriptions already document each parameter. The tool description merely restates filtering capabilities without adding new meaning or examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List products', specifying the verb and resource, and distinguishes from sibling tools like get_product (single item) and search_products (different operation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions optional filtering, but does not guide when to use list vs search_products or other list tools. No explicit usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_product_variationsBRead-onlyIdempotent
List all variations for a product.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product ID | |
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, destructiveHint=false, idempotentHint=true, openWorldHint=true, but the description adds nothing beyond, failing to mention pagination behavior or required parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence with no extraneous words. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity and annotations, the description is minimally adequate but lacks details on pagination behavior, which is important for listing all variations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add any additional context about the parameters (e.g., cursor meaning, limit range).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'list' and the resource 'variations for a product', distinguishing it from sibling tools like pipedrive_add_product_variation or pipedrive_get_product.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., when to use pagination parameters or compare with pipedrive_get_product). The description only states what it does.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_project_fieldsARead-onlyIdempotent
List all project field definitions, including custom fields. (Projects add-on; Projects API in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items (1-100) | |
| cursor | No | Cursor for pagination (from previous response) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, and the description reinforces safety by indicating a read operation. It adds behavioral context: includes custom fields, and notes the add-on requirement and beta status. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: one sentence stating the purpose followed by a parenthetical for additional context. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two optional parameters, the description covers the main purpose, includes custom fields, and notes the add-on/beta status. While it does not detail the return format or pagination, the schema covers cursor and limit, and the purpose is clear enough for selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents both parameters (cursor and limit) with descriptions for pagination. The tool description does not add further parameter semantics, but with 100% schema coverage, no additional info is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all project field definitions including custom fields, distinguishing it from sibling tools like pipedrive_list_projects (lists projects) or pipedrive_list_project_tasks (lists tasks).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions that the tool is part of the Projects add-on and that the API is in public beta, providing context about prerequisites. However, it does not explicitly state when to use this over alternative tools like pipedrive_get_project (which might include fields) or pipedrive_list_project_templates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_projectsARead-onlyIdempotent
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (1-100, default 50) | |
| cursor | No | Cursor for pagination (from previous response) | |
| status | No | Filter by project status (e.g. open, completed, canceled, deleted) | |
| phase_id | No | Filter by phase ID | |
| filter_id | No | Filter by saved filter ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the tool is safe. The description adds that paginated results are returned, requires the Projects add-on, and notes the API is in public beta. This provides useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with essential information: action, filtering, pagination, prerequisites. No fluff, front-loaded with purpose. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers basic functionality, pagination, and add-on requirement. No output schema exists, so description does not detail response structure. However, parameter descriptions are complete, making the tool usable. Could mention cursor usage for pagination.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning the schema already documents all parameters. The description mentions optional filtering by board, phase, or status, which maps to parameters but does not add new semantics or format details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists projects with optional filtering, using a specific verb ('List') and resource ('projects'). It distinguishes from siblings like pipedrive_create_project or pipedrive_get_project by nature, but does not differentiate from pipedrive_search_projects or pipedrive_list_archived_projects, which could cause confusion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like pipedrive_search_projects or pipedrive_list_archived_projects. The description implies basic listing with filtering, but the agent is not told about trade-offs or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_project_tasksARead-onlyIdempotent
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Project ID | |
| limit | No | Number of items (1-100, default 50) | |
| cursor | No | Cursor for pagination (from previous response) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, openWorldHint. The description adds context that this is limited to a single project and is part of a beta API, enhancing transparency beyond structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey primary action, required parameter, and usage alternative. No redundant or extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with pagination parameters and strong annotations, the description covers key usage guidance and alternative. Could mention handling of missing project IDs, but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description reinforces the id parameter but adds no new semantic details for cursor or limit beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List tasks for a project you already have the ID for', specifying the verb and resource. It distinguishes from the sibling tool pipedrive_list_tasks by narrowing scope and explicitly naming the alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use this tool ('pass only id') and when not to ('For broader task queries use pipedrive_list_tasks'). Also provides context about the Projects add-on and API beta status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_project_templatesARead-onlyIdempotent
List all project templates available in Pipedrive. Returns paginated results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (1-100, default 50) | |
| cursor | No | Cursor for pagination (from previous response) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, which fully cover the safety and idempotency profile. The description adds only 'Returns paginated results,' which is already evident from the parameters. No additional behavioral context (e.g., rate limits, authorization needs) is provided. Thus, the description adds minimal value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description achieves its purpose in two concise sentences with no redundant information. It is front-loaded with the primary function ('List all project templates') and follows with a secondary detail about pagination. Every sentence is necessary and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 parameters, no output schema, no nested objects), the description is adequate but not fully complete. It explains the action and pagination but does not mention what fields are returned or any filtering capabilities. For a list tool, this might be acceptable, but more detail would improve confidence for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters ('cursor' and 'limit'), so the schema already explains their meanings. The description does not add new semantic details about the parameters; it merely reiterates pagination. Therefore, the description meets the baseline but does not enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List all project templates') and the resource ('in Pipedrive'), making it immediately obvious what the tool does. This distinguishes it from siblings like 'pipedrive_get_project_template' (single template retrieval) or 'pipedrive_list_projects' (lists projects, not templates).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing templates but does not explicitly state when to use this tool versus alternatives like 'pipedrive_get_project_template' for a specific template. No exclusions or prerequisites are provided. The mention of pagination offers some guidance for handling large results.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_stagesARead-onlyIdempotent
List stages with cursor pagination, optionally filtered by pipeline. Stages represent steps in the sales process.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items to return (1-100, default 50) | |
| cursor | No | Cursor for pagination (from previous response) | |
| pipeline_id | No | Filter by pipeline ID (returns all stages if not specified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, indicating a safe, idempotent read operation. The description adds valuable context about cursor pagination and the ability to filter by pipeline, which goes beyond the annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loading the main action and pagination method. Every sentence adds value: first sentence covers the core functionality, second explains what stages are. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with three optional parameters and no output schema, the description is sufficiently complete. It explains the pagination mechanism and optional filter, and provides context on the meaning of stages. Could optionally mention that results are sorted or default limit, but not necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all three parameters (cursor, limit, pipeline_id). The description mentions cursor pagination and pipeline filtering, but does not add new semantic meaning beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list stages), the method (cursor pagination), and the optional filter (by pipeline). It also explains what stages represent (steps in the sales process), differentiating it from other pipeline-related tools like pipedrive_list_phases or pipedrive_list_pipelines.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via 'optionally filtered by pipeline' but does not explicitly state when to use this tool versus alternatives such as pipedrive_list_phases or pipedrive_list_pipelines. No guidance on exclusions or prerequisites is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_tasksARead-onlyIdempotent
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of items (1-100, default 50) | |
| cursor | No | Cursor for pagination (from previous response) | |
| is_done | No | Filter by done status | |
| project_id | No | Filter by project ID | |
| assignee_id | No | Filter by assignee user ID | |
| is_milestone | No | Filter by milestone status | |
| parent_task_id | No | Filter by parent task ID. Use the literal string "null" to return only root-level tasks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, etc. The description adds context: 'Projects add-on; Projects API in public beta', which informs about prerequisites and stability. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences. First sentence front-loads purpose and key filters. Second sentence provides usage context and important notes. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 7 parameters and no output schema, the description provides essential scope, filter guidance, and context (add-on, beta). Lacks detail on return format, but annotations cover safety. Minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds minor value by mentioning 'parent filters' and hinting at 'null' for root-level tasks, but mostly repeats schema info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'General task query across all projects' with specific filters, using a specific verb 'query'. It distinguishes from sibling tools like pipedrive_list_project_tasks by noting its cross-project scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use for anything beyond a single project's full task list', guiding when to use this tool over alternatives. Could be improved by directly naming sibling tools, but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_list_usersARead-onlyIdempotent
List all users in the Pipedrive account. Useful for finding owner IDs when creating or filtering records.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, and openWorldHint=true, so the description's statement 'List all users' does not add much beyond what is already known. The description is consistent with annotations, but does not provide additional behavioral details beyond the obvious.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences with no wasted words. It front-loads the core action and immediately adds a practical use case. Every sentence serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and high annotation coverage, the description is adequate. It tells the agent exactly what the tool does and why it is useful. No additional details about pagination or return format are needed for this simple list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, and schema coverage is 100% (no properties). The description does not need to explain parameters, but it adds value by explaining the purpose of the output. Baseline is 4 for zero-param tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('List all users') and the resource ('in the Pipedrive account'), and provides a specific use case ('finding owner IDs'). This clearly differentiates it from siblings like 'pipedrive_get_user'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for when to use the tool ('useful for finding owner IDs when creating or filtering records'). While it does not explicitly state when not to use it or mention alternatives, the use case is specific enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_search_dealsARead-onlyIdempotent
Search for deals by text in title. Supports fuzzy matching by default.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term | |
| limit | No | Number of results (1-100) | |
| cursor | No | Cursor for pagination (from previous response) | |
| fields | No | Comma-separated fields to search (title, notes, custom_fields). Defaults to all. | |
| org_id | No | Filter by linked organization | |
| status | No | Filter by status (omit to return all non-deleted deals) | |
| person_id | No | Filter by linked person | |
| exact_match | No | Use exact match instead of fuzzy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, non-destructive, idempotent, and open-world behavior. The description adds the key behavioral detail of fuzzy matching by default, which is beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words, front-loaded with the core action. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 100% schema coverage and good annotations, the description does not mention pagination, the optional fields parameter, or return behavior. For a complex search tool with 8 parameters, this leaves some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% parameter descriptions, so the baseline is 3. The description adds no extra semantic value beyond the schema's existing parameter docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search', the resource 'deals', and the constraint 'by text in title'. It also notes default fuzzy matching, distinguishing it from other search tools for different entities (e.g., pipedrive_search_leads).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like pipedrive_list_deals or other search tools. No explicit conditions, exclusions, or context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_search_leadsARead-onlyIdempotent
Search for leads in Pipedrive by title or associated contacts.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term (required) | |
| limit | No | Number of results (1-500, default 50) | |
| cursor | No | Cursor for pagination | |
| fields | No | Comma-separated fields to search (title, notes, custom_fields). Defaults to all. | |
| person_id | No | Filter by linked person ID | |
| exact_match | No | Use exact match instead of fuzzy search | |
| include_fields | No | Optional extra field: only 'lead.was_seen' | |
| organization_id | No | Filter by linked organization ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the description need not reiterate safety. However, it adds no extra context about pagination, rate limits, or result format, which would be valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that conveys the core purpose without extraneous words. It is well front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 8 parameters and no output schema, the description omits details about pagination (cursor, limit), exact match, and result structure. It is too brief for a tool with significant configurable options.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description simplifies parameters ('by title or associated contacts') but does not add new meaning beyond what's in the schema. It underrepresents the full range of search fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for leads by title or associated contacts, using a specific verb+resource pattern. It distinguishes itself from sibling search tools (e.g., pipedrive_search_deals) by explicitly naming 'leads'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching leads but provides no explicit guidance on when to use this over alternatives like pipedrive_list_leads or pipedrive_get_lead. No when-not-to-use or comparison with siblings is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_search_organizationsBRead-onlyIdempotent
Search for organizations by name or address.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term | |
| limit | No | Number of results (1-100) | |
| cursor | No | Cursor for pagination (from previous response) | |
| fields | No | Comma-separated fields to search (name, address, notes, custom_fields). Defaults to all. | |
| exact_match | No | Use exact match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true. The description adds no additional behavioral context, such as pagination behavior or field search behavior, beyond what is in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One concise sentence with no wasted words. Could be slightly expanded to include key behavior like pagination without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not explain the return structure, pagination with cursor, or that it returns a list. Given 5 parameters and no output schema, it is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds minimal value by mentioning 'name or address' which maps to the 'fields' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and the resource 'organizations', and specifies the search criteria 'by name or address'. This distinguishes it from sibling search tools for deals, leads, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching organizations, but no explicit guidance on when to use or not use this tool versus alternatives like pipedrive_get_organization or pipedrive_list_organizations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_search_personsARead-onlyIdempotent
Search for persons by name, email, or phone number.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term | |
| limit | No | Number of results (1-100) | |
| cursor | No | Cursor for pagination (from previous response) | |
| fields | No | Comma-separated fields to search (name, email, phone, notes, custom_fields). Defaults to all. | |
| org_id | No | Filter by organization | |
| exact_match | No | Use exact match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds context about searchable fields but does not detail pagination, filtering, or result behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the tool's purpose with no superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with 6 parameters, the description covers only primary usage. Pagination, filtering, and fields options are left to the schema, which is adequate but not fully integrated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description highlights common search fields (name, email, phone) but adds minimal value beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'search' and the resource 'persons', and specifies the searchable fields (name, email, phone number), which distinguishes it from sibling search tools for deals, organizations, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for searching persons by common fields but does not explicitly state when to use this tool over alternatives, such as listing all persons or searching other entities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_search_productsARead-onlyIdempotent
Search for products by name, code, or custom fields.
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term | |
| limit | No | Number of results (1-100) | |
| cursor | No | Cursor for pagination (from previous response) | |
| fields | No | Comma-separated fields to search: code, custom_fields, name. Defaults to all. | |
| exact_match | No | Use exact match | |
| include_fields | No | Extra fields to include (product.price) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds value by specifying the searchable fields (name, code, custom fields), which goes beyond the schema. It doesn't contradict annotations and provides additional context about the operation's scope. A minor gap is the lack of mention of the return format, but given the annotations, this is acceptable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that immediately states the action and scope. Every word earns its place, with no filler or redundant information. It is appropriately sized for a straightforward search operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters, all well-documented in the schema, and annotations cover safety. However, the description doesn't explicitly state that the tool returns a list of matching products or that it supports pagination (though cursor and limit hints indicate this). Without an output schema, the description could have mentioned the response nature to help an agent set expectations. The description is adequate but leaves some operational details to the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters like 'term', 'limit', 'cursor', 'fields', 'exact_match', and 'include_fields' are already documented. The description adds extra meaning by explaining that the 'fields' parameter allows searching by name, code, or custom fields, and implies default behavior. This enhances understanding beyond the raw schema, particularly for the 'fields' parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Search') on a specific resource ('products') and clarifies the search dimensions ('by name, code, or custom fields'). It clearly distinguishes from listing tools like pipedrive_list_products by the search intent. It doesn't explicitly differentiate from sibling search tools (search_deals, search_persons) but the target resource is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: if you need to find a product by a term, use this tool. However, it provides no explicit guidance on when to choose it over alternatives like list_products for browsing or other entity-specific searches. There is no mention of exclusions or conditions that would route an agent to a different tool, leaving the decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_search_projectsARead-onlyIdempotent
Search for projects in Pipedrive by title. (Requires the Projects add-on; Projects API is in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| term | Yes | Search term (required) | |
| limit | No | Number of results (1-100, default 50) | |
| cursor | No | Cursor for pagination | |
| exact_match | No | Use exact match instead of fuzzy search |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a safe, read-only operation. The description adds that it searches only by title and requires a specific add-on, which are useful behavioral constraints beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with a parenthetical note, extremely concise and front-loaded with the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description does not clarify the return format or pagination behavior. Annotations cover safety, but the description could be more helpful by mentioning result structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds 'by title' which aligns with the 'term' parameter but doesn't provide new semantic detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches for projects by title, using a specific verb and resource. It distinguishes from sibling search tools like pipedrive_search_deals and pipedrive_search_leads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the requirement of the Projects add-on and beta status, providing important context for when the tool can be used. It does not explicitly exclude alternatives, but the resource-specific name makes usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_activityAIdempotent
Update an existing activity in Pipedrive. Use this to mark activities as done.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Activity ID to update | |
| busy | No | Show as busy | |
| done | No | Mark as completed/pending | |
| note | No | New notes | |
| type | No | New type | |
| org_id | No | New organization ID | |
| deal_id | No | New deal ID | |
| lead_id | No | New lead ID (UUID format) | |
| subject | No | New subject | |
| due_date | No | New due date (YYYY-MM-DD) | |
| due_time | No | New due time (HH:MM) | |
| duration | No | New duration (HH:MM) | |
| location | No | New location (structured object) | |
| owner_id | No | New owner | |
| priority | No | New priority (integer) | |
| attendees | No | New attendees | |
| person_id | No | New person ID | |
| project_id | No | New project ID | |
| participants | No | New participants |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, destructiveHint, idempotentHint, and openWorldHint; the description adds 'Update' and 'mark as done', which are consistent but not extensive. It does not elaborate on update behavior (e.g., partial vs full update) or data persistence effects beyond the annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences that convey purpose and a key use case. It could be slightly improved by noting that only 'id' is required, but overall it is efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with 19 parameters, nested objects, and no output schema. The description is very brief and does not explain update semantics (e.g., partial update), response format, error handling, or field-level constraints beyond the schema. This is insufficient for an AI agent to use correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters have descriptions in the schema. The tool description does not add any additional semantic meaning beyond what is already in the schema. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'activity', and provides a specific use case 'mark activities as done'. This distinguishes it from sibling tools like pipedrive_create_activity and pipedrive_get_activity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating activities and marking them done, but does not explicitly state when to use this tool versus alternatives, nor does it provide when-not-to-use guidance. With many sibling update tools, more explicit guidance would be helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_boardAIdempotent
Update an existing project board. Only id is required; all other fields are optional. (Projects add-on; Projects API in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The board ID to update | |
| name | No | Board name | |
| order_nr | No | Board order number (integer >= 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint, readOnlyHint, etc. Description adds that it's an update (mutation) and optional fields, but does not disclose authorization needs, error handling, or side effects beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-loading the main purpose and key constraint (only id required). No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update tool with 3 parameters, full schema, and annotations, the description covers core functionality and the API status. Could mention return value, but not required since no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds that only id is required, which is redundant with schema but helpful. No additional meaning for optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('existing project board'), with the note that only id is required, distinguishing it from create_board and other update tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates when to use (update an existing board with ID) and that all other fields are optional, but does not explicitly state when not to use or mention alternatives like create_board for new boards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_dealBIdempotent
Update an existing deal in Pipedrive. Specify the deal ID and any fields to update.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Deal ID to update | |
| title | No | New deal title | |
| value | No | New deal value | |
| org_id | No | New linked organization ID | |
| status | No | New deal status | |
| currency | No | New currency code | |
| owner_id | No | New owner user ID | |
| stage_id | No | New stage ID | |
| won_time | No | Won time (when status is 'won') | |
| label_ids | No | Label IDs to set on deal | |
| lost_time | No | Lost time (when status is 'lost') | |
| person_id | No | New linked person ID | |
| visible_to | No | Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company | |
| lost_reason | No | Lost reason (when status is 'lost') | |
| pipeline_id | No | New pipeline ID | |
| probability | No | New success probability (0-100) | |
| custom_fields | No | Custom field values as object with field keys | |
| expected_close_date | No | New expected close date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=true, and openWorldHint=true, covering the mutation profile. The description adds minimal extra behavior context: it specifies that the deal must exist and that only provided fields are updated (implied by 'any fields to update'). It does not mention potential side effects, response behavior, or auth requirements, but the annotations carry the safety profile, so a 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded with the action ('Update an existing deal') followed by the key requirement ('Specify the deal ID and any fields to update'). There is no redundant information or filler, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 18 parameters and no output schema, the description is minimal but the schema covers all parameter details. It does not explain the response format or that the update is partial (only provided fields are changed), though 'any fields to update' implies partial. Given the complexity and the existence of many similar tools, more context on usage or expected outcomes would improve completeness, but the core functionality is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is documented in the input schema. The description adds only that the deal ID and optional fields are to be specified, which is already implicit in the required 'id' and the list of properties. It provides no additional meaning, such as relationships between fields (e.g., won_time only when status is 'won' is already in the schema). Baseline 3 is correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Update' and the resource 'existing deal in Pipedrive', with an explicit reference to the deal ID and updatable fields. It is specific and not a tautology, but it does not explicitly differentiate from sibling tools like pipedrive_update_deal_field or pipedrive_update_deal_product, though the resource 'deal' itself distinguishes it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as when dealing with sub-entities like deal fields or products. It only states what it does; there are no conditions, exclusions, or references to other tools. This is a significant gap given the large set of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_deal_discountAIdempotent
Update an additional discount on a deal. All fields except IDs are optional.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| type | No | Whether amount is a percentage or fixed amount | |
| amount | No | Discount amount, must be positive | |
| description | No | Discount description | |
| discount_id | Yes | The discount UUID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and non-destructive; the description aligns with 'update' and adds that all non-ID fields are optional. No contradictions, but no additional behavioral context beyond what annotations already disclose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. First sentence states the purpose immediately; second adds a key qualifier. Perfectly concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the description is functional, it omits details like how the update behaves (overwrite vs merge) or what 'additional discount' means. Given the complete schema, it's minimally adequate but could be more informative for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description adds the important note that all non-ID fields are optional, enhancing clarity despite the schema already defining each field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update an additional discount on a deal'), distinguishing it from sibling tools like pipedrive_add_deal_discount and pipedrive_list_deal_discounts. The verb 'update' and resource 'discount on a deal' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., add_deal_discount or list_deal_discounts). The description implies usage via 'update' but lacks context such as prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_deal_fieldAIdempotent
Update a deal custom field by field_code. field_type and field_code cannot be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| field_code | Yes | The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name. | |
| field_name | No | New field name (1-255 chars) | |
| description | No | Field description (null to clear) | |
| ui_visibility | No | UI visibility: add_visible_flag, details_visible_flag, projects_detail_visible_flag, show_in_pipelines{show_in_all, pipeline_ids}. | |
| required_fields | No | Required-field config: enabled, stage_ids (deal stages), statuses (per-pipeline won/lost map). | |
| important_fields | No | Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a write operation (readOnlyHint=false), idempotent (idempotentHint=true), and non-destructive (destructiveHint=false). The description adds a valuable constraint about immutable fields (field_type and field_code). However, it doesn't disclose other behavioral traits like permission requirements or side effects beyond the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that states the action, target, and key constraint upfront. There is no unnecessary verbiage, and the most critical information (immutability of field_type and field_code) is included.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the schema covers parameter details, the description lacks broader context: no mention of when to use this over other field tools, no expected outcomes, and no mention of prerequisites (e.g., needing a prior field create/list response). For a mutation tool with nested objects and 6 parameters, it is functionally adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter (field_code, field_name, description, ui_visibility, required_fields, important_fields) has a detailed schema description. The tool description adds no extra parameter semantics beyond what the schema already provides, which keeps this at the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update) and the resource (deal custom field) with a specific identifier (field_code). It also defines a precise scope by noting that field_type and field_code cannot be changed, which distinguishes it from create and option-update sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies its purpose but provides no explicit guidance on when to use this tool versus alternatives like pipedrive_create_deal_field or pipedrive_update_deal_field_options. The phrase 'by field_code' and the immutability note hint at usage, but no direct exclusions or alternative routing is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_deal_field_optionsAIdempotent
Bulk-update option labels of a deal enum/set field. Atomic: the whole request fails if any option ID does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| options | Yes | Options to update (at least one). Atomic: the whole request fails if any option ID does not exist. | |
| field_code | Yes | The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotentHint=true and non-destructive. The description adds valuable context: atomic failure if any option ID is missing, and the clarification that field_code is a 40-char hash, not the human name. This goes beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences front-load the purpose and critical constraint (atomicity), with every phrase earning its place. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 params, no output schema), the description covers core purpose, a key behavioral trait, and a parameter nuance. It lacks success return info but is reasonable for the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and both parameters are well-described in the input schema. The description reiterates the atomicity requirement for options but adds no new semantic detail beyond the schema, meeting the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Bulk-update option labels of a deal enum/set field', clearly defining the action, target, and scope. The atomicity note and mention of field_code being a hash distinguish it from sibling tools like pipedrive_update_deal_field, which updates the field itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating existing option labels but does not explicitly specify when to use vs alternatives (e.g., creating a new field, updating other field properties). No prerequisites or exclusions are stated, leaving agents to infer from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_deal_installmentBIdempotent
Update an installment on a deal. Growth+ plan required; all body fields optional.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| amount | No | Installment amount, must be positive | |
| description | No | Installment description | |
| billing_date | No | Billing date in YYYY-MM-DD format | |
| installment_id | Yes | The installment ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false. The description adds the plan requirement, which is useful beyond annotations, but it does not elaborate on behavioral details like what gets destroyed or rate limits. This is adequate but minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that includes essential information (action, plan requirement, field optionality). It is concise without being under-specified, and every part earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (5 simple parameters, no nested objects), the description is moderately complete. No output schema exists, but the description does not clarify what the tool returns. Annotations provide safety hints. Overall, it is functional but missing return behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage, with each parameter described. The description's note that all body fields are optional adds marginal value since the schema already indicates required fields (id and installment_id). The description does not provide additional semantics beyond what the schema offers.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update an installment on a deal') with a specific verb and resource, distinguishing it from sibling tools like add or list. The mention of 'Growth+ plan required' adds context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the required plan ('Growth+ plan required') and notes that all body fields are optional, giving some usage conditions. However, it does not explicitly state when to use this tool versus alternatives (e.g., adding or deleting installments), nor does it provide exclusions or best practices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_deal_productCIdempotent
Update a line-item product attached to a deal. All body fields optional.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The deal ID | |
| tax | No | Tax percentage | |
| comments | No | Free-text comments for this line item | |
| discount | No | Discount applied to the line item | |
| quantity | No | Quantity of the product | |
| is_enabled | No | Whether the product is enabled on the deal | |
| item_price | No | Price of one unit | |
| product_id | No | The product ID to attach | |
| tax_method | No | How tax is applied | |
| discount_type | No | Whether discount is a percentage or fixed amount | |
| billing_frequency | No | Billing frequency for recurring products | |
| billing_start_date | No | Billing start date (YYYY-MM-DD, null to clear) | |
| product_variation_id | No | Product variation ID (null to clear) | |
| product_attachment_id | Yes | The product-attachment ID (the line item's own ID on the deal) | |
| billing_frequency_cycles | No | Number of billing cycles (null = unlimited) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, destructiveHint=false, and idempotentHint=true, covering basic safety. The description adds no further behavioral contextโsuch as whether unspecified fields are preserved, prerequisites like the need for an existing product_attachment_id, or side effects on other deal fields. It merely restates that it is an update, adding minimal value beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy, which is good for conciseness. It is front-loaded with the primary action and resource. However, it is so terse that it sacrifices useful context that could be included without bloating the text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (15 parameters) and no output schema, the description is woefully incomplete. It does not explain how to obtain the product_attachment_id, how the update interacts with existing deal product data, or what the response indicates. With no example or additional context, an agent may struggle to correctly use this tool, especially given the large sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is described in the schema. The description's assertion that 'All body fields optional' aligns with the schema's required field list and does not add new meaning. It clarifies that only required fields are id and product_attachment_id, but this is already explicit. No additional parameter-level guidance (e.g., relationships between fields or format nuances) is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Update') and resource ('a line-item product attached to a deal'), which distinguishes it from add/list operations. However, it does not explicitly differentiate from sibling tools like pipedrive_update_deal or pipedrive_add_deal_product, relying on the resource phrasing to imply the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as pipedrive_update_deal or pipedrive_add_deal_product. The only usage hint is 'All body fields optional,' which addresses parameter semantics rather than tool selection. Given 15 siblings with overlapping deal/product functionality, the lack of routing guidance is a significant gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_leadBIdempotent
Update an existing lead in Pipedrive.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Lead UUID to update | |
| title | No | New lead title | |
| value | No | New monetary value | |
| owner_id | No | New owner user ID | |
| label_ids | No | New lead label UUIDs | |
| person_id | No | New linked person ID | |
| visible_to | No | New visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company | |
| is_archived | No | Archive or unarchive the lead | |
| organization_id | No | New linked organization ID | |
| expected_close_date | No | New expected close date (YYYY-MM-DD) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description only says 'Update', which is consistent with annotations showing readOnlyHint=false and idempotentHint=true, but adds no additional behavioral context beyond what annotations already provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded. However, it could be more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without output schema, description should explain return value or behavior of partial updates. No mention of what happens on success/failure, or how updated fields interact with existing data.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description does not add any parameter semantics beyond what the input schema already describes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action 'Update' and resource 'existing lead' in Pipedrive. This distinguishes it from siblings like create_lead or get_lead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as pipedrive_create_lead or pipedrive_update_deal. No context on prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_noteBIdempotent
Update an existing note in Pipedrive.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Note ID to update | |
| org_id | No | New linked organization ID | |
| content | No | New note content (HTML supported) | |
| deal_id | No | New linked deal ID | |
| lead_id | No | New linked lead ID (UUID format) | |
| person_id | No | New linked person ID | |
| pinned_to_deal_flag | No | Pin note to deal | |
| pinned_to_person_flag | No | Pin note to person | |
| pinned_to_organization_flag | No | Pin note to organization |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint false, destructiveHint false, idempotentHint true, and openWorldHint true. The description adds no behavioral context beyond stating 'Update', failing to disclose traits like partial update behavior, permission requirements, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five-word sentence, zero wasted words. Extremely concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Description is minimal but arguably sufficient given detailed schema. However, lack of output description and no mention of how updates work (e.g., partial vs full replacement) leaves some gaps for a tool with 9 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to elaborate on parameters. It adds no additional meaning beyond what the schema provides, resulting in baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Update' and resource 'existing note in Pipedrive', distinguishing it from create and other update tools for different entities. It directly conveys the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like create_note or other update tools. No mention of prerequisites or context for invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_organizationCIdempotent
Update an existing organization in Pipedrive.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Organization ID to update | |
| name | No | New name | |
| address | No | New organization address as a structured object (v2). Provide 'value' for the full address. | |
| owner_id | No | New owner user ID | |
| label_ids | No | Label IDs to set on organization | |
| visible_to | No | New visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company | |
| custom_fields | No | Custom field values as object with field keys |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint=true and destructiveHint=false, but the description does not add further behavioral context (e.g., partial update behavior, permissions, or error scenarios). For a mutation tool, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is concise and front-loaded. It contains no fluff, though it could be slightly more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite good input schema coverage, the description lacks information about return values (no output schema) and does not explain update behavior or side effects. A more complete description would discuss partial updates and the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description itself does not add parameter-level details beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and resource ('existing organization'), distinguishing it from the sibling 'pipedrive_create_organization'. It is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., 'pipedrive_create_organization' for creation). There are no prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_organization_fieldAIdempotent
Update an organization custom field by field_code. field_type and field_code cannot be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| field_code | Yes | The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name. | |
| field_name | No | New field name (1-255 chars) | |
| ui_visibility | No | UI visibility: add_visible_flag, details_visible_flag, show_in_add_deal_dialog{show, order}, show_in_add_person_dialog{show, order}. | |
| required_fields | No | Required-field config: enabled (person/org fields support only this flag). | |
| important_fields | No | Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotency and non-destructiveness. The description adds the immutability constraint but does not disclose other behaviors like required permissions, error cases, or side effects beyond the update.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with essential information and a critical constraint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks explanation of return value, error scenarios, or prerequisites. For an update tool with nested objects, more context on success behavior would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with detailed descriptions. The tool description does not add meaning beyond what the schema provides, so baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'update' and the resource 'organization custom field', and adds a key constraint that field_type and field_code cannot be changed. This distinguishes it from related tools like create_organization_field.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly indicates when to use (to update a custom field's properties) and the constraint on immutability, but lacks explicit comparison to sibling tools or conditions for not using it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_organization_field_optionsAIdempotent
Bulk-update option labels of an organization enum/set field. Atomic: the whole request fails if any option ID does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| options | Yes | Options to update (at least one). Atomic: the whole request fails if any option ID does not exist. | |
| field_code | Yes | The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds the key behavioral trait of atomicity ('the whole request fails if any option ID does not exist'), which is not covered by annotations. Annotations already indicate idempotentHint=true, and the description aligns.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the purpose and an important behavioral note, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 required parameters, no output schema), the description covers the purpose, scope, and critical behavior (atomicity) adequately. Annotations fill in safety details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not add new information about parameters beyond what the schema already provides. The baseline is 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Bulk-update' and the resource 'option labels of an organization enum/set field', distinguishing it from sibling tools like pipedrive_update_deal_field_options and pipedrive_update_person_field_options.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating organization field option labels, but does not explicitly state when not to use it or provide alternatives. The context is clear due to the naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_personBIdempotent
Update an existing person in Pipedrive.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Person ID to update | |
| name | No | New name | |
| emails | No | New email addresses (array of objects) | |
| org_id | No | New organization ID | |
| phones | No | New phone numbers (array of objects) | |
| owner_id | No | New owner user ID | |
| label_ids | No | Label IDs to set on person | |
| visible_to | No | New visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company | |
| custom_fields | No | Custom field values as object with field keys | |
| marketing_status | No | New marketing status |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate idempotency and non-destructive behavior. The description adds no further behavioral details such as partial update semantics, response format, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at one sentence, but lacks structure or useful elaboration. Could benefit from a brief note on usage scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 10 parameters and no output schema, the description is insufficient. Missing details like partial vs full update, return value, and how to handle omitted fields.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 100% of parameters with detailed descriptions. The description adds no extra meaning beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update) and resource (existing person). However, it does not differentiate from sibling tools like pipedrive_update_person_field, which update specific aspects of a person.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus creating a person (pipedrive_create_person) or other update tools. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_person_fieldAIdempotent
Update a person custom field by field_code. field_type and field_code cannot be changed.
| Name | Required | Description | Default |
|---|---|---|---|
| field_code | Yes | The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name. | |
| field_name | No | New field name (1-255 chars) | |
| ui_visibility | No | UI visibility: add_visible_flag, details_visible_flag, show_in_add_deal_dialog{show, order}. | |
| required_fields | No | Required-field config: enabled (person/org fields support only this flag). | |
| important_fields | No | Important-field highlighting: enabled, stage_ids (always references DEAL stages, even on person/org fields). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotentHint=true, and the description confirms that field_type and field_code cannot be changed, which is consistent. However, no additional behavioral traits (e.g., whether updates are partial, permissions required) are disclosed beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence. It is concise, though bullet points could improve readability for parameter details. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 5 parameters (1 required), the description covers the main aspects: update action, immutables, parameter specifics. It could mention return value format but is otherwise adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant value beyond the schema: it clarifies that field_code must be a 40-char hash from create/list response (not human name), and warns that important_fields always references deal stages even on person/org fields. Schema coverage is 100%.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Update' and the resource 'person custom field by field_code', and explicitly notes constraints ('field_type and field_code cannot be changed'). This distinguishes it from related tools like create_person_field or list_person_fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide explicit guidance on when to use this tool vs. alternatives such as update_person_field_options or create_person_field. While the name implies update, no 'when not to use' or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_person_field_optionsAIdempotent
Bulk-update option labels of a person enum/set field. Atomic: the whole request fails if any option ID does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| options | Yes | Options to update (at least one). Atomic: the whole request fails if any option ID does not exist. | |
| field_code | Yes | The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds atomicity behavior ('the whole request fails if any option ID does not exist'), which is not in annotations. However, it does not mention success outcomes, error handling, or other side effects. Annotations already indicate idempotent and not read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two sentences covering purpose and atomicity. No redundant words, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a bulk-update tool with no output schema, the description covers essential aspects: purpose and atomicity. It lacks mention of return value or limits, but given the simplicity and existing annotations, it is fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the tool description does not add new parameter information beyond what the schema provides. The schema already explains field_code and options clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Bulk-update option labels of a person enum/set field', specifying the action (bulk-update) and resource (option labels of a person enum/set field). This distinguishes it from sibling tools like pipedrive_update_person_field and pipedrive_update_person.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating option labels on person fields but lacks explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned, though the naming convention helps differentiate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_phaseAIdempotent
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The phase ID to update | |
| name | No | Phase name | |
| board_id | No | ID of the board (set to move this phase to a different board) | |
| order_nr | No | Phase order number (integer >= 1) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide idempotentHint and other flags, reducing the burden on the description. The description adds useful context (Projects add-on, public beta) and notes board_id behavior. However, it does not disclose potential side effects of moving a phase or error handling, leaving minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long with no unnecessary words. It frontloads the core purpose, then adds the key nuance about board_id and the add-on context. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and annotations present, the description covers the main action and one special behavior. It could be more complete by noting partial update behavior or required permissions, but it is sufficient for a simple update tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions, so the baseline is 3. The description adds no significant new meaning beyond the schema; it repeats that board_id moves the phase. Parameter semantics are adequately expressed in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing project phase' with a specific verb and resource. It also notes that only id is required and that board_id can move the phase to a different board, which distinguishes it from other update tools and its siblings (create_phase, list_phases).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives. While the purpose is clear, it lacks guidance on when not to use it (e.g., for creating or listing phases) or mention of required prerequisites. Sibling tool names imply the context, but the description is not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_pipelineAIdempotent
Update an existing pipeline. Provide the pipeline id and any fields to change.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the pipeline to update | |
| name | No | The new name of the pipeline | |
| is_deal_probability_enabled | No | Whether deal probability is enabled for this pipeline |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide behavioral traits (non-read-only, non-destructive, idempotent, open world). The description adds no extra behavioral context, such as return value or side effects, but it is consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at two sentences, with the action front-loaded in the first sentence. Every word is useful with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool and full schema coverage, the description is adequate but missing mention of the return value (no output schema). It does not fully cover what the agent should expect after the update.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes all parameters. The description only summarizes 'any fields to change' without adding new meaning or details beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Update an existing pipeline' with a specific verb and resource. It also instructs to provide the pipeline id and fields to change, distinguishing it from create or list operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (modify an existing pipeline) but does not explicitly state when not to use it or mention alternatives like updating a phase or deal. However, the name and context make the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_productCIdempotent
Update an existing product in Pipedrive.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Product ID to update | |
| tax | No | New tax percentage | |
| code | No | New product code | |
| name | No | New product name | |
| unit | No | New unit of measurement | |
| prices | No | Array of price objects per currency | |
| category | No | New product category ID | |
| owner_id | No | New owner user ID | |
| visible_to | No | New visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company | |
| description | No | New product description | |
| is_linkable | No | Whether the product can be linked to deals | |
| custom_fields | No | Custom field values as object with field keys | |
| billing_frequency | No | Billing frequency | |
| billing_frequency_cycles | No | Number of billing cycles (max 208, null = unlimited) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool is mutating (readOnlyHint=false), idempotent, and not destructive. The description adds no further behavioral context, such as whether it performs a partial update, requires ownership, or returns the updated object. With annotations present, it falls short of adding value beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no fluff, so it is concise and front-loaded. It is appropriately sized for its limited content, though it arguably under-specifies. Since conciseness rewards brevity, it earns a 4.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 14 parameters, nested objects (prices), and no output schema, the description is far too minimal. It does not clarify expected return values, failure behavior, or typical usage patterns. The schema covers input semantics but not the operational context an agent needs for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter already has a description. The tool description adds no extra meaning to the parameters, such as constraints or relationships (e.g., that prices are per-currency). At the baseline for high schema coverage, a 3 is appropriate because the schema carries the semantic weight.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('Update') and resource ('existing product'), which distinguishes it from sibling tools like create_product or get_product. However, it does not specify what aspects of the product can be updated, so it is not quite as specific as the calibration example that lists fields. Still, the core intent is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, exclusions, or situations where a different tool (e.g., create_product or update_deal_product) would be more appropriate. It only implies usage when updating a product, which is tautological.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_product_fieldAIdempotent
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).
| Name | Required | Description | Default |
|---|---|---|---|
| field_code | Yes | The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name. | |
| field_name | No | New field name (1-255 chars) | |
| ui_visibility | No | UI visibility (product fields use a simpler model): add_visible_flag, details_visible_flag. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotent and non-destructive write. The description adds that only field_name and ui_visibility are mutable, and explicitly states what cannot be changed (description/important_fields/required_fields). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. Key information is front-loaded and every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the essential behavioral constraints (mutable fields, product field specifics). Schema covers all parameters. No output schema, but the tool is straightforward. Adequate for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with good descriptions. The description adds value by clarifying the scope of mutable fields and the product field model constraints, going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a product custom field by field_code, and specifies which fields can be changed (field_name and ui_visibility). It distinguishes from create and other update tools by narrowing the scope to product fields only.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for updating product custom fields, but does not explicitly state when to use this tool versus alternatives (e.g., other field update tools). The context of 'update' and sibling tool names provide some differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_product_field_optionsAIdempotent
Bulk-update option labels of a product enum/set field. Atomic: the whole request fails if any option ID does not exist.
| Name | Required | Description | Default |
|---|---|---|---|
| options | Yes | Options to update (at least one). Atomic: the whole request fails if any option ID does not exist. | |
| field_code | Yes | The field_code (40-char hash for custom fields) from the field create/list response. NOT the human field name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral detail beyond annotations: 'Atomic: the whole request fails if any option ID does not exist.' This discloses a key idempotency-related behavior that annotations (idempotentHint=true) alone do not fully capture. It also implies the operation is not destructive (updates labels only). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the purpose stated first, followed by a key constraint. Every sentence adds value with no redundant information. It is well-structured and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with two parameters and no output schema, the description covers the essential aspects: purpose, parameter clarification (field_code), and atomicity constraint. It could mention error responses beyond ID existence, but overall it is sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning beyond the schema: it clarifies that field_code is a '40-char hash' and not the human field name. It also reiterates the atomicity condition for the options parameter. Since schema coverage is 100%, this extra context is valuable.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: 'Bulk-update option labels of a product enum/set field.' The verb 'update' and resource 'product enum/set field' are specific. It distinguishes from similar sibling tools by mentioning 'product', making clear it's for product custom fields, not deal or organization fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context: it is for updating option labels of a product field. While it doesn't explicitly state when not to use it or mention alternatives, the context of product fields is clear from the tool name and description, and the sibling tools cover other entities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_product_imageAIdempotent
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product ID | |
| file_name | Yes | Original filename including extension (e.g. product.png) | |
| file_path | No | 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. | |
| mime_type | No | MIME type. Inferred from file_name if omitted. | |
| base64_data | No | Base64-encoded image bytes (transport-safe). Mutually exclusive with file_path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations show idempotentHint: true, which is consistent with the 'replace' behavior. The description discloses that file_path is read by the server and disabled by default, adding critical behavioral context beyond the annotations (which lack destructiveHint).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, input methods, and a crucial caveat about server-side configuration. Every sentence adds essential information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description covers the input parameters thoroughly and addresses behavioral constraints. It lacks explicit return value information, but for an update tool, the primary purpose is well-covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% description coverage. The description adds value by explicitly stating the mutual exclusivity rule for file_path and base64_data, clarifying the exactly-one requirement, and noting supported formats (png, jpeg, gif, webp) โ information not fully captured in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update (replace) the image of a product,' specifying the verb 'update/replace' and the resource 'product image'. This distinguishes it from sibling tools like pipedrive_upload_product_image and other product-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to provide the image via either file_path or base64_data (exactly one required) and warns that file_path is disabled by default unless PIPEDRIVE_IMAGE_BASE_DIR is set. It suggests using base64_data as the transport-safe alternative, giving clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_product_variationBIdempotent
Update an existing product variation.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product ID | |
| name | No | Product variation name (max 255 chars) | |
| prices | No | Array of price objects per currency | |
| product_variation_id | Yes | The product variation ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate idempotency and non-destructiveness, but the description adds no behavioral context such as whether failed updates raise errors, how pricing modifications affect existing deals, or any rate limits. Description does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no extraneous information. It is appropriately front-loaded and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has four parameters (including an array of prices) and no output schema, the description lacks details on return format, error handling, and permission requirements. The sibling tools (add, list) are not referenced.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no extra meaning beyond what is already defined in the input schema. The description does not explain parameter relationships or provide usage examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the specific action 'Update' on the resource 'existing product variation', clearly distinguishing it from related sibling tools like 'pipedrive_add_product_variation'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., updating the product itself), no prerequisites noted, and no information about required prior steps like retrieving IDs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_projectAIdempotent
Update an existing project in Pipedrive. (Requires the Projects add-on; Projects API is in public beta.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Project ID to update | |
| title | No | New project title | |
| status | No | New project status | |
| org_ids | No | New organization IDs linked to the project | |
| board_id | No | New board ID the project belongs to | |
| deal_ids | No | New deal IDs linked to the project | |
| end_date | No | New project end date (YYYY-MM-DD) | |
| owner_id | No | New owner user ID | |
| phase_id | No | New phase ID within the board | |
| label_ids | No | New label IDs to attach to the project | |
| person_ids | No | New person IDs linked to the project | |
| start_date | No | New project start date (YYYY-MM-DD) | |
| description | No | New project description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate it's not read-only, not destructive, and idempotent. Description adds useful context: 'Requires the Projects add-on; Projects API is in public beta.' No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: single sentence plus parenthetical. Front-loads the primary action. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 13 parameters and no output schema, the description is minimal. Does not explain return value or behavior changes. Add-on requirement is noted, but lacks behavioral details expected for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so schema already describes all 13 parameters with reasonable descriptions. The description adds no additional parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Update an existing project in Pipedrive.' Verb ('Update') and resource ('project') are specific. Distinguishes from sibling tools like 'pipedrive_create_project' and 'pipedrive_archive_project' by virtue of the action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage by tool name, but no explicit guidance on when to use this tool versus other project-related tools. Mentions add-on requirement, but does not provide when-not or alternative selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_stageAIdempotent
Update an existing stage. Provide the stage id and any fields to change. Set pipeline_id to move the stage to another pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The ID of the stage to update | |
| name | No | The new name of the stage | |
| pipeline_id | No | Move the stage to this pipeline ID | |
| days_to_rotten | No | 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 | No | The success probability percentage of deals in this stage (0-100) | |
| is_deal_rot_enabled | No | Whether deals in this stage can become rotten |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already declare readOnlyHint=false, destructiveHint=false, and idempotentHint=true, covering the core safety profile. The description adds the specific behavior of moving stages via pipeline_id, but doesn't discuss permissions, side effects, or return values. This is fine given annotation coverage, but the description doesn't go beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with the action stated first, followed by essential usage details. No fluff, perfectly front-loaded, and each sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple update operation with full schema documentation and annotations covering the safety profile, the description is adequate. It covers purpose, usage, and key parameter semantics. It doesn't mention return values, but the absence of an output schema makes that less critical. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description doesn't need to repeat parameter details. It adds value by clarifying that only provided fields are updated and by highlighting pipeline_id as the way to move the stage. This provides operational context beyond the schema's per-parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Update an existing stage' with a specific verb and resource. It mentions moving to another pipeline via pipeline_id, which further clarifies the scope. It doesn't explicitly contrast with the sibling pipedrive_update_phase, but the resource names are different enough to avoid confusion, so it's not a tautology.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives operational guidance: provide the stage id and fields to change, and set pipeline_id to move. However, it doesn't explicitly state when to use this tool over alternatives or provide exclusions. Since there is no direct alternative for updating stages, the guidance is adequate but lacks explicit 'when-not' conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pipedrive_update_taskAIdempotent
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.)
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The task ID to update | |
| title | No | Task title (1-255 chars) | |
| is_done | No | Mark as done (true/false) | |
| due_date | No | Task due date (YYYY-MM-DD, null to clear) | |
| priority | No | Task priority (integer >= 0, or null to unset) | |
| project_id | No | ID of the project this task belongs to | |
| start_date | No | Task start date (YYYY-MM-DD, null to clear) | |
| assignee_id | No | Assignee user ID (null to unassign) | |
| description | No | Task description (null to clear) | |
| assignee_ids | No | Array of assignee user IDs (max 10) | |
| is_milestone | No | Mark as milestone (true/false); a milestone task must have a due_date | |
| parent_task_id | No | ID of the parent task (null to make root-level) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already disclose readOnlyHint false, idempotentHint true, and destructiveHint false. The description adds beyond that: the milestone/due_date constraint, that is_done/is_milestone field names match the GET response, and the beta/projects nature. This enriches the agent's understanding of side effects and required conditions without contradicting annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no fluff. It front-loads the core action, then includes essential constraints and context. Every sentence earns its place, making it highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (12 parameters), schema coverage, and no output schema, the description covers the key points: purpose, optional fields, a specific constraint, and the beta status. It doesn't discuss error handling or ownership prerequisites, but for an update operation this is sufficient. Slight gap: no explicit mention of how to obtain the task ID, but that's covered by sibling get/list tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter already has a description. The description adds minimal new semantic detail: it reiterates that id is required (already in schema) and notes is_done/is_milestone are booleans matching GET field names, which is minor. This is a baseline score for high schema coverage; the description doesn't significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Update an existing task,' clearly stating the verb and resource. It distinguishes itself from sibling tools like pipedrive_create_task and pipedrive_get_task by focusing on updating. The mention of specific fields like is_done/is_milestone and the milestone/due_date constraint adds precision about the operation's domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys when to use this tool (to modify an existing task) implicitly through the verb 'Update.' It provides usage constraints: only id is required, milestone tasks need a due_date, and it notes the API is in beta. It doesn't explicitly name alternatives like create_task, but the context is clear enough for an agent to choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The product ID | |
| file_name | Yes | Original filename including extension (e.g. product.png) | |
| file_path | No | 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. | |
| mime_type | No | MIME type. Inferred from file_name if omitted. | |
| base64_data | No | Base64-encoded image bytes (transport-safe). Mutually exclusive with file_path. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are minimal, but the description adds critical details: file_path is read server-side, disabled by default, requires PIPEDRIVE_IMAGE_BASE_DIR. Also notes supported formats. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences that front-load the purpose and key constraint, with no wasted words. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should ideally mention return values (e.g., image URL). Missing details on response format, size limits, or error handling. Otherwise adequate for a 5-param tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description reinforces mutual exclusivity and adds server-side context for file_path, adding value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Upload an image for a product' with a specific verb and resource. Differentiates from siblings like get_product_image and update_product_image by focusing on creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use file_path vs base64_data, including the server configuration prerequisite. Does not explicitly mention when not to use compared to update, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
14 tool updates
v2.7.0- Changed
pipedrive_add_deal_product4 fields changed- changed
Input schema / properties / billing_frequency_cycles / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Input schema / properties / billing_start_date / descriptionPrevious value: -"Billing start date (YYYY-MM-DD)"New value: +"Billing start date (YYYY-MM-DD, null to clear)" - changed
Input schema / properties / billing_start_date / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Input schema / properties / product_variation_id / typePrevious value: -"number"New value: +[ + "number", + "null" +]
- Changed
pipedrive_bulk_add_deal_products5 fields changed- changed
Input schema / properties / data / items / properties / billing_frequency_cycles / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Input schema / properties / data / items / properties / billing_start_date / descriptionPrevious value: -"Billing start date (YYYY-MM-DD)"New value: +"Billing start date (YYYY-MM-DD, null to clear)" - changed
Input schema / properties / data / items / properties / billing_start_date / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Input schema / properties / data / items / properties / product_variation_id / descriptionPrevious value: -"Product variation ID"New value: +"Product variation ID (null to clear)" - changed
Input schema / properties / data / items / properties / product_variation_id / typePrevious value: -"number"New value: +[ + "number", + "null" +]
- Removed
pipedrive_convert_lead_to_deal - Changed
pipedrive_create_deal_field2 fields changed- changed
Input schema / properties / description / descriptionPrevious value: -"Field description"New value: +"Field description (null to clear)" - changed
Input schema / properties / description / typePrevious value: -"string"New value: +[ + "string", + "null" +]
- Changed
pipedrive_create_product1 field changed- changed
Input schema / properties / billing_frequency_cycles / typePrevious value: -"number"New value: +[ + "number", + "null" +]
- Changed
pipedrive_create_stage2 fields changed- changed
Input schema / properties / days_to_rotten / descriptionPrevious value: -"Days until a deal not updated in this stage becomes rotten (applies only when is_deal_rot_enabled is set)"New value: +"Days until a deal not updated in this stage becomes rotten (applies only when is_deal_rot_enabled is set; null to clear)" - changed
Input schema / properties / days_to_rotten / typePrevious value: -"number"New value: +[ + "number", + "null" +]
- Changed
pipedrive_create_task10 fields changed- changed
Input schema / properties / assignee_id / descriptionPrevious value: -"Assignee user ID"New value: +"Assignee user ID (null to unassign)" - changed
Input schema / properties / assignee_id / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Input schema / properties / description / descriptionPrevious value: -"Task description"New value: +"Task description (null to clear)" - changed
Input schema / properties / description / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Input schema / properties / due_date / descriptionPrevious value: -"Task due date (YYYY-MM-DD)"New value: +"Task due date (YYYY-MM-DD, null to clear)" - changed
Input schema / properties / due_date / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Input schema / properties / parent_task_id / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Input schema / properties / priority / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Input schema / properties / start_date / descriptionPrevious value: -"Task start date (YYYY-MM-DD)"New value: +"Task start date (YYYY-MM-DD, null to clear)" - changed
Input schema / properties / start_date / typePrevious value: -"string"New value: +[ + "string", + "null" +]
- Changed
pipedrive_search_products2 fields changed- changed
Input schema / properties / fields / descriptionPrevious value: -"Field to search in. Defaults to all."New value: +"Comma-separated fields to search: code, custom_fields, name. Defaults to all." - removed
Input schema / properties / fields / enumRemoved value: -[ - "code", - "custom_fields", - "name" -]
- Changed
pipedrive_update_deal1 field changed- added
Input schema / properties / visible_toAdded value: +{ + "description": "Visibility: 1=Owner, 3=Group, 5=Subgroups, 7=Company", + "enum": [ + 1, + 3, + 5, + 7 + ], + "type": "number" +}
- Changed
pipedrive_update_deal_field2 fields changed- changed
Input schema / properties / description / descriptionPrevious value: -"Field description"New value: +"Field description (null to clear)" - changed
Input schema / properties / description / typePrevious value: -"string"New value: +[ + "string", + "null" +]
- Changed
pipedrive_update_deal_product4 fields changed- changed
Input schema / properties / billing_frequency_cycles / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Input schema / properties / billing_start_date / descriptionPrevious value: -"Billing start date (YYYY-MM-DD)"New value: +"Billing start date (YYYY-MM-DD, null to clear)" - changed
Input schema / properties / billing_start_date / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Input schema / properties / product_variation_id / typePrevious value: -"number"New value: +[ + "number", + "null" +]
- Changed
pipedrive_update_product1 field changed- changed
Input schema / properties / billing_frequency_cycles / typePrevious value: -"number"New value: +[ + "number", + "null" +]
- Changed
pipedrive_update_stage2 fields changed- changed
Input schema / properties / days_to_rotten / descriptionPrevious value: -"Days until a deal not updated in this stage becomes rotten (applies only when is_deal_rot_enabled is set)"New value: +"Days until a deal not updated in this stage becomes rotten (applies only when is_deal_rot_enabled is set; null to clear)" - changed
Input schema / properties / days_to_rotten / typePrevious value: -"number"New value: +[ + "number", + "null" +]
- Changed
pipedrive_update_task10 fields changed- changed
Input schema / properties / assignee_id / descriptionPrevious value: -"Assignee user ID"New value: +"Assignee user ID (null to unassign)" - changed
Input schema / properties / assignee_id / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Input schema / properties / description / descriptionPrevious value: -"Task description"New value: +"Task description (null to clear)" - changed
Input schema / properties / description / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Input schema / properties / due_date / descriptionPrevious value: -"Task due date (YYYY-MM-DD)"New value: +"Task due date (YYYY-MM-DD, null to clear)" - changed
Input schema / properties / due_date / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Input schema / properties / parent_task_id / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Input schema / properties / priority / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Input schema / properties / start_date / descriptionPrevious value: -"Task start date (YYYY-MM-DD)"New value: +"Task start date (YYYY-MM-DD, null to clear)" - changed
Input schema / properties / start_date / typePrevious value: -"string"New value: +[ + "string", + "null" +]
115 tool updates
v2.4.0- Added
pipedrive_add_deal_discount - Added
pipedrive_add_deal_follower - Added
pipedrive_add_deal_installment - Added
pipedrive_add_deal_product - Added
pipedrive_add_organization_follower - Added
pipedrive_add_person_follower - Added
pipedrive_add_product_follower - Added
pipedrive_add_product_variation - Added
pipedrive_archive_project - Added
pipedrive_bulk_add_deal_products - Added
pipedrive_convert_lead_to_deal - Changed
pipedrive_create_activity3 fields changed- changed
Input schema / properties / location / descriptionPrevious value: -"Activity location"New value: +"Activity location (structured object)" - added
Input schema / properties / location / propertiesAdded value: +{ + "admin_area_level_1": { + "description": "Admin area level 1 (e.g. state)", + "type": "string" + }, + "admin_area_level_2": { + "description": "Admin area level 2 (e.g. county)", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "locality": { + "description": "Locality (e.g. city)", + "type": "string" + }, + "postal_code": { + "description": "Postal code", + "type": "string" + }, + "route": { + "description": "Route (e.g. street)", + "type": "string" + }, + "street_number": { + "description": "Street number", + "type": "string" + }, + "sublocality": { + "description": "Sublocality (e.g. neighborhood)", + "type": "string" + }, + "subpremise": { + "description": "Subpremise (e.g. apartment/suite)", + "type": "string" + }, + "value": { + "description": "The full address", + "type": "string" + } +} - changed
Input schema / properties / location / typePrevious value: -"string"New value: +"object"
- Added
pipedrive_create_board - Changed
pipedrive_create_deal1 field changed- removed
Input schema / properties / add_timeRemoved value: -{ - "description": "Creation time (RFC3339 format) - backdate the deal", - "type": "string" -}
- Added
pipedrive_create_deal_field - Added
pipedrive_create_lead - Added
pipedrive_create_note - Changed
pipedrive_create_organization3 fields changed- changed
Input schema / properties / address / descriptionPrevious value: -"Full address"New value: +"Organization address as a structured object (v2). Provide 'value' for the full address." - added
Input schema / properties / address / propertiesAdded value: +{ + "admin_area_level_1": { + "description": "Admin area level 1 (e.g. state)", + "type": "string" + }, + "admin_area_level_2": { + "description": "Admin area level 2 (e.g. county)", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "locality": { + "description": "Locality (e.g. city)", + "type": "string" + }, + "postal_code": { + "description": "Postal code", + "type": "string" + }, + "route": { + "description": "Route (e.g. street)", + "type": "string" + }, + "street_number": { + "description": "Street number", + "type": "string" + }, + "sublocality": { + "description": "Sublocality (e.g. neighborhood)", + "type": "string" + }, + "subpremise": { + "description": "Subpremise (e.g. apartment/suite number)", + "type": "string" + }, + "value": { + "description": "The full address", + "type": "string" + } +} - changed
Input schema / properties / address / typePrevious value: -"string"New value: +"object"
- Added
pipedrive_create_organization_field - Changed
pipedrive_create_person4 fields changed- removed
Input schema / properties / emailRemoved value: -{ - "description": "Email addresses", - "items": { - "properties": { - "label": { - "description": "Label (work, home, other)", - "type": "string" - }, - "primary": { - "description": "Is primary email", - "type": "boolean" - }, - "value": { - "description": "Email address", - "type": "string" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "type": "array" -} - added
Input schema / properties / emailsAdded value: +{ + "description": "Email addresses (array of objects, e.g. [{ value, primary, label }])", + "items": { + "properties": { + "label": { + "description": "Label (work, home, other)", + "type": "string" + }, + "primary": { + "description": "Is primary email", + "type": "boolean" + }, + "value": { + "description": "Email address", + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "type": "array" +} - removed
Input schema / properties / phoneRemoved value: -{ - "description": "Phone numbers", - "items": { - "properties": { - "label": { - "description": "Label (work, home, mobile)", - "type": "string" - }, - "primary": { - "description": "Is primary phone", - "type": "boolean" - }, - "value": { - "description": "Phone number", - "type": "string" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "type": "array" -} - added
Input schema / properties / phonesAdded value: +{ + "description": "Phone numbers (array of objects, e.g. [{ value, primary, label }])", + "items": { + "properties": { + "label": { + "description": "Label (work, home, mobile)", + "type": "string" + }, + "primary": { + "description": "Is primary phone", + "type": "boolean" + }, + "value": { + "description": "Phone number", + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "type": "array" +}
- Added
pipedrive_create_person_field - Added
pipedrive_create_phase - Added
pipedrive_create_pipeline - Added
pipedrive_create_product - Added
pipedrive_create_product_field - Added
pipedrive_create_project - Added
pipedrive_create_stage - Added
pipedrive_create_task - Removed
pipedrive_delete_activity - Removed
pipedrive_delete_deal - Removed
pipedrive_delete_organization - Removed
pipedrive_delete_person - Added
pipedrive_get_board - Changed
pipedrive_get_deal1 field changed- changed
Input schema / properties / include_fields / descriptionPrevious value: -"Include additional data: deal_participants, products, followers, notes"New value: +"Comma-separated extra fields (v2 enum, e.g. next_activity_id, last_activity_id, products_count, files_count, notes_count, followers_count)"
- Added
pipedrive_get_deal_conversion_status - Added
pipedrive_get_deal_followers_changelog - Added
pipedrive_get_lead - Added
pipedrive_get_lead_conversion_status - Added
pipedrive_get_note - Added
pipedrive_get_organization_followers_changelog - Changed
pipedrive_get_person1 field changed- changed
Input schema / properties / include_fields / descriptionPrevious value: -"Include additional data in response"New value: +"Comma-separated extra fields (v2 enum, e.g. next_activity_id, open_deals_count, won_deals_count, notes_count, followers_count)"
- Added
pipedrive_get_person_followers_changelog - Added
pipedrive_get_person_picture - Added
pipedrive_get_phase - Added
pipedrive_get_product - Added
pipedrive_get_product_followers_changelog - Added
pipedrive_get_product_image - Added
pipedrive_get_project - Added
pipedrive_get_project_changelog - Added
pipedrive_get_project_permitted_users - Added
pipedrive_get_project_template - Added
pipedrive_get_task - Changed
pipedrive_list_activities4 fields changed- removed
Input schema / properties / end_dateRemoved value: -{ - "description": "Filter to date (YYYY-MM-DD)", - "type": "string" -} - removed
Input schema / properties / project_idRemoved value: -{ - "description": "Filter by project ID", - "type": "number" -} - removed
Input schema / properties / start_dateRemoved value: -{ - "description": "Filter from date (YYYY-MM-DD)", - "type": "string" -} - removed
Input schema / properties / typeRemoved value: -{ - "description": "Filter by type (call, meeting, task, etc.)", - "type": "string" -}
- Added
pipedrive_list_archived_deals - Added
pipedrive_list_archived_leads - Added
pipedrive_list_archived_projects - Added
pipedrive_list_boards - Added
pipedrive_list_deal_discounts - Changed
pipedrive_list_deal_fields3 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Cursor for pagination (from previous response)", + "type": "string" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"Number of items"New value: +"Number of items (1-100)" - removed
Input schema / properties / startRemoved value: -{ - "description": "Pagination offset", - "type": "number" -}
- Added
pipedrive_list_deal_followers - Added
pipedrive_list_deal_installments - Added
pipedrive_list_deal_products - Changed
pipedrive_list_deals3 fields changed- changed
Input schema / properties / include_fields / descriptionPrevious value: -"Include additional data: deal_participants, products, followers, notes"New value: +"Comma-separated extra fields (v2 enum, e.g. next_activity_id, last_activity_id, products_count, files_count, notes_count, followers_count)" - changed
Input schema / properties / status / descriptionPrevious value: -"Filter by deal status"New value: +"Filter by deal status (omit to return all non-deleted deals)" - changed
Input schema / properties / status / enumPrevious value: -[ - "open", - "won", - "lost", - "deleted", - "all_not_deleted" -]New value: +[ + "open", + "won", + "lost", + "deleted" +]
- Added
pipedrive_list_leads - Added
pipedrive_list_notes - Changed
pipedrive_list_organization_fields3 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Cursor for pagination (from previous response)", + "type": "string" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"Number of items"New value: +"Number of items (1-100)" - removed
Input schema / properties / startRemoved value: -{ - "description": "Pagination offset", - "type": "number" -}
- Added
pipedrive_list_organization_followers - Changed
pipedrive_list_organizations1 field changed- removed
Input schema / properties / first_charRemoved value: -{ - "description": "Filter by first character of name", - "type": "string" -}
- Changed
pipedrive_list_person_fields3 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Cursor for pagination (from previous response)", + "type": "string" +} - changed
Input schema / properties / limit / descriptionPrevious value: -"Number of items"New value: +"Number of items (1-100)" - removed
Input schema / properties / startRemoved value: -{ - "description": "Pagination offset", - "type": "number" -}
- Added
pipedrive_list_person_followers - Changed
pipedrive_list_persons2 fields changed- removed
Input schema / properties / first_charRemoved value: -{ - "description": "Filter by first character of name", - "type": "string" -} - changed
Input schema / properties / include_fields / descriptionPrevious value: -"Include additional data in response"New value: +"Comma-separated extra fields (v2 enum, e.g. next_activity_id, open_deals_count, won_deals_count, notes_count, followers_count)"
- Added
pipedrive_list_phases - Changed
pipedrive_list_pipelines2 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Cursor for pagination (from previous response)", + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "description": "Number of items to return (1-100, default 50)", + "type": "number" +}
- Added
pipedrive_list_product_fields - Added
pipedrive_list_product_followers - Added
pipedrive_list_product_variations - Added
pipedrive_list_products - Added
pipedrive_list_project_fields - Added
pipedrive_list_project_tasks - Added
pipedrive_list_project_templates - Added
pipedrive_list_projects - Changed
pipedrive_list_stages2 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Cursor for pagination (from previous response)", + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "description": "Number of items to return (1-100, default 50)", + "type": "number" +}
- Added
pipedrive_list_tasks - Changed
pipedrive_search_deals4 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Cursor for pagination (from previous response)", + "type": "string" +} - added
Input schema / properties / fieldsAdded value: +{ + "description": "Comma-separated fields to search (title, notes, custom_fields). Defaults to all.", + "type": "string" +} - changed
Input schema / properties / status / descriptionPrevious value: -"Filter by status"New value: +"Filter by status (omit to return all non-deleted deals)" - changed
Input schema / properties / status / enumPrevious value: -[ - "open", - "won", - "lost", - "deleted", - "all_not_deleted" -]New value: +[ + "open", + "won", + "lost", + "deleted" +]
- Added
pipedrive_search_leads - Changed
pipedrive_search_organizations2 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Cursor for pagination (from previous response)", + "type": "string" +} - added
Input schema / properties / fieldsAdded value: +{ + "description": "Comma-separated fields to search (name, address, notes, custom_fields). Defaults to all.", + "type": "string" +}
- Changed
pipedrive_search_persons4 fields changed- added
Input schema / properties / cursorAdded value: +{ + "description": "Cursor for pagination (from previous response)", + "type": "string" +} - added
Input schema / properties / fieldsAdded value: +{ + "description": "Comma-separated fields to search (name, email, phone, notes, custom_fields). Defaults to all.", + "type": "string" +} - removed
Input schema / properties / search_by_emailRemoved value: -{ - "description": "Include email in search", - "type": "boolean" -} - removed
Input schema / properties / search_by_phoneRemoved value: -{ - "description": "Include phone in search", - "type": "boolean" -}
- Added
pipedrive_search_products - Added
pipedrive_search_projects - Changed
pipedrive_update_activity3 fields changed- changed
Input schema / properties / location / descriptionPrevious value: -"New location"New value: +"New location (structured object)" - added
Input schema / properties / location / propertiesAdded value: +{ + "admin_area_level_1": { + "description": "Admin area level 1 (e.g. state)", + "type": "string" + }, + "admin_area_level_2": { + "description": "Admin area level 2 (e.g. county)", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "locality": { + "description": "Locality (e.g. city)", + "type": "string" + }, + "postal_code": { + "description": "Postal code", + "type": "string" + }, + "route": { + "description": "Route (e.g. street)", + "type": "string" + }, + "street_number": { + "description": "Street number", + "type": "string" + }, + "sublocality": { + "description": "Sublocality (e.g. neighborhood)", + "type": "string" + }, + "subpremise": { + "description": "Subpremise (e.g. apartment/suite)", + "type": "string" + }, + "value": { + "description": "The full address", + "type": "string" + } +} - changed
Input schema / properties / location / typePrevious value: -"string"New value: +"object"
- Added
pipedrive_update_board - Added
pipedrive_update_deal_discount - Added
pipedrive_update_deal_field - Added
pipedrive_update_deal_field_options - Added
pipedrive_update_deal_installment - Added
pipedrive_update_deal_product - Added
pipedrive_update_lead - Added
pipedrive_update_note - Changed
pipedrive_update_organization3 fields changed- changed
Input schema / properties / address / descriptionPrevious value: -"New address"New value: +"New organization address as a structured object (v2). Provide 'value' for the full address." - added
Input schema / properties / address / propertiesAdded value: +{ + "admin_area_level_1": { + "description": "Admin area level 1 (e.g. state)", + "type": "string" + }, + "admin_area_level_2": { + "description": "Admin area level 2 (e.g. county)", + "type": "string" + }, + "country": { + "description": "Country", + "type": "string" + }, + "locality": { + "description": "Locality (e.g. city)", + "type": "string" + }, + "postal_code": { + "description": "Postal code", + "type": "string" + }, + "route": { + "description": "Route (e.g. street)", + "type": "string" + }, + "street_number": { + "description": "Street number", + "type": "string" + }, + "sublocality": { + "description": "Sublocality (e.g. neighborhood)", + "type": "string" + }, + "subpremise": { + "description": "Subpremise (e.g. apartment/suite number)", + "type": "string" + }, + "value": { + "description": "The full address", + "type": "string" + } +} - changed
Input schema / properties / address / typePrevious value: -"string"New value: +"object"
- Added
pipedrive_update_organization_field - Added
pipedrive_update_organization_field_options - Changed
pipedrive_update_person4 fields changed- removed
Input schema / properties / emailRemoved value: -{ - "description": "New email addresses", - "items": { - "properties": { - "label": { - "type": "string" - }, - "primary": { - "type": "boolean" - }, - "value": { - "type": "string" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "type": "array" -} - added
Input schema / properties / emailsAdded value: +{ + "description": "New email addresses (array of objects)", + "items": { + "properties": { + "label": { + "type": "string" + }, + "primary": { + "type": "boolean" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "type": "array" +} - removed
Input schema / properties / phoneRemoved value: -{ - "description": "New phone numbers", - "items": { - "properties": { - "label": { - "type": "string" - }, - "primary": { - "type": "boolean" - }, - "value": { - "type": "string" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "type": "array" -} - added
Input schema / properties / phonesAdded value: +{ + "description": "New phone numbers (array of objects)", + "items": { + "properties": { + "label": { + "type": "string" + }, + "primary": { + "type": "boolean" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "type": "array" +}
- Added
pipedrive_update_person_field - Added
pipedrive_update_person_field_options - Added
pipedrive_update_phase - Added
pipedrive_update_pipeline - Added
pipedrive_update_product - Added
pipedrive_update_product_field - Added
pipedrive_update_product_field_options - Added
pipedrive_update_product_image - Added
pipedrive_update_product_variation - Added
pipedrive_update_project - Added
pipedrive_update_stage - Added
pipedrive_update_task - Added
pipedrive_upload_product_image
38 tool updates
v1.0.0- First observed
pipedrive_create_activity - First observed
pipedrive_create_deal - First observed
pipedrive_create_organization - First observed
pipedrive_create_person - First observed
pipedrive_delete_activity - First observed
pipedrive_delete_deal - First observed
pipedrive_delete_organization - First observed
pipedrive_delete_person - First observed
pipedrive_get_activity - First observed
pipedrive_get_current_user - First observed
pipedrive_get_deal - First observed
pipedrive_get_deal_emails - First observed
pipedrive_get_field - First observed
pipedrive_get_mail_message - First observed
pipedrive_get_mail_thread - First observed
pipedrive_get_organization - First observed
pipedrive_get_person - First observed
pipedrive_get_person_emails - First observed
pipedrive_get_stage - First observed
pipedrive_get_user - First observed
pipedrive_list_activities - First observed
pipedrive_list_deal_fields - First observed
pipedrive_list_deals - First observed
pipedrive_list_mail_threads - First observed
pipedrive_list_organization_fields - First observed
pipedrive_list_organizations - First observed
pipedrive_list_person_fields - First observed
pipedrive_list_persons - First observed
pipedrive_list_pipelines - First observed
pipedrive_list_stages - First observed
pipedrive_list_users - First observed
pipedrive_search_deals - First observed
pipedrive_search_organizations - First observed
pipedrive_search_persons - First observed
pipedrive_update_activity - First observed
pipedrive_update_deal - First observed
pipedrive_update_organization - First observed
pipedrive_update_person
TDQS
Most tools target distinct resource-action pairs (deal, person, organization, product, project, etc.) with clear scoping. However, some overlap existsโe.g., list_deals vs search_deals, list_project_tasks vs list_tasks, and deal/lead conversion status endpointsโthough descriptions do mitigate ambiguity.
The overall pattern pipedrive_<verb>_<noun> is consistent (list/get/create/update/search). Minor deviations include using add instead of create for followers and product variations (e.g., add_deal_follower, add_product_variation), and bulk_add for batch operations, but these are minor and readable.
With 123 tools, this is an exceptionally large surface for any MCP server. While the broad domain of a full CRM API can justify many tools, this count is overwhelming for an agent to navigate and likely exceeds practical needs, especially with many per-entity follower/changelog operations.
The tool set covers an extensive range of entities (deals, persons, organizations, leads, activities, notes, products, projects, tasks, pipelines, stages, users, mail, custom fields) with list/get/update and search. However, delete operations are largely absent (no delete for deals, persons, organizations, activities, notes, or leads), relying on archive instead, which is a notable gap.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- PlixanaOAuthcom.plixana
Operate the Plixana CRM from any AI: contacts, deals, quotes, WhatsApp and metrics.
Connect AI to your Attio CRM. Manage contacts, companies, deals, and sales pipelines. Create tasksโฆ
Read deals, persons, organizations, activities and pipelines; create and update CRM records.
AI-native CRM. 37 tools: pipeline, leads, health scores, GDPR rights. EU-hosted, free tier.
Related MCP Servers
- AlicenseBqualityFmaintenanceEnables AI models to interact with HubSpot CRM data and operations through a standardized interface, supporting contact and company management.16128MIT
- AlicenseNot gradedqualityDmaintenanceThis project builds a read-only MCP server. For full read, write, update, delete, and action capabilities and a simplified setup, check out our free CData MCP Server for Pipedrive (beta): https://www.cdata.com/download/download.aspx?sku=KDZK-V&type=betaMIT
- AlicenseNot gradedqualityDmaintenanceProvides full CRUD access to Pipedrive CRM API, enabling Claude and other LLM applications to manage deals, persons, organizations, activities, notes, and leads with advanced filtering and fuzzy search capabilities.2,4706MIT
- AlicenseBqualityAmaintenanceProvides comprehensive access to Pipedrive CRM with 100+ tools for managing deals, contacts, organizations, activities, and sales workflows through natural language conversations with Claude.1004512MIT
Appeared in Searches
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