@
目的
proxy(mcp-server/server/index.js) の静的 TOOLS スキーマが Worker(src/mcp.ts) の search param と手動同期になっており、同期忘れが silently ship する。同期忘れを構造的に検出するガード(CI/test)を入れ、「忘れたら出荷できない」状態にする。
背景 / 原因(クラス)
方針
- 不採用: proxy が
tools/list を Worker に委譲する案 → 起動時に auth/network を強制し起動 UX が退行。静的スキーマの利点(即答・無認証)を壊すので却下。
- 推奨: CI / test で proxy の
search param キー集合 ⊇(または ==)Worker の param 集合 を assert。drift で build 失敗 = 同期忘れを ship 不能にする。忘れ得る手順を、必ず発火する構造(CI)へ置換。
対象ファイル(想定・実装時確定)
mcp-server/ 配下にスキーマ整合テストを追加。Worker param 抽出方法(src/mcp.ts のパース / 共有 param 名リストの単一ソース化)は実装時に決定。
- CI ワークフローにテスト実行を接続。
制約
- 既存ランタイム挙動は不変(テスト/CI の追加のみ)。Worker・proxy のレスポンスを変えない。
- release type = patch 見込み(出荷物の挙動追加ではなく開発時ガードの追加)。
@
@
目的
proxy(
mcp-server/server/index.js) の静的TOOLSスキーマが Worker(src/mcp.ts) のsearchparam と手動同期になっており、同期忘れが silently ship する。同期忘れを構造的に検出するガード(CI/test)を入れ、「忘れたら出荷できない」状態にする。背景 / 原因(クラス)
tools/listを Worker へ転送せず静的TOOLSを返す(setRequestHandler(ListToolsRequestSchema, () => ({tools: TOOLS})))。意図 = 起動時の tools/list を auth/network なしで即答するため(OAuth は tool 呼び出し時に lazy 起動)。graph_expand/graph_hopsを Worker(src/mcp.ts) にだけ足し proxy 静的スキーマを忘れ → MCP クライアントがadditionalProperties:falseで未知 param を除去 → Worker に届かずgraph_expanded:false(fix(mcp-server): add graph_expand / graph_hops to proxy search tool schema #157 / fix(mcp-server): expose graph_expand / graph_hops in proxy search schema #158)。方針
tools/listを Worker に委譲する案 → 起動時に auth/network を強制し起動 UX が退行。静的スキーマの利点(即答・無認証)を壊すので却下。searchparam キー集合 ⊇(または ==)Worker の param 集合 を assert。drift で build 失敗 = 同期忘れを ship 不能にする。忘れ得る手順を、必ず発火する構造(CI)へ置換。対象ファイル(想定・実装時確定)
mcp-server/配下にスキーマ整合テストを追加。Worker param 抽出方法(src/mcp.tsのパース / 共有 param 名リストの単一ソース化)は実装時に決定。制約
@