A protoc plugin that generates MCP server code from Protocol Buffer service definitions
This server has critical definition quality gaps. All 8 tools have trivial descriptions (e.g., 'GreetPerson description') that provide zero actionable context for LLM tool selection. Parameter descriptions are generic placeholders ('Parameter FirstName') with no guidance on format, constraints, or purpose. While input schemas are present with proper types (string, number, boolean, array), they lack semantic richness. No output schemas are documented. Tool names lack action verbs (GreetPerson, CalculateSum, CheckStatus are noun-based or vague). No error handling guidance, no parameter constraints (enums, ranges), no idempotency hints. This is a code-generated stub that needs significant enrichment before production use.
CalculateSum description
CheckStatus description
ComplexOperation description
GreetPerson description
ProcessNames description
Tool1 description
Tool2 description
Tool3 description
All tool descriptions are trivial placeholders (e.g., 'GreetPerson description'). LLMs cannot determine when or why to select these tools. Descriptions must be 50 - 200 characters, explaining WHAT the tool does, WHEN to use it, and what it returns.
All parameter descriptions are generic placeholders ('Parameter FirstName', 'Parameter Number1'). No guidance on format, constraints, valid ranges, or purpose. LLMs cannot infer parameter semantics from names alone.
Tool names lack action verbs. 'GreetPerson', 'CalculateSum', 'CheckStatus' are noun-based or vague. Should be 'greet_person', 'calculate_sum', 'check_status' (verb_noun pattern). Generic names like 'Tool1', 'Tool2', 'Tool3' are unusable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | 2026-07-28+ | v2 |
No output schemas documented. Callers cannot know what fields to expect in responses. Tool handlers return mcp.CallToolResult with text content, but structure is opaque to LLMs.
No error handling guidance. Tool handlers return raw errors without recovery hints. LLMs cannot determine if errors are retryable, user-fixable, or fatal.