Skip to content

feat(mcp): read_note tool + per-param schema descriptions + glama.json (Glama TDQS)#88

Merged
leonardsellem merged 1 commit into
mainfrom
mcp-read-note-param-docs
Jun 19, 2026
Merged

feat(mcp): read_note tool + per-param schema descriptions + glama.json (Glama TDQS)#88
leonardsellem merged 1 commit into
mainfrom
mcp-read-note-param-docs

Conversation

@leonardsellem

Copy link
Copy Markdown
Owner

What

Three additive, non-breaking Glama TDQS drivers (the fourth — tool-naming consistency — was intentionally dropped: it would break the published MCP tool contract and the ChatGPT-prefix hypermnesic_search alias):

  1. read_note(path) read tool — fetch a located note's full markdown content. Index membership is the security boundary: only committed, in-vault notes are readable, so ../ traversal, absolute paths, and non-note files (.env, .git/) return found: false / content: null — never an out-of-vault read. Closes the TDQS "Completeness" gap (no way to read a note's body).
  2. Per-parameter schema descriptions on every tool via Annotated[..., Field(description=...)] (was 0% coverage) — addresses the TDQS "Parameters" dimension across all read tools and the gated commit_note write tool.
  3. glama.json (maintainers) for the Glama directory.

No behavior change to existing tools — only added metadata + one new read tool.

Tests / gates

  • TDD (red → green): test_read_note_reads_indexed_notes_only (verifies the index-bounded security boundary rejects traversal/absolute/non-note paths) + test_tools_document_their_parameters (every param of every tool, incl. commit_note, carries a description). Updated tool-set assertions + READ_TOOL_NAMES.
  • All six gates green: ruff · version-consistency · pytest (721 passed, 1 skipped) · license-scan · preflight-public-scan.
  • Docs (docs/reference/mcp-tools.md) + CHANGELOG [Unreleased] synced in the same PR.

🤖 Generated with Claude Code

Three additive Glama TDQS drivers (all non-breaking):
- read_note(path): fetch a located note's full markdown content, bounded to indexed
  notes -- index membership is the security boundary, so traversal/absolute/non-note
  paths return found:false, content:null (no out-of-vault read). Closes the TDQS
  'Completeness' gap (no way to read a note's body).
- Every MCP tool parameter now carries a schema description via Annotated[..., Field]
  (was 0% coverage), addressing the TDQS 'Parameters' dimension across all read tools
  and the gated commit_note write tool.
- glama.json (maintainers) for the Glama MCP directory.

TDD: new tests for read_note's index-bounded reads and for full param-description
coverage; updated tool-set assertions + READ_TOOL_NAMES. Docs (mcp-tools.md) + CHANGELOG
synced. Tool-naming consistency intentionally NOT changed -- it would break the published
MCP tool contract and the ChatGPT-prefix alias.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Leonard Sellem <leonard@sellem.me>
@leonardsellem leonardsellem merged commit 0ba01ed into main Jun 19, 2026
1 check passed
@leonardsellem leonardsellem deleted the mcp-read-note-param-docs branch June 25, 2026 09:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant