Two tools with minimal documentation. Tool descriptions are present but generic (10-20 chars below baseline of 194 chars). No output schemas documented. No error handling guidance. Parameter types are inferred from Python type hints but not explicitly visible in schema definitions. This server falls well below production baseline.
Add two numbers
Get a sample dataframe with 2 columns and 3 rows.
All parameters lack descriptions. 'a' and 'b' in add() have null descriptions; 'num_rows' in get_database() has no description. LLMs cannot infer parameter meaning from names alone.
No output schemas documented. Tool descriptions do not specify what fields are returned or their types. add() returns an integer (inferred), get_database() returns a pandas DataFrame (unstructured). LLMs need documented return types to plan downstream calls.
Tool descriptions are too brief (10-20 chars vs baseline 194 chars). 'Add two numbers' and 'Get a sample dataframe with 2 columns and 3 rows.' lack context on WHEN to use, prerequisites, or what the tool returns. Descriptions should be 10-1024 chars and prompt-engineering optimized.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 41 | 2026-07-28+ | v2 |
get_database() returns a pandas DataFrame directly. No pagination, no field documentation, no structured output schema. If num_rows defaults to 1 but can be large, there is no limit enforcement or guidance on max rows.
No error handling or recovery guidance. If add() receives non-integer input or get_database() fails to create a DataFrame, there is no error message telling the LLM what to do next.