pdftract/crates/pdftract-cli
jedarden 7833d8c514 feat(pdftract-1rami): implement MCP tool catalog with 10 tools
Implement the MCP tool catalog for pdftract with all 10 tools wired to
the extraction surface via the MCP protocol. The tool registry provides
typed argument schemas (JSON Schema via schemars), structured error
mapping (Rust errors → JSON-RPC error codes), and per-invocation
observability logging.

- Tool registry with Tool trait and 10 tool implementations
- JSON Schema input schemas for all tools (draft-07 compliant)
- Error code mapping: -32000 NOT_YET_IMPLEMENTED, -32001 PDF_ENCRYPTED,
  -32002 IO_ERROR, -32003 PATH_INVALID
- Observability logging: structured stderr log line per tools/call
- Integration tests: 10/11 pass (1 ignored for encrypted fixture)
- Registry unit tests: 23/23 pass

Tools implemented:
- extract, extract_text, extract_markdown (stubs pending Phase 6)
- search (stub pending Phase 6)
- get_metadata, hash (fully implemented, fast paths)
- get_table, get_form_fields, get_attachments, classify (stubs return
  NOT_YET_IMPLEMENTED per spec)

Acceptance criteria: 8/8 PASS (2 WARN for Phase 6 stubs)

Refs: pdftract-1rami
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-05-23 02:12:41 -04:00
..
src feat(pdftract-1rami): implement MCP tool catalog with 10 tools 2026-05-23 02:12:41 -04:00
tests feat(pdftract-1rami): implement MCP tool catalog with 10 tools 2026-05-23 02:12:41 -04:00
Cargo.toml feat(pdftract-1rami): implement MCP tool catalog with 10 tools 2026-05-23 02:12:41 -04:00
pdftract-cli.cdx.json feat(pdftract-67tm8): implement MCP stdio transport with integration tests 2026-05-23 00:16:42 -04:00