@agent-native/core 0.106.2 → 0.107.0

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 (240) hide show
  1. package/corpus/README.md +2 -2
  2. package/corpus/core/CHANGELOG.md +19 -0
  3. package/corpus/core/docs/content/external-agents.mdx +8 -0
  4. package/corpus/core/docs/content/integrations.mdx +597 -0
  5. package/corpus/core/docs/content/locales/ar-SA/external-agents.mdx +7 -0
  6. package/corpus/core/docs/content/locales/ar-SA/mcp-clients.mdx +19 -1
  7. package/corpus/core/docs/content/locales/ar-SA/mcp-protocol.mdx +7 -0
  8. package/corpus/core/docs/content/locales/de-DE/external-agents.mdx +9 -0
  9. package/corpus/core/docs/content/locales/de-DE/mcp-clients.mdx +22 -1
  10. package/corpus/core/docs/content/locales/de-DE/mcp-protocol.mdx +9 -0
  11. package/corpus/core/docs/content/locales/es-ES/external-agents.mdx +9 -0
  12. package/corpus/core/docs/content/locales/es-ES/mcp-clients.mdx +23 -1
  13. package/corpus/core/docs/content/locales/es-ES/mcp-protocol.mdx +9 -0
  14. package/corpus/core/docs/content/locales/fr-FR/external-agents.mdx +9 -0
  15. package/corpus/core/docs/content/locales/fr-FR/mcp-clients.mdx +23 -1
  16. package/corpus/core/docs/content/locales/fr-FR/mcp-protocol.mdx +9 -0
  17. package/corpus/core/docs/content/locales/hi-IN/external-agents.mdx +8 -0
  18. package/corpus/core/docs/content/locales/hi-IN/mcp-clients.mdx +22 -1
  19. package/corpus/core/docs/content/locales/hi-IN/mcp-protocol.mdx +8 -0
  20. package/corpus/core/docs/content/locales/ja-JP/external-agents.mdx +8 -0
  21. package/corpus/core/docs/content/locales/ja-JP/mcp-clients.mdx +21 -1
  22. package/corpus/core/docs/content/locales/ja-JP/mcp-protocol.mdx +8 -0
  23. package/corpus/core/docs/content/locales/ko-KR/external-agents.mdx +8 -0
  24. package/corpus/core/docs/content/locales/ko-KR/mcp-clients.mdx +20 -1
  25. package/corpus/core/docs/content/locales/ko-KR/mcp-protocol.mdx +8 -0
  26. package/corpus/core/docs/content/locales/pt-BR/external-agents.mdx +9 -0
  27. package/corpus/core/docs/content/locales/pt-BR/mcp-clients.mdx +22 -1
  28. package/corpus/core/docs/content/locales/pt-BR/mcp-protocol.mdx +9 -0
  29. package/corpus/core/docs/content/locales/zh-CN/external-agents.mdx +6 -0
  30. package/corpus/core/docs/content/locales/zh-CN/mcp-clients.mdx +17 -1
  31. package/corpus/core/docs/content/locales/zh-CN/mcp-protocol.mdx +6 -0
  32. package/corpus/core/docs/content/locales/zh-TW/external-agents.mdx +6 -0
  33. package/corpus/core/docs/content/locales/zh-TW/mcp-clients.mdx +17 -1
  34. package/corpus/core/docs/content/locales/zh-TW/mcp-protocol.mdx +6 -0
  35. package/corpus/core/docs/content/mcp-clients.mdx +51 -1
  36. package/corpus/core/docs/content/mcp-protocol.mdx +8 -0
  37. package/corpus/core/docs/content/organizations-teams-permissions.mdx +413 -0
  38. package/corpus/core/package.json +1 -1
  39. package/corpus/core/src/client/AssistantChat.tsx +13 -1
  40. package/corpus/core/src/client/chat/message-components.tsx +41 -0
  41. package/corpus/core/src/client/composer/TiptapComposer.tsx +45 -8
  42. package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +30 -11
  43. package/corpus/core/src/client/resources/McpConnectionSuggestion.tsx +240 -0
  44. package/corpus/core/src/client/resources/McpIntegrationDialog.tsx +159 -40
  45. package/corpus/core/src/client/resources/mcp-integration-catalog.ts +433 -4
  46. package/corpus/core/src/client/resources/mcp-integration-logos.ts +108 -0
  47. package/corpus/core/src/deploy/build.ts +32 -0
  48. package/corpus/core/src/extensions/html-shell.ts +33 -1
  49. package/corpus/core/src/ingestion/office.ts +1 -2
  50. package/corpus/core/src/ingestion/pptx.ts +2 -4
  51. package/corpus/core/src/localization/default-messages.ts +126 -1
  52. package/corpus/core/src/mcp/actions/call-mcp-tool.ts +1 -0
  53. package/corpus/core/src/mcp/builtin-tools.ts +115 -10
  54. package/corpus/core/src/server/index.ts +4 -0
  55. package/corpus/core/src/server/org-admin.ts +28 -0
  56. package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +9 -0
  57. package/corpus/core/src/templates/workspace-core/.agents/skills/extensions/references/api.md +31 -0
  58. package/corpus/core/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +9 -0
  59. package/corpus/templates/analytics/.agents/skills/creative-context/SKILL.md +64 -0
  60. package/corpus/templates/analytics/AGENTS.md +5 -0
  61. package/corpus/templates/analytics/actions/clone-creative-context-dashboard.ts +86 -0
  62. package/corpus/templates/analytics/app/components/layout/Layout.tsx +2 -0
  63. package/corpus/templates/analytics/app/i18n/zh-TW.ts +1 -0
  64. package/corpus/templates/analytics/app/i18n-data.ts +1 -0
  65. package/corpus/templates/analytics/app/pages/Ask.tsx +8 -4
  66. package/corpus/templates/analytics/app/pages/adhoc/sql-dashboard/index.tsx +59 -0
  67. package/corpus/templates/analytics/app/routes/agent.tsx +7 -1
  68. package/corpus/templates/analytics/changelog/2026-07-17-library-now-flags-published-dashboards-with-newer-versions-a.md +6 -0
  69. package/corpus/templates/analytics/changelog/2026-07-17-resources-can-be-added-to-creative-context-from-their-action.md +6 -0
  70. package/corpus/templates/analytics/changelog/2026-07-17-you-can-add-exact-approved-artifact-versions-to-governed-cre.md +6 -0
  71. package/corpus/templates/analytics/package.json +1 -0
  72. package/corpus/templates/analytics/server/lib/native-creative-context.ts +158 -0
  73. package/corpus/templates/analytics/server/plugins/creative-context.ts +10 -0
  74. package/corpus/templates/assets/.agents/skills/creative-context/SKILL.md +12 -3
  75. package/corpus/templates/assets/AGENTS.md +5 -0
  76. package/corpus/templates/assets/actions/clone-creative-context-asset.ts +74 -0
  77. package/corpus/templates/assets/app/hooks/use-navigation-state.ts +2 -1
  78. package/corpus/templates/assets/app/routes/brand-kits.$id.tsx +308 -178
  79. package/corpus/templates/assets/app/routes/library.tsx +5 -11
  80. package/corpus/templates/assets/changelog/2026-07-17-library-now-flags-published-assets-with-newer-versions-and-l.md +6 -0
  81. package/corpus/templates/assets/changelog/2026-07-17-you-can-add-exact-approved-artifact-versions-to-governed-cre.md +6 -0
  82. package/corpus/templates/assets/server/lib/native-creative-context.ts +198 -0
  83. package/corpus/templates/assets/server/plugins/creative-context.ts +4 -0
  84. package/corpus/templates/brain/actions/provider-api-request.ts +1 -0
  85. package/corpus/templates/calendar/actions/provider-api-request.ts +1 -0
  86. package/corpus/templates/clips/actions/get-recording-insights.ts +7 -4
  87. package/corpus/templates/clips/actions/list-recordings.ts +48 -0
  88. package/corpus/templates/clips/actions/list-viewers.ts +2 -1
  89. package/corpus/templates/clips/app/components/editor/stitch-manager.tsx +3 -1
  90. package/corpus/templates/clips/app/components/player/share-dialog.tsx +1 -3
  91. package/corpus/templates/clips/app/hooks/use-desktop-promo.ts +11 -6
  92. package/corpus/templates/clips/app/hooks/use-view-tracking.ts +6 -1
  93. package/corpus/templates/clips/app/lib/ffmpeg-export.ts +4 -2
  94. package/corpus/templates/clips/app/routes/share.$shareId.tsx +21 -3
  95. package/corpus/templates/clips/changelog/2026-07-17-dictation-keeps-sentence-spacing-and-no-longer-crashes-when-.md +6 -0
  96. package/corpus/templates/clips/changelog/2026-07-17-shared-clips-now-preserve-editor-access-and-show-editor-insi.md +6 -0
  97. package/corpus/templates/clips/changelog/2026-07-17-stitching-clips-no-longer-fails-when-editor-media-metadata-i.md +6 -0
  98. package/corpus/templates/clips/server/routes/api/public-recording.get.ts +14 -8
  99. package/corpus/templates/clips/shared/view-analytics.ts +4 -0
  100. package/corpus/templates/content/.agents/skills/creative-context/SKILL.md +12 -3
  101. package/corpus/templates/content/AGENTS.md +5 -0
  102. package/corpus/templates/content/actions/clone-creative-context-document.ts +61 -0
  103. package/corpus/templates/content/actions/provider-api-request.ts +1 -0
  104. package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +21 -0
  105. package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +29 -0
  106. package/corpus/templates/content/changelog/2026-07-17-library-now-flags-published-documents-with-newer-versions-an.md +6 -0
  107. package/corpus/templates/content/changelog/2026-07-17-resources-can-be-added-to-creative-context-from-their-action.md +6 -0
  108. package/corpus/templates/content/changelog/2026-07-17-you-can-add-exact-approved-artifact-versions-to-governed-cre.md +6 -0
  109. package/corpus/templates/content/parity/matrix.md +1 -1
  110. package/corpus/templates/content/parity/matrix.ts +1 -0
  111. package/corpus/templates/content/server/lib/native-creative-context.ts +191 -0
  112. package/corpus/templates/content/server/plugins/creative-context.ts +8 -1
  113. package/corpus/templates/design/.agents/skills/creative-context/SKILL.md +11 -3
  114. package/corpus/templates/design/AGENTS.md +5 -0
  115. package/corpus/templates/design/actions/clone-creative-context-design-native.ts +111 -0
  116. package/corpus/templates/design/actions/provider-api-request.ts +1 -0
  117. package/corpus/templates/design/app/pages/Index.tsx +44 -0
  118. package/corpus/templates/design/app/pages/design-editor/types.ts +1 -0
  119. package/corpus/templates/design/changelog/2026-07-17-library-now-flags-published-designs-with-newer-versions-and-.md +6 -0
  120. package/corpus/templates/design/changelog/2026-07-17-resources-can-be-added-to-creative-context-from-their-action.md +6 -0
  121. package/corpus/templates/design/changelog/2026-07-17-you-can-add-exact-approved-artifact-versions-to-governed-cre.md +6 -0
  122. package/corpus/templates/design/server/lib/native-creative-context.ts +265 -0
  123. package/corpus/templates/design/server/plugins/creative-context.ts +8 -1
  124. package/corpus/templates/dispatch/actions/provider-api-request.ts +1 -0
  125. package/corpus/templates/mail/actions/provider-api-request.ts +1 -0
  126. package/corpus/templates/slides/.agents/skills/creative-context/SKILL.md +11 -3
  127. package/corpus/templates/slides/AGENTS.md +5 -0
  128. package/corpus/templates/slides/actions/clone-creative-context-deck.ts +96 -0
  129. package/corpus/templates/slides/actions/extract-pdf.ts +3 -2
  130. package/corpus/templates/slides/actions/import-file.ts +3 -2
  131. package/corpus/templates/slides/actions/provider-api-request.ts +1 -0
  132. package/corpus/templates/slides/app/components/deck/DeckCard.tsx +27 -0
  133. package/corpus/templates/slides/app/components/editor/EditorToolbar.tsx +21 -0
  134. package/corpus/templates/slides/changelog/2026-07-17-library-now-flags-published-decks-with-newer-versions-and-le.md +6 -0
  135. package/corpus/templates/slides/changelog/2026-07-17-pdf-and-powerpoint-imports-now-work-reliably-in-hosted-decks.md +6 -0
  136. package/corpus/templates/slides/changelog/2026-07-17-resources-can-be-added-to-creative-context-from-their-action.md +6 -0
  137. package/corpus/templates/slides/changelog/2026-07-17-you-can-add-exact-approved-artifact-versions-to-governed-cre.md +6 -0
  138. package/corpus/templates/slides/server/lib/native-creative-context.ts +288 -0
  139. package/corpus/templates/slides/server/plugins/creative-context.ts +4 -0
  140. package/dist/client/AssistantChat.d.ts.map +1 -1
  141. package/dist/client/AssistantChat.js +8 -2
  142. package/dist/client/AssistantChat.js.map +1 -1
  143. package/dist/client/chat/message-components.d.ts.map +1 -1
  144. package/dist/client/chat/message-components.js +35 -1
  145. package/dist/client/chat/message-components.js.map +1 -1
  146. package/dist/client/composer/TiptapComposer.d.ts +7 -0
  147. package/dist/client/composer/TiptapComposer.d.ts.map +1 -1
  148. package/dist/client/composer/TiptapComposer.js +37 -8
  149. package/dist/client/composer/TiptapComposer.js.map +1 -1
  150. package/dist/client/integrations/IntegrationsPanel.d.ts.map +1 -1
  151. package/dist/client/integrations/IntegrationsPanel.js +3 -2
  152. package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
  153. package/dist/client/resources/McpConnectionSuggestion.d.ts +9 -0
  154. package/dist/client/resources/McpConnectionSuggestion.d.ts.map +1 -0
  155. package/dist/client/resources/McpConnectionSuggestion.js +115 -0
  156. package/dist/client/resources/McpConnectionSuggestion.js.map +1 -0
  157. package/dist/client/resources/McpIntegrationDialog.d.ts +2 -1
  158. package/dist/client/resources/McpIntegrationDialog.d.ts.map +1 -1
  159. package/dist/client/resources/McpIntegrationDialog.js +48 -20
  160. package/dist/client/resources/McpIntegrationDialog.js.map +1 -1
  161. package/dist/client/resources/mcp-integration-catalog.d.ts +9 -0
  162. package/dist/client/resources/mcp-integration-catalog.d.ts.map +1 -1
  163. package/dist/client/resources/mcp-integration-catalog.js +387 -4
  164. package/dist/client/resources/mcp-integration-catalog.js.map +1 -1
  165. package/dist/client/resources/mcp-integration-logos.d.ts +2 -0
  166. package/dist/client/resources/mcp-integration-logos.d.ts.map +1 -0
  167. package/dist/client/resources/mcp-integration-logos.js +109 -0
  168. package/dist/client/resources/mcp-integration-logos.js.map +1 -0
  169. package/dist/deploy/build.d.ts.map +1 -1
  170. package/dist/deploy/build.js +23 -0
  171. package/dist/deploy/build.js.map +1 -1
  172. package/dist/extensions/html-shell.d.ts.map +1 -1
  173. package/dist/extensions/html-shell.js +33 -1
  174. package/dist/extensions/html-shell.js.map +1 -1
  175. package/dist/ingestion/office.d.ts.map +1 -1
  176. package/dist/ingestion/office.js +1 -2
  177. package/dist/ingestion/office.js.map +1 -1
  178. package/dist/ingestion/pptx.js +2 -4
  179. package/dist/ingestion/pptx.js.map +1 -1
  180. package/dist/localization/default-messages.d.ts +98 -0
  181. package/dist/localization/default-messages.d.ts.map +1 -1
  182. package/dist/localization/default-messages.js +99 -1
  183. package/dist/localization/default-messages.js.map +1 -1
  184. package/dist/mcp/actions/call-mcp-tool.js +1 -0
  185. package/dist/mcp/actions/call-mcp-tool.js.map +1 -1
  186. package/dist/mcp/builtin-tools.d.ts.map +1 -1
  187. package/dist/mcp/builtin-tools.js +87 -6
  188. package/dist/mcp/builtin-tools.js.map +1 -1
  189. package/dist/provider-api/corpus-jobs.d.ts +2 -2
  190. package/dist/server/index.d.ts +1 -0
  191. package/dist/server/index.d.ts.map +1 -1
  192. package/dist/server/index.js +1 -0
  193. package/dist/server/index.js.map +1 -1
  194. package/dist/server/org-admin.d.ts +3 -0
  195. package/dist/server/org-admin.d.ts.map +1 -0
  196. package/dist/server/org-admin.js +24 -0
  197. package/dist/server/org-admin.js.map +1 -0
  198. package/dist/server/transcribe-voice.d.ts +1 -1
  199. package/dist/templates/workspace-core/.agents/skills/extensions/SKILL.md +9 -0
  200. package/dist/templates/workspace-core/.agents/skills/extensions/references/api.md +31 -0
  201. package/dist/templates/workspace-core/.agents/skills/external-agents/SKILL.md +9 -0
  202. package/docs/content/external-agents.mdx +8 -0
  203. package/docs/content/integrations.mdx +597 -0
  204. package/docs/content/locales/ar-SA/external-agents.mdx +7 -0
  205. package/docs/content/locales/ar-SA/mcp-clients.mdx +19 -1
  206. package/docs/content/locales/ar-SA/mcp-protocol.mdx +7 -0
  207. package/docs/content/locales/de-DE/external-agents.mdx +9 -0
  208. package/docs/content/locales/de-DE/mcp-clients.mdx +22 -1
  209. package/docs/content/locales/de-DE/mcp-protocol.mdx +9 -0
  210. package/docs/content/locales/es-ES/external-agents.mdx +9 -0
  211. package/docs/content/locales/es-ES/mcp-clients.mdx +23 -1
  212. package/docs/content/locales/es-ES/mcp-protocol.mdx +9 -0
  213. package/docs/content/locales/fr-FR/external-agents.mdx +9 -0
  214. package/docs/content/locales/fr-FR/mcp-clients.mdx +23 -1
  215. package/docs/content/locales/fr-FR/mcp-protocol.mdx +9 -0
  216. package/docs/content/locales/hi-IN/external-agents.mdx +8 -0
  217. package/docs/content/locales/hi-IN/mcp-clients.mdx +22 -1
  218. package/docs/content/locales/hi-IN/mcp-protocol.mdx +8 -0
  219. package/docs/content/locales/ja-JP/external-agents.mdx +8 -0
  220. package/docs/content/locales/ja-JP/mcp-clients.mdx +21 -1
  221. package/docs/content/locales/ja-JP/mcp-protocol.mdx +8 -0
  222. package/docs/content/locales/ko-KR/external-agents.mdx +8 -0
  223. package/docs/content/locales/ko-KR/mcp-clients.mdx +20 -1
  224. package/docs/content/locales/ko-KR/mcp-protocol.mdx +8 -0
  225. package/docs/content/locales/pt-BR/external-agents.mdx +9 -0
  226. package/docs/content/locales/pt-BR/mcp-clients.mdx +22 -1
  227. package/docs/content/locales/pt-BR/mcp-protocol.mdx +9 -0
  228. package/docs/content/locales/zh-CN/external-agents.mdx +6 -0
  229. package/docs/content/locales/zh-CN/mcp-clients.mdx +17 -1
  230. package/docs/content/locales/zh-CN/mcp-protocol.mdx +6 -0
  231. package/docs/content/locales/zh-TW/external-agents.mdx +6 -0
  232. package/docs/content/locales/zh-TW/mcp-clients.mdx +17 -1
  233. package/docs/content/locales/zh-TW/mcp-protocol.mdx +6 -0
  234. package/docs/content/mcp-clients.mdx +51 -1
  235. package/docs/content/mcp-protocol.mdx +8 -0
  236. package/docs/content/organizations-teams-permissions.mdx +413 -0
  237. package/package.json +1 -1
  238. package/src/templates/workspace-core/.agents/skills/extensions/SKILL.md +9 -0
  239. package/src/templates/workspace-core/.agents/skills/extensions/references/api.md +31 -0
  240. package/src/templates/workspace-core/.agents/skills/external-agents/SKILL.md +9 -0
@@ -1,4 +1,5 @@
1
1
  import { normalizeMcpIntegrationsConfig, } from "../../shared/mcp-integration-config.js";
2
+ import { mcpIntegrationLogo } from "./mcp-integration-logos.js";
2
3
  export const DEFAULT_MCP_INTEGRATIONS = [
3
4
  {
4
5
  id: "context7",
@@ -10,6 +11,10 @@ export const DEFAULT_MCP_INTEGRATIONS = [
10
11
  useCaseKey: "mcpIntegrations.catalog.context7.useCase",
11
12
  url: "https://mcp.context7.com/mcp",
12
13
  authMode: "none",
14
+ connectionMode: "direct",
15
+ availability: "ready",
16
+ verification: "verified",
17
+ logoUrl: mcpIntegrationLogo("context7"),
13
18
  docsUrl: "https://context7.com/",
14
19
  keywords: ["docs", "documentation", "libraries", "frameworks"],
15
20
  },
@@ -23,6 +28,10 @@ export const DEFAULT_MCP_INTEGRATIONS = [
23
28
  useCaseKey: "mcpIntegrations.catalog.sentry.useCase",
24
29
  url: "https://mcp.sentry.dev/mcp",
25
30
  authMode: "headers",
31
+ connectionMode: "headers",
32
+ availability: "ready",
33
+ verification: "preflight-only",
34
+ logoUrl: mcpIntegrationLogo("sentry"),
26
35
  docsUrl: "https://docs.sentry.io/product/sentry-mcp/",
27
36
  headerPlaceholder: "Authorization: Bearer <sentry-token>",
28
37
  keywords: ["errors", "monitoring", "debugging", "issues"],
@@ -35,9 +44,14 @@ export const DEFAULT_MCP_INTEGRATIONS = [
35
44
  descriptionKey: "mcpIntegrations.catalog.notion.description",
36
45
  useCase: "documentation, knowledge management, notes, content creation",
37
46
  useCaseKey: "mcpIntegrations.catalog.notion.useCase",
38
- url: "https://mcp.notion.com/sse",
47
+ url: "https://mcp.notion.com/mcp",
39
48
  authMode: "oauth",
40
- docsUrl: "https://developers.notion.com/docs/mcp",
49
+ connectionMode: "oauth",
50
+ availability: "ready",
51
+ verification: "preflight-only",
52
+ logoUrl: mcpIntegrationLogo("notion"),
53
+ docsUrl: "https://developers.notion.com/guides/mcp/get-started-with-mcp",
54
+ setupNoteKey: "mcpIntegrations.catalog.notion.setupNote",
41
55
  keywords: ["docs", "knowledge", "notes", "pages"],
42
56
  },
43
57
  {
@@ -50,6 +64,10 @@ export const DEFAULT_MCP_INTEGRATIONS = [
50
64
  useCaseKey: "mcpIntegrations.catalog.semgrep.useCase",
51
65
  url: "https://mcp.semgrep.ai/mcp",
52
66
  authMode: "none",
67
+ connectionMode: "direct",
68
+ availability: "ready",
69
+ verification: "preflight-only",
70
+ logoUrl: mcpIntegrationLogo("semgrep"),
53
71
  docsUrl: "https://github.com/semgrep/mcp#readme",
54
72
  keywords: ["security", "sast", "code scanning", "vulnerabilities"],
55
73
  },
@@ -61,9 +79,13 @@ export const DEFAULT_MCP_INTEGRATIONS = [
61
79
  descriptionKey: "mcpIntegrations.catalog.linear.description",
62
80
  useCase: "project management, issue tracking, planning, bug reports",
63
81
  useCaseKey: "mcpIntegrations.catalog.linear.useCase",
64
- url: "https://mcp.linear.app/sse",
82
+ url: "https://mcp.linear.app/mcp",
65
83
  authMode: "oauth",
66
- docsUrl: "https://www.builder.io/c/docs/fusion-connect-to-linear",
84
+ connectionMode: "oauth",
85
+ availability: "ready",
86
+ verification: "preflight-only",
87
+ logoUrl: mcpIntegrationLogo("linear"),
88
+ docsUrl: "https://linear.app/docs/mcp",
67
89
  keywords: ["issues", "tickets", "planning", "project management"],
68
90
  },
69
91
  {
@@ -76,6 +98,10 @@ export const DEFAULT_MCP_INTEGRATIONS = [
76
98
  useCaseKey: "mcpIntegrations.catalog.atlassian.useCase",
77
99
  url: "https://mcp.atlassian.com/v1/mcp/authv2",
78
100
  authMode: "oauth",
101
+ connectionMode: "oauth",
102
+ availability: "provider-setup",
103
+ verification: "restricted",
104
+ logoUrl: mcpIntegrationLogo("atlassian"),
79
105
  docsUrl: "https://developer.atlassian.com/cloud/rovo-mcp/guides/getting-started/",
80
106
  setupNoteKey: "mcpIntegrations.catalog.atlassian.setupNote",
81
107
  keywords: ["atlassian", "jira", "confluence", "issues", "tickets"],
@@ -90,6 +116,10 @@ export const DEFAULT_MCP_INTEGRATIONS = [
90
116
  useCaseKey: "mcpIntegrations.catalog.supabase.useCase",
91
117
  url: "https://mcp.supabase.com/mcp",
92
118
  authMode: "oauth",
119
+ connectionMode: "oauth",
120
+ availability: "ready",
121
+ verification: "preflight-only",
122
+ logoUrl: mcpIntegrationLogo("supabase"),
93
123
  docsUrl: "https://www.builder.io/c/docs/fusion-connect-to-supabase",
94
124
  keywords: ["database", "auth", "postgres", "storage"],
95
125
  },
@@ -103,6 +133,10 @@ export const DEFAULT_MCP_INTEGRATIONS = [
103
133
  useCaseKey: "mcpIntegrations.catalog.neon.useCase",
104
134
  url: "https://mcp.neon.tech/sse",
105
135
  authMode: "oauth",
136
+ connectionMode: "oauth",
137
+ availability: "ready",
138
+ verification: "preflight-only",
139
+ logoUrl: mcpIntegrationLogo("neon"),
106
140
  docsUrl: "https://www.builder.io/c/docs/fusion-connect-to-neon",
107
141
  keywords: ["database", "postgres", "serverless", "backend"],
108
142
  },
@@ -116,9 +150,302 @@ export const DEFAULT_MCP_INTEGRATIONS = [
116
150
  useCaseKey: "mcpIntegrations.catalog.stripe.useCase",
117
151
  url: "https://mcp.stripe.com",
118
152
  authMode: "oauth",
153
+ connectionMode: "oauth",
154
+ availability: "ready",
155
+ verification: "preflight-only",
156
+ logoUrl: mcpIntegrationLogo("stripe"),
119
157
  docsUrl: "https://docs.stripe.com/mcp",
120
158
  keywords: ["payments", "billing", "subscriptions", "customers"],
121
159
  },
160
+ {
161
+ id: "cloudflare",
162
+ name: "Cloudflare",
163
+ provider: "cloudflare",
164
+ description: "Search and operate Cloudflare services through MCP.",
165
+ descriptionKey: "mcpIntegrations.catalog.cloudflare.description",
166
+ useCase: "DNS, Workers, domains, security, observability, platform APIs",
167
+ useCaseKey: "mcpIntegrations.catalog.cloudflare.useCase",
168
+ url: "https://mcp.cloudflare.com/mcp",
169
+ authMode: "oauth",
170
+ connectionMode: "oauth",
171
+ availability: "ready",
172
+ verification: "preflight-only",
173
+ logoUrl: mcpIntegrationLogo("cloudflare"),
174
+ docsUrl: "https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/",
175
+ setupNoteKey: "mcpIntegrations.catalog.cloudflare.setupNote",
176
+ keywords: ["cloud", "workers", "dns", "security", "observability"],
177
+ },
178
+ {
179
+ id: "gitlab",
180
+ name: "GitLab",
181
+ provider: "gitlab",
182
+ description: "Read and manage GitLab projects, issues, and merge requests.",
183
+ descriptionKey: "mcpIntegrations.catalog.gitlab.description",
184
+ useCase: "repositories, issues, merge requests, CI/CD, code analytics",
185
+ useCaseKey: "mcpIntegrations.catalog.gitlab.useCase",
186
+ url: "https://gitlab.com/api/v4/mcp",
187
+ authMode: "oauth",
188
+ connectionMode: "oauth",
189
+ availability: "beta",
190
+ verification: "restricted",
191
+ logoUrl: mcpIntegrationLogo("gitlab"),
192
+ docsUrl: "https://docs.gitlab.com/user/model_context_protocol/mcp_server/",
193
+ setupNoteKey: "mcpIntegrations.catalog.gitlab.setupNote",
194
+ keywords: ["git", "repositories", "issues", "merge requests", "ci"],
195
+ },
196
+ {
197
+ id: "figma",
198
+ name: "Figma",
199
+ provider: "figma",
200
+ description: "Bring Figma design context and canvas actions into an agent.",
201
+ descriptionKey: "mcpIntegrations.catalog.figma.description",
202
+ useCase: "design files, components, variables, design systems, canvas",
203
+ useCaseKey: "mcpIntegrations.catalog.figma.useCase",
204
+ url: "https://mcp.figma.com/mcp",
205
+ authMode: "oauth",
206
+ connectionMode: "manual",
207
+ availability: "client-restricted",
208
+ verification: "restricted",
209
+ logoUrl: mcpIntegrationLogo("figma"),
210
+ docsUrl: "https://developers.figma.com/docs/figma-mcp-server/",
211
+ setupNoteKey: "mcpIntegrations.catalog.figma.setupNote",
212
+ keywords: ["design", "figjam", "components", "variables", "canvas"],
213
+ },
214
+ {
215
+ id: "canva",
216
+ name: "Canva",
217
+ provider: "canva",
218
+ description: "Search, create, and update Canva designs and assets.",
219
+ descriptionKey: "mcpIntegrations.catalog.canva.description",
220
+ useCase: "designs, templates, assets, brand kits, exports, collaboration",
221
+ useCaseKey: "mcpIntegrations.catalog.canva.useCase",
222
+ url: "https://mcp.canva.com/mcp",
223
+ authMode: "oauth",
224
+ connectionMode: "manual",
225
+ availability: "client-restricted",
226
+ verification: "restricted",
227
+ logoUrl: mcpIntegrationLogo("canva"),
228
+ docsUrl: "https://www.canva.dev/docs/mcp/",
229
+ setupNoteKey: "mcpIntegrations.catalog.canva.setupNote",
230
+ keywords: ["design", "templates", "assets", "brand", "exports"],
231
+ },
232
+ {
233
+ id: "vercel",
234
+ name: "Vercel",
235
+ provider: "vercel",
236
+ description: "Search Vercel docs and inspect projects, deployments, and logs.",
237
+ descriptionKey: "mcpIntegrations.catalog.vercel.description",
238
+ useCase: "deployments, projects, logs, domains, hosting, documentation",
239
+ useCaseKey: "mcpIntegrations.catalog.vercel.useCase",
240
+ url: "https://mcp.vercel.com",
241
+ authMode: "oauth",
242
+ connectionMode: "manual",
243
+ availability: "client-restricted",
244
+ verification: "restricted",
245
+ logoUrl: mcpIntegrationLogo("vercel"),
246
+ docsUrl: "https://vercel.com/docs/agent-resources/vercel-mcp",
247
+ setupNoteKey: "mcpIntegrations.catalog.vercel.setupNote",
248
+ keywords: ["deployments", "hosting", "projects", "logs", "domains"],
249
+ },
250
+ {
251
+ id: "github",
252
+ name: "GitHub",
253
+ provider: "github",
254
+ description: "Read repositories, issues, pull requests, and code context.",
255
+ descriptionKey: "mcpIntegrations.catalog.github.description",
256
+ useCase: "repositories, issues, pull requests, code, engineering analytics",
257
+ useCaseKey: "mcpIntegrations.catalog.github.useCase",
258
+ url: "https://api.githubcopilot.com/mcp/",
259
+ authMode: "oauth",
260
+ connectionMode: "manual",
261
+ availability: "provider-setup",
262
+ verification: "restricted",
263
+ logoUrl: mcpIntegrationLogo("github"),
264
+ docsUrl: "https://github.com/github/github-mcp-server",
265
+ setupNoteKey: "mcpIntegrations.catalog.github.setupNote",
266
+ keywords: ["git", "repositories", "issues", "pull requests", "code"],
267
+ },
268
+ {
269
+ id: "slack",
270
+ name: "Slack",
271
+ provider: "slack",
272
+ description: "Search Slack conversations and take workspace actions through MCP.",
273
+ descriptionKey: "mcpIntegrations.catalog.slack.description",
274
+ useCase: "messages, channels, people, company memory, workflows",
275
+ useCaseKey: "mcpIntegrations.catalog.slack.useCase",
276
+ url: "https://mcp.slack.com/mcp",
277
+ authMode: "oauth",
278
+ connectionMode: "manual",
279
+ availability: "client-restricted",
280
+ verification: "restricted",
281
+ logoUrl: mcpIntegrationLogo("slack"),
282
+ docsUrl: "https://docs.slack.dev/ai/slack-mcp-server/",
283
+ setupNoteKey: "mcpIntegrations.catalog.slack.setupNote",
284
+ keywords: ["messages", "channels", "search", "people", "chat"],
285
+ },
286
+ {
287
+ id: "asana",
288
+ name: "Asana",
289
+ provider: "asana",
290
+ description: "Search and manage Asana tasks, projects, and work graph data.",
291
+ descriptionKey: "mcpIntegrations.catalog.asana.description",
292
+ useCase: "tasks, projects, portfolios, planning, workload",
293
+ useCaseKey: "mcpIntegrations.catalog.asana.useCase",
294
+ url: "https://mcp.asana.com/v2/mcp",
295
+ authMode: "oauth",
296
+ connectionMode: "manual",
297
+ availability: "provider-setup",
298
+ verification: "restricted",
299
+ logoUrl: mcpIntegrationLogo("asana"),
300
+ docsUrl: "https://developers.asana.com/docs/integrating-with-asanas-mcp-server",
301
+ setupNoteKey: "mcpIntegrations.catalog.asana.setupNote",
302
+ keywords: ["tasks", "projects", "planning", "workload", "portfolios"],
303
+ },
304
+ {
305
+ id: "hubspot",
306
+ name: "HubSpot",
307
+ provider: "hubspot",
308
+ description: "Search and update HubSpot CRM records through MCP.",
309
+ descriptionKey: "mcpIntegrations.catalog.hubspot.description",
310
+ useCase: "CRM, contacts, companies, deals, tickets, customer analytics",
311
+ useCaseKey: "mcpIntegrations.catalog.hubspot.useCase",
312
+ url: "https://mcp.hubspot.com",
313
+ authMode: "oauth",
314
+ connectionMode: "manual",
315
+ availability: "provider-setup",
316
+ verification: "restricted",
317
+ logoUrl: mcpIntegrationLogo("hubspot"),
318
+ docsUrl: "https://developers.hubspot.com/docs/apps/developer-platform/build-apps/integrate-with-the-remote-hubspot-mcp-server",
319
+ setupNoteKey: "mcpIntegrations.catalog.hubspot.setupNote",
320
+ keywords: ["crm", "contacts", "companies", "deals", "tickets"],
321
+ },
322
+ {
323
+ id: "intercom",
324
+ name: "Intercom",
325
+ provider: "intercom",
326
+ description: "Search conversations and customer support knowledge.",
327
+ descriptionKey: "mcpIntegrations.catalog.intercom.description",
328
+ useCase: "customer support, conversations, contacts, help center content",
329
+ useCaseKey: "mcpIntegrations.catalog.intercom.useCase",
330
+ url: "https://mcp.intercom.com/mcp",
331
+ authMode: "oauth",
332
+ connectionMode: "oauth",
333
+ availability: "ready",
334
+ verification: "preflight-only",
335
+ logoUrl: mcpIntegrationLogo("intercom"),
336
+ docsUrl: "https://developers.intercom.com/docs/guides/mcp",
337
+ setupNoteKey: "mcpIntegrations.catalog.intercom.setupNote",
338
+ keywords: ["support", "conversations", "customers", "help center"],
339
+ },
340
+ {
341
+ id: "monday",
342
+ name: "monday.com",
343
+ provider: "monday",
344
+ description: "Work with boards, items, and team workflows.",
345
+ descriptionKey: "mcpIntegrations.catalog.monday.description",
346
+ useCase: "work management, boards, projects, tasks, team operations",
347
+ useCaseKey: "mcpIntegrations.catalog.monday.useCase",
348
+ url: "https://mcp.monday.com/mcp",
349
+ authMode: "oauth",
350
+ connectionMode: "oauth",
351
+ availability: "ready",
352
+ verification: "preflight-only",
353
+ logoUrl: mcpIntegrationLogo("monday"),
354
+ docsUrl: "https://developer.monday.com/api-reference/docs/build-on-monday-with-ai",
355
+ setupNoteKey: "mcpIntegrations.catalog.monday.setupNote",
356
+ keywords: ["work management", "boards", "projects", "tasks", "teams"],
357
+ },
358
+ {
359
+ id: "webflow",
360
+ name: "Webflow",
361
+ provider: "webflow",
362
+ description: "Read and update Webflow sites and content.",
363
+ descriptionKey: "mcpIntegrations.catalog.webflow.description",
364
+ useCase: "websites, CMS, site content, publishing, design workflows",
365
+ useCaseKey: "mcpIntegrations.catalog.webflow.useCase",
366
+ url: "https://mcp.webflow.com/mcp",
367
+ authMode: "oauth",
368
+ connectionMode: "oauth",
369
+ availability: "ready",
370
+ verification: "preflight-only",
371
+ logoUrl: mcpIntegrationLogo("webflow"),
372
+ docsUrl: "https://developers.webflow.com/mcp/reference/getting-started",
373
+ setupNoteKey: "mcpIntegrations.catalog.webflow.setupNote",
374
+ keywords: ["websites", "cms", "content", "publishing", "design"],
375
+ },
376
+ {
377
+ id: "paypal",
378
+ name: "PayPal",
379
+ provider: "paypal",
380
+ description: "Work with PayPal payments, invoices, and commerce data.",
381
+ descriptionKey: "mcpIntegrations.catalog.paypal.description",
382
+ useCase: "payments, invoices, transactions, merchant operations",
383
+ useCaseKey: "mcpIntegrations.catalog.paypal.useCase",
384
+ url: "https://mcp.paypal.com/sse",
385
+ authMode: "oauth",
386
+ connectionMode: "oauth",
387
+ availability: "ready",
388
+ verification: "preflight-only",
389
+ logoUrl: mcpIntegrationLogo("paypal"),
390
+ docsUrl: "https://developer.paypal.com/ai-tools/mcp-server/",
391
+ setupNoteKey: "mcpIntegrations.catalog.paypal.setupNote",
392
+ keywords: ["payments", "invoices", "transactions", "commerce"],
393
+ },
394
+ {
395
+ id: "box",
396
+ name: "Box",
397
+ provider: "box",
398
+ description: "Search and manage files and folders in Box.",
399
+ descriptionKey: "mcpIntegrations.catalog.box.description",
400
+ useCase: "files, folders, enterprise content, search, collaboration",
401
+ useCaseKey: "mcpIntegrations.catalog.box.useCase",
402
+ url: "https://mcp.box.com",
403
+ authMode: "oauth",
404
+ connectionMode: "manual",
405
+ availability: "provider-setup",
406
+ verification: "restricted",
407
+ logoUrl: mcpIntegrationLogo("box"),
408
+ docsUrl: "https://developer.box.com/guides/box-mcp",
409
+ setupNoteKey: "mcpIntegrations.catalog.box.setupNote",
410
+ keywords: ["files", "folders", "documents", "enterprise content"],
411
+ },
412
+ {
413
+ id: "netlify",
414
+ name: "Netlify",
415
+ provider: "netlify",
416
+ description: "Inspect and operate Netlify sites and deployments.",
417
+ descriptionKey: "mcpIntegrations.catalog.netlify.description",
418
+ useCase: "sites, deployments, builds, domains, hosting operations",
419
+ useCaseKey: "mcpIntegrations.catalog.netlify.useCase",
420
+ url: "https://netlify-mcp.netlify.app/mcp",
421
+ authMode: "oauth",
422
+ connectionMode: "oauth",
423
+ availability: "ready",
424
+ verification: "preflight-only",
425
+ logoUrl: mcpIntegrationLogo("netlify"),
426
+ docsUrl: "https://docs.netlify.com/build/build-with-ai/agent-setup-guides/agent-setup-overview/",
427
+ setupNoteKey: "mcpIntegrations.catalog.netlify.setupNote",
428
+ keywords: ["deployments", "builds", "sites", "hosting", "domains"],
429
+ },
430
+ {
431
+ id: "zapier",
432
+ name: "Zapier",
433
+ provider: "zapier",
434
+ description: "Connect MCP tools to thousands of app actions.",
435
+ descriptionKey: "mcpIntegrations.catalog.zapier.description",
436
+ useCase: "automation, workflows, app actions, cross-service operations",
437
+ useCaseKey: "mcpIntegrations.catalog.zapier.useCase",
438
+ url: "https://mcp.zapier.com/api/v1/connect",
439
+ authMode: "headers",
440
+ connectionMode: "headers",
441
+ availability: "ready",
442
+ verification: "restricted",
443
+ logoUrl: mcpIntegrationLogo("zapier"),
444
+ docsUrl: "https://help.zapier.com/hc/en-us/articles/36265392843917-Use-Zapier-MCP-with-your-client",
445
+ setupNoteKey: "mcpIntegrations.catalog.zapier.setupNote",
446
+ headerPlaceholder: "Authorization: Bearer <zapier-mcp-token>",
447
+ keywords: ["automation", "workflows", "actions", "apps", "integrations"],
448
+ },
122
449
  ];
123
450
  function readRuntimeMcpIntegrationsConfig() {
124
451
  try {
@@ -199,6 +526,62 @@ export function filterMcpIntegrations(query, integrations = getDefaultMcpIntegra
199
526
  return haystack.includes(needle);
200
527
  });
201
528
  }
529
+ const MCP_LINK_HOSTS = {
530
+ notion: ["notion.so", "notion.site"],
531
+ canva: ["canva.com", "canva.ai"],
532
+ figma: ["figma.com"],
533
+ linear: ["linear.app"],
534
+ github: ["github.com", "github.dev"],
535
+ gitlab: ["gitlab.com"],
536
+ slack: ["slack.com"],
537
+ asana: ["asana.com"],
538
+ hubspot: ["hubspot.com"],
539
+ intercom: ["intercom.com"],
540
+ monday: ["monday.com"],
541
+ webflow: ["webflow.com"],
542
+ paypal: ["paypal.com"],
543
+ box: ["box.com"],
544
+ netlify: ["netlify.com"],
545
+ };
546
+ function hostMatches(hostname, domain) {
547
+ return hostname === domain || hostname.endsWith(`.${domain}`);
548
+ }
549
+ function findUrlForText(text) {
550
+ const candidates = text.match(/https?:\/\/[^\s<>()[\]{}]+/gi) ?? [];
551
+ for (const candidate of candidates) {
552
+ try {
553
+ return new URL(candidate.replace(/[.,!?;:'\"]+$/, ""));
554
+ }
555
+ catch {
556
+ // Ignore prose that only looks like a URL.
557
+ }
558
+ }
559
+ return null;
560
+ }
561
+ const MCP_RESOURCE_INTENT_PATTERN = /\b(?:connect|connected|connection|integration|integrate|link|page|document|doc|file|workspace|project|issue|design|board|channel|message|ticket|read|access|open|see|fetch|sync|import)\b/i;
562
+ export function findMcpIntegrationForText(text, integrations = getDefaultMcpIntegrations()) {
563
+ const url = findUrlForText(text);
564
+ if (url) {
565
+ const match = integrations.find((integration) => (MCP_LINK_HOSTS[integration.id] ?? []).some((domain) => hostMatches(url.hostname.toLowerCase(), domain)));
566
+ if (match)
567
+ return match;
568
+ }
569
+ const normalizedText = text.toLowerCase();
570
+ const hasResourceIntent = MCP_RESOURCE_INTENT_PATTERN.test(normalizedText) ||
571
+ isMcpConnectionFailureText(normalizedText);
572
+ if (!hasResourceIntent)
573
+ return null;
574
+ return (integrations.find((integration) => {
575
+ const aliases = [integration.name, integration.provider, integration.id];
576
+ return aliases.some((alias) => {
577
+ const escaped = alias.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
578
+ return new RegExp(`(^|[^a-z0-9])${escaped}([^a-z0-9]|$)`, "i").test(normalizedText);
579
+ });
580
+ }) ?? null);
581
+ }
582
+ export function isMcpConnectionFailureText(text) {
583
+ return /\b(?:can(?:not|'t|’t)|could(?: not|n't|n’t)|unable|failed|don't have access|don’t have access|not connected|not able)\b[\s\S]{0,80}\b(?:read|access|open|see|fetch|connect)\b/i.test(text);
584
+ }
202
585
  export function createMcpIntegrationFormDefaults(integration) {
203
586
  if (!integration) {
204
587
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-integration-catalog.js","sourceRoot":"","sources":["../../../src/client/resources/mcp-integration-catalog.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n normalizeMcpIntegrationsConfig,\n type McpIntegrationsConfigInput,\n type NormalizedMcpIntegrationsConfig,\n} from \"../../shared/mcp-integration-config.js\";\n\nexport type McpIntegrationAuthMode = \"none\" | \"headers\" | \"oauth\";\n\ndeclare const __AGENT_NATIVE_MCP_INTEGRATIONS_CONFIG__:\n | NormalizedMcpIntegrationsConfig\n | undefined;\n\nexport interface DefaultMcpIntegration {\n id: string;\n name: string;\n provider: string;\n description: string;\n descriptionKey: string;\n useCase: string;\n useCaseKey: string;\n url: string;\n authMode: McpIntegrationAuthMode;\n docsUrl?: string;\n setupNoteKey?: string;\n headerPlaceholder?: string;\n keywords: string[];\n}\n\nexport interface McpIntegrationFormDefaults {\n name: string;\n url: string;\n description: string;\n headersText: string;\n}\n\nexport interface McpOAuthStartParams {\n name: string;\n url: string;\n description: string;\n scope: \"user\" | \"org\";\n returnUrl: string;\n}\n\nexport const DEFAULT_MCP_INTEGRATIONS: DefaultMcpIntegration[] = [\n {\n id: \"context7\",\n name: \"Context7\",\n provider: \"context7\",\n description: \"Fetch current library docs in agent chats.\",\n descriptionKey: \"mcpIntegrations.catalog.context7.description\",\n useCase: \"documentation, technical reference, API docs, framework guides\",\n useCaseKey: \"mcpIntegrations.catalog.context7.useCase\",\n url: \"https://mcp.context7.com/mcp\",\n authMode: \"none\",\n docsUrl: \"https://context7.com/\",\n keywords: [\"docs\", \"documentation\", \"libraries\", \"frameworks\"],\n },\n {\n id: \"sentry\",\n name: \"Sentry\",\n provider: \"sentry\",\n description: \"Inspect issues, events, and debugging data.\",\n descriptionKey: \"mcpIntegrations.catalog.sentry.description\",\n useCase: \"error monitoring, debugging, performance, crash reports\",\n useCaseKey: \"mcpIntegrations.catalog.sentry.useCase\",\n url: \"https://mcp.sentry.dev/mcp\",\n authMode: \"headers\",\n docsUrl: \"https://docs.sentry.io/product/sentry-mcp/\",\n headerPlaceholder: \"Authorization: Bearer <sentry-token>\",\n keywords: [\"errors\", \"monitoring\", \"debugging\", \"issues\"],\n },\n {\n id: \"notion\",\n name: \"Notion\",\n provider: \"notion\",\n description: \"Search pages and team knowledge.\",\n descriptionKey: \"mcpIntegrations.catalog.notion.description\",\n useCase: \"documentation, knowledge management, notes, content creation\",\n useCaseKey: \"mcpIntegrations.catalog.notion.useCase\",\n url: \"https://mcp.notion.com/sse\",\n authMode: \"oauth\",\n docsUrl: \"https://developers.notion.com/docs/mcp\",\n keywords: [\"docs\", \"knowledge\", \"notes\", \"pages\"],\n },\n {\n id: \"semgrep\",\n name: \"Semgrep\",\n provider: \"semgrep\",\n description: \"Scan code for security findings.\",\n descriptionKey: \"mcpIntegrations.catalog.semgrep.description\",\n useCase: \"security scanning, vulnerability detection, code analysis\",\n useCaseKey: \"mcpIntegrations.catalog.semgrep.useCase\",\n url: \"https://mcp.semgrep.ai/mcp\",\n authMode: \"none\",\n docsUrl: \"https://github.com/semgrep/mcp#readme\",\n keywords: [\"security\", \"sast\", \"code scanning\", \"vulnerabilities\"],\n },\n {\n id: \"linear\",\n name: \"Linear\",\n provider: \"linear\",\n description: \"Read and write Linear issues.\",\n descriptionKey: \"mcpIntegrations.catalog.linear.description\",\n useCase: \"project management, issue tracking, planning, bug reports\",\n useCaseKey: \"mcpIntegrations.catalog.linear.useCase\",\n url: \"https://mcp.linear.app/sse\",\n authMode: \"oauth\",\n docsUrl: \"https://www.builder.io/c/docs/fusion-connect-to-linear\",\n keywords: [\"issues\", \"tickets\", \"planning\", \"project management\"],\n },\n {\n id: \"atlassian\",\n name: \"Atlassian\",\n provider: \"atlassian\",\n description: \"Read and write Jira issues and Confluence content.\",\n descriptionKey: \"mcpIntegrations.catalog.atlassian.description\",\n useCase:\n \"project management, issue tracking, documentation, team collaboration\",\n useCaseKey: \"mcpIntegrations.catalog.atlassian.useCase\",\n url: \"https://mcp.atlassian.com/v1/mcp/authv2\",\n authMode: \"oauth\",\n docsUrl:\n \"https://developer.atlassian.com/cloud/rovo-mcp/guides/getting-started/\",\n setupNoteKey: \"mcpIntegrations.catalog.atlassian.setupNote\",\n keywords: [\"atlassian\", \"jira\", \"confluence\", \"issues\", \"tickets\"],\n },\n {\n id: \"supabase\",\n name: \"Supabase\",\n provider: \"supabase\",\n description: \"Manage data, auth, and backend services.\",\n descriptionKey: \"mcpIntegrations.catalog.supabase.description\",\n useCase: \"database, authentication, storage, edge functions\",\n useCaseKey: \"mcpIntegrations.catalog.supabase.useCase\",\n url: \"https://mcp.supabase.com/mcp\",\n authMode: \"oauth\",\n docsUrl: \"https://www.builder.io/c/docs/fusion-connect-to-supabase\",\n keywords: [\"database\", \"auth\", \"postgres\", \"storage\"],\n },\n {\n id: \"neon\",\n name: \"Neon\",\n provider: \"neon\",\n description: \"Work with serverless Postgres projects.\",\n descriptionKey: \"mcpIntegrations.catalog.neon.description\",\n useCase: \"database management, serverless postgres, data storage\",\n useCaseKey: \"mcpIntegrations.catalog.neon.useCase\",\n url: \"https://mcp.neon.tech/sse\",\n authMode: \"oauth\",\n docsUrl: \"https://www.builder.io/c/docs/fusion-connect-to-neon\",\n keywords: [\"database\", \"postgres\", \"serverless\", \"backend\"],\n },\n {\n id: \"stripe\",\n name: \"Stripe\",\n provider: \"stripe\",\n description: \"Manage payments, subscriptions, and customers.\",\n descriptionKey: \"mcpIntegrations.catalog.stripe.description\",\n useCase: \"payments, subscriptions, invoicing, customer management\",\n useCaseKey: \"mcpIntegrations.catalog.stripe.useCase\",\n url: \"https://mcp.stripe.com\",\n authMode: \"oauth\",\n docsUrl: \"https://docs.stripe.com/mcp\",\n keywords: [\"payments\", \"billing\", \"subscriptions\", \"customers\"],\n },\n];\n\nfunction readRuntimeMcpIntegrationsConfig(): NormalizedMcpIntegrationsConfig {\n try {\n if (typeof __AGENT_NATIVE_MCP_INTEGRATIONS_CONFIG__ !== \"undefined\") {\n return normalizeMcpIntegrationsConfig(\n __AGENT_NATIVE_MCP_INTEGRATIONS_CONFIG__,\n );\n }\n } catch {\n // Test and non-Vite contexts may not define the compile-time constant.\n }\n return normalizeMcpIntegrationsConfig();\n}\n\nfunction normalizePresetConfig(\n config?: McpIntegrationsConfigInput | NormalizedMcpIntegrationsConfig,\n): NormalizedMcpIntegrationsConfig {\n if (config === undefined) return readRuntimeMcpIntegrationsConfig();\n return normalizeMcpIntegrationsConfig(config);\n}\n\nexport function getDefaultMcpIntegrations(\n config?: McpIntegrationsConfigInput | NormalizedMcpIntegrationsConfig,\n): DefaultMcpIntegration[] {\n const normalized = normalizePresetConfig(config);\n if (!normalized.enabled || !normalized.defaults.enabled) return [];\n\n const include = normalized.defaults.include\n ? new Set(normalized.defaults.include)\n : null;\n const exclude = new Set(normalized.defaults.exclude);\n return DEFAULT_MCP_INTEGRATIONS.filter((integration) => {\n const id = integration.id.toLowerCase();\n if (include && !include.has(id)) return false;\n return !exclude.has(id);\n });\n}\n\nexport function isCustomMcpIntegrationEnabled(\n config?: McpIntegrationsConfigInput | NormalizedMcpIntegrationsConfig,\n): boolean {\n const normalized = normalizePresetConfig(config);\n return normalized.enabled && normalized.custom;\n}\n\nexport function isMcpIntegrationCatalogAvailable(\n config?: McpIntegrationsConfigInput | NormalizedMcpIntegrationsConfig,\n): boolean {\n const normalized = normalizePresetConfig(config);\n if (!normalized.enabled) return false;\n return normalized.custom || getDefaultMcpIntegrations(normalized).length > 0;\n}\n\nexport function mcpIntegrationAuthLabel(mode: McpIntegrationAuthMode): string {\n if (mode === \"none\") return \"No auth\";\n if (mode === \"headers\") return \"Header\";\n return \"OAuth\";\n}\n\nexport function buildMcpOAuthStartUrl({\n name,\n url,\n description,\n scope,\n returnUrl,\n}: McpOAuthStartParams): string {\n const params = new URLSearchParams({\n name,\n url,\n description,\n scope,\n return: returnUrl,\n });\n return `/_agent-native/mcp/servers/oauth/start?${params.toString()}`;\n}\n\nexport function resolveMcpIntegrationScope(\n defaultScope: \"user\" | \"org\",\n hasOrg: boolean,\n canCreateOrgMcp: boolean,\n): \"user\" | \"org\" {\n return defaultScope === \"org\" && hasOrg && canCreateOrgMcp ? \"org\" : \"user\";\n}\n\nexport function filterMcpIntegrations(\n query: string,\n integrations: DefaultMcpIntegration[] = getDefaultMcpIntegrations(),\n): DefaultMcpIntegration[] {\n const needle = query.trim().toLowerCase();\n if (!needle) return integrations;\n return integrations.filter((integration) => {\n const haystack = [\n integration.name,\n integration.provider,\n integration.description,\n integration.useCase,\n integration.url,\n ...integration.keywords,\n ]\n .join(\" \")\n .toLowerCase();\n return haystack.includes(needle);\n });\n}\n\nexport function createMcpIntegrationFormDefaults(\n integration?: DefaultMcpIntegration | null,\n): McpIntegrationFormDefaults {\n if (!integration) {\n return {\n name: \"\",\n url: \"\",\n description: \"\",\n headersText: \"\",\n };\n }\n return {\n name: integration.name,\n url: integration.url,\n description: integration.description,\n headersText: \"\",\n };\n}\n"]}
1
+ {"version":3,"file":"mcp-integration-catalog.js","sourceRoot":"","sources":["../../../src/client/resources/mcp-integration-catalog.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n normalizeMcpIntegrationsConfig,\n type McpIntegrationsConfigInput,\n type NormalizedMcpIntegrationsConfig,\n} from \"../../shared/mcp-integration-config.js\";\nimport { mcpIntegrationLogo } from \"./mcp-integration-logos.js\";\n\nexport type McpIntegrationAuthMode = \"none\" | \"headers\" | \"oauth\";\nexport type McpIntegrationConnectionMode =\n | \"direct\"\n | \"headers\"\n | \"oauth\"\n | \"manual\";\nexport type McpIntegrationAvailability =\n | \"ready\"\n | \"beta\"\n | \"provider-setup\"\n | \"client-restricted\";\nexport type McpIntegrationVerification =\n | \"verified\"\n | \"preflight-only\"\n | \"restricted\";\n\ndeclare const __AGENT_NATIVE_MCP_INTEGRATIONS_CONFIG__:\n | NormalizedMcpIntegrationsConfig\n | undefined;\n\nexport interface DefaultMcpIntegration {\n id: string;\n name: string;\n provider: string;\n description: string;\n descriptionKey: string;\n useCase: string;\n useCaseKey: string;\n url: string;\n authMode: McpIntegrationAuthMode;\n connectionMode: McpIntegrationConnectionMode;\n availability: McpIntegrationAvailability;\n verification: McpIntegrationVerification;\n logoUrl: string;\n docsUrl?: string;\n setupNoteKey?: string;\n headerPlaceholder?: string;\n keywords: string[];\n}\n\nexport interface McpIntegrationFormDefaults {\n name: string;\n url: string;\n description: string;\n headersText: string;\n}\n\nexport interface McpOAuthStartParams {\n name: string;\n url: string;\n description: string;\n scope: \"user\" | \"org\";\n returnUrl: string;\n}\n\nexport const DEFAULT_MCP_INTEGRATIONS: DefaultMcpIntegration[] = [\n {\n id: \"context7\",\n name: \"Context7\",\n provider: \"context7\",\n description: \"Fetch current library docs in agent chats.\",\n descriptionKey: \"mcpIntegrations.catalog.context7.description\",\n useCase: \"documentation, technical reference, API docs, framework guides\",\n useCaseKey: \"mcpIntegrations.catalog.context7.useCase\",\n url: \"https://mcp.context7.com/mcp\",\n authMode: \"none\",\n connectionMode: \"direct\",\n availability: \"ready\",\n verification: \"verified\",\n logoUrl: mcpIntegrationLogo(\"context7\"),\n docsUrl: \"https://context7.com/\",\n keywords: [\"docs\", \"documentation\", \"libraries\", \"frameworks\"],\n },\n {\n id: \"sentry\",\n name: \"Sentry\",\n provider: \"sentry\",\n description: \"Inspect issues, events, and debugging data.\",\n descriptionKey: \"mcpIntegrations.catalog.sentry.description\",\n useCase: \"error monitoring, debugging, performance, crash reports\",\n useCaseKey: \"mcpIntegrations.catalog.sentry.useCase\",\n url: \"https://mcp.sentry.dev/mcp\",\n authMode: \"headers\",\n connectionMode: \"headers\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"sentry\"),\n docsUrl: \"https://docs.sentry.io/product/sentry-mcp/\",\n headerPlaceholder: \"Authorization: Bearer <sentry-token>\",\n keywords: [\"errors\", \"monitoring\", \"debugging\", \"issues\"],\n },\n {\n id: \"notion\",\n name: \"Notion\",\n provider: \"notion\",\n description: \"Search pages and team knowledge.\",\n descriptionKey: \"mcpIntegrations.catalog.notion.description\",\n useCase: \"documentation, knowledge management, notes, content creation\",\n useCaseKey: \"mcpIntegrations.catalog.notion.useCase\",\n url: \"https://mcp.notion.com/mcp\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"notion\"),\n docsUrl: \"https://developers.notion.com/guides/mcp/get-started-with-mcp\",\n setupNoteKey: \"mcpIntegrations.catalog.notion.setupNote\",\n keywords: [\"docs\", \"knowledge\", \"notes\", \"pages\"],\n },\n {\n id: \"semgrep\",\n name: \"Semgrep\",\n provider: \"semgrep\",\n description: \"Scan code for security findings.\",\n descriptionKey: \"mcpIntegrations.catalog.semgrep.description\",\n useCase: \"security scanning, vulnerability detection, code analysis\",\n useCaseKey: \"mcpIntegrations.catalog.semgrep.useCase\",\n url: \"https://mcp.semgrep.ai/mcp\",\n authMode: \"none\",\n connectionMode: \"direct\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"semgrep\"),\n docsUrl: \"https://github.com/semgrep/mcp#readme\",\n keywords: [\"security\", \"sast\", \"code scanning\", \"vulnerabilities\"],\n },\n {\n id: \"linear\",\n name: \"Linear\",\n provider: \"linear\",\n description: \"Read and write Linear issues.\",\n descriptionKey: \"mcpIntegrations.catalog.linear.description\",\n useCase: \"project management, issue tracking, planning, bug reports\",\n useCaseKey: \"mcpIntegrations.catalog.linear.useCase\",\n url: \"https://mcp.linear.app/mcp\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"linear\"),\n docsUrl: \"https://linear.app/docs/mcp\",\n keywords: [\"issues\", \"tickets\", \"planning\", \"project management\"],\n },\n {\n id: \"atlassian\",\n name: \"Atlassian\",\n provider: \"atlassian\",\n description: \"Read and write Jira issues and Confluence content.\",\n descriptionKey: \"mcpIntegrations.catalog.atlassian.description\",\n useCase:\n \"project management, issue tracking, documentation, team collaboration\",\n useCaseKey: \"mcpIntegrations.catalog.atlassian.useCase\",\n url: \"https://mcp.atlassian.com/v1/mcp/authv2\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"provider-setup\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"atlassian\"),\n docsUrl:\n \"https://developer.atlassian.com/cloud/rovo-mcp/guides/getting-started/\",\n setupNoteKey: \"mcpIntegrations.catalog.atlassian.setupNote\",\n keywords: [\"atlassian\", \"jira\", \"confluence\", \"issues\", \"tickets\"],\n },\n {\n id: \"supabase\",\n name: \"Supabase\",\n provider: \"supabase\",\n description: \"Manage data, auth, and backend services.\",\n descriptionKey: \"mcpIntegrations.catalog.supabase.description\",\n useCase: \"database, authentication, storage, edge functions\",\n useCaseKey: \"mcpIntegrations.catalog.supabase.useCase\",\n url: \"https://mcp.supabase.com/mcp\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"supabase\"),\n docsUrl: \"https://www.builder.io/c/docs/fusion-connect-to-supabase\",\n keywords: [\"database\", \"auth\", \"postgres\", \"storage\"],\n },\n {\n id: \"neon\",\n name: \"Neon\",\n provider: \"neon\",\n description: \"Work with serverless Postgres projects.\",\n descriptionKey: \"mcpIntegrations.catalog.neon.description\",\n useCase: \"database management, serverless postgres, data storage\",\n useCaseKey: \"mcpIntegrations.catalog.neon.useCase\",\n url: \"https://mcp.neon.tech/sse\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"neon\"),\n docsUrl: \"https://www.builder.io/c/docs/fusion-connect-to-neon\",\n keywords: [\"database\", \"postgres\", \"serverless\", \"backend\"],\n },\n {\n id: \"stripe\",\n name: \"Stripe\",\n provider: \"stripe\",\n description: \"Manage payments, subscriptions, and customers.\",\n descriptionKey: \"mcpIntegrations.catalog.stripe.description\",\n useCase: \"payments, subscriptions, invoicing, customer management\",\n useCaseKey: \"mcpIntegrations.catalog.stripe.useCase\",\n url: \"https://mcp.stripe.com\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"stripe\"),\n docsUrl: \"https://docs.stripe.com/mcp\",\n keywords: [\"payments\", \"billing\", \"subscriptions\", \"customers\"],\n },\n {\n id: \"cloudflare\",\n name: \"Cloudflare\",\n provider: \"cloudflare\",\n description: \"Search and operate Cloudflare services through MCP.\",\n descriptionKey: \"mcpIntegrations.catalog.cloudflare.description\",\n useCase: \"DNS, Workers, domains, security, observability, platform APIs\",\n useCaseKey: \"mcpIntegrations.catalog.cloudflare.useCase\",\n url: \"https://mcp.cloudflare.com/mcp\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"cloudflare\"),\n docsUrl:\n \"https://developers.cloudflare.com/agents/model-context-protocol/cloudflare/servers-for-cloudflare/\",\n setupNoteKey: \"mcpIntegrations.catalog.cloudflare.setupNote\",\n keywords: [\"cloud\", \"workers\", \"dns\", \"security\", \"observability\"],\n },\n {\n id: \"gitlab\",\n name: \"GitLab\",\n provider: \"gitlab\",\n description: \"Read and manage GitLab projects, issues, and merge requests.\",\n descriptionKey: \"mcpIntegrations.catalog.gitlab.description\",\n useCase: \"repositories, issues, merge requests, CI/CD, code analytics\",\n useCaseKey: \"mcpIntegrations.catalog.gitlab.useCase\",\n url: \"https://gitlab.com/api/v4/mcp\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"beta\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"gitlab\"),\n docsUrl: \"https://docs.gitlab.com/user/model_context_protocol/mcp_server/\",\n setupNoteKey: \"mcpIntegrations.catalog.gitlab.setupNote\",\n keywords: [\"git\", \"repositories\", \"issues\", \"merge requests\", \"ci\"],\n },\n {\n id: \"figma\",\n name: \"Figma\",\n provider: \"figma\",\n description: \"Bring Figma design context and canvas actions into an agent.\",\n descriptionKey: \"mcpIntegrations.catalog.figma.description\",\n useCase: \"design files, components, variables, design systems, canvas\",\n useCaseKey: \"mcpIntegrations.catalog.figma.useCase\",\n url: \"https://mcp.figma.com/mcp\",\n authMode: \"oauth\",\n connectionMode: \"manual\",\n availability: \"client-restricted\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"figma\"),\n docsUrl: \"https://developers.figma.com/docs/figma-mcp-server/\",\n setupNoteKey: \"mcpIntegrations.catalog.figma.setupNote\",\n keywords: [\"design\", \"figjam\", \"components\", \"variables\", \"canvas\"],\n },\n {\n id: \"canva\",\n name: \"Canva\",\n provider: \"canva\",\n description: \"Search, create, and update Canva designs and assets.\",\n descriptionKey: \"mcpIntegrations.catalog.canva.description\",\n useCase: \"designs, templates, assets, brand kits, exports, collaboration\",\n useCaseKey: \"mcpIntegrations.catalog.canva.useCase\",\n url: \"https://mcp.canva.com/mcp\",\n authMode: \"oauth\",\n connectionMode: \"manual\",\n availability: \"client-restricted\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"canva\"),\n docsUrl: \"https://www.canva.dev/docs/mcp/\",\n setupNoteKey: \"mcpIntegrations.catalog.canva.setupNote\",\n keywords: [\"design\", \"templates\", \"assets\", \"brand\", \"exports\"],\n },\n {\n id: \"vercel\",\n name: \"Vercel\",\n provider: \"vercel\",\n description:\n \"Search Vercel docs and inspect projects, deployments, and logs.\",\n descriptionKey: \"mcpIntegrations.catalog.vercel.description\",\n useCase: \"deployments, projects, logs, domains, hosting, documentation\",\n useCaseKey: \"mcpIntegrations.catalog.vercel.useCase\",\n url: \"https://mcp.vercel.com\",\n authMode: \"oauth\",\n connectionMode: \"manual\",\n availability: \"client-restricted\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"vercel\"),\n docsUrl: \"https://vercel.com/docs/agent-resources/vercel-mcp\",\n setupNoteKey: \"mcpIntegrations.catalog.vercel.setupNote\",\n keywords: [\"deployments\", \"hosting\", \"projects\", \"logs\", \"domains\"],\n },\n {\n id: \"github\",\n name: \"GitHub\",\n provider: \"github\",\n description: \"Read repositories, issues, pull requests, and code context.\",\n descriptionKey: \"mcpIntegrations.catalog.github.description\",\n useCase: \"repositories, issues, pull requests, code, engineering analytics\",\n useCaseKey: \"mcpIntegrations.catalog.github.useCase\",\n url: \"https://api.githubcopilot.com/mcp/\",\n authMode: \"oauth\",\n connectionMode: \"manual\",\n availability: \"provider-setup\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"github\"),\n docsUrl: \"https://github.com/github/github-mcp-server\",\n setupNoteKey: \"mcpIntegrations.catalog.github.setupNote\",\n keywords: [\"git\", \"repositories\", \"issues\", \"pull requests\", \"code\"],\n },\n {\n id: \"slack\",\n name: \"Slack\",\n provider: \"slack\",\n description:\n \"Search Slack conversations and take workspace actions through MCP.\",\n descriptionKey: \"mcpIntegrations.catalog.slack.description\",\n useCase: \"messages, channels, people, company memory, workflows\",\n useCaseKey: \"mcpIntegrations.catalog.slack.useCase\",\n url: \"https://mcp.slack.com/mcp\",\n authMode: \"oauth\",\n connectionMode: \"manual\",\n availability: \"client-restricted\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"slack\"),\n docsUrl: \"https://docs.slack.dev/ai/slack-mcp-server/\",\n setupNoteKey: \"mcpIntegrations.catalog.slack.setupNote\",\n keywords: [\"messages\", \"channels\", \"search\", \"people\", \"chat\"],\n },\n {\n id: \"asana\",\n name: \"Asana\",\n provider: \"asana\",\n description:\n \"Search and manage Asana tasks, projects, and work graph data.\",\n descriptionKey: \"mcpIntegrations.catalog.asana.description\",\n useCase: \"tasks, projects, portfolios, planning, workload\",\n useCaseKey: \"mcpIntegrations.catalog.asana.useCase\",\n url: \"https://mcp.asana.com/v2/mcp\",\n authMode: \"oauth\",\n connectionMode: \"manual\",\n availability: \"provider-setup\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"asana\"),\n docsUrl:\n \"https://developers.asana.com/docs/integrating-with-asanas-mcp-server\",\n setupNoteKey: \"mcpIntegrations.catalog.asana.setupNote\",\n keywords: [\"tasks\", \"projects\", \"planning\", \"workload\", \"portfolios\"],\n },\n {\n id: \"hubspot\",\n name: \"HubSpot\",\n provider: \"hubspot\",\n description: \"Search and update HubSpot CRM records through MCP.\",\n descriptionKey: \"mcpIntegrations.catalog.hubspot.description\",\n useCase: \"CRM, contacts, companies, deals, tickets, customer analytics\",\n useCaseKey: \"mcpIntegrations.catalog.hubspot.useCase\",\n url: \"https://mcp.hubspot.com\",\n authMode: \"oauth\",\n connectionMode: \"manual\",\n availability: \"provider-setup\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"hubspot\"),\n docsUrl:\n \"https://developers.hubspot.com/docs/apps/developer-platform/build-apps/integrate-with-the-remote-hubspot-mcp-server\",\n setupNoteKey: \"mcpIntegrations.catalog.hubspot.setupNote\",\n keywords: [\"crm\", \"contacts\", \"companies\", \"deals\", \"tickets\"],\n },\n {\n id: \"intercom\",\n name: \"Intercom\",\n provider: \"intercom\",\n description: \"Search conversations and customer support knowledge.\",\n descriptionKey: \"mcpIntegrations.catalog.intercom.description\",\n useCase: \"customer support, conversations, contacts, help center content\",\n useCaseKey: \"mcpIntegrations.catalog.intercom.useCase\",\n url: \"https://mcp.intercom.com/mcp\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"intercom\"),\n docsUrl: \"https://developers.intercom.com/docs/guides/mcp\",\n setupNoteKey: \"mcpIntegrations.catalog.intercom.setupNote\",\n keywords: [\"support\", \"conversations\", \"customers\", \"help center\"],\n },\n {\n id: \"monday\",\n name: \"monday.com\",\n provider: \"monday\",\n description: \"Work with boards, items, and team workflows.\",\n descriptionKey: \"mcpIntegrations.catalog.monday.description\",\n useCase: \"work management, boards, projects, tasks, team operations\",\n useCaseKey: \"mcpIntegrations.catalog.monday.useCase\",\n url: \"https://mcp.monday.com/mcp\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"monday\"),\n docsUrl:\n \"https://developer.monday.com/api-reference/docs/build-on-monday-with-ai\",\n setupNoteKey: \"mcpIntegrations.catalog.monday.setupNote\",\n keywords: [\"work management\", \"boards\", \"projects\", \"tasks\", \"teams\"],\n },\n {\n id: \"webflow\",\n name: \"Webflow\",\n provider: \"webflow\",\n description: \"Read and update Webflow sites and content.\",\n descriptionKey: \"mcpIntegrations.catalog.webflow.description\",\n useCase: \"websites, CMS, site content, publishing, design workflows\",\n useCaseKey: \"mcpIntegrations.catalog.webflow.useCase\",\n url: \"https://mcp.webflow.com/mcp\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"webflow\"),\n docsUrl: \"https://developers.webflow.com/mcp/reference/getting-started\",\n setupNoteKey: \"mcpIntegrations.catalog.webflow.setupNote\",\n keywords: [\"websites\", \"cms\", \"content\", \"publishing\", \"design\"],\n },\n {\n id: \"paypal\",\n name: \"PayPal\",\n provider: \"paypal\",\n description: \"Work with PayPal payments, invoices, and commerce data.\",\n descriptionKey: \"mcpIntegrations.catalog.paypal.description\",\n useCase: \"payments, invoices, transactions, merchant operations\",\n useCaseKey: \"mcpIntegrations.catalog.paypal.useCase\",\n url: \"https://mcp.paypal.com/sse\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"paypal\"),\n docsUrl: \"https://developer.paypal.com/ai-tools/mcp-server/\",\n setupNoteKey: \"mcpIntegrations.catalog.paypal.setupNote\",\n keywords: [\"payments\", \"invoices\", \"transactions\", \"commerce\"],\n },\n {\n id: \"box\",\n name: \"Box\",\n provider: \"box\",\n description: \"Search and manage files and folders in Box.\",\n descriptionKey: \"mcpIntegrations.catalog.box.description\",\n useCase: \"files, folders, enterprise content, search, collaboration\",\n useCaseKey: \"mcpIntegrations.catalog.box.useCase\",\n url: \"https://mcp.box.com\",\n authMode: \"oauth\",\n connectionMode: \"manual\",\n availability: \"provider-setup\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"box\"),\n docsUrl: \"https://developer.box.com/guides/box-mcp\",\n setupNoteKey: \"mcpIntegrations.catalog.box.setupNote\",\n keywords: [\"files\", \"folders\", \"documents\", \"enterprise content\"],\n },\n {\n id: \"netlify\",\n name: \"Netlify\",\n provider: \"netlify\",\n description: \"Inspect and operate Netlify sites and deployments.\",\n descriptionKey: \"mcpIntegrations.catalog.netlify.description\",\n useCase: \"sites, deployments, builds, domains, hosting operations\",\n useCaseKey: \"mcpIntegrations.catalog.netlify.useCase\",\n url: \"https://netlify-mcp.netlify.app/mcp\",\n authMode: \"oauth\",\n connectionMode: \"oauth\",\n availability: \"ready\",\n verification: \"preflight-only\",\n logoUrl: mcpIntegrationLogo(\"netlify\"),\n docsUrl:\n \"https://docs.netlify.com/build/build-with-ai/agent-setup-guides/agent-setup-overview/\",\n setupNoteKey: \"mcpIntegrations.catalog.netlify.setupNote\",\n keywords: [\"deployments\", \"builds\", \"sites\", \"hosting\", \"domains\"],\n },\n {\n id: \"zapier\",\n name: \"Zapier\",\n provider: \"zapier\",\n description: \"Connect MCP tools to thousands of app actions.\",\n descriptionKey: \"mcpIntegrations.catalog.zapier.description\",\n useCase: \"automation, workflows, app actions, cross-service operations\",\n useCaseKey: \"mcpIntegrations.catalog.zapier.useCase\",\n url: \"https://mcp.zapier.com/api/v1/connect\",\n authMode: \"headers\",\n connectionMode: \"headers\",\n availability: \"ready\",\n verification: \"restricted\",\n logoUrl: mcpIntegrationLogo(\"zapier\"),\n docsUrl:\n \"https://help.zapier.com/hc/en-us/articles/36265392843917-Use-Zapier-MCP-with-your-client\",\n setupNoteKey: \"mcpIntegrations.catalog.zapier.setupNote\",\n headerPlaceholder: \"Authorization: Bearer <zapier-mcp-token>\",\n keywords: [\"automation\", \"workflows\", \"actions\", \"apps\", \"integrations\"],\n },\n];\n\nfunction readRuntimeMcpIntegrationsConfig(): NormalizedMcpIntegrationsConfig {\n try {\n if (typeof __AGENT_NATIVE_MCP_INTEGRATIONS_CONFIG__ !== \"undefined\") {\n return normalizeMcpIntegrationsConfig(\n __AGENT_NATIVE_MCP_INTEGRATIONS_CONFIG__,\n );\n }\n } catch {\n // Test and non-Vite contexts may not define the compile-time constant.\n }\n return normalizeMcpIntegrationsConfig();\n}\n\nfunction normalizePresetConfig(\n config?: McpIntegrationsConfigInput | NormalizedMcpIntegrationsConfig,\n): NormalizedMcpIntegrationsConfig {\n if (config === undefined) return readRuntimeMcpIntegrationsConfig();\n return normalizeMcpIntegrationsConfig(config);\n}\n\nexport function getDefaultMcpIntegrations(\n config?: McpIntegrationsConfigInput | NormalizedMcpIntegrationsConfig,\n): DefaultMcpIntegration[] {\n const normalized = normalizePresetConfig(config);\n if (!normalized.enabled || !normalized.defaults.enabled) return [];\n\n const include = normalized.defaults.include\n ? new Set(normalized.defaults.include)\n : null;\n const exclude = new Set(normalized.defaults.exclude);\n return DEFAULT_MCP_INTEGRATIONS.filter((integration) => {\n const id = integration.id.toLowerCase();\n if (include && !include.has(id)) return false;\n return !exclude.has(id);\n });\n}\n\nexport function isCustomMcpIntegrationEnabled(\n config?: McpIntegrationsConfigInput | NormalizedMcpIntegrationsConfig,\n): boolean {\n const normalized = normalizePresetConfig(config);\n return normalized.enabled && normalized.custom;\n}\n\nexport function isMcpIntegrationCatalogAvailable(\n config?: McpIntegrationsConfigInput | NormalizedMcpIntegrationsConfig,\n): boolean {\n const normalized = normalizePresetConfig(config);\n if (!normalized.enabled) return false;\n return normalized.custom || getDefaultMcpIntegrations(normalized).length > 0;\n}\n\nexport function mcpIntegrationAuthLabel(mode: McpIntegrationAuthMode): string {\n if (mode === \"none\") return \"No auth\";\n if (mode === \"headers\") return \"Header\";\n return \"OAuth\";\n}\n\nexport function buildMcpOAuthStartUrl({\n name,\n url,\n description,\n scope,\n returnUrl,\n}: McpOAuthStartParams): string {\n const params = new URLSearchParams({\n name,\n url,\n description,\n scope,\n return: returnUrl,\n });\n return `/_agent-native/mcp/servers/oauth/start?${params.toString()}`;\n}\n\nexport function resolveMcpIntegrationScope(\n defaultScope: \"user\" | \"org\",\n hasOrg: boolean,\n canCreateOrgMcp: boolean,\n): \"user\" | \"org\" {\n return defaultScope === \"org\" && hasOrg && canCreateOrgMcp ? \"org\" : \"user\";\n}\n\nexport function filterMcpIntegrations(\n query: string,\n integrations: DefaultMcpIntegration[] = getDefaultMcpIntegrations(),\n): DefaultMcpIntegration[] {\n const needle = query.trim().toLowerCase();\n if (!needle) return integrations;\n return integrations.filter((integration) => {\n const haystack = [\n integration.name,\n integration.provider,\n integration.description,\n integration.useCase,\n integration.url,\n ...integration.keywords,\n ]\n .join(\" \")\n .toLowerCase();\n return haystack.includes(needle);\n });\n}\n\nconst MCP_LINK_HOSTS: Record<string, string[]> = {\n notion: [\"notion.so\", \"notion.site\"],\n canva: [\"canva.com\", \"canva.ai\"],\n figma: [\"figma.com\"],\n linear: [\"linear.app\"],\n github: [\"github.com\", \"github.dev\"],\n gitlab: [\"gitlab.com\"],\n slack: [\"slack.com\"],\n asana: [\"asana.com\"],\n hubspot: [\"hubspot.com\"],\n intercom: [\"intercom.com\"],\n monday: [\"monday.com\"],\n webflow: [\"webflow.com\"],\n paypal: [\"paypal.com\"],\n box: [\"box.com\"],\n netlify: [\"netlify.com\"],\n};\n\nfunction hostMatches(hostname: string, domain: string): boolean {\n return hostname === domain || hostname.endsWith(`.${domain}`);\n}\n\nfunction findUrlForText(text: string): URL | null {\n const candidates = text.match(/https?:\\/\\/[^\\s<>()[\\]{}]+/gi) ?? [];\n for (const candidate of candidates) {\n try {\n return new URL(candidate.replace(/[.,!?;:'\\\"]+$/, \"\"));\n } catch {\n // Ignore prose that only looks like a URL.\n }\n }\n return null;\n}\n\nconst MCP_RESOURCE_INTENT_PATTERN =\n /\\b(?:connect|connected|connection|integration|integrate|link|page|document|doc|file|workspace|project|issue|design|board|channel|message|ticket|read|access|open|see|fetch|sync|import)\\b/i;\n\nexport function findMcpIntegrationForText(\n text: string,\n integrations: DefaultMcpIntegration[] = getDefaultMcpIntegrations(),\n): DefaultMcpIntegration | null {\n const url = findUrlForText(text);\n if (url) {\n const match = integrations.find((integration) =>\n (MCP_LINK_HOSTS[integration.id] ?? []).some((domain) =>\n hostMatches(url.hostname.toLowerCase(), domain),\n ),\n );\n if (match) return match;\n }\n\n const normalizedText = text.toLowerCase();\n const hasResourceIntent =\n MCP_RESOURCE_INTENT_PATTERN.test(normalizedText) ||\n isMcpConnectionFailureText(normalizedText);\n if (!hasResourceIntent) return null;\n return (\n integrations.find((integration) => {\n const aliases = [integration.name, integration.provider, integration.id];\n return aliases.some((alias) => {\n const escaped = alias.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n return new RegExp(`(^|[^a-z0-9])${escaped}([^a-z0-9]|$)`, \"i\").test(\n normalizedText,\n );\n });\n }) ?? null\n );\n}\n\nexport function isMcpConnectionFailureText(text: string): boolean {\n return /\\b(?:can(?:not|'t|’t)|could(?: not|n't|n’t)|unable|failed|don't have access|don’t have access|not connected|not able)\\b[\\s\\S]{0,80}\\b(?:read|access|open|see|fetch|connect)\\b/i.test(\n text,\n );\n}\n\nexport function createMcpIntegrationFormDefaults(\n integration?: DefaultMcpIntegration | null,\n): McpIntegrationFormDefaults {\n if (!integration) {\n return {\n name: \"\",\n url: \"\",\n description: \"\",\n headersText: \"\",\n };\n }\n return {\n name: integration.name,\n url: integration.url,\n description: integration.description,\n headersText: \"\",\n };\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export declare function mcpIntegrationLogo(id: string): string;
2
+ //# sourceMappingURL=mcp-integration-logos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-integration-logos.d.ts","sourceRoot":"","sources":["../../../src/client/resources/mcp-integration-logos.ts"],"names":[],"mappings":"AAuGA,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAIrD"}