Example MCP server implementations demonstrating custom tool development
Single tool 'slugify-text' has a clear, concise description (56 chars, within 10-1024 baseline) and proper input schema with type and description. However, the tool lacks critical production-grade patterns: no output schema documentation, no error handling guidance, no parameter constraints (e.g., max length), and no indication of idempotency or side effects. The tool name follows verb_noun convention (positive), but the implementation is minimal and lacks robustness expected of production tools. No pagination, no batch variants, no recovery guidance.
Convert a title or phrase into a URL-friendly slug.
No output schema documented. LLMs cannot plan downstream tool calls or validate response structure.
Input parameter 'text' lacks constraints (max length, character restrictions). Unbounded strings invite invalid input and potential DoS.
No error handling or recovery guidance. If slugify fails (e.g., empty input), LLM has no actionable next step.
Tool description does not state idempotency, side effects, or when to use it vs. alternatives. LLMs cannot reason about retry safety.
No documentation of return type structure. Response format is inferred from code, not declared in schema.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |