A test server to demo a JSON decode error in the client SDK
This server has a single tool 'search' with minimal definition quality. The tool name is generic and does not follow verb_noun conventions clearly (should be 'search_web'). The description is extremely terse (15 characters: 'search the web'), well below the 34-character minimum baseline for A+ tools. The input schema is present and properly formatted with a 'query' string parameter, but lacks any parameter-level description explaining what constitutes a valid query, format expectations, or constraints. No output schema is documented, the tool returns TextContent but the structure and fields are undefined for LLM reasoning. The tool ignores its 'name' and 'arguments' parameters entirely, returning hardcoded content that demonstrates a JSON decode error (the byte sequence \x92 decoded as windows-1252). This is explicitly a demo of broken behavior, not a production tool. No error handling, pagination, or recovery guidance. The server demonstrates a deliberate failure mode rather than implementing patterns for reliability or usability.
search the web
Tool description is too short (15 chars; baseline minimum 34 chars). Must explain WHAT the tool does, WHEN to use it, and WHAT it returns.
Input parameter 'query' has no description. LLMs cannot infer whether to pass 'python programming', 'python', or 'how to learn python'. Must describe format, length, and constraints.
No output schema documented. Tool returns TextContent with decoded UTF-8, but LLMs have no visibility into the structure, fields, or what to expect. Must document return type and fields.
Tool implementation ignores arguments and returns hardcoded content, including a deliberately malformed JSON decode scenario (\x92 from windows-1252). This is a test/demo tool, not a functional search implementation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 34 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 29 | - | v1 |
Tool name 'search' is generic and does not follow verb_noun convention. Should be 'search_web' to disambiguate from other potential search tools (search_users, search_documents, etc.).
No error handling or recovery guidance. Tool will fail with JSON serialization errors when the LLM receives the malformed TextContent. No actionable error message for LLM retry logic.