@agent-native/core 0.79.2 → 0.79.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +24 -0
  3. package/corpus/core/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
  4. package/corpus/core/docs/content/locales/zh-TW/actions.md +583 -0
  5. package/corpus/core/docs/content/locales/zh-TW/agent-mentions.md +164 -0
  6. package/corpus/core/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
  7. package/corpus/core/docs/content/locales/zh-TW/agent-teams.md +171 -0
  8. package/corpus/core/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
  9. package/corpus/core/docs/content/locales/zh-TW/audit-log.md +111 -0
  10. package/corpus/core/docs/content/locales/zh-TW/authentication.md +332 -0
  11. package/corpus/core/docs/content/locales/zh-TW/automations.md +268 -0
  12. package/corpus/core/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
  13. package/corpus/core/docs/content/locales/zh-TW/cli-adapters.md +129 -0
  14. package/corpus/core/docs/content/locales/zh-TW/client.md +398 -0
  15. package/corpus/core/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
  16. package/corpus/core/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
  17. package/corpus/core/docs/content/locales/zh-TW/components.md +368 -0
  18. package/corpus/core/docs/content/locales/zh-TW/context-awareness.md +373 -0
  19. package/corpus/core/docs/content/locales/zh-TW/creating-templates.md +411 -0
  20. package/corpus/core/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
  21. package/corpus/core/docs/content/locales/zh-TW/database.md +183 -0
  22. package/corpus/core/docs/content/locales/zh-TW/deployment.md +348 -0
  23. package/corpus/core/docs/content/locales/zh-TW/dispatch.md +146 -0
  24. package/corpus/core/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
  25. package/corpus/core/docs/content/locales/zh-TW/durable-resume.md +65 -0
  26. package/corpus/core/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
  27. package/corpus/core/docs/content/locales/zh-TW/evals.md +155 -0
  28. package/corpus/core/docs/content/locales/zh-TW/extensions.md +360 -0
  29. package/corpus/core/docs/content/locales/zh-TW/external-agents.md +619 -0
  30. package/corpus/core/docs/content/locales/zh-TW/faq.md +142 -0
  31. package/corpus/core/docs/content/locales/zh-TW/file-uploads.md +122 -0
  32. package/corpus/core/docs/content/locales/zh-TW/frames.md +153 -0
  33. package/corpus/core/docs/content/locales/zh-TW/getting-started.md +199 -0
  34. package/corpus/core/docs/content/locales/zh-TW/harness-agents.md +349 -0
  35. package/corpus/core/docs/content/locales/zh-TW/human-approval.md +86 -0
  36. package/corpus/core/docs/content/locales/zh-TW/internationalization.md +147 -0
  37. package/corpus/core/docs/content/locales/zh-TW/key-concepts.md +312 -0
  38. package/corpus/core/docs/content/locales/zh-TW/local-file-mode.md +433 -0
  39. package/corpus/core/docs/content/locales/zh-TW/mcp-apps.md +147 -0
  40. package/corpus/core/docs/content/locales/zh-TW/mcp-clients.md +330 -0
  41. package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
  42. package/corpus/core/docs/content/locales/zh-TW/messaging.md +461 -0
  43. package/corpus/core/docs/content/locales/zh-TW/migration-workbench.md +33 -0
  44. package/corpus/core/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
  45. package/corpus/core/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
  46. package/corpus/core/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
  47. package/corpus/core/docs/content/locales/zh-TW/notifications.md +231 -0
  48. package/corpus/core/docs/content/locales/zh-TW/observability.md +294 -0
  49. package/corpus/core/docs/content/locales/zh-TW/observational-memory.md +77 -0
  50. package/corpus/core/docs/content/locales/zh-TW/onboarding.md +216 -0
  51. package/corpus/core/docs/content/locales/zh-TW/plan-plugin.md +200 -0
  52. package/corpus/core/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
  53. package/corpus/core/docs/content/locales/zh-TW/processors.md +106 -0
  54. package/corpus/core/docs/content/locales/zh-TW/progress.md +199 -0
  55. package/corpus/core/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
  56. package/corpus/core/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
  57. package/corpus/core/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
  58. package/corpus/core/docs/content/locales/zh-TW/routing.md +79 -0
  59. package/corpus/core/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
  60. package/corpus/core/docs/content/locales/zh-TW/security.md +330 -0
  61. package/corpus/core/docs/content/locales/zh-TW/server.md +265 -0
  62. package/corpus/core/docs/content/locales/zh-TW/sharing.md +219 -0
  63. package/corpus/core/docs/content/locales/zh-TW/skills-guide.md +281 -0
  64. package/corpus/core/docs/content/locales/zh-TW/template-analytics.md +259 -0
  65. package/corpus/core/docs/content/locales/zh-TW/template-assets.md +303 -0
  66. package/corpus/core/docs/content/locales/zh-TW/template-brain.md +324 -0
  67. package/corpus/core/docs/content/locales/zh-TW/template-calendar.md +194 -0
  68. package/corpus/core/docs/content/locales/zh-TW/template-chat.md +129 -0
  69. package/corpus/core/docs/content/locales/zh-TW/template-clips.md +368 -0
  70. package/corpus/core/docs/content/locales/zh-TW/template-content.md +402 -0
  71. package/corpus/core/docs/content/locales/zh-TW/template-design.md +173 -0
  72. package/corpus/core/docs/content/locales/zh-TW/template-dispatch.md +220 -0
  73. package/corpus/core/docs/content/locales/zh-TW/template-forms.md +178 -0
  74. package/corpus/core/docs/content/locales/zh-TW/template-mail.md +239 -0
  75. package/corpus/core/docs/content/locales/zh-TW/template-plan.md +814 -0
  76. package/corpus/core/docs/content/locales/zh-TW/template-slides.md +293 -0
  77. package/corpus/core/docs/content/locales/zh-TW/template-videos.md +222 -0
  78. package/corpus/core/docs/content/locales/zh-TW/tracking.md +236 -0
  79. package/corpus/core/docs/content/locales/zh-TW/using-your-agent.md +71 -0
  80. package/corpus/core/docs/content/locales/zh-TW/voice-input.md +81 -0
  81. package/corpus/core/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
  82. package/corpus/core/docs/content/locales/zh-TW/workspace-connections.md +321 -0
  83. package/corpus/core/docs/content/locales/zh-TW/workspace-management.md +175 -0
  84. package/corpus/core/docs/content/locales/zh-TW/workspace.md +323 -0
  85. package/corpus/core/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
  86. package/corpus/core/package.json +1 -1
  87. package/corpus/core/src/client/ErrorBoundary.tsx +10 -0
  88. package/corpus/core/src/client/FeedbackButton.tsx +12 -0
  89. package/corpus/core/src/client/blocks/library/block-copy.ts +32 -0
  90. package/corpus/core/src/client/extensions/ExtensionsSidebarSection.tsx +33 -0
  91. package/corpus/core/src/client/i18n.tsx +5 -0
  92. package/corpus/core/src/localization/actions/set-localization-preference.ts +2 -1
  93. package/corpus/core/src/localization/shared.ts +45 -0
  94. package/corpus/core/src/server/agent-chat-plugin.ts +38 -0
  95. package/corpus/core/src/server/onboarding-html.ts +99 -0
  96. package/corpus/core/src/templates/default/app/i18n/index.ts +2 -0
  97. package/corpus/core/src/templates/default/app/i18n/zh-TW.ts +466 -0
  98. package/corpus/core/src/templates/default/app/root.tsx +8 -0
  99. package/corpus/templates/analytics/app/i18n/index.ts +2 -0
  100. package/corpus/templates/analytics/app/i18n/zh-TW.ts +818 -0
  101. package/corpus/templates/analytics/app/i18n-data.ts +9 -0
  102. package/corpus/templates/assets/app/i18n/index.ts +2 -0
  103. package/corpus/templates/assets/app/i18n/zh-TW.ts +860 -0
  104. package/corpus/templates/assets/app/i18n-data.ts +3 -0
  105. package/corpus/templates/brain/app/i18n/index.ts +2 -0
  106. package/corpus/templates/brain/app/i18n/zh-TW.ts +709 -0
  107. package/corpus/templates/brain/app/i18n-data.ts +3 -0
  108. package/corpus/templates/calendar/app/i18n/zh-TW.ts +836 -0
  109. package/corpus/templates/calendar/app/i18n-data.ts +4 -0
  110. package/corpus/templates/chat/app/i18n/index.ts +2 -0
  111. package/corpus/templates/chat/app/i18n/zh-TW.ts +67 -0
  112. package/corpus/templates/chat/app/i18n-data.ts +3 -0
  113. package/corpus/templates/clips/app/i18n/index.ts +2 -0
  114. package/corpus/templates/clips/app/i18n/zh-TW.ts +1280 -0
  115. package/corpus/templates/content/app/i18n/index.ts +2 -0
  116. package/corpus/templates/content/app/i18n/zh-TW.ts +906 -0
  117. package/corpus/templates/content/app/i18n-data.ts +4 -0
  118. package/corpus/templates/design/app/i18n/index.ts +2 -0
  119. package/corpus/templates/design/app/i18n/zh-TW.ts +517 -0
  120. package/corpus/templates/design/app/i18n-data.ts +6 -0
  121. package/corpus/templates/dispatch/app/i18n/index.ts +2 -0
  122. package/corpus/templates/dispatch/app/i18n/zh-TW.ts +195 -0
  123. package/corpus/templates/dispatch/app/i18n-data.ts +3 -0
  124. package/corpus/templates/forms/app/i18n/index.ts +2 -0
  125. package/corpus/templates/forms/app/i18n/zh-TW.ts +349 -0
  126. package/corpus/templates/macros/app/i18n/index.ts +2 -0
  127. package/corpus/templates/macros/app/i18n/zh-TW.ts +224 -0
  128. package/corpus/templates/mail/app/i18n/index.ts +2 -0
  129. package/corpus/templates/mail/app/i18n/zh-TW.ts +562 -0
  130. package/corpus/templates/mail/app/root.tsx +6 -0
  131. package/corpus/templates/plan/app/i18n/index.ts +2 -0
  132. package/corpus/templates/plan/app/i18n/zh-TW.ts +712 -0
  133. package/corpus/templates/slides/app/i18n/index.ts +2 -0
  134. package/corpus/templates/slides/app/i18n/zh-TW.ts +531 -0
  135. package/corpus/templates/videos/app/i18n/index.ts +2 -0
  136. package/corpus/templates/videos/app/i18n/zh-TW.ts +435 -0
  137. package/dist/client/ErrorBoundary.d.ts.map +1 -1
  138. package/dist/client/ErrorBoundary.js +10 -0
  139. package/dist/client/ErrorBoundary.js.map +1 -1
  140. package/dist/client/FeedbackButton.d.ts.map +1 -1
  141. package/dist/client/FeedbackButton.js +12 -0
  142. package/dist/client/FeedbackButton.js.map +1 -1
  143. package/dist/client/blocks/library/block-copy.d.ts.map +1 -1
  144. package/dist/client/blocks/library/block-copy.js +32 -0
  145. package/dist/client/blocks/library/block-copy.js.map +1 -1
  146. package/dist/client/extensions/ExtensionsSidebarSection.d.ts.map +1 -1
  147. package/dist/client/extensions/ExtensionsSidebarSection.js +32 -0
  148. package/dist/client/extensions/ExtensionsSidebarSection.js.map +1 -1
  149. package/dist/client/i18n.d.ts.map +1 -1
  150. package/dist/client/i18n.js +5 -0
  151. package/dist/client/i18n.js.map +1 -1
  152. package/dist/collab/awareness.d.ts +2 -2
  153. package/dist/collab/awareness.d.ts.map +1 -1
  154. package/dist/collab/routes.d.ts +1 -1
  155. package/dist/localization/actions/set-localization-preference.d.ts.map +1 -1
  156. package/dist/localization/actions/set-localization-preference.js +2 -2
  157. package/dist/localization/actions/set-localization-preference.js.map +1 -1
  158. package/dist/localization/shared.d.ts +1 -1
  159. package/dist/localization/shared.d.ts.map +1 -1
  160. package/dist/localization/shared.js +43 -0
  161. package/dist/localization/shared.js.map +1 -1
  162. package/dist/notifications/routes.d.ts +3 -3
  163. package/dist/observability/routes.d.ts +3 -3
  164. package/dist/resources/handlers.d.ts +2 -2
  165. package/dist/server/agent-chat-plugin.d.ts.map +1 -1
  166. package/dist/server/agent-chat-plugin.js +39 -0
  167. package/dist/server/agent-chat-plugin.js.map +1 -1
  168. package/dist/server/agent-engine-api-key-route.d.ts +2 -2
  169. package/dist/server/onboarding-html.d.ts.map +1 -1
  170. package/dist/server/onboarding-html.js +96 -0
  171. package/dist/server/onboarding-html.js.map +1 -1
  172. package/dist/templates/default/app/i18n/index.ts +2 -0
  173. package/dist/templates/default/app/i18n/zh-TW.ts +466 -0
  174. package/dist/templates/default/app/root.tsx +8 -0
  175. package/docs/content/locales/zh-TW/a2a-protocol.md +392 -0
  176. package/docs/content/locales/zh-TW/actions.md +583 -0
  177. package/docs/content/locales/zh-TW/agent-mentions.md +164 -0
  178. package/docs/content/locales/zh-TW/agent-surfaces.md +397 -0
  179. package/docs/content/locales/zh-TW/agent-teams.md +171 -0
  180. package/docs/content/locales/zh-TW/agent-web-surfaces.md +161 -0
  181. package/docs/content/locales/zh-TW/audit-log.md +111 -0
  182. package/docs/content/locales/zh-TW/authentication.md +332 -0
  183. package/docs/content/locales/zh-TW/automations.md +268 -0
  184. package/docs/content/locales/zh-TW/blueprint-installer.md +83 -0
  185. package/docs/content/locales/zh-TW/cli-adapters.md +129 -0
  186. package/docs/content/locales/zh-TW/client.md +398 -0
  187. package/docs/content/locales/zh-TW/cloneable-saas.md +114 -0
  188. package/docs/content/locales/zh-TW/code-agents-ui.md +436 -0
  189. package/docs/content/locales/zh-TW/components.md +368 -0
  190. package/docs/content/locales/zh-TW/context-awareness.md +373 -0
  191. package/docs/content/locales/zh-TW/creating-templates.md +411 -0
  192. package/docs/content/locales/zh-TW/cross-app-sso.md +188 -0
  193. package/docs/content/locales/zh-TW/database.md +183 -0
  194. package/docs/content/locales/zh-TW/deployment.md +348 -0
  195. package/docs/content/locales/zh-TW/dispatch.md +146 -0
  196. package/docs/content/locales/zh-TW/drop-in-agent.md +260 -0
  197. package/docs/content/locales/zh-TW/durable-resume.md +65 -0
  198. package/docs/content/locales/zh-TW/embedding-sdk.md +597 -0
  199. package/docs/content/locales/zh-TW/evals.md +155 -0
  200. package/docs/content/locales/zh-TW/extensions.md +360 -0
  201. package/docs/content/locales/zh-TW/external-agents.md +619 -0
  202. package/docs/content/locales/zh-TW/faq.md +142 -0
  203. package/docs/content/locales/zh-TW/file-uploads.md +122 -0
  204. package/docs/content/locales/zh-TW/frames.md +153 -0
  205. package/docs/content/locales/zh-TW/getting-started.md +199 -0
  206. package/docs/content/locales/zh-TW/harness-agents.md +349 -0
  207. package/docs/content/locales/zh-TW/human-approval.md +86 -0
  208. package/docs/content/locales/zh-TW/internationalization.md +147 -0
  209. package/docs/content/locales/zh-TW/key-concepts.md +312 -0
  210. package/docs/content/locales/zh-TW/local-file-mode.md +433 -0
  211. package/docs/content/locales/zh-TW/mcp-apps.md +147 -0
  212. package/docs/content/locales/zh-TW/mcp-clients.md +330 -0
  213. package/docs/content/locales/zh-TW/mcp-protocol.md +279 -0
  214. package/docs/content/locales/zh-TW/messaging.md +461 -0
  215. package/docs/content/locales/zh-TW/migration-workbench.md +33 -0
  216. package/docs/content/locales/zh-TW/multi-app-workspace.md +312 -0
  217. package/docs/content/locales/zh-TW/multi-tenancy.md +52 -0
  218. package/docs/content/locales/zh-TW/native-chat-ui.md +321 -0
  219. package/docs/content/locales/zh-TW/notifications.md +231 -0
  220. package/docs/content/locales/zh-TW/observability.md +294 -0
  221. package/docs/content/locales/zh-TW/observational-memory.md +77 -0
  222. package/docs/content/locales/zh-TW/onboarding.md +216 -0
  223. package/docs/content/locales/zh-TW/plan-plugin.md +200 -0
  224. package/docs/content/locales/zh-TW/pr-visual-recap.md +384 -0
  225. package/docs/content/locales/zh-TW/processors.md +106 -0
  226. package/docs/content/locales/zh-TW/progress.md +199 -0
  227. package/docs/content/locales/zh-TW/pure-agent-apps.md +39 -0
  228. package/docs/content/locales/zh-TW/real-time-collaboration.md +680 -0
  229. package/docs/content/locales/zh-TW/recurring-jobs.md +142 -0
  230. package/docs/content/locales/zh-TW/routing.md +79 -0
  231. package/docs/content/locales/zh-TW/sandbox-adapters.md +227 -0
  232. package/docs/content/locales/zh-TW/security.md +330 -0
  233. package/docs/content/locales/zh-TW/server.md +265 -0
  234. package/docs/content/locales/zh-TW/sharing.md +219 -0
  235. package/docs/content/locales/zh-TW/skills-guide.md +281 -0
  236. package/docs/content/locales/zh-TW/template-analytics.md +259 -0
  237. package/docs/content/locales/zh-TW/template-assets.md +303 -0
  238. package/docs/content/locales/zh-TW/template-brain.md +324 -0
  239. package/docs/content/locales/zh-TW/template-calendar.md +194 -0
  240. package/docs/content/locales/zh-TW/template-chat.md +129 -0
  241. package/docs/content/locales/zh-TW/template-clips.md +368 -0
  242. package/docs/content/locales/zh-TW/template-content.md +402 -0
  243. package/docs/content/locales/zh-TW/template-design.md +173 -0
  244. package/docs/content/locales/zh-TW/template-dispatch.md +220 -0
  245. package/docs/content/locales/zh-TW/template-forms.md +178 -0
  246. package/docs/content/locales/zh-TW/template-mail.md +239 -0
  247. package/docs/content/locales/zh-TW/template-plan.md +814 -0
  248. package/docs/content/locales/zh-TW/template-slides.md +293 -0
  249. package/docs/content/locales/zh-TW/template-videos.md +222 -0
  250. package/docs/content/locales/zh-TW/tracking.md +236 -0
  251. package/docs/content/locales/zh-TW/using-your-agent.md +71 -0
  252. package/docs/content/locales/zh-TW/voice-input.md +81 -0
  253. package/docs/content/locales/zh-TW/what-is-agent-native.md +202 -0
  254. package/docs/content/locales/zh-TW/workspace-connections.md +321 -0
  255. package/docs/content/locales/zh-TW/workspace-management.md +175 -0
  256. package/docs/content/locales/zh-TW/workspace.md +323 -0
  257. package/docs/content/locales/zh-TW/writing-agent-instructions.md +173 -0
  258. package/package.json +1 -1
  259. package/src/templates/default/app/i18n/index.ts +2 -0
  260. package/src/templates/default/app/i18n/zh-TW.ts +466 -0
  261. package/src/templates/default/app/root.tsx +8 -0
