Compact MCP schemas and unify task tools #125

Merged
kleb merged 1 commit from feature/mcp-schema-compaction into main 2026-08-30 12:36:10 +02:00
Collaborator

Summary

  • strip the generated default JSON Schema dialect URI while preserving Zod validation and defaults
  • emit only MCP tool annotations that differ from protocol defaults
  • use the canonical task_* MCP family for root and nested tasks while retaining REST and CLI compatibility aliases
  • normalize explicit task parent refs and add bounded offset pagination for complete child traversal

The full local MCP catalog with file tools falls from 39,827 to 30,133 serialized characters, a 24.3% reduction. It contains 68 tools, no subtask_* aliases, no generated $schema fields, and no explicitly emitted default annotation values.

Research against the current MCP specification and Codex and Claude client behavior found no standard client-negotiated profile mechanism. Native client tool search and authorization-scoped filtering remain the preferred ways to reduce model context beyond this static compaction.

Verification

  • bun run check:quality
  • 954 Bun tests passed
  • 238 Vitest tests passed
  • modern and legacy MCP negotiation covered
  • owned and shared nested-task creation, reparenting, mixed-reference rejection, and pagination beyond 100 children covered
## Summary - strip the generated default JSON Schema dialect URI while preserving Zod validation and defaults - emit only MCP tool annotations that differ from protocol defaults - use the canonical `task_*` MCP family for root and nested tasks while retaining REST and CLI compatibility aliases - normalize explicit task parent refs and add bounded offset pagination for complete child traversal The full local MCP catalog with file tools falls from 39,827 to 30,133 serialized characters, a 24.3% reduction. It contains 68 tools, no `subtask_*` aliases, no generated `$schema` fields, and no explicitly emitted default annotation values. Research against the current MCP specification and Codex and Claude client behavior found no standard client-negotiated profile mechanism. Native client tool search and authorization-scoped filtering remain the preferred ways to reduce model context beyond this static compaction. ## Verification - `bun run check:quality` - 954 Bun tests passed - 238 Vitest tests passed - modern and legacy MCP negotiation covered - owned and shared nested-task creation, reparenting, mixed-reference rejection, and pagination beyond 100 children covered
Collaborator

kReview review

Verdict: no findings

No concrete correctness, security, data-integrity, concurrency, or compatibility defects are established by the visible changes and verified repository context.

Reviewed by kReview at 8ad755410e. This comment is conservative and based only on the PR diff, metadata, and supplied repository context.

Est. cost ~$1.38 (540.3k in / 2.7k out / gpt-5.6-sol).

<!-- codex-forgejo-review --> <!-- codex-forgejo-review-head:8ad755410e5a603d3d1a43ac007fae68073d63db --> <!-- codex-forgejo-review-comparison:v1:c17b6de8ff97b41fae1c8bf2f7433d21c806b756555283fad50c0fcde577cb52 --> ## kReview review **Verdict:** no findings No concrete correctness, security, data-integrity, concurrency, or compatibility defects are established by the visible changes and verified repository context. _Reviewed by kReview at `8ad755410e`. This comment is conservative and based only on the PR diff, metadata, and supplied repository context._ _Est. cost ~$1.38 (540.3k in / 2.7k out / gpt-5.6-sol)._ <!-- codex-forgejo-review-state:eyJoZWFkU2hhIjoiOGFkNzU1NDEwZTVhNjAzZDNkMWE0M2FjMDA3ZmFlNjgwNzNkNjNkYiIsImNvbXBhcmlzb25LZXkiOiJ2MTpjMTdiNmRlOGZmOTdiNDFmYWUxYzhiZjJmNzQzM2QyMWM4MDZiNzU2NTU1MjgzZmFkNTBjMGZjZGU1NzdjYjUyIiwic3VtbWFyeSI6Ik5vIGNvbmNyZXRlIGNvcnJlY3RuZXNzLCBzZWN1cml0eSwgZGF0YS1pbnRlZ3JpdHksIGNvbmN1cnJlbmN5LCBvciBjb21wYXRpYmlsaXR5IGRlZmVjdHMgYXJlIGVzdGFibGlzaGVkIGJ5IHRoZSB2aXNpYmxlIGNoYW5nZXMgYW5kIHZlcmlmaWVkIHJlcG9zaXRvcnkgY29udGV4dC4iLCJmaW5kaW5ncyI6W10sImN1bXVsYXRpdmVDb3N0Ijp7InVzZCI6MS4zODM5NjI5OTk5OTk5OTk4LCJpbnB1dFRva2VucyI6NTQwMzE3LCJvdXRwdXRUb2tlbnMiOjI3NDksIm1vZGVsIjoiZ3B0LTUuNi1zb2wifX0= -->
kleb merged commit ff7d7073e0 into main 2026-08-30 12:36:10 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
knopersikcuo/Planner!125
No description provided.