import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { Env } from "../types.js"; import { registerSearchComponents } from "./arcrun_search_components.js"; import { registerSearchWorkflows } from "./arcrun_search_workflows.js"; import { registerListComponents } from "./arcrun_list_components.js"; import { registerGetComponent } from "./arcrun_get_component.js"; import { registerGetComponentGuide } from "./arcrun_get_component_guide.js"; import { registerCreateTag } from "./arcrun_create_tag.js"; import { registerListTags } from "./arcrun_list_tags.js"; import { registerDeleteTag } from "./arcrun_delete_tag.js"; import { registerTagResource } from "./arcrun_tag_resource.js"; import { registerUntagResource } from "./arcrun_untag_resource.js"; import { registerGetGuiContext } from "./arcrun_get_gui_context.js"; import { registerReportFeedback } from "./arcrun_report_feedback.js"; import { registerAllIntrospectionTools } from "./arcrun_introspection.js"; import { registerAllWorkflowCrudTools } from "./arcrun_workflow_crud.js"; import { registerAllSkillExampleTools } from "./arcrun_skills_examples.js"; import { registerAllRecipeTools } from "./arcrun_recipe.js"; import { registerAllKbdbDataTools } from "./kbdb_data.js"; import { registerAllKbdbGraphTools } from "./kbdb_graph.js"; import { registerAllKbdbMapTools } from "./kbdb_map.js"; import { registerWhoami } from "./arcrun_whoami.js"; import type { KnowledgeIdentity } from "../lib/portal-client.js"; export function registerAllTools( server: McpServer, env: Env, orgNamespace: string, partnerToken: string, identity: KnowledgeIdentity, ) { registerSearchComponents(server, env, orgNamespace); // 🔴 2026-07-21 leo 拍板停用:零件走 PR、專業等級;recipe/workflow/app 誰都可以做。 // 零件貢獻**只有一條路=PR 人審**(leo 2026-08-01:「已經沒有 publish 了, // 零件等級一律走 PR,這條路封了」;Arcrun#23 已關)。實作路徑已 git rm // (arcrun_publish_component.ts),不留死代碼當錯誤環境信號。 // 想貢獻零件 → repo `Leo/arcrun-components` fork→PR→人審,見 CONTRIBUTING-components.md。 registerSearchWorkflows(server, env, orgNamespace, partnerToken); // workflow-discovery R2 registerListComponents(server, env, orgNamespace); registerGetComponent(server, env, orgNamespace); // registerGetComponentGuide(server, env, orgNamespace); // 同上,2026-07-21 停用 registerCreateTag(server, env, orgNamespace); registerListTags(server, env, orgNamespace); registerDeleteTag(server, env, orgNamespace); registerTagResource(server, env, orgNamespace); registerUntagResource(server, env, orgNamespace); registerGetGuiContext(server, env, orgNamespace); // LI SDD M1.3: explicit feedback tool(arcrun_* 命名規範) registerReportFeedback(server, env, orgNamespace); // LI SDD M2.2: introspection tools (validate / paused / trace / recent executions) registerAllIntrospectionTools(server, env); // LI SDD M2.2: workflow CRUD (push / list / get / delete / run) // 取代早期壞掉的 deploy_workflow(打不存在的 /workflows/deploy endpoint), // 以及重複的 list/get workflow(改直問 cypher-executor 真實狀態,不從 KBDB 撈 metadata)。 registerAllWorkflowCrudTools(server, env); // LI SDD M3.2: skills + examples lookup(KBDB-backed) // 走 sync-registry-to-kbdb.py 把 registry/{skills,examples} 同步進 KBDB registerAllSkillExampleTools(server, env); // kbdb-base §7.5.i: recipe 公庫/私庫工具(與 CLI 六能力對齊,rule 07 §5 MCP 不落後) registerAllRecipeTools(server, env); // kbdb-base Phase 9.1: KBDB 資料層薄殼(template/record/query/search,HANDOFF §2) // 鐵律:不提供建表/SQL tool,AI 只有 template+slot 可用(類 Supabase 萬用表) // 2026-08-12:知識面(kbdb_*)全部改吃 identity——以帳密連線者走 portal 資料面 // (權限=那個人的權限),服務級憑據維持既有 KBDB 直連。見 lib/portal-client.ts。 registerAllKbdbDataTools(server, env, identity); // issue #68: KBDB graph 查詢薄殼(kbdb_graph_neighbors,調 /q/:ns/graph_neighbors 同步查詢端點) // 補齊 D17「KBDB MCP=RAG 套餐」第三模式:關鍵字/語義之外的圖(關係遍歷) registerAllKbdbGraphTools(server, env, orgNamespace, identity); // library-map SDD M4(Arcrun#39): 藏書地圖薄殼(kbdb_get_map,調 kbdb GET /map//map/:library) // retrieval 第一站:先看地圖定位庫,再 search/graph 進庫(design §6) registerAllKbdbMapTools(server, env, identity); // §7.8 P1 D2: whoami(與 CLI acr whoami 對齊,AI 不繞 CLI 自己 curl 猜帳號) registerWhoami(server, env, orgNamespace, identity); }