MCP server for Swagger Petstore Test API with HTTP 402 payment protocol support
This server has three tools with partial schema definitions visible in the source code. Tool naming follows verb_noun conventions (logs_*, get_*), which is good. However, descriptions are present but brief (under the 50-200 character ideal for LLM optimization). All three tools have input schemas with type information, but parameter descriptions vary in quality and completeness. The source code excerpt is truncated mid-implementation (cuts off at 'except Exc'), preventing full visibility of error handling and output schema documentation. Based on what is visible: tool definitions are sparse on parameter details and lack documented return schemas. The server integrates a D402 payment protocol with the @require_payment_for_tool decorator, but this is infrastructure-level; the core tool quality remains below production baseline.
Get user detail based on username.
Log user out of the system.
Log into the system.
Parameter descriptions lack actionable constraint information. 'The user name for login' and 'The password for login in clear text' do not specify format, length, character restrictions, or examples of valid/invalid input. LLMs cannot infer whether 'user name' accepts email, display name, or username format.
Output schemas are not documented in the visible source. Tool descriptions lack 'Returns:' sections explaining the structure of response objects. Without documented return types, LLMs cannot reliably extract fields for downstream tool calls, breaking the tool chain pattern.
Error handling is incomplete in visible code. The source excerpt cuts off at 'except Exc', so the full error handling strategy is not visible. Based on the partial code, there is no evidence of structured error responses or recovery guidance as required by the recovery-guide pattern.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 52 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 42 | - | v1 |
Tool descriptions are too brief and generic. 'Log into the system' (26 chars) and 'Log user out of the system' (26 chars) do not explain WHEN to call this tool, what prerequisites exist, or what the user receives. Descriptions should be 50-200 chars and include context for LLM tool selection.
Credentials in clear-text parameters: the 'password' parameter in logs_user_into_the_system is marked required=false and described as 'in clear text'. Exposing passwords in tool parameters violates the secret-injection pattern, credentials must be server-side injected, not passed as parameters, as they will appear in agent traces and logs.
No tool annotations present. The tools lack readOnlyHint, destructiveHint, or idempotentHint annotations. Per the current MCP spec (2026-07-28), tool annotations should declare their safety properties so agents understand which calls are safe to retry.