pdftract/notes
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
..
bf-5en1a.md docs(bf-5en1a): add verification note for max_decompress_bytes default 2026-05-22 17:29:02 -04:00
bf-49wmw.md fix(bf-49wmw): fix PNG-predictor unbounded pre-allocation 2026-05-22 17:26:27 -04:00
pdftract-1bn.md feat(pdftract-1bn): implement cross-compilation build matrix for 5 target triples 2026-05-18 00:06:55 -04:00
pdftract-1g87.md feat(pdftract-q15sh): implement v1 fingerprint algorithm 2026-05-18 01:02:30 -04:00
pdftract-1lw3.md docs(pdftract-1lw3): add verification note for release cascade workflow 2026-05-20 19:33:35 -04:00
pdftract-1rami.md feat(pdftract-1rami): implement MCP tool catalog with 10 tools 2026-05-23 02:12:41 -04:00
pdftract-1wfp.md feat(pdftract-1wfp): implement SHA256SUMS aggregate file generation 2026-05-22 23:57:49 -04:00
pdftract-1wqec.md docs(pdftract-1wqec): verify CI scaffolding acceptance criteria 2026-05-17 07:12:16 -04:00
pdftract-1yad.md fix(pdftract-1yad): enable proptest tests and update verification note 2026-05-18 00:15:00 -04:00
pdftract-1zhu.md docs(pdftract-1zhu): add verification note for /Prev chain handler 2026-05-22 19:15:47 -04:00
pdftract-2a6rk.md fix(pdftract-2a6rk): fix xref.rs u64 literal overflow in proptest 2026-05-22 17:26:27 -04:00
pdftract-2bpf6.md test(pdftract-2bpf6): add FlateDecode predictor tests and proptests 2026-05-18 01:08:21 -04:00
pdftract-2bsfc.md docs(pdftract-2bsfc): add verification note 2026-05-17 23:57:00 -04:00
pdftract-2gbu9.md feat(pdftract-2gbu9): enhance linearization detection with robust substring matching 2026-05-22 19:15:47 -04:00
pdftract-2hm4.md fix(pdftract-2hm4): fix keyword lexer to use Vec<u8> and improve diagnostics 2026-05-18 02:11:40 -04:00
pdftract-2ka7.md feat(pdftract-2ka7): implement secure password ingress channels 2026-05-18 02:20:02 -04:00
pdftract-2pyln.md docs(pdftract-2pyln): update verification note with bug fix details 2026-05-20 19:09:49 -04:00
pdftract-2t9.md docs(pdftract-2t9): add verification note 2026-05-18 01:22:44 -04:00
pdftract-2w02.md feat(pdftract-2w02): implement MSRV gate with CI check 2026-05-20 19:03:53 -04:00
pdftract-2x7y.md docs(pdftract-2x7y): add verification note for pdftract-github-release 2026-05-20 19:23:39 -04:00
pdftract-2xei.md docs(pdftract-2xei): add verification note for pdftract-docs-build template 2026-05-20 19:24:14 -04:00
pdftract-3gk5.md feat(pdftract-3gk5): implement SLSA Level 3 provenance generation 2026-05-22 23:27:41 -04:00
pdftract-3gq3.md feat(pdftract-1534): complete Tera-template-driven code generator 2026-05-18 01:55:27 -04:00
pdftract-3nnqy.md feat(pdftract-3nnqy): implement StreamDecoder trait, filter pipeline, and bomb limit 2026-05-18 00:34:28 -04:00
pdftract-3uu6v.md feat(pdftract-3uu6v): implement LZWDecode with /EarlyChange parameter 2026-05-22 22:38:31 -04:00
pdftract-4b0z.md docs(pdftract-4b0z): add verification note 2026-05-20 19:06:36 -04:00
pdftract-4hn1.md feat(pdftract-4hn1): use Cow<'static, str> for diagnostic messages 2026-05-17 23:23:38 -04:00
pdftract-4iier.md docs(pdftract-4iier): complete per-profile README documentation 2026-05-18 00:32:06 -04:00
pdftract-4ymy.md docs(pdftract-4ymy): add verification note for indirect object parser 2026-05-18 01:08:39 -04:00
pdftract-5calf.md feat(pdftract-5calf): implement outline traversal with UTF-16BE BOM detection 2026-05-20 18:49:52 -04:00
pdftract-5cqy.md docs(pdftract-5cqy): add xref stream parser verification note 2026-05-22 15:30:02 -04:00
pdftract-5dng.md docs(pdftract-5dng): add verification note for name object lexer 2026-05-18 02:00:14 -04:00
pdftract-5l9m.md docs(pdftract-5l9m): add CI validation script and verification note 2026-05-18 01:05:33 -04:00
pdftract-5og4.md feat(pdftract-5og4): add comprehensive proptest for hybrid xref handler 2026-05-22 17:26:27 -04:00
pdftract-5omc.md feat(pdftract-5omc): implement per-language conformance test runner pattern 2026-05-18 01:32:24 -04:00
pdftract-5tmcg.md test(pdftract-5tmcg): add cycle detection test for page tree flattener 2026-05-18 00:38:44 -04:00
pdftract-5upi.md docs(pdftract-5upi): update verification note with additional bug fix 2026-05-20 22:05:17 -04:00
pdftract-5x3u.md docs(pdftract-5x3u): add verification note for pdftract-crates-publish 2026-05-20 19:17:44 -04:00
pdftract-5xq16.md docs(pdftract-5xq16): add verification note 2026-05-23 00:01:12 -04:00
pdftract-5z5d8.md fix(pdftract-5z5d8): fix provenance validation script 2026-05-17 23:43:37 -04:00
pdftract-6bxw.md docs(pdftract-6bxw): add ObjStm parser verification note 2026-05-22 15:00:32 -04:00
pdftract-7nav.md docs(pdftract-2bsfc): add verification note 2026-05-17 23:57:00 -04:00
pdftract-8eo1.md feat(pdftract-67tm8): implement MCP stdio transport with integration tests 2026-05-23 00:16:42 -04:00
pdftract-8zbd.md docs(pdftract-8zbd): verify CycloneDX SBOM generation implementation 2026-05-22 23:54:18 -04:00
pdftract-15cs8.md docs(pdftract-15cs8): add verification note for Crypt filter implementation 2026-05-20 18:17:34 -04:00
pdftract-23k1.md docs(pdftract-23k1): add verification note for pdftract-py-ci stub 2026-05-20 18:43:29 -04:00
pdftract-24kut.md feat(pdftract-24kut): enforce MCP transport mutual exclusion at CLI parse 2026-05-23 00:41:47 -04:00
pdftract-32qkr.md docs(pdftract-dejqs): add verification note for per-page resource inheritance 2026-05-20 22:35:43 -04:00
pdftract-33v.md feat(pdftract-33v): add property tests and nightly fuzz job 2026-05-20 19:18:03 -04:00
pdftract-46lw.md docs(pdftract-46lw): add forward_scan_xref verification note 2026-05-20 18:52:07 -04:00
pdftract-49f8.md docs(pdftract-49f8): finalize Cargo.lock policy with weekly Renovate schedule 2026-05-20 18:22:03 -04:00
pdftract-58kz.md docs(pdftract-58kz): add verification note 2026-05-20 19:39:55 -04:00
pdftract-59zz.md feat(pdftract-59zz): implement MCP bearer token ingress channels and TH-03 enforcement 2026-05-18 02:47:54 -04:00
pdftract-60h.md docs(pdftract-60h): update verification note with detailed acceptance criteria 2026-05-18 01:27:15 -04:00
pdftract-67tm8.md feat(pdftract-67tm8): implement MCP stdio transport with integration tests 2026-05-23 00:16:42 -04:00
pdftract-68pe.md docs(pdftract-68pe): update verification note with SLSA attestation 2026-05-20 19:35:51 -04:00
pdftract-147a.md docs(pdftract-147a): author SDK contract specification 2026-05-17 23:13:55 -04:00
pdftract-154mz.md feat(pdftract-154mz): fix canonicalization module compilation 2026-05-20 19:24:38 -04:00
pdftract-220e.md docs(pdftract-220e): add verification note for pdftract-build-binaries template 2026-05-20 19:08:02 -04:00
pdftract-245s.md docs(pdftract-245s): add verification note for pdftract-py-ci WorkflowTemplate 2026-05-20 19:12:56 -04:00
pdftract-279.md feat(pdftract-279): stand up Cargo workspace with three member crates 2026-05-20 18:09:34 -04:00
pdftract-469s.md feat(pdftract-59zz): implement MCP bearer token ingress channels and TH-03 enforcement 2026-05-18 02:47:54 -04:00
pdftract-1527.md test(pdftract-1527): add shared SDK conformance suite with 32 test cases 2026-05-18 01:17:42 -04:00
pdftract-1534.md feat(pdftract-1534): complete Tera-template-driven code generator 2026-05-18 01:48:27 -04:00
pdftract-dejqs.md docs(pdftract-dejqs): update verification note with 2026-05-22 test results 2026-05-22 19:21:39 -04:00
pdftract-g0ro2.md feat(pdftract-g0ro2): implement MCP HTTP+SSE transport with integration tests 2026-05-23 00:35:14 -04:00
pdftract-l993m.md feat(pdftract-l993m): complete per-language Tera template scaffolding 2026-05-18 02:01:46 -04:00
pdftract-q15sh.md feat(pdftract-q15sh): implement v1 fingerprint algorithm 2026-05-18 01:02:30 -04:00