MCP server for Pipedrive CRM integration, providing tools to create, read, update, delete, and search persons in Pipedrive
Server has 5 tools with complete input schemas and descriptions. Naming follows verb_noun pattern (create_, delete_, get_, search_, update_). Descriptions are present (avg ~150 chars) and explain what each tool does. However, parameter descriptions lack specificity on constraints (e.g., 'limit_str' has no min/max bounds, 'term' search has '2 chars' mentioned but not formalized). Output schemas are not documented, LLMs cannot predict response structure. Error handling returns formatted responses but lacks recovery guidance (e.g., 'User not found, try search_persons_in_pipedrive'). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Parameter naming uses '_str' suffix inconsistently, creating ambiguity about when strings vs IDs are expected.
Creates a new person entity within the Pipedrive CRM. This tool requires the person's name and can optionally take details like owner ID, organization ID, email, phone, and visibility settings. It returns the details of the created person upon success.
Deletes a person from the Pipedrive CRM. This tool marks a person as deleted. After 30 days, the person will be permanently deleted from Pipedrive.
Gets the details of a specific person from Pipedrive CRM. This tool retrieves complete information about a person by their ID, with options to include additional fields and custom fields in the response.
Searches for persons in the Pipedrive CRM by name, email, phone, notes or custom fields. This tool searches across all persons in Pipedrive using the provided term. Results can be filtered by organization and specific fields to search in.
Updates an existing person in the Pipedrive CRM. This tool requires the person's ID and at least one field to update. It can update basic information like name, owner, organization, as well as contact details like email and phone.
Output schemas not documented. LLMs cannot predict response structure or plan downstream tool calls. No documentation of what fields are returned by create/get/search/update operations.
Parameter constraints not formalized. 'limit_str' defaults to '100' with 'max 500' mentioned in description but no JSON Schema maxLength/pattern. 'term' requires '2 chars' but not enforced. LLMs cannot validate inputs before calling.
Error responses lack recovery guidance. Errors return formatted strings but do not suggest next steps (e.g., 'Person not found, try search_persons_in_pipedrive with partial name'). Agents cannot self-correct.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | <=2025-11-25 | v2 |
Tool annotations missing. delete_person_from_pipedrive is marked DESTRUCTIVE but tool definition lacks destructiveHint annotation. create/update tools lack idempotentHint. Agents cannot reason about retry safety.
Inconsistent parameter naming with '_str' suffix. 'id_str', 'owner_id_str', 'org_id_str', 'visible_to_str' use '_str' but 'name', 'email_address', 'phone_number' do not. Ambiguous whether strings or IDs are expected. Should use consistent naming (e.g., person_id, owner_id without '_str').