A Model Context Protocol server for CapsuleCRM integration with Claude Desktop. Manage opportunities, parties (customers), tasks, and milestones in CapsuleCRM.
Server has 19 tools with consistent naming (verb_noun pattern) and basic descriptions. However, critical gaps undermine production readiness: (1) Input schemas lack detailed type information, most parameters are typed as 'object' or 'string' with minimal constraints; (2) Parameter descriptions are generic and do not specify formats, ranges, or valid values; (3) No output schemas documented, LLMs cannot predict response structure; (4) Error handling is absent from tool definitions; (5) Nested object parameters (e.g., 'party', 'opportunity', 'task') lack field-level documentation. Tool names are clear (list_parties_tool, create_opportunity_tool) but descriptions average ~80 chars, below the 194-char baseline for A+ tools. The 'find_*' tools accept vague 'user_input' objects without schema guidance.
Create a new sales opportunity with name, party, milestone, and value.
Create a new party (person or organization) in CapsuleCRM.
Create a new task with description, due date, and assignment details.
Find opportunities with structured filters or free text search.
Find parties (people/organizations) with structured filters or free text search.
Find tasks with structured filters or free text search.
Object parameters lack field-level schema documentation. 'party', 'opportunity', 'task', and 'user_input' parameters are typed as 'object' with only a brief description. LLMs cannot infer required fields, nested structure, or valid values.
No output schemas documented. Tool descriptions do not specify what fields are returned, their types, or structure. LLMs cannot plan downstream tool calls or extract required IDs for chaining.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | <=2025-11-25 | v2 |
Get a specific sales opportunity by ID with full details.
Get a specific party (person or organization) by ID.
Get a specific task by ID with full details including due date and owner.
List all pipeline milestones used for tracking opportunity progress.
List all sales opportunities from CapsuleCRM with pagination.
List all parties (people and organizations) from CapsuleCRM with pagination.
List tasks with filtering by status: 'open', 'completed', or 'pending'.
Search opportunities by name, description, or associated party details.
Search parties by name, address, phone number, or email address.
Search tasks by description, status, or associated party/opportunity.
Update an existing sales opportunity by ID.
Update an existing party by ID.
Update an existing task by ID, including status, due date, or assignment.
Parameter descriptions lack actionable constraints. 'page' and 'per_page' have no min/max bounds; 'q' search strings have no length limits or format guidance; 'embed' parameter lists examples but no enum constraint.
Duplicate tool pairs (search_* and find_*) create ambiguity. Both search_parties_tool and find_parties_tool exist with overlapping intent. LLMs waste reasoning cycles deciding between them; no clear guidance on when to use each.
No error handling guidance in tool definitions. Descriptions do not explain what errors can occur, how to recover, or what the LLM should do if a call fails (retry, ask user, abort).