MCP tool server for agent-service-toolkit. Provides web_search and calculator tools.
Two tools with basic schemas and descriptions, but significant gaps in parameter documentation and output structure. web_search has 4 parameters with types and descriptions, calculator has 1 parameter. Both descriptions are present but brief (under 100 chars). No output schemas documented. No error handling guidance. Parameter descriptions lack format constraints and validation rules. No tool annotations (readOnlyHint, idempotentHint). Naming is acceptable (verb_noun pattern), but descriptions do not explain WHEN to use each tool or what downstream tools expect.
Evaluate a numeric expression with numexpr.
Search the web and return normalized, source-linked result text.
No output schemas documented. LLMs cannot infer what fields web_search returns (title, url, snippet, source?) or what calculator returns (numeric value, array, error object?). Forces LLMs to guess and parse unstructured text.
Parameter descriptions lack format constraints. 'query' in web_search has no guidance on length, special characters, or language. 'expression' in calculator has no examples or supported operators listed. LLMs will pass invalid inputs without clear validation rules.
No error handling guidance. If web_search fails (network error, rate limit, no results), the tool returns empty string. No recovery hints like 'Try a simpler query' or 'Check your internet connection'. Calculator may throw numexpr exceptions with no user-friendly error message.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Tool descriptions are too brief (web_search: 67 chars, calculator: 48 chars). They state WHAT but not WHEN to use or what the LLM should expect. Baseline for A+ tools is 194 chars. Missing context for tool selection.
No tool annotations (readOnlyHint, idempotentHint). Both tools are read-only and idempotent, but LLMs cannot infer this from the schema. Agents may incorrectly treat them as stateful or destructive.