MCP server exposing receipt extraction as a standard tool. Wraps a deterministic MockExtractor (or optional Claude vision model) to extract structured fields from receipt image references over a standard JSON-RPC channel.
Single tool with adequate naming and description, but critical gaps in schema documentation and parameter validation. The tool name 'extract_receipt' follows verb_noun convention and is clear. Description (156 chars) explains what the tool does and includes a validation note, meeting baseline expectations. However, the input schema is severely underdocumented: the 'source' parameter lacks type specification in the visible schema definition, and no output schema is documented. The tool returns a dict but callers have no visibility into the structure, field names, or types they should expect. Error handling is absent, no guidance on what happens if the source is invalid, the image cannot be processed, or extraction fails. This forces LLMs to guess at recovery strategies.
Extract structured fields from a receipt image reference. Returns the receipt fields plus a model confidence score and any notes. Callers must apply their own validation gate before trusting the data (see expense_pipeline.agents.agent1_extract).
Output schema not documented. Tool returns dict but no field definitions, types, or structure visible to LLM. Callers cannot plan downstream operations or extract specific fields.
Input parameter 'source' lacks type and format constraints. Description says 'Receipt image reference identifier' but does not specify: is it a URL, file path, base64 string, or opaque ID? What format? What length limits?
No error handling or recovery guidance. Tool description does not explain failure modes (invalid source, unreadable image, extraction timeout) or what the LLM should do if extraction fails.
No output field documentation. The tool mentions 'receipt fields', 'confidence score', and 'notes' in the description but does not specify the actual JSON structure, field names, or types returned.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2025-06-18+ | v2 |
Tool description references external validation logic ('see expense_pipeline.agents.agent1_extract') rather than documenting constraints inline. LLMs cannot follow code references; constraints must be explicit in the tool description.