@@ -0,0 +1,330 @@
1
+ ---
2
+ title: "MCP用戶端"
3
+ description: "將您的代理本機應用程式連線到本機 MCP 伺服器(claude-in-chrome、檔案系統、Playwright等),以便代理獲得其工具。"
4
+ ---
5
+
6
+ # MCP用戶端
7
+
8
+ **此頁面:為您的代理提供更多工具。** 將代理本機應用程式指向 MCP 伺服器(本機或遠端),以便他們的工具顯示在代理聊天中。這是 _client_ 方向,[MCP Protocol](/docs/mcp-protocol) 的鏡像(這使您的應用成為 MCP _server_)。
9
+
10
+ | 如果你想…… | 閱讀 |
11
+ | ------------------------------------------------- | ---------------------------------------- |
12
+ | 將外部代理/主機連線到您的應用 | [External Agents](/docs/external-agents) |
13
+ | 為您的代理提供更多工具(使用其他 MCP 伺服器) | **此頁面** — MCP 用戶端 |
14
+ | 建置在 Claude/ChatGPT 中渲染的內聯 UI | [MCP Apps](/docs/mcp-apps) |
15
+ | 較低級別的 MCP 伺服器參考(驗證、工具、自訂掛載) | [MCP Protocol](/docs/mcp-protocol) |
16
+
17
+ 通過一個設定檔案,工作區中的每個代理本機應用都可以存取計算機上的 MCP 伺服器提供的工具:用於瀏覽器自動化的 `claude-in-chrome`、用於讀取檔案的 `@modelcontextprotocol/server-filesystem`、用於瀏覽器測試的 `@playwright/mcp` 以及任何使用 MCP 的其他工具。
18
+
19
+ 您還可以 [connect remote (HTTP) MCP servers at runtime](#remote-via-ui)(個人使用者或整個組織),而無需編輯設定檔案。
20
+
21
+ 每個來源都會解析為一個執行時 **MCP 管理器**,並且它學習的每個工具都會以防碰撞 `mcp__<server-id>__<tool>` 前綴登入到代理的工具註冊表中 - 可通過 `tool-search` 進行意圖搜尋。
22
+
23
+ ```an-diagram title="用戶端方向:多種來源,一種工具註冊表" summary="設定檔案、環境和執行時 UI 全部合並到 MCP 管理器中;它的工具與您的應用程式的操作一起顯示為前綴並且可通過工具搜尋。這是伺服器方向的鏡像。"
24
+ {
25
+ "html": "<div class=\"mcp-merge\"><div class=\"diagram-col sources\"><div class=\"diagram-box\" data-rough>Workspace <code>mcp.config.json</code><br><small class=\"diagram-muted\">跨應用共用</small></div><div class=\"diagram-box\" data-rough>應用根 <code>mcp.config.json</code><br><small class=\"diagram-muted\">每個應用覆蓋</small></div><div class=\"diagram-box\" data-rough><code>MCP_SERVERS</code> env<br><small class=\"diagram-muted\">CI / 正式環境</small></div><div class=\"diagram-box\" data-rough>通過設定介面遠端設定<br><small class=\"diagram-muted\">personal &amp; org scope</small></div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-panel center\" data-rough><span class=\"diagram-pill accent\">MCP 管理器</span><small class=\"diagram-muted\">merge &middot; hot-reload</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-col out\"><div class=\"diagram-node\">Agent 工具 registry<br><small class=\"diagram-muted\"><code>mcp__&lt;server-id&gt;__&lt;tool&gt;</code></small></div><div class=\"diagram-node\"><code>tool-search</code><br><small class=\"diagram-muted\">按意圖發現</small></div></div></div>",
26
+ "css": ".mcp-merge{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.mcp-merge .diagram-col{display:flex;flex-direction:column;gap:8px}.mcp-merge .center{display:flex;flex-direction:column;align-items:center;gap:4px}.mcp-merge .diagram-arrow{font-size:22px;line-height:1}.mcp-merge code{font-size:.85em}"
27
+ }
28
+ ```
29
+
30
+ > 相反的方向 - 使 _your_ 應用程式成為其他主機使用的 MCP 伺服器 - 位於 [MCP Protocol](/docs/mcp-protocol) 和 [External Agents](/docs/external-agents) 中。
31
+
32
+ ## 內置瀏覽器和計算機使用功能 {#built-in-capabilities}
33
+
34
+ Agent-native 包括常見 stdio MCP 伺服器的本機開發切換。
35
+ 預設情況下它們處於關閉狀態,並且只能針對每個使用者或每個組織啟用
36
+ 當應用程式在本機執行時。跳過正式環境和託管無伺服器執行時
37
+ 即使舊設定行存在,這些內置函數和工作區資源
38
+ 樹不會將它們顯示為預設的 `mcp-servers/*.json` 資源。
39
+
40
+ | 能力 | 伺服器 ID | 指令 |
41
+ | ---------------- | ----------------- | ----------------------------------------------------------------------- |
42
+ | Chrome 開發工具 | `chrome-devtools` | `npx -y chrome-devtools-mcp@latest --autoConnect --no-usage-statistics` |
43
+ | Playwright瀏覽器 | `playwright` | `npx -y @playwright/mcp@latest` |
44
+ | 計算機使用 | `computer-use` | `npx -y computer-use-mcp@latest` |
45
+
46
+ 一次只能在一個範圍內啟用一種瀏覽器功能。啟用 Chrome DevTools 會停用同一使用者或組織的 Playwright,啟用 Playwright 會停用 Chrome DevTools。
47
+
48
+ 計算機使用僅限 macOS。在其他平台上,它被列為不可用,並且即使舊設定行包含它也會被跳過。
49
+
50
+ Chrome DevTools 預設使用 `--autoConnect`。它附加到符合條件的正在執行的 Chrome 執行個體;它不會為您建立獨立的瀏覽器設定檔案或登入使用者的常規設定檔案。它需要啟用遠端偵錯的 Chrome 144+。當部署需要特定的偵錯端點時,可以稍後新增手動 `browser-url` 設定。
51
+
52
+ 內置程序保留在框架的 `settings` 表中,位於用於個人切換的 `u:<email>:mcp-builtin-capabilities` 和用於團隊切換的 `o:<orgId>:mcp-builtin-capabilities` 下。啟用後,它們會合並到執行時 MCP 管理器中,其範圍可見性格式與遠端伺服器相同,例如 `mcp__user_<emailhash>_playwright__*` 或 `mcp__org_<orgId>_chrome-devtools__*`。
53
+
54
+ ### 面向使用者的設定說明
55
+
56
+ 對敏感的內置程序使用簡潔、明確的設定副本:
57
+
58
+ - **Chrome DevTools** 附加到正在執行的 Chrome 偵錯目標。告訴使用者
59
+ 它用於瀏覽器測試和登入驗證,並且它
60
+ 可能需要在工具出現之前啟用 Chrome 遠端偵錯。
61
+ - **Playwright** 啟動一個獨立的瀏覽器。推薦它用於確定性
62
+ 當不需要使用者的實時 Chrome 個人資料時進行品質檢查。
63
+ - **計算機使用**可以操作本機應用程式。預設關閉,解釋一下
64
+ macOS 螢幕錄製和輔助功能提示,並在拍攝前詢問
65
+ 敏感的 actions,例如購買、財務變化或帳戶更改。
66
+
67
+ ### 內置端點
68
+
69
+ | 方法 | 路線 | 目的 |
70
+ | ---- | ---------------------------- | --------------------------------------------------------------------- |
71
+ | GET | `/_agent-native/mcp/builtin` | 列出內置功能、啟用的範圍、合並的 ID 和實時狀態。 |
72
+ | POST | `/_agent-native/mcp/builtin` | 更新範圍。主體:`{ scope, enabledIds }` 或 `{ scope, id, enabled }`。 |
73
+
74
+ ## 新增本機MCP伺服器 {#adding-a-server}
75
+
76
+ 在您的工作區根目錄(或單個應用程式根目錄 - 當兩者都存在時,工作區根目錄獲勝)建立 `mcp.config.json`:
77
+
78
+ ```jsonc
79
+ {
80
+ "$schema": "https://agent-native.com/schema/mcp.config.json",
81
+ "servers": {
82
+ "claude-in-chrome": {
83
+ "command": "claude-in-chrome-mcp",
84
+ "args": [],
85
+ "env": { "LOG_LEVEL": "info" },
86
+ },
87
+ "playwright": {
88
+ "command": "npx",
89
+ "args": ["-y", "@playwright/mcp@latest"],
90
+ },
91
+ "filesystem": {
92
+ "command": "npx",
93
+ "args": [
94
+ "-y",
95
+ "@modelcontextprotocol/server-filesystem@latest",
96
+ "/Users/me/projects",
97
+ ],
98
+ },
99
+ },
100
+ }
101
+ ```
102
+
103
+ 形狀很小:由伺服器 ID 鍵入的 `servers` 對應,其中每個條目都是 stdio 啟動器(`command` + `args` + 可選的 `env`)或遠端 `{ "type": "http", "url", "headers" }` 條目。
104
+
105
+ ```an-annotated-code title="mcp.config.json,帶注釋"
106
+ {
107
+ "filename": "mcp.config.json",
108
+ "language": "jsonc",
109
+ "code": "{\n \"$schema\": \"https://agent-native.com/schema/mcp.config.json\",\n \"servers\": {\n \"claude-in-chrome\": {\n \"command\": \"claude-in-chrome-mcp\",\n \"args\": [],\n \"env\": { \"LOG_LEVEL\": \"info\" }\n },\n \"filesystem\": {\n \"command\": \"npx\",\n \"args\": [\"-y\", \"@modelcontextprotocol/server-filesystem@latest\", \"/Users/me/projects\"]\n }\n }\n}",
110
+ "annotations": [
111
+ { "lines": "3", "label": "伺服器ID", "note": "鍵成為工具前綴:該伺服器的工具在代理的註冊表中顯示為 `mcp__claude-in-chrome__*`,因此它們不會與範本的操作發生衝突。" },
112
+ { "lines": "4-6", "label": "stdio launcher", "note": "`command` + `args` 生成本機二進制檔案。 Stdio 伺服器旨在用於**本機開發**- 它們在邊缘執行時中是無操作的。" },
113
+ { "lines": "6", "label": "進程環境", "note": "Optional `env` is passed to the spawned process. Keep secrets out of committed config; prefer `MCP_SERVERS` or the settings UI for tokens." }
114
+ ]
115
+ }
116
+ ```
117
+
118
+ 在下一次應用程式啟動時,您將看到:
119
+
120
+ ```
121
+ [mcp-client] loaded config from /path/to/mcp.config.json (3 server(s))
122
+ [mcp-client] connected to claude-in-chrome: 12 tools
123
+ [mcp-client] connected to playwright: 9 tools
124
+ [mcp-client] connected to filesystem: 4 tools
125
+ ```
126
+
127
+ 這些工具在代理的工具註冊表中註冊,前綴為 `mcp__<server-id>__<tool-name>`,因此它們不會與範本的 actions 發生衝突。它們也包含在 `tool-search` 中,因此代理可以通過意圖發現新連線的 MCP 功能,而不需要預先提供確切的前綴名稱。
128
+
129
+ ## 設定優先級 {#precedence}
130
+
131
+ MCP 設定按此順序解析,第一個匹配獲勝:
132
+
133
+ 1. **工作空間根 `mcp.config.json`** — 通過 `package.json` 中的 `agent-native.workspaceCore` 檢測到。在工作區中的每個應用程式之間共用。
134
+ 2. **應用程式根 `mcp.config.json`** — 如果您不希望每個應用程式中都提供 MCP 伺服器,則按應用程式覆蓋。
135
+ 3. **`MCP_SERVERS` env var** — 具有相同形狀的 JSON 字串,適用於檔案沒有意義的 CI/正式環境。
136
+
137
+ ## 正式環境部署:`MCP_SERVERS` {#mcp-servers-env}
138
+
139
+ 對於正式環境部署,首選遠端 HTTP MCP 伺服器並設定完整設定
140
+ 形狀(或內部伺服器對應)作為環境變數:
141
+
142
+ ```bash
143
+ MCP_SERVERS='{"servers":{"zapier":{"type":"http","url":"https://mcp.example.com/mcp","headers":{"Authorization":"Bearer paste-token-value-here"}}}}'
144
+ ```
145
+
146
+ `MCP_SERVERS` 被解析為 JSON,因此 `${...}` 預留位置不會擴充功能
147
+ 在字串內。如果您將權杖存儲在另一個秘密中,請先將其展開
148
+ 寫入最終的 JSON 值。
149
+
150
+ Stdio MCP 伺服器生成本機二進制檔案,用於本機開發。
151
+ MCP 工具僅在 Node 執行時激活 - Cloudflare Workers 和其他邊缘
152
+ 目標默默地跳過 MCP 並繼續應用程式的其餘部分工作
153
+ 通常。
154
+
155
+ ## 自動檢測:`claude-in-chrome` {#autodetect}
156
+
157
+ 如果您**沒有** `mcp.config.json` 並且 `claude-in-chrome-mcp` 二進制檔案位於 `PATH`(或眾所週知的安裝位置 `~/.claude-in-chrome/bin/claude-in-chrome-mcp`)上,則本機代理會將其自動註冊為預設 MCP 伺服器。將 `AGENT_NATIVE_DISABLE_MCP_AUTODETECT=1` 設定為選取退出。
158
+
159
+ 這意味著安裝了 claude-in-chrome 擴充功能的使用者無需更改設定即可獲得對他們開啟的每個代理本機應用程式的瀏覽器控制。
160
+
161
+ ## 通過設定 UI 遠端 MCP 伺服器 {#remote-via-ui}
162
+
163
+ MCP(模型上下文協議)伺服器為您的代理提供新的能力 - 例如連線到 Zapier、Cloudflare、Composio 或您公司的內部工具。連線後,代理可以像使用內置工具一樣使用這些工具。
164
+
165
+ ### 如何連線遠端MCP伺服器
166
+
167
+ 1. **伺服器名稱** - 供您自己參考的簡短標籤(例如“zapier”、“slack-tools”)。
168
+ 2. **URL** — MCP 伺服器提供者為您提供的 HTTPS 端點(例如 `https://mcp.zapier.com/s/abc123/mcp`)。這通常可以在提供者的儀表板或整合檔案中找到。
169
+ 3. **描述**(可選)- 關於此伺服器功能的注釋。
170
+ 4. **標頭** — 伺服器所需的驗證憑證,每行一個。大多數伺服器需要 `Authorization` 標頭。範例:`Authorization: Bearer sk-your-key-here`。提供者的檔案會告訴您在此處放置什么內容。
171
+
172
+ 點選“**測試**”以在儲存之前驗證連線。如果成功,您將看到可用工具的數量。點選“**連線**”進行新增。
173
+
174
+ ### 個人與組織範圍
175
+
176
+ 支持兩個範圍:
177
+
178
+ - **個人** — 只有登入使用者才能獲得工具。存儲為使用者範圍設定。
179
+ - **團隊** — 活躍組織中的每個人都可以獲得工具。所有者和管理員可以新增;成員只能看到該列表。存儲為組織範圍設定。
180
+
181
+ 在正在執行的 MCP 管理器中新增和刪除熱重載 — 無需重新啟動進程,也無需重新啟動伺服器。新的 `mcp__<scope>-<name>__*` 工具將在下一條訊息中向客服人員顯示,並且可通過 `tool-search` 進行搜尋。
182
+
183
+ HTTPS URL 在任何地方都被接受; plain `http://` 在開發過程中僅允許用於 `localhost`。可選的驗證作為不記名權杖在每個請求上通過 `Authorization: Bearer …` 發送。
184
+
185
+ 在底層,這些伺服器以 `u:<email>:mcp-servers-remote`(個人)或 `o:<orgId>:mcp-servers-remote`(團隊)鍵儲存在框架的 `settings` 表中,並在啟動時與 `mcp.config.json` 合並。
186
+
187
+ ### HTTP端點
188
+
189
+ | 方法 | 路線 | 目的 |
190
+ | ------ | ----------------------------------------------------- | ------------------------------------------------------------------ |
191
+ | GET | `/_agent-native/mcp/servers` | 列出目前使用者的個人+組織伺服器的實時狀態。 |
192
+ | POST | `/_agent-native/mcp/servers` | 新增伺服器。身體:`{ scope, name, url, headers?, description? }`。 |
193
+ | DELETE | `/_agent-native/mcp/servers/:id?scope=user\|org` | Remove a server and reconfigure the manager. |
194
+ | POST | `/_agent-native/mcp/servers/:id/test?scope=user\|org` | Dry-run the existing server's connect + list-tools. |
195
+ | POST | `/_agent-native/mcp/servers/test` | 在持久化之前試執行任意 URL。機身:`{ url, headers? }`。 |
196
+
197
+ Stdio 伺服器在 Node 執行時之外仍然是無操作的,但遠端 HTTP MCP 伺服器可以在任何具有 `fetch` 的環境中工作 - 包括桌面正式環境版本。
198
+
199
+ ## 通過集線器共用 MCP 伺服器 {#hub}
200
+
201
+ 如果您的工作區執行多個代理本機應用程式(例如調度+郵件+剪輯),您可以將**一個**應用程式設定為中心,並讓其他應用程式自動拉取其組織範圍的MCP伺服器。沒有每個應用程式複製貼上 URL 和不記名權杖。請參閱 [Multi-App Workspace](/docs/multi-app-workspace) 了解使用 Dispatch 工作區 MCP 資源的規範方法。
202
+
203
+ Dispatch 是傳統的中心 - 它已經跨應用進行協調。
204
+
205
+ ```an-diagram title="中心模型:一個應用程式為組織範圍的 MCP 伺服器提供服務" summary="Dispatch 擁有組織範圍 MCP 伺服器;消費者應用程式將它們拉取並合並為 mcp__hub_<orgId>_<name>__*。僅共用組織範圍的行 - 個人憑證保持不變。"
206
+ {
207
+ "html": "<div class=\"mcp-hub\"><div class=\"diagram-panel center\" data-rough><span class=\"diagram-pill accent\">Dispatch hub</span><small class=\"diagram-muted\">組織範圍 MCP 伺服器</small><small class=\"diagram-muted\"><code>GET /mcp/hub/servers</code></small></div><div class=\"diagram-col arrows\"><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div></div><div class=\"diagram-col consumers\"><div class=\"diagram-box\" data-rough>Mail<br><small class=\"diagram-muted\"><code>mcp__hub_&lt;orgId&gt;_&lt;name&gt;__*</code></small></div><div class=\"diagram-box\" data-rough>Clips<br><small class=\"diagram-muted\">約每 60 秒 pull + merge</small></div></div></div><p class=\"diagram-muted note\">Bearer-gated by <code>AGENT_NATIVE_MCP_HUB_TOKEN</code>. Personal (user-scope) servers are never re-exposed.</p>",
208
+ "css": ".mcp-hub{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.mcp-hub .center{display:flex;flex-direction:column;align-items:center;gap:4px}.mcp-hub .diagram-col{display:flex;flex-direction:column;gap:10px}.mcp-hub .arrows .diagram-arrow{font-size:22px;line-height:1}.mcp-hub .note{margin:8px 0 0;font-size:.85em}.mcp-hub code{font-size:.85em}"
209
+ }
210
+ ```
211
+
212
+ 對於新的工作區設定,首選\*\*在您
213
+ 想要工作區 skills 使用相同的全應用與選定應用授權模型,
214
+ 說明和參考資源。新增工作區資源:
215
+
216
+ ```json
217
+ {
218
+ "type": "http",
219
+ "url": "https://example.com/mcp",
220
+ "headers": {
221
+ "Authorization": "Bearer ${keys.MCP_SERVER_TOKEN}"
222
+ },
223
+ "description": "Shared MCP 工具s for workspace apps"
224
+ }
225
+ ```
226
+
227
+ 將其儲存在 `mcp-servers/<name>.json` 下,型別為 `mcp-server`。所有應用
228
+ 資源由每個工作區應用程式載入;選定的資源僅載入
229
+ 具有有效調度授權的應用程式。從應用程式解析秘密預留位置
230
+ 秘密存儲,因此將原始不記名權杖放入 Dispatch Vault 並引用它們
231
+ 使用 `${keys.NAME}`,而不是將它們存儲在資源主體中。
232
+
233
+ 應用程式大約每分鐘刷新一次合並的 MCP 設定,因此是中央資源
234
+ 編輯、授予更改和刪除無需部署即可生效。設定
235
+ `AGENT_NATIVE_MCP_CONFIG_REFRESH_MS=0` 停用後台刷新,或
236
+ 將其設定為至少 `5000` 毫秒的值以調整間隔。
237
+
238
+ 下面的舊集線器模式對於粗略的“共用每個組織範圍 MCP”仍然有用
239
+ 來自 Dispatch 的伺服器”設定以及已使用 MCP 的部署
240
+ 將 UI 設定為事實來源。
241
+
242
+ ### 1。在集線器應用程式上啟用集線器服務(調度)
243
+
244
+ 在調度的部署中設定環境變數:
245
+
246
+ ```bash
247
+ AGENT_NATIVE_MCP_HUB_TOKEN=<a-long-random-secret>
248
+ ```
249
+
250
+ Dispatch 現在掛載 `GET /_agent-native/mcp/hub/servers`,它返回存儲在其 `settings` 表中的每個組織範圍 MCP 伺服器,以及完整的 URL + 標頭,並通過權杖進行驗證。
251
+
252
+ ### 2。將消費應用程式指向中心
253
+
254
+ 對每個消費者進行設定(郵件、剪輯等):
255
+
256
+ ```bash
257
+ AGENT_NATIVE_MCP_HUB_URL=https://dispatch.acme.com
258
+ AGENT_NATIVE_MCP_HUB_TOKEN=<the-same-secret>
259
+ ```
260
+
261
+ 啟動時,每個消費者都會拉取集線器的伺服器列表並將其合並到自己的 MCP 管理器中。這些工具對代理來說顯示為 `mcp__hub_<orgId>_<name>__*` — 與消費者自己的本機 `mcp__org_…` 不同,因此不會發生衝突。
262
+
263
+ ### 3。分享什么內容
264
+
265
+ 僅共用**組織範圍**伺服器。使用者範圍(個人)伺服器由新增它們的使用者保留 - 中心絕不會跨應用程式重新公開個人憑證。
266
+
267
+ 集線器回應包括完整的驗證標頭(承載權杖等)。傳輸是 HTTPS,端點需要共用金鑰,並且它僅返回組織範圍行 - 將中心 URL + 權杖視為資料庫憑證。
268
+
269
+ ### 4。熱重載與重啟
270
+
271
+ 本機 UI 通過 `McpClientManager.reconfigure()` 在每個應用程式中新增熱重載 - 無需重新啟動。集線器來源的伺服器由工作區資源路徑使用的相同定期後台刷新(大約 60 秒,可通過 `AGENT_NATIVE_MCP_CONFIG_REFRESH_MS` 調整或停用)來獲取,因此在 Dispatch 中所做的更改會在大約一分鐘內傳播到所有消費者應用程式,而無需重新啟動。此外,消費者應用程式中的任何本機突變都會立即觸發該應用程式的重新設定。
272
+
273
+ ### 端點摘要
274
+
275
+ | 方法 | 路線 | 目的 |
276
+ | ---- | -------------------------------- | -------------------------------------------------------------------------------------------------- |
277
+ | GET | `/_agent-native/mcp/hub/servers` | 為所有組織範圍的伺服器提供完整的信用(不記名門控,僅在設定 `AGENT_NATIVE_MCP_HUB_TOKEN` 時安裝)。 |
278
+ | GET | `/_agent-native/mcp/hub/status` | 返回設定UI卡的`{ serving, consuming, hubUrl }`。 |
279
+
280
+ ## 狀態路線 {#status-route}
281
+
282
+ 每個應用程式都公開 `GET /_agent-native/mcp/status` 用於工具和入門:
283
+
284
+ ```an-api
285
+ {
286
+ "method": "GET",
287
+ "path": "/_agent-native/mcp/status",
288
+ "summary": "MCP 工具和入門的用戶端狀態",
289
+ "description": "Reports which configured servers connected, the total live tool count, the merged prefixed tool list, and any per-server connection errors. Use it to build \"detected — your agent can now drive X\" hints or to debug connection problems.",
290
+ "responses": [
291
+ {
292
+ "status": "200",
293
+ "description": "Configured vs connected servers, tool inventory, and per-server errors.",
294
+ "example": "{\n \"configuredServers\": [\"claude-in-chrome\", \"playwright\"],\n \"connectedServers\": [\"claude-in-chrome\", \"playwright\"],\n \"totalTools\": 21,\n \"tools\": [\n {\n \"source\": \"claude-in-chrome\",\n \"name\": \"mcp__claude-in-chrome__navigate\",\n \"description\": \"Navigate the browser to a URL\"\n }\n ],\n \"errors\": {}\n}"
295
+ }
296
+ ]
297
+ }
298
+ ```
299
+
300
+ ```json
301
+ {
302
+ "configuredServers": ["claude-in-chrome", "playwright"],
303
+ "connectedServers": ["claude-in-chrome", "playwright"],
304
+ "totalTools": 21,
305
+ "tools": [
306
+ {
307
+ "source": "claude-in-chrome",
308
+ "name": "mcp__claude-in-chrome__navigate",
309
+ "description": "Navigate the browser to a URL"
310
+ }
311
+ ],
312
+ "errors": {}
313
+ }
314
+ ```
315
+
316
+ 使用它來建置“檢測到 claude-in-chrome - 您的代理現在可以驅動 Chrome”入門提示,或偵錯 MCP 連線問題。
317
+
318
+ ## 故障模式 {#failures}
319
+
320
+ 個別 MCP 伺服器故障永遠不會導致代理關閉:
321
+
322
+ - 設定錯誤的 `command` → 伺服器被跳過,其錯誤出現在 `errors.<server-id>` 下的 `/mcp/status` 中,而其他所有伺服器繼續工作。
323
+ - `node_modules` 中缺少 MCP SDK → 所有 MCP 功能都會被跳過並出現警告;代理聊天可以使用零 MCP 工具繼續工作。
324
+ - 在邊缘執行時中執行 → MCP 用戶端是無操作的。
325
+
326
+ 代理本機將始終啟動;損壞的 MCP 設定僅意味著工具更少。
327
+
328
+ ## 安全 {#security}
329
+
330
+ MCP 工具在您的計算機上執行,具有生成的進程具有的任何權限。像對待您願意讓代理驅動的任何其他可執行檔案列表一樣對待 `mcp.config.json`。來自 MCP 伺服器的工具出現在代理的工具使用循環中,就像您範本自己的 actions 一樣,因此請確保您信任您設定的每個伺服器。
@@ -0,0 +1,279 @@
1
+ ---
2
+ title: "MCP協議"
3
+ description: "將您的代理原生應用公開為遠端 MCP 伺服器,以便 Claude、ChatGPT、Claude 程式碼、光標和其他 AI 工具可以直接調用您應用的 actions。"
4
+ ---
5
+
6
+ # MCP協議
7
+
8
+ **此頁面:較低級別的 MCP 伺服器參考。** 每個代理本機應用程式如何通過 MCP 公開其 actions — 自動安裝的端點、驗證模式、`tools/call` / `ask-agent` 表面和自訂安裝。當您需要伺服器內部結構時,可以使用它;要連線主機,請從 [External Agents](/docs/external-agents) 開始。
9
+
10
+ | 如果你想…… | 閱讀 |
11
+ | ------------------------------------------------- | ---------------------------------------- |
12
+ | 將外部代理/主機連線到您的應用 | [External Agents](/docs/external-agents) |
13
+ | 為您的代理提供更多工具(使用其他 MCP 伺服器) | [MCP Clients](/docs/mcp-clients) |
14
+ | 建置在 Claude/ChatGPT 中渲染的內聯 UI | [MCP Apps](/docs/mcp-apps) |
15
+ | 較低級別的 MCP 伺服器參考(驗證、工具、自訂掛載) | **此頁面** — MCP 協議 |
16
+
17
+ 每個代理本機應用程式都會自動公開遠端 MCP(模型上下文協議)伺服器,因此 Claude、ChatGPT 自訂 MCP 應用程式、Claude Code、Cursor、Codex 和 VS Code GitHub Copilot 等外部 AI 工具可以直接發現並調用應用程式的 actions - 無需額外程式碼需要。如果您的目標是將其中一台主機連線到託管應用程式,[External Agents](/docs/external-agents) 涵蓋建議的單個調度連線器、每個應用程式 URL、OAuth、MCP 應用內聯 UI 和深層連結。此頁面紀錄了其下方的內容。
18
+
19
+ ## 概述 {#overview}
20
+
21
+ MCP 是用於將 AI 工具連線到外部功能的標準協議。當您部署代理本機應用程式時,它會自動安裝 MCP 端點以及現有的 A2A 端點。任何與 MCP 兼容的用戶端都可以連線並使用您應用的工具。
22
+
23
+ 關鍵概念:
24
+
25
+ - **自動安裝** — 每個應用都免費獲得 `/_agent-native/mcp`,無需設定
26
+ - **Streamable HTTP** — 在標準 HTTP (POST + SSE) 上使用現代 MCP 傳輸
27
+ - **相同的 actions** — 為代理聊天和 A2A 提供支持的完全相同的操作註冊表
28
+ - **`ask-agent` 工具** — 一種元工具,可委托給完整代理循環來執行複雜工作
29
+ - **MCP 應用程式** — actions 可以通過官方 `io.modelcontextprotocol/ui` 擴充功能來宣傳互動式 UI 資源
30
+ - **標準遠端 MCP OAuth** — OAuth 2.1 發現、動態用戶端註冊、授權程式碼 + PKCE、刷新權杖輪換
31
+ - **承載驗證回退** - 對於無法執行 OAuth 的用戶端使用 `ACCESS_TOKEN`、`ACCESS_TOKENS` 或 connect-minted JWT
32
+
33
+ ```an-diagram title="您的應用程式作為 MCP 伺服器" summary="外部主機通過 Streamable HTTP 連線。每個動作都是一個工具; Ask-agent 委托給完整的代理循環。"
34
+ {
35
+ "html": "<div class=\"diagram-mcp\"><div class=\"diagram-col\"><div class=\"diagram-node\">Claude</div><div class=\"diagram-node\">ChatGPT</div><div class=\"diagram-node\">Cursor · Codex</div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-panel\"><span class=\"diagram-pill accent\">POST /_agent-native/mcp</span><small class=\"diagram-muted\">Streamable HTTP</small><small class=\"diagram-muted\">initialize &rarr; tools/list &rarr; tools/call</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-col\"><div class=\"diagram-box\" data-rough>each action<br><small class=\"diagram-muted\">= one tool</small></div><div class=\"diagram-box\" data-rough>ask-agent<br><small class=\"diagram-muted\">&rarr; full agent loop</small></div></div></div>",
36
+ "css": ".diagram-mcp{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.diagram-mcp .diagram-col{display:flex;flex-direction:column;gap:8px}.diagram-mcp .diagram-panel{display:flex;flex-direction:column;align-items:center;gap:4px}.diagram-mcp .diagram-arrow{font-size:20px;line-height:1}"
37
+ }
38
+ ```
39
+
40
+ ## MCP vs A2A {#mcp-vs-a2a}
41
+
42
+ 兩種協議都是自動安裝的。使用適合您的用例的選項:
43
+
44
+ | | MCP | A2A |
45
+ | ------------ | ------------------------------------------------------------------- | -------------------------------------- |
46
+ | **最適合** | 調用您的應用的外部工具 | 代理間通信 |
47
+ | **協議** | MCP 可流式傳輸 HTTP | JSON-RPC 2.0 |
48
+ | **工具發現** | `tools/list` | `/.well-known/agent-card.json`的代理卡 |
49
+ | **端點** | `/_agent-native/mcp` | `/_agent-native/a2a` |
50
+ | **支持** | Claude、ChatGPT、Claude Code、Cursor、Codex、Cowork 和其他 MCP 主機 | 其他代理本機應用 |
51
+ | **執行** | 直接工具調用(無需額外的LLM) | 完整代理循環(LLM 推理) |
52
+
53
+ 您還可以使用 `ask-agent` MCP 工具來獲得兩全其美的效果 - 從 Claude 程式碼中調用它,並讓您的應用的代理通過複雜的工作進行推理。
54
+
55
+ ## 手動 MCP 用戶端設定 {#manual-config}
56
+
57
+ 對於建議的單指令設定,請使用 [External Agents](/docs/external-agents)。如果您為支持 OAuth 的用戶端手寫 MCP 設定,請將您的應用新增為不帶靜態標頭的遠端 MCP 伺服器:
58
+
59
+ ```bash
60
+ claude mcp add --transport http mail https://mail.example.com/_agent-native/mcp
61
+ ```
62
+
63
+ 或者在 `.mcp.json`(專案範圍)或 `~/.claude.json`(使用者範圍)中手動寫入條目:
64
+
65
+ ```jsonc
66
+ // .mcp.json
67
+ {
68
+ "mcpServers": {
69
+ "mail": {
70
+ "type": "http",
71
+ "url": "https://mail.example.com/_agent-native/mcp",
72
+ },
73
+ },
74
+ }
75
+ ```
76
+
77
+ 然後在Claude程式碼中執行`/mcp`並選取**驗證**。對於無法執行遠端 MCP OAuth 的用戶端,請使用“連線”頁面或帶有 `headers.Authorization` 的靜態承載權杖條目。經過驗證後,您可以自然地使用應用程式的工具:
78
+
79
+ ```
80
+ > draft an email to John about the Q3 report
81
+
82
+ Claude Code calls: draft-email(to: "john@example.com", subject: "Q3 Report", body: "...")
83
+ ```
84
+
85
+ ## 從其他MCP用戶端連線 {#other-clients}
86
+
87
+ 任何支持 Streamable HTTP 傳輸的 MCP 用戶端都可以連線。端點是:
88
+
89
+ ```
90
+ POST https://your-app.example.com/_agent-native/mcp
91
+ ```
92
+
93
+ 伺服器支持標準MCP握手:`initialize`→`initialized`→`tools/list`→`tools/call`。
94
+
95
+ ```an-api title="MCP端點" summary="每個代理本機應用程式都會公開自動安裝的 Streamable HTTP 端點。"
96
+ {
97
+ "method": "POST",
98
+ "path": "/_agent-native/mcp",
99
+ "summary": "MCP 可流式 HTTP 端點",
100
+ "description": "Auto-mounted on every app. Speaks the standard MCP handshake (`initialize` → `initialized` → `tools/list` → `tools/call`) plus `resources/list`, `resources/templates/list`, and `resources/read` when an action declares `mcpApp`. Each action maps to one tool; `ask-agent` delegates to the full agent loop.",
101
+ "auth": "Standard remote MCP OAuth (Bearer access token), connect-minted JWT, or static ACCESS_TOKEN/ACCESS_TOKENS",
102
+ "params": [
103
+ { "name": "Authorization", "in": "header", "type": "string", "required": false, "description": "Bearer access token. Required except for loopback local-dev probes." },
104
+ { "name": "method", "in": "body", "type": "string", "required": true, "description": "MCP method, e.g. initialize, tools/list, tools/call." }
105
+ ],
106
+ "request": {
107
+ "contentType": "application/json",
108
+ "example": "{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"ask-agent\",\n \"arguments\": { \"message\": \"Summarize Q3 signups by source\" }\n }\n}"
109
+ },
110
+ "responses": [
111
+ { "status": "200", "description": "MCP result (POST + SSE)." },
112
+ { "status": "401", "description": "Unauthenticated — responds with a WWW-Authenticate header pointing at OAuth discovery." }
113
+ ]
114
+ }
115
+ ```
116
+
117
+ 如果操作聲明 `mcpApp`,伺服器還會通告官方 MCP 應用擴充功能 (`io.modelcontextprotocol/ui`),並支持應用資源的 `resources/list`、`resources/templates/list` 和 `resources/read`。渲染 MCP 應用程式的主機可以內聯顯示 UI;不這樣做的主機仍然可以調用該工具並使用深層連結後備。產品 UI 應使用 `embedApp()`,因此內聯表面是真正的 React 應用程式路由,或者呈現共用 React 元件(例如 Analytics 圖表)的集中路由,而不是單獨的普通 HTML 實現。伺服器發出標準 MCP 應用元資料和 ChatGPT 應用 SDK 兼容性元資料,以便支持應用程式的主機可以找到相同的 `ui://` 資源。目前官方擴充功能矩陣包括Claude、Claude Desktop、VS Code GitHub Copilot、Goose、Postman、MCPJam、ChatGPT、Cursor;主機支持因版本和計畫而異,因此請使用 [External Agents MCP Apps notes](/docs/external-agents#mcp-apps-compatibility) 來獲取面向使用者的指導。
118
+
119
+ ### MCP 應用嵌入橋 {#mcp-app-embed-bridge}
120
+
121
+ `embedApp()` 是低級 URL-first MCP 應用程式助手:它啟動簽名的應用程式
122
+ 通過移植 (Claude)、受控幀 (ChatGPT) 或直接進行內聯路由
123
+ 導覽,通過 `ui/*` JSON-RPC 橋(以及
124
+ `agentNative.mcpHost.*` postMessage 中繼用於受控幀路徑),以及
125
+ 限制資源外殼高度,因此完整應用程式路由不會呈現為
126
+ 超大的聊天神器。
127
+
128
+ 有關完整嵌入橋的詳細資訊,請參閱 [MCP Apps](/docs/mcp-apps#mcp-app-bridge) - 移植與受控框架、`ui/*` 和 postMessage 表、`create_embed_session` / `embedStartUrl`、CSP 和域規則、擴充功能 `srcDoc` 嵌入、高度限制和主橋用戶端 API。
129
+
130
+ ## 工具 {#tools}
131
+
132
+ 每個調用者預設都會獲得一個**緊湊目錄**(範本聲明的應用程式 actions 加上跨應用程式內置),完整的操作介面僅在明確選取加入時提供,並且 `tool-search` 始終可用於到達其餘部分。完整解釋請參見 [External Agents → Catalog tiers](/docs/external-agents#catalog-tiers)。
133
+
134
+ 每個操作都直接對應到一個 MCP 工具:
135
+
136
+ | 操作屬性 | MCP工具屬性 |
137
+ | ------------------ | ------------- |
138
+ | `tool.description` | `description` |
139
+ | `tool.parameters` | `inputSchema` |
140
+ | 操作名稱 | 工具名稱 |
141
+
142
+ 當存在`mcpApp`時,工具條目還包括`_meta.ui.resourceUri`、`_meta["ui/resourceUri"]`和`_meta["openai/outputTemplate"]`,並且相應的`ui://`資源返回為`text/html;profile=mcp-app`。
143
+
144
+ ### `ask-agent` 工具 {#ask-agent}
145
+
146
+ 除了單獨的操作工具外,每個 MCP 伺服器還包含一個 `ask-agent` 元工具。這會向應用程式的 AI 代理發送一條自然語言訊息並返回回應。
147
+
148
+ 使用 `ask-agent` 執行複雜工作,受益於代理的推理和上下文:
149
+
150
+ ```json
151
+ {
152
+ "name": "ask-agent",
153
+ "arguments": {
154
+ "message": "Draft a follow-up email to the Q3 planning thread with John, summarizing the action items we discussed"
155
+ }
156
+ }
157
+ ```
158
+
159
+ 代理執行與互動式聊天相同的循環 - 它可以調用多個工具、推理上下文並生成深思熟慮的回應。
160
+
161
+ ## 驗證 {#authentication}
162
+
163
+ MCP 端點支持標準遠端 MCP OAuth 以及現有的不記名權杖後備:
164
+
165
+ | 模式 | 它是如何工作的 |
166
+ | -------------------- | ------------------------------------------------------------------------------------------------ |
167
+ | 標準MCP OAuth | 用戶端從`WWW-Authenticate`發現驗證,註冊,執行PKCE,並發送`Authorization: Bearer <access-token>` |
168
+ | 連線鑄造JWT | `npx @agent-native/core@latest connect` / Connect 頁面鑄造一個每使用者、可撤銷的 JWT |
169
+ | `ACCESS_TOKEN` | 靜態不記名權杖 - 用戶端發送 `Authorization: Bearer <token>` |
170
+ | `ACCESS_TOKENS` | 以逗號分隔的有效靜態不記名權杖列表 |
171
+ | `A2A_SECRET` | 基於 JWT 的驗證 - 權杖通過加密方式進行驗證 |
172
+ | _(未設定,僅環回)_ | 本機開發探針不需要驗證 |
173
+
174
+ 對於支持 OAuth 的 MCP 主機,設定不帶靜態標頭的遠端伺服器 URL:
175
+
176
+ ```bash
177
+ claude mcp add --transport http agent-native https://dispatch.agent-native.com/_agent-native/mcp
178
+ ```
179
+
180
+ 第一個未經驗證的 MCP 請求收到:
181
+
182
+ ```http
183
+ HTTP/1.1 401 Unauthorized
184
+ WWW-Authenticate: Bearer resource_metadata="https://dispatch.agent-native.com/.well-known/oauth-protected-resource", scope="mcp:read mcp:write mcp:apps"
185
+ ```
186
+
187
+ 發現端點:
188
+
189
+ | 端點 | 目的 |
190
+ | ----------------------------------------- | ------------------------- |
191
+ | `/.well-known/oauth-protected-resource` | RFC 9728 受保護資源元資料 |
192
+ | `/.well-known/oauth-authorization-server` | OAuth 授權伺服器元資料 |
193
+ | `/_agent-native/mcp/oauth/register` | 動態公開用戶端註冊 |
194
+ | `/_agent-native/mcp/oauth/authorize` | 瀏覽器授權+同意 |
195
+ | `/_agent-native/mcp/oauth/token` | 授權程式碼和刷新權杖授予 |
196
+
197
+ ```an-diagram title="OAuth 發現流程" summary="401 啟動發現、註冊和 PKCE 授權 → 權杖交換。不記名權杖是受受眾限制和範圍的。"
198
+ {
199
+ "html": "<div class=\"diagram-oauth\"><div class=\"diagram-box\" data-rough>first request<br><small class=\"diagram-muted\">no token</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-pill warn\">401 · WWW-Authenticate</div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-panel\"><span class=\"diagram-pill\">/.well-known/oauth-protected-resource</span><span class=\"diagram-pill\">/.well-known/oauth-authorization-server</span><small class=\"diagram-muted\">discover</small></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-col\"><div class=\"diagram-pill\">register</div><div class=\"diagram-pill\">authorize (PKCE)</div><div class=\"diagram-pill\">token</div></div><div class=\"diagram-arrow diagram-muted\" aria-hidden=\"true\">&rarr;</div><div class=\"diagram-box\" data-rough>Bearer access token<br><small class=\"diagram-muted\">綁定 audience · mcp:read / write / apps</small></div></div>",
200
+ "css": ".diagram-oauth{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.diagram-oauth .diagram-panel{display:flex;flex-direction:column;align-items:center;gap:4px}.diagram-oauth .diagram-col{display:flex;flex-direction:column;gap:6px}.diagram-oauth .diagram-arrow{font-size:20px;line-height:1}"
201
+ }
202
+ ```
203
+
204
+ 存取權杖是經過簽名的 JWT,其受眾是確切的 MCP 資源 URL。伺服器僅接受為其自身頒發的權杖,並在列出/調用工具之前應用範圍:
205
+
206
+ | 範圍 | 允許 |
207
+ | ----------- | --------------------------------- |
208
+ | `mcp:read` | 唯讀 actions |
209
+ | `mcp:write` | 突變 actions 和 `ask-agent` |
210
+ | `mcp:apps` | MCP 應用資源(`ui://` HTML 資源) |
211
+
212
+ 刷新權杖僅存儲為哈希值,並在每次刷新時輪換。預設情況下,`npx @agent-native/core@latest connect` 為 Claude 程式碼用戶端寫入僅 URL 的 OAuth 條目;保留連線頁面、`npx @agent-native/core@latest connect --token <token>` 和靜態承載設定以用於本機 stdio 代理、舊用戶端和緊急/偵錯流程。
213
+
214
+ ## 自訂 MCP 設定 {#custom-setup}
215
+
216
+ MCP 伺服器由代理聊天外掛自動安裝。對於大多數應用程式,無需設定。如果您需要自訂行為,您可以在伺服器外掛中手動安裝它:
217
+
218
+ ```ts
219
+ // server/plugins/mcp.ts
220
+ import { mountMCP } from "@agent-native/core/mcp";
221
+ import { autoDiscoverActions } from "@agent-native/core/server";
222
+
223
+ export default defineNitroPlugin(async (nitro) => {
224
+ const actions = await autoDiscoverActions(import.meta.url);
225
+
226
+ mountMCP(nitro, {
227
+ name: "My App",
228
+ description: "Custom MCP server",
229
+ actions,
230
+ // Optional: provide ask-agent handler
231
+ askAgent: async (message) => {
232
+ // Your custom agent logic
233
+ return "Response";
234
+ },
235
+ // Optional: override the route prefix (default "/_agent-native")
236
+ // routePrefix: "/_agent-native",
237
+ });
238
+ });
239
+ ```
240
+
241
+ ## 範例:來自 Claude 程式碼的分析 {#example}
242
+
243
+ 您在 `analytics.example.com` 部署了分析應用程式。來自Claude程式碼:
244
+
245
+ ```bash
246
+ claude mcp add --transport http analytics https://analytics.example.com/_agent-native/mcp
247
+ ```
248
+
249
+ 或者在`.mcp.json`中手動新增:
250
+
251
+ ```jsonc
252
+ // .mcp.json
253
+ {
254
+ "mcpServers": {
255
+ "analytics": {
256
+ "type": "http",
257
+ "url": "https://analytics.example.com/_agent-native/mcp",
258
+ },
259
+ },
260
+ }
261
+ ```
262
+
263
+ 現在在 Claude 程式碼中:
264
+
265
+ ```
266
+ > How many signups did we get last week?
267
+
268
+ Claude Code calls: run-query(sql: "SELECT count(*) FROM signups WHERE created_at > now() - interval '7 days'")
269
+ → "1,247 signups last week"
270
+ ```
271
+
272
+ 對於更複雜的分析:
273
+
274
+ ```
275
+ > Ask the analytics agent to prepare a full breakdown of Q3 signups by source, with trends
276
+
277
+ Claude Code calls: ask-agent(message: "Prepare a full breakdown of Q3 signups by source, with trends")
278
+ → The analytics agent runs multiple queries, reasons about the data, and returns a formatted report
279
+ ```