From b51dae16a6257ee1a8b8af4a8d07ed2c6fafe239 Mon Sep 17 00:00:00 2001 From: agent_coder Date: Sun, 5 Jul 2026 02:14:39 +0300 Subject: [PATCH] docs(mcp): mark media tools MCP-only in index.ts (#294, media family) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The media tools — insert_image, replace_image, insert_footnote — are MCP-only by design: the in-app AI-chat agent exposes no image or footnote tools, so there is no second layer to unify into SHARED_TOOL_SPECS. A registry spec's tier/catalogLine are in-app metadata and the catalog-partition test forbids a spec without a live in-app tool, so forcing them into the registry would break the invariant. They stay per-transport (inline in index.ts). No behavior change — documentation only (adds the rationale above each tool so a future migrator does not re-investigate why these are not shared). Gate: mcp tsc 0 (comment-only change). Co-Authored-By: Claude Opus 4.8 (1M context) --- packages/mcp/src/index.ts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/mcp/src/index.ts b/packages/mcp/src/index.ts index 4c798cf3..fb373415 100644 --- a/packages/mcp/src/index.ts +++ b/packages/mcp/src/index.ts @@ -381,6 +381,10 @@ registerShared(SHARED_TOOL_SPECS.deleteNode, async ({ pageId, nodeId }) => { }); // Tool: insert_image +// MCP-only by design (NOT in the shared registry): the in-app AI-chat agent +// exposes no image tools (insert/replace), so there is no second layer to unify +// — a SHARED_TOOL_SPECS entry's tier/catalogLine are in-app metadata and the +// catalog-partition test forbids a spec without a live in-app tool (#294). server.registerTool( "insert_image", { @@ -426,6 +430,7 @@ server.registerTool( ); // Tool: replace_image +// MCP-only by design (see insert_image): no in-app equivalent, stays inline. server.registerTool( "replace_image", { @@ -790,6 +795,8 @@ server.registerTool( ); // Tool: insert_footnote +// MCP-only by design (see insert_image): the in-app AI-chat agent exposes no +// footnote tool, so there is no second layer to unify — stays inline (#294). server.registerTool( "insert_footnote", {