MCP server template for Service integration with CRUD operations and search capabilities
Service MCP provides 6 well-structured tools with complete JSON schemas and clear descriptions. All tools have proper input schemas with type definitions and parameter descriptions. However, output schemas are not documented, error handling lacks recovery guidance, and descriptions could be more LLM-optimized. Tool naming follows verb_noun convention (service_list, service_get, etc.) but lacks specificity about what 'Service' domain represents. No tool annotations (readOnlyHint, destructiveHint) despite clear risk stratification. Schemas are solid (avg 4 params, proper enums, defaults), but missing guidance on chaining IDs and error recovery paths.
Create a new item in Service
Delete an item (this action is permanent)
Get a specific item by its ID
List items from Service with optional filtering and pagination
Search items by query string
Update an existing item
Output schemas not documented. LLMs cannot plan downstream tool calls or extract required fields (e.g., does service_list return item IDs for chaining to service_get?). Baseline: 100% of A+ tools document return types.
Error handling lacks recovery guidance. No indication of what LLM should do on failure (retry? ask user? call alternative tool?). E.g., service_delete should guide: 'Item not found. Try service_search() first.' Baseline: pattern:recovery-guide requires actionable error messages.
Tool annotations missing. service_delete is destructive and service_create/update are write operations, but no destructiveHint or readOnlyHint annotations present. LLMs cannot distinguish safe from risky tools without explicit hints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | <=2025-11-25 | v2 |
Descriptions lack LLM-optimized guidance. 'List items from Service' (34 chars) is below baseline (194 chars avg). Missing: when to call this vs service_search, what structure it reveals, pagination behavior. Baseline: descriptions 10-1024 chars, avg 194.
No confirmation step for destructive operation. service_delete requires confirm=true parameter, but no dry-run or explicit confirmation flow. Agents make mistakes, pattern:confirmation-request recommends explicit user confirmation for irreversible ops.