Text diff MCP. Keyless, offline: compute a line-level diff between two texts (LCS-based), returning the change list, an added/removed summary, and a unified-diff-style string. Pure logic — no API, no key.
Single tool with clear naming (diff_lines) and complete input schema. Description is adequate (158 chars, within 10-1024 range). All three parameters have type definitions and descriptions. However, output schema is not formally documented, the response structure is inferred from code comments and return statement. No error handling guidance for edge cases (e.g., MAX line limit exceeded). Tool is read-only and offline, reducing security concerns but limiting practical utility.
Compute a line-level diff between two texts (keyless, offline). Returns the change list (equal/add/remove), an added/removed/unchanged summary, and a unified-diff-style string with +/- prefixes.
Output schema not formally documented. Response structure (changed, summary, unified, changes, note) is visible in code but not declared in tool definition. LLMs cannot reliably plan downstream operations without knowing return field types and structure.
Error handling lacks recovery guidance. When MAX line limit (3000) is exceeded, tool returns {error: '...'} but does not suggest alternatives (e.g., 'split input into smaller chunks'). LLM cannot self-correct.
Parameter 'context' has a default (true) but this is only documented in the description, not in the schema's 'required' array or via JSON Schema 'default' keyword. Inconsistent schema representation.
No input validation error messages. If 'a' or 'b' are not strings, the tool throws 'Required argument "X" is missing (a string)', generic and not actionable for LLM self-correction.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Transport mechanism unknown. No evidence of HTTP, SSE, or STDIO transport in source. Cannot assess remote accessibility or protocol compliance.