Skip to content

docs(mcp[tools]): Search tool owns its xref anchor#90

Draft
tony wants to merge 1 commit into
masterfrom
fix/mcp-search-tool-xref
Draft

docs(mcp[tools]): Search tool owns its xref anchor#90
tony wants to merge 1 commit into
masterfrom
fix/mcp-search-tool-xref

Conversation

@tony

@tony tony commented Jun 30, 2026

Copy link
Copy Markdown
Owner

Summary

On the changelog page (/history/), the {tooliconl}search`` badge in the 0.1.0a22 entry linked to the documentation's own site-search page (/search/) instead of the MCP `search` tool reference — while the sibling `find` and `inspect_result` badges linked correctly to `/mcp/tools/#fastmcp-tool-*`. The build reported no error.

Two causes compounded:

  1. The search {fastmcp-tool} card in docs/mcp/tools.md was the only one of twelve marked :no-index:, even though it is the tool's single canonical invocation. :no-index: skips registering the fastmcp-tool-search cross-reference label, so the tool had no reference home.
  2. search is a Sphinx-reserved standard label (the JS "Search Page"), seeded into StandardDomain before any document is read. The tool's bare-slug alias can never claim it, so {tool}-family roles resolving by bare slug fell through to the built-in.

This PR fixes cause 1: dropping :no-index: registers the canonical fastmcp-tool-search anchor.

Dependency (why this is a draft)

Cause 2 is fixed upstream in sphinx-autodoc-fastmcp by resolving the canonical fastmcp-tool-<slug> id first: git-pull/gp-sphinx#60. Until that ships in 0.0.1a32 and this repo bumps its pin (sphinx-autodoc-fastmcp>=0.0.1a32, gp-sphinx>=0.0.1a32), the bare slug still resolves to the built-in. The pin bump + uv.lock + full completion gate will be added to this PR once a32 is released, at which point it leaves draft.

Verification

Built locally against the patched extension (gp-sphinx#60 editable): every {tooliconl}search`` on /history/ then resolves to `../mcp/tools/#fastmcp-tool-search`, matching `find` and `inspect_result`; the old `href="../search/"` tool badge is gone.

Test plan

  • git diff --check clean; just build-docs succeeds; fastmcp-tool-search is now a registered std:label (/mcp/tools/#fastmcp-tool-search).
  • Full completion gate runs with the a32 pin bump before this leaves draft.

@tony tony force-pushed the fix/mcp-search-tool-xref branch from b964e28 to 1745cce Compare June 30, 2026 01:27
@tony tony force-pushed the fix/mcp-search-tool-xref branch from 1745cce to 93c45df Compare June 30, 2026 01:29
@tony tony force-pushed the fix/mcp-search-tool-xref branch from 83bc0ed to 93c45df Compare July 1, 2026 00:50
@tony tony force-pushed the fix/mcp-search-tool-xref branch from 93c45df to 6e5a11c Compare July 4, 2026 13:39
@tony tony force-pushed the fix/mcp-search-tool-xref branch from 6e5a11c to 0b55537 Compare July 5, 2026 12:54
@tony tony force-pushed the fix/mcp-search-tool-xref branch from 0b55537 to 2c3f0f1 Compare July 6, 2026 02:29
why: The search tool card was the only one of twelve marked
:no-index:, yet it is the tool's single canonical invocation.
:no-index: suppressed registration of the fastmcp-tool-search
cross-reference label, so {tooliconl}`search` (and the other tool
roles) silently linked to Sphinx's reserved `search` "Search Page"
instead of the MCP search tool reference — with no build error.

what:
- Drop :no-index: from the search {fastmcp-tool} card so it
  registers its canonical fastmcp-tool-search anchor.

Full resolution also needs the canonical-first tool-role fix in
sphinx-autodoc-fastmcp (gp-sphinx#60); until that ships in a32 and
the pin is bumped, the bare slug still resolves to the built-in.
@tony tony force-pushed the fix/mcp-search-tool-xref branch from 2c3f0f1 to dd1f18b Compare July 11, 2026 00:02
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