From 1af7655ac650d5544db1a9ef6fbaa586afa14cfe Mon Sep 17 00:00:00 2001 From: uncle6me-web Date: Thu, 11 Jun 2026 00:08:25 +0800 Subject: [PATCH] =?UTF-8?q?fix(mcp-self-hosted):=20KBDB=20binding=20?= =?UTF-8?q?=E6=8C=87=E5=90=91=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9A=84=20servic?= =?UTF-8?q?e=20+=20kbdb=20worker=20=E6=9C=AA=E9=83=A8=E7=BD=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit self-hosted MCP failed 根因(壓測 2026-06-10): 1. mcp/wrangler.toml: KBDB service binding 綁 'inkstone-kbdb-api'(全 repo 僅此一處, 不存在的舊名)→ 改成實際 worker 名 'arcrun-kbdb'(官方+self-hosted 共用)。 2. deploy.ts: self-hosted 部署清單漏了 kbdb worker(只有 cypher/registry/mcp)→ D1 arcrun-kbdb 有建但 worker 本體沒部署 → KBDB binding 指向不存在 service → partnerAuthMiddleware 每個 MCP 認證請求都 throw。加 'kbdb' 進部署清單。 D1 id 注入已涵蓋(injectWranglerConfig 跑 tier2,kbdb 現在在 tier2)。 Co-Authored-By: Claude Opus 4.8 --- cli/src/lib/deploy.ts | 5 ++++- mcp/wrangler.toml | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/cli/src/lib/deploy.ts b/cli/src/lib/deploy.ts index 94472c5..9793238 100644 --- a/cli/src/lib/deploy.ts +++ b/cli/src/lib/deploy.ts @@ -225,7 +225,10 @@ function discoverWorkerDirs(root: string): { tier1: string[]; tier2: string[] } } // self-hosted 也部署自己的 MCP worker(mcp-account-source §5c:codeload 主庫即得 MCP, // .mcp.json 指自己的 mcp 而非官方 mcp.arcrun.dev)。 - for (const name of ['cypher-executor', 'registry', 'mcp']) { + // kbdb:MCP 的 partnerAuthMiddleware 透過 KBDB service binding 打 arcrun-kbdb worker(mcp/wrangler.toml)。 + // D1 arcrun-kbdb 已由 init/update 建好,但 worker 本體要一併部署,否則 binding 指向不存在的 service + // → 每個 MCP 認證請求都 throw(self-hosted MCP failed 根因,2026-06-10)。 + for (const name of ['cypher-executor', 'registry', 'kbdb', 'mcp']) { const dir = join(root, name); if (existsSync(join(dir, 'wrangler.toml'))) tier2.push(dir); } diff --git a/mcp/wrangler.toml b/mcp/wrangler.toml index 77afbe0..dda37f7 100644 --- a/mcp/wrangler.toml +++ b/mcp/wrangler.toml @@ -11,7 +11,7 @@ workers_dev = true # 對齊 arcrun 部署慣例(rule 05):deploy 掃描 services = [ { binding = "COMPONENT_REGISTRY", service = "arcrun-registry" }, { binding = "CYPHER_EXECUTOR", service = "arcrun-cypher-executor" }, - { binding = "KBDB", service = "inkstone-kbdb-api" } + { binding = "KBDB", service = "arcrun-kbdb" } ] # Route — MCP 搬進 arcrun 主庫後改用 arcrun.dev zone(與其他 worker 一致)。