@rudderhq/server 0.6.2 → 0.6.3

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 (118) hide show
  1. package/dist/bundled-plugins/plugin-linear/dist/worker.js +37 -5
  2. package/dist/bundled-plugins/plugin-linear/dist/worker.js.map +2 -2
  3. package/dist/routes/managed-mcp-connections.d.ts.map +1 -1
  4. package/dist/routes/managed-mcp-connections.js +8 -2
  5. package/dist/routes/managed-mcp-connections.js.map +1 -1
  6. package/dist/services/agents.d.ts.map +1 -1
  7. package/dist/services/agents.js +19 -14
  8. package/dist/services/agents.js.map +1 -1
  9. package/dist/services/chat-assistant.d.ts.map +1 -1
  10. package/dist/services/chat-assistant.js +22 -0
  11. package/dist/services/chat-assistant.js.map +1 -1
  12. package/dist/services/chat-work-manifest.d.ts.map +1 -1
  13. package/dist/services/chat-work-manifest.js +24 -1
  14. package/dist/services/chat-work-manifest.js.map +1 -1
  15. package/dist/services/knowledge-portability/organization-skills.catalog.d.ts.map +1 -1
  16. package/dist/services/knowledge-portability/organization-skills.catalog.js +0 -4
  17. package/dist/services/knowledge-portability/organization-skills.catalog.js.map +1 -1
  18. package/dist/services/mcp/managed-bindings.d.ts +10 -0
  19. package/dist/services/mcp/managed-bindings.d.ts.map +1 -1
  20. package/dist/services/mcp/managed-bindings.js +171 -41
  21. package/dist/services/mcp/managed-bindings.js.map +1 -1
  22. package/dist/services/mcp/managed-connections.d.ts +9 -5
  23. package/dist/services/mcp/managed-connections.d.ts.map +1 -1
  24. package/dist/services/mcp/managed-connections.js +44 -8
  25. package/dist/services/mcp/managed-connections.js.map +1 -1
  26. package/dist/services/mcp/oauth.d.ts.map +1 -1
  27. package/dist/services/mcp/oauth.js +6 -0
  28. package/dist/services/mcp/oauth.js.map +1 -1
  29. package/package.json +14 -13
  30. package/resources/bundled-skills/rudder-docs/references/cli-reference.md +1 -0
  31. package/resources/postinstall-postgres-compat.mjs +190 -0
  32. package/skills/rudder-docs/references/cli-reference.md +1 -0
  33. package/ui-dist/assets/{LibraryLiveSurface-CnZxAEHp.js → LibraryLiveSurface-DDtwPO9-.js} +1 -1
  34. package/ui-dist/assets/{abnfDiagram-VRR7QNED-B208YmVN.js → abnfDiagram-VRR7QNED-CPGW8okb.js} +1 -1
  35. package/ui-dist/assets/{arc-_raxgt-X.js → arc-cdttZ__q.js} +1 -1
  36. package/ui-dist/assets/{architectureDiagram-ZJ3FMSHR-y3eHT3Gk.js → architectureDiagram-ZJ3FMSHR-BsG01pWN.js} +1 -1
  37. package/ui-dist/assets/{blockDiagram-677ZJIJ3-BT7LIBsS.js → blockDiagram-677ZJIJ3-B1roP0tr.js} +1 -1
  38. package/ui-dist/assets/{c4Diagram-LMCZKHZV-w0r6PEZM.js → c4Diagram-LMCZKHZV-DqRfWVhA.js} +1 -1
  39. package/ui-dist/assets/channel-DfmxiTZj.js +1 -0
  40. package/ui-dist/assets/{chunk-2Q5K7J3B-C3fuIoNI.js → chunk-2Q5K7J3B-BA969KqV.js} +1 -1
  41. package/ui-dist/assets/{chunk-32BRIVSS-DMb9Q2qh.js → chunk-32BRIVSS-CrwMHsoI.js} +1 -1
  42. package/ui-dist/assets/{chunk-5VM5RSS4-BqMkrxOv.js → chunk-5VM5RSS4-Dt5IzMJF.js} +1 -1
  43. package/ui-dist/assets/{chunk-EX3LRPZG-D0uW7ZHY.js → chunk-EX3LRPZG-aMzbbsKQ.js} +1 -1
  44. package/ui-dist/assets/{chunk-JWPE2WC7-_2Qhrxej.js → chunk-JWPE2WC7-DhMIT9qe.js} +1 -1
  45. package/ui-dist/assets/{chunk-MOJQB5TN-Bx3r3XhP.js → chunk-MOJQB5TN-BUbZ_L5c.js} +1 -1
  46. package/ui-dist/assets/{chunk-RYQCIY6F-ryJ6ulQN.js → chunk-RYQCIY6F-B7J4A2jr.js} +1 -1
  47. package/ui-dist/assets/{chunk-V7JOEXUC-CpTtqgWd.js → chunk-V7JOEXUC-B7L-FIpm.js} +1 -1
  48. package/ui-dist/assets/{chunk-VR4S4FIN-C4qXyyxR.js → chunk-VR4S4FIN-Ccf5E8Bp.js} +1 -1
  49. package/ui-dist/assets/{chunk-XXDRQBXY-CRPbq1d0.js → chunk-XXDRQBXY-DcGZXUsU.js} +1 -1
  50. package/ui-dist/assets/classDiagram-OUVF2IWQ-DgIUfFB6.js +1 -0
  51. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-DgIUfFB6.js +1 -0
  52. package/ui-dist/assets/{cose-bilkent-JH36ORCC-DClTXY3x.js → cose-bilkent-JH36ORCC-Cvha__4O.js} +1 -1
  53. package/ui-dist/assets/{cynefin-VYW2F7L2-BqQy_6rq.js → cynefin-VYW2F7L2-CifR50Bv.js} +1 -1
  54. package/ui-dist/assets/{cynefinDiagram-TSTJHNR4-C_5uIlLF.js → cynefinDiagram-TSTJHNR4-B5y2Au_Q.js} +1 -1
  55. package/ui-dist/assets/{dagre-VKFMJZFB-CvzApokN.js → dagre-VKFMJZFB-C8Z7NP5s.js} +1 -1
  56. package/ui-dist/assets/{diagram-FQU43EPY-lsQoO58-.js → diagram-FQU43EPY-B8PsSp7k.js} +1 -1
  57. package/ui-dist/assets/{diagram-G47NLZAW-DJSeMnXd.js → diagram-G47NLZAW-ZNeHjQTo.js} +1 -1
  58. package/ui-dist/assets/{diagram-NH7WQ7WH-Cfg6gXXN.js → diagram-NH7WQ7WH-BkJ5Cvc8.js} +1 -1
  59. package/ui-dist/assets/{diagram-OA4YK3LP-DUS8ge-b.js → diagram-OA4YK3LP-CG-ul2t9.js} +1 -1
  60. package/ui-dist/assets/{diagram-WEI45ONY-Cp-l5tVI.js → diagram-WEI45ONY-BBlyiYvo.js} +1 -1
  61. package/ui-dist/assets/{ebnfDiagram-CCIWWBDH-BlRaFF_K.js → ebnfDiagram-CCIWWBDH-C5Cyd8ui.js} +1 -1
  62. package/ui-dist/assets/{erDiagram-Q63AITRT-BZwqidAe.js → erDiagram-Q63AITRT-B5zvHIlc.js} +1 -1
  63. package/ui-dist/assets/{flowDiagram-23GEKE2U-BsfwK51N.js → flowDiagram-23GEKE2U-BD-iyLqx.js} +1 -1
  64. package/ui-dist/assets/{ganttDiagram-NO4QXBWP-D7rDtE9-.js → ganttDiagram-NO4QXBWP-9K9W4jBD.js} +1 -1
  65. package/ui-dist/assets/{gitGraphDiagram-IHSO6WYX-SI7fggdm.js → gitGraphDiagram-IHSO6WYX-DGKvptbn.js} +1 -1
  66. package/ui-dist/assets/{graph-jB2l85dN.js → graph-DqZBAYr1.js} +1 -1
  67. package/ui-dist/assets/{index-C_i-wGZX.js → index-3GRrrNfi.js} +1 -1
  68. package/ui-dist/assets/{index-CkjUvGSq.js → index-BD2LA7PJ.js} +1 -1
  69. package/ui-dist/assets/{index-CuPTWos7.js → index-BI28zsJq.js} +1 -1
  70. package/ui-dist/assets/{index-DR1WCr91.js → index-BQXnkO7e.js} +1 -1
  71. package/ui-dist/assets/{index-CZoL7L4x.js → index-Be4chI91.js} +1 -1
  72. package/ui-dist/assets/{index-CMGFrbv8.js → index-CHVQhWui.js} +1 -1
  73. package/ui-dist/assets/{index-DMFCHg9M.js → index-CKiSO725.js} +1 -1
  74. package/ui-dist/assets/{index-D8o_GAok.js → index-C_agqJXV.js} +1 -1
  75. package/ui-dist/assets/{index-gRrC-1Ro.js → index-CgZyL7nO.js} +1 -1
  76. package/ui-dist/assets/{index-BEtrDYuf.js → index-Cgq_Nd80.js} +1 -1
  77. package/ui-dist/assets/{index-DrRmkklS.js → index-ChvsJxSq.js} +526 -526
  78. package/ui-dist/assets/{index-DV8jlH7u.js → index-CosdYdyn.js} +1 -1
  79. package/ui-dist/assets/{index-DaC9LwaF.js → index-DFAyibYD.js} +1 -1
  80. package/ui-dist/assets/{index-BzZl24GX.js → index-DXElnq8U.js} +1 -1
  81. package/ui-dist/assets/{index-CTAmMJYG.js → index-D_KT5uHb.js} +1 -1
  82. package/ui-dist/assets/{index-BXIRLNEz.js → index-DuOt7u6c.js} +1 -1
  83. package/ui-dist/assets/{index-C2YHCs23.js → index-DufxYLOh.js} +1 -1
  84. package/ui-dist/assets/index-Z8v3wJ-J.css +1 -0
  85. package/ui-dist/assets/{index-3UJgpZuo.js → index-cEYpY2vS.js} +1 -1
  86. package/ui-dist/assets/{infoDiagram-FWYZ7A6U-Dq_2Rg1m.js → infoDiagram-FWYZ7A6U-BnmKSBJv.js} +1 -1
  87. package/ui-dist/assets/{ishikawaDiagram-FXEZZL3T-uyywLhOx.js → ishikawaDiagram-FXEZZL3T-Dwi1X9vP.js} +1 -1
  88. package/ui-dist/assets/{journeyDiagram-5HDEW3XC-BSdGAEe3.js → journeyDiagram-5HDEW3XC-C87A4WNd.js} +1 -1
  89. package/ui-dist/assets/{kanban-definition-HUTT4EX6-BeiytV3M.js → kanban-definition-HUTT4EX6-DcIdsL4-.js} +1 -1
  90. package/ui-dist/assets/{layout-kKtSz6Lw.js → layout-A4i4tMDj.js} +1 -1
  91. package/ui-dist/assets/{linear-BNg7ltC5.js → linear-a8MBxvqP.js} +1 -1
  92. package/ui-dist/assets/{map-rBM_jVzN.js → map-PBENE1Mt.js} +1 -1
  93. package/ui-dist/assets/{mermaid.core-B0lX_I1S.js → mermaid.core-CdxFJae5.js} +4 -4
  94. package/ui-dist/assets/{mindmap-definition-LN4V7U3C-6WrmM-3d.js → mindmap-definition-LN4V7U3C-D2y81BWu.js} +1 -1
  95. package/ui-dist/assets/{pegDiagram-2B236MQR-BJ0lR6j8.js → pegDiagram-2B236MQR-7GJJ4jPf.js} +1 -1
  96. package/ui-dist/assets/{pieDiagram-ENE6RG2P-Ch-KedEq.js → pieDiagram-ENE6RG2P-mq_oDI_I.js} +1 -1
  97. package/ui-dist/assets/{quadrantDiagram-ABIIQ3AL-BLnrHtbN.js → quadrantDiagram-ABIIQ3AL-DeEWS5i6.js} +1 -1
  98. package/ui-dist/assets/{railroadDiagram-RFXS5EU6-u0KJZK8C.js → railroadDiagram-RFXS5EU6-oRP4s3Xo.js} +1 -1
  99. package/ui-dist/assets/{requirementDiagram-TGXJPOKE-C1MzHKp-.js → requirementDiagram-TGXJPOKE-CLUKSK3f.js} +1 -1
  100. package/ui-dist/assets/{sankeyDiagram-HTMAVEWB-UIufCGDd.js → sankeyDiagram-HTMAVEWB-BJmkw4A-.js} +1 -1
  101. package/ui-dist/assets/{sequenceDiagram-DBY2YBRQ-Cv8Fb7zZ.js → sequenceDiagram-DBY2YBRQ-CIhklpNq.js} +1 -1
  102. package/ui-dist/assets/{sizeCapture-X5ZJPWSS-9U-7wwO3.js → sizeCapture-X5ZJPWSS-DnJU-X_B.js} +1 -1
  103. package/ui-dist/assets/{stateDiagram-2N3HPSRC-BEOjkPpv.js → stateDiagram-2N3HPSRC-CzPZYUvw.js} +1 -1
  104. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-Dk2P5d1W.js +1 -0
  105. package/ui-dist/assets/{swimlanes-5IMT3BWC-BEwruQnI.js → swimlanes-5IMT3BWC-Cn4XtApY.js} +2 -2
  106. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-Db9edjpu.js +8 -0
  107. package/ui-dist/assets/{timeline-definition-FHXFAJF6-CfWC6EYo.js → timeline-definition-FHXFAJF6-BEmaJO32.js} +1 -1
  108. package/ui-dist/assets/{vennDiagram-L72KCM5P-B2BPrj_n.js → vennDiagram-L72KCM5P-CpysQOlB.js} +1 -1
  109. package/ui-dist/assets/{wardleyDiagram-EHGQE667-Cx2wmgRm.js → wardleyDiagram-EHGQE667-DVxM94Jq.js} +1 -1
  110. package/ui-dist/assets/{xychartDiagram-FW5EYKEG-Due4dZhR.js → xychartDiagram-FW5EYKEG-BdGioQRC.js} +1 -1
  111. package/ui-dist/index.html +2 -2
  112. package/resources/community-skills/software-product-advisor/SKILL.md +0 -290
  113. package/ui-dist/assets/channel-NqK-mAXf.js +0 -1
  114. package/ui-dist/assets/classDiagram-OUVF2IWQ-CRSBnWpX.js +0 -1
  115. package/ui-dist/assets/classDiagram-v2-EOCWNBFH-CRSBnWpX.js +0 -1
  116. package/ui-dist/assets/index-CFGCM2jL.css +0 -1
  117. package/ui-dist/assets/stateDiagram-v2-6OUMAXLB-BBO_VsOI.js +0 -1
  118. package/ui-dist/assets/swimlanesDiagram-G3AALYLV-DjAl9cJv.js +0 -8
@@ -1,8 +1,17 @@
1
1
  import { activityLog, agentCustomIntegrationBindings, agents, customIntegrationTools, heartbeatRuns, mcpConnections, mcpOAuthGrants, } from "@rudderhq/db";
2
2
  import { upsertMcpAgentBindingSchema, } from "@rudderhq/shared";
3
- import { and, asc, eq, inArray, isNotNull, ne, or, sql } from "drizzle-orm";
3
+ import { and, asc, eq, inArray, isNotNull, ne, notInArray, or, sql } from "drizzle-orm";
4
4
  import { conflict, notFound, unprocessable } from "../../errors.js";
5
5
  import { isManagedMcpToolCapabilityAllowed, managedMcpRuntimeServerName, } from "./tool-discovery.js";
6
+ function isEligibleAutomaticMcpAgent(agent) {
7
+ if (agent.status === "terminated")
8
+ return false;
9
+ const metadata = agent.metadata;
10
+ if (!metadata || typeof metadata !== "object" || Array.isArray(metadata))
11
+ return true;
12
+ const record = metadata;
13
+ return record.hidden !== true && record.systemManaged !== "rudder_copilot";
14
+ }
6
15
  export function effectiveManagedMcpAccess(bindingAccess, provider, organizationAccess) {
7
16
  if (bindingAccess === "none")
8
17
  return "none";
@@ -19,6 +28,8 @@ function publicConnection(row) {
19
28
  return {
20
29
  id: row.id,
21
30
  orgId: row.orgId,
31
+ scope: row.scope,
32
+ ownerAgentId: row.ownerAgentId,
22
33
  name: row.name,
23
34
  displayName: row.displayName,
24
35
  provider: row.provider,
@@ -74,6 +85,83 @@ function defaultAgentAccess(connection) {
74
85
  return "provider_granted";
75
86
  return connection.accessMode === "read_only" ? "read_only" : "read_write";
76
87
  }
88
+ async function activeToolIdsForConnection(db, connectionId) {
89
+ return db.select({ id: customIntegrationTools.id })
90
+ .from(customIntegrationTools)
91
+ .where(and(eq(customIntegrationTools.connectionId, connectionId), eq(customIntegrationTools.status, "active"), eq(customIntegrationTools.enabled, true)))
92
+ .then((rows) => rows.map((row) => row.id));
93
+ }
94
+ async function insertAutomaticBinding(db, connection, agentId, source) {
95
+ const enabledToolIds = await activeToolIdsForConnection(db, connection.id);
96
+ const created = await db.insert(agentCustomIntegrationBindings)
97
+ .values({
98
+ orgId: connection.orgId,
99
+ agentId,
100
+ connectionId: connection.id,
101
+ status: "active",
102
+ accessMode: defaultAgentAccess(connection),
103
+ enabledToolIds,
104
+ })
105
+ .onConflictDoNothing()
106
+ .returning()
107
+ .then((rows) => rows[0] ?? null);
108
+ if (!created)
109
+ return;
110
+ await db.insert(activityLog).values(activityValues({
111
+ orgId: connection.orgId,
112
+ agentId,
113
+ connectionId: connection.id,
114
+ bindingId: created.id,
115
+ action: "mcp_agent_binding.created",
116
+ actor: {},
117
+ details: {
118
+ status: created.status,
119
+ accessMode: created.accessMode,
120
+ policyRevision: created.policyRevision,
121
+ enabledToolCount: created.enabledToolIds.length,
122
+ source,
123
+ },
124
+ }));
125
+ }
126
+ /**
127
+ * Creates only missing bindings at the connection's immutable ownership boundary.
128
+ * Existing bindings, including explicit No access, are never overwritten.
129
+ */
130
+ export async function ensureDefaultManagedMcpBindingsForConnection(db, connection) {
131
+ if (connection.status !== "active"
132
+ || !connection.enabled
133
+ || connection.transport === "legacy_manual"
134
+ || connection.canonicalState !== "canonical")
135
+ return;
136
+ if (connection.scope === "agent") {
137
+ if (!connection.ownerAgentId)
138
+ return;
139
+ await insertAutomaticBinding(db, connection, connection.ownerAgentId, "connection_activation");
140
+ return;
141
+ }
142
+ const organizationAgents = await db.select({
143
+ id: agents.id,
144
+ status: agents.status,
145
+ metadata: agents.metadata,
146
+ }).from(agents).where(eq(agents.orgId, connection.orgId));
147
+ for (const agent of organizationAgents.filter(isEligibleAutomaticMcpAgent)) {
148
+ await insertAutomaticBinding(db, connection, agent.id, "connection_activation");
149
+ }
150
+ }
151
+ export async function ensureOrganizationManagedMcpBindingsForAgent(db, orgId, agentId) {
152
+ const agent = await db.select({
153
+ id: agents.id,
154
+ status: agents.status,
155
+ metadata: agents.metadata,
156
+ }).from(agents).where(and(eq(agents.orgId, orgId), eq(agents.id, agentId))).then((rows) => rows[0] ?? null);
157
+ if (!agent || !isEligibleAutomaticMcpAgent(agent))
158
+ return;
159
+ const organizationConnections = await db.select().from(mcpConnections)
160
+ .where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.scope, "organization"), eq(mcpConnections.status, "active"), eq(mcpConnections.enabled, true), eq(mcpConnections.canonicalState, "canonical"), ne(mcpConnections.transport, "legacy_manual")));
161
+ for (const connection of organizationConnections) {
162
+ await insertAutomaticBinding(db, connection, agentId, "agent_creation");
163
+ }
164
+ }
77
165
  function assertAgentAccessAllowed(connection, accessMode) {
78
166
  if (accessMode === "none")
79
167
  return;
@@ -176,7 +264,7 @@ export function managedMcpBindingService(db) {
176
264
  await assertAgentInOrg(orgId, agentId);
177
265
  const [connections, bindings, tools] = await Promise.all([
178
266
  db.select().from(mcpConnections)
179
- .where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.status, "active"), eq(mcpConnections.enabled, true), ne(mcpConnections.transport, "legacy_manual"), or(eq(mcpConnections.provider, "custom"), eq(mcpConnections.canonicalState, "canonical"))))
267
+ .where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.status, "active"), eq(mcpConnections.enabled, true), ne(mcpConnections.transport, "legacy_manual"), or(eq(mcpConnections.scope, "organization"), and(eq(mcpConnections.scope, "agent"), eq(mcpConnections.ownerAgentId, agentId))), or(eq(mcpConnections.provider, "custom"), eq(mcpConnections.canonicalState, "canonical"))))
180
268
  .orderBy(asc(mcpConnections.displayName), asc(mcpConnections.name)),
181
269
  db.select().from(agentCustomIntegrationBindings)
182
270
  .where(and(eq(agentCustomIntegrationBindings.orgId, orgId), eq(agentCustomIntegrationBindings.agentId, agentId))),
@@ -226,7 +314,15 @@ export function managedMcpBindingService(db) {
226
314
  .innerJoin(mcpOAuthGrants, eq(mcpOAuthGrants.connectionId, mcpConnections.id))
227
315
  .where(and(eq(mcpConnections.orgId, orgId), inArray(mcpConnections.provider, [...providers]), eq(mcpConnections.canonicalState, "superseded"), eq(mcpOAuthGrants.orgId, orgId), eq(mcpOAuthGrants.status, "active"), isNotNull(mcpOAuthGrants.credentialSecretId))),
228
316
  ]);
229
- const connectionByProvider = new Map(connections.map((connection) => [connection.provider, connection]));
317
+ const organizationConnectionByProvider = new Map(connections
318
+ .filter((connection) => connection.scope === "organization")
319
+ .map((connection) => [connection.provider, connection]));
320
+ const agentConnectionsByProvider = new Map();
321
+ for (const connection of connections.filter((candidate) => candidate.scope === "agent")) {
322
+ const values = agentConnectionsByProvider.get(connection.provider) ?? [];
323
+ values.push(connection);
324
+ agentConnectionsByProvider.set(connection.provider, values);
325
+ }
230
326
  const bindingByConnection = new Map(bindings
231
327
  .filter((binding) => binding.connectionId && binding.agentId === agentId)
232
328
  .map((binding) => [binding.connectionId, binding]));
@@ -247,49 +343,58 @@ export function managedMcpBindingService(db) {
247
343
  agentsForConnection.add(binding.agentId);
248
344
  affectedAgentsByConnection.set(binding.connectionId, agentsForConnection);
249
345
  }
250
- return providers.map((provider) => {
251
- const connection = connectionByProvider.get(provider);
252
- if (!connection) {
253
- return {
254
- provider,
255
- organization: {
256
- state: "not_connected",
257
- connectionId: null,
258
- maxAccess: null,
259
- scopeMode: null,
260
- revision: null,
261
- affectedAgentCount: 0,
262
- historicalGrantConnectionIds: [
263
- ...(historicalGrantIdsByProvider.get(provider) ?? []),
264
- ].sort(),
265
- },
266
- ...(agentId
267
- ? { agent: { access: "none", activeRunUsesOlderPolicy: false } }
268
- : {}),
269
- };
346
+ const connectionState = (connection) => {
347
+ if (!connection)
348
+ return "not_connected";
349
+ if (connection.status === "active" && connection.enabled)
350
+ return "connected";
351
+ if (connection.status === "authorizing" || connection.status === "draft") {
352
+ return "connecting";
270
353
  }
271
- const organizationState = (connection.status === "active" && connection.enabled
272
- ? "connected"
273
- : connection.status === "authorizing" || connection.status === "draft"
274
- ? "connecting"
275
- : connection.status === "needs_reauth" || connection.status === "error"
276
- ? "needs_attention"
277
- : "disconnected");
278
- const binding = bindingByConnection.get(connection.id);
354
+ if (connection.status === "needs_reauth" || connection.status === "error") {
355
+ return "needs_attention";
356
+ }
357
+ return "disconnected";
358
+ };
359
+ const maxAccess = (connection) => (connection.provider === "notion"
360
+ ? "provider_granted"
361
+ : connection.accessMode);
362
+ return providers.map((provider) => {
363
+ const organizationConnection = organizationConnectionByProvider.get(provider);
364
+ const agentConnections = agentConnectionsByProvider.get(provider) ?? [];
365
+ const ownedConnection = agentId
366
+ ? agentConnections.find((connection) => connection.ownerAgentId === agentId)
367
+ : undefined;
368
+ const ownedShadowsOrganization = Boolean(ownedConnection
369
+ && ownedConnection.status !== "revoked"
370
+ && ownedConnection.status !== "disabled");
371
+ const effectiveConnection = ownedShadowsOrganization
372
+ ? connectionState(ownedConnection) === "connected"
373
+ ? ownedConnection
374
+ : undefined
375
+ : connectionState(organizationConnection) === "connected"
376
+ ? organizationConnection
377
+ : undefined;
378
+ const binding = effectiveConnection
379
+ ? bindingByConnection.get(effectiveConnection.id)
380
+ : undefined;
279
381
  const access = binding?.status === "active"
280
- ? effectiveManagedMcpAccess(binding.accessMode, connection.provider, connection.accessMode)
382
+ ? effectiveManagedMcpAccess(binding.accessMode, effectiveConnection.provider, effectiveConnection.accessMode)
281
383
  : "none";
282
384
  return {
283
385
  provider,
284
386
  organization: {
285
- state: organizationState,
286
- connectionId: connection.id,
287
- maxAccess: connection.provider === "notion"
288
- ? "provider_granted"
289
- : connection.accessMode,
290
- scopeMode: connection.scopeMode,
291
- revision: connection.revision,
292
- affectedAgentCount: affectedAgentsByConnection.get(connection.id)?.size ?? 0,
387
+ state: connectionState(organizationConnection),
388
+ connectionId: organizationConnection?.id ?? null,
389
+ maxAccess: organizationConnection ? maxAccess(organizationConnection) : null,
390
+ scopeMode: organizationConnection
391
+ ? organizationConnection.scopeMode
392
+ : null,
393
+ revision: organizationConnection?.revision ?? null,
394
+ affectedAgentCount: organizationConnection
395
+ ? affectedAgentsByConnection.get(organizationConnection.id)?.size ?? 0
396
+ : 0,
397
+ agentConnectionCount: agentConnections.filter((connection) => connection.status !== "revoked").length,
293
398
  historicalGrantConnectionIds: [
294
399
  ...(historicalGrantIdsByProvider.get(provider) ?? []),
295
400
  ].sort(),
@@ -298,6 +403,21 @@ export function managedMcpBindingService(db) {
298
403
  ? {
299
404
  agent: {
300
405
  access,
406
+ connection: ownedConnection
407
+ ? {
408
+ state: connectionState(ownedConnection),
409
+ connectionId: ownedConnection.id,
410
+ maxAccess: maxAccess(ownedConnection),
411
+ revision: ownedConnection.revision,
412
+ }
413
+ : null,
414
+ effectiveSource: effectiveConnection
415
+ ? effectiveConnection.scope === "agent" ? "agent" : "organization"
416
+ : "none",
417
+ effectiveConnectionId: effectiveConnection?.id ?? null,
418
+ explicitlyDisabled: Boolean(ownedShadowsOrganization
419
+ && binding
420
+ && (binding.status !== "active" || binding.accessMode === "none")),
301
421
  activeRunUsesOlderPolicy: Boolean(binding
302
422
  && runningRuns.some((run) => run.startedAt && binding.updatedAt > run.startedAt)),
303
423
  },
@@ -316,6 +436,9 @@ export function managedMcpBindingService(db) {
316
436
  .then((rows) => rows[0] ?? null);
317
437
  if (!connection)
318
438
  throw notFound("MCP connection not found");
439
+ if (connection.scope === "agent" && connection.ownerAgentId !== agentId) {
440
+ throw notFound("MCP connection not found");
441
+ }
319
442
  if (!connection.enabled
320
443
  || connection.status !== "active"
321
444
  || connection.transport === "legacy_manual") {
@@ -485,8 +608,11 @@ export function managedMcpBindingService(db) {
485
608
  })
486
609
  .from(agentCustomIntegrationBindings)
487
610
  .innerJoin(mcpConnections, eq(agentCustomIntegrationBindings.connectionId, mcpConnections.id))
488
- .where(and(eq(agentCustomIntegrationBindings.orgId, orgId), eq(agentCustomIntegrationBindings.agentId, agentId), eq(agentCustomIntegrationBindings.status, "active"), eq(mcpConnections.orgId, orgId), or(eq(mcpConnections.provider, "custom"), eq(mcpConnections.canonicalState, "canonical"))))
611
+ .where(and(eq(agentCustomIntegrationBindings.orgId, orgId), eq(agentCustomIntegrationBindings.agentId, agentId), eq(agentCustomIntegrationBindings.status, "active"), eq(mcpConnections.orgId, orgId), or(eq(mcpConnections.scope, "organization"), and(eq(mcpConnections.scope, "agent"), eq(mcpConnections.ownerAgentId, agentId))), or(eq(mcpConnections.provider, "custom"), eq(mcpConnections.canonicalState, "canonical"))))
489
612
  .orderBy(asc(mcpConnections.name));
613
+ const shadowedOfficialProviders = new Set((await db.select({ provider: mcpConnections.provider })
614
+ .from(mcpConnections)
615
+ .where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.scope, "agent"), eq(mcpConnections.ownerAgentId, agentId), eq(mcpConnections.canonicalState, "canonical"), notInArray(mcpConnections.status, ["disabled", "revoked"]), inArray(mcpConnections.provider, ["supabase", "linear", "notion"])))).map((row) => row.provider));
490
616
  const connectionIds = rows.map((row) => row.connection.id);
491
617
  const [tools, grants] = await Promise.all([
492
618
  connectionIds.length > 0
@@ -511,6 +637,10 @@ export function managedMcpBindingService(db) {
511
637
  }
512
638
  const runtime = [];
513
639
  for (const { binding, connection } of rows) {
640
+ if (connection.scope === "organization"
641
+ && connection.provider !== "custom"
642
+ && shadowedOfficialProviders.has(connection.provider))
643
+ continue;
514
644
  if (binding.accessMode === "none")
515
645
  continue;
516
646
  const effectiveAccess = effectiveManagedMcpAccess(binding.accessMode, connection.provider, connection.accessMode);
@@ -1 +1 @@
1
- {"version":3,"file":"managed-bindings.js","sourceRoot":"","sources":["../../../src/services/mcp/managed-bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"managed-bindings.js","sourceRoot":"","sources":["../../../src/services/mcp/managed-bindings.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { Db } from "@rudderhq/db";
2
- import { type CreateMcpConnection, type McpAgentAccessMode, type McpConnectionAccessMode, type McpConnectionProvider, type McpConnectionSummary, type McpDiscoveredTool, type UpdateMcpConnection } from "@rudderhq/shared";
2
+ import { type CreateMcpConnection, type McpAgentAccessMode, type McpConnectionAccessMode, type McpConnectionProvider, type McpConnectionScope, type McpConnectionSummary, type McpDiscoveredTool, type UpdateMcpConnection } from "@rudderhq/shared";
3
3
  import { HttpError } from "../../errors.js";
4
4
  import { type ManagedMcpClient, type ManagedMcpClientOptions, type ManagedMcpOAuthCredential } from "./managed-client.js";
5
5
  import { type McpDeploymentAllowlists, type McpDnsLookup } from "./security-policy.js";
@@ -34,9 +34,9 @@ export declare function managedMcpConnectionService(db: Db, options: ManagedMcpC
34
34
  label: "Supabase";
35
35
  curated: true;
36
36
  requiresOAuth: true;
37
- requiresScopeSelection: true;
38
- scopeLabel: "Project";
39
- defaultAccessMode: "read_only";
37
+ requiresScopeSelection: false;
38
+ scopeLabel: "Account";
39
+ defaultAccessMode: "read_write";
40
40
  } | {
41
41
  transports: ("stdio" | "streamable_http")[];
42
42
  accessModes: ("provider_default" | "read_only" | "read_write")[];
@@ -70,7 +70,11 @@ export declare function managedMcpConnectionService(db: Db, options: ManagedMcpC
70
70
  })[];
71
71
  list: (orgId: string) => Promise<McpConnectionSummary[]>;
72
72
  get: (orgId: string, connectionId: string) => Promise<McpConnectionSummary>;
73
- ensureOfficial: (orgId: string, provider: Exclude<McpConnectionProvider, "custom">, requestedAccessMode: McpConnectionAccessMode | undefined, actor?: ManagedMcpMutationActor) => Promise<McpConnectionSummary>;
73
+ ensureOfficial: (orgId: string, provider: Exclude<McpConnectionProvider, "custom">, target: {
74
+ scope: McpConnectionScope;
75
+ ownerAgentId: string | null;
76
+ accessMode?: McpConnectionAccessMode;
77
+ }, actor?: ManagedMcpMutationActor) => Promise<McpConnectionSummary>;
74
78
  prepareSupabaseAccountUpgrade: (orgId: string, legacyConnectionId: string, actor?: ManagedMcpMutationActor) => Promise<McpConnectionSummary>;
75
79
  openRuntimeClient: (orgId: string, connectionId: string, agentAccessMode?: McpAgentAccessMode) => Promise<ManagedMcpClient>;
76
80
  create: (orgId: string, rawInput: CreateMcpConnection, actor?: ManagedMcpMutationActor) => Promise<McpConnectionSummary>;
@@ -1 +1 @@
1
- {"version":3,"file":"managed-connections.d.ts","sourceRoot":"","sources":["../../../src/services/mcp/managed-connections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAUvC,OAAO,EAML,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAG1B,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAY,SAAS,EAA2B,MAAM,iBAAiB,CAAC;AAG/E,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAyB9B,MAAM,WAAW,kCAAkC;IACjD,cAAc,EAAE,eAAe,GAAG,eAAe,CAAC;IAClD,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/E,qBAAqB,CAAC,EAAE,CACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,KACjB,yBAAyB,CAAC;IAC/B,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAkBD,qBAAa,+BAAgC,SAAQ,SAAS;IAC5D,QAAQ,CAAC,IAAI,iCAAiC;gBAElC,OAAO,SAA6D;CAIjF;AAED,qBAAa,6BAA8B,SAAQ,SAAS;IAC1D,QAAQ,CAAC,IAAI,iCAAiC;;CAM/C;AAqSD,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAyP3B,MAAM;iBAQD,MAAM,gBAAgB,MAAM;4BAItC,MAAM,YACH,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,uBAC7B,uBAAuB,GAAG,SAAS,UACjD,uBAAuB;2CA+DvB,MAAM,sBACO,MAAM,UACnB,uBAAuB;+BAoEvB,MAAM,gBACC,MAAM,oBACF,kBAAkB;oBAc7B,MAAM,YACH,mBAAmB,UACtB,uBAAuB;oBAwFvB,MAAM,gBACC,MAAM,YACV,mBAAmB,UACtB,uBAAuB,YACrB,uBAAuB;uBAgMzB,MAAM,gBACC,MAAM,UACb,uBAAuB;wBA4DvB,MAAM,gBACC,MAAM,UACb,uBAAuB;uBAthBF,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;0BA2jBhF,MAAM,gBACC,MAAM,UACb,uBAAuB;EAuMnC"}
1
+ {"version":3,"file":"managed-connections.d.ts","sourceRoot":"","sources":["../../../src/services/mcp/managed-connections.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAWvC,OAAO,EAML,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,qBAAqB,EAE1B,KAAK,kBAAkB,EAEvB,KAAK,oBAAoB,EACzB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAY,SAAS,EAA2B,MAAM,iBAAiB,CAAC;AAI/E,OAAO,EAGL,KAAK,gBAAgB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC/B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAKL,KAAK,uBAAuB,EAC5B,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAyB9B,MAAM,WAAW,kCAAkC;IACjD,cAAc,EAAE,eAAe,GAAG,eAAe,CAAC;IAClD,UAAU,EAAE,uBAAuB,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,uBAAuB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAC/E,qBAAqB,CAAC,EAAE,CACtB,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,KACjB,yBAAyB,CAAC;IAC/B,SAAS,CAAC,EAAE,YAAY,CAAC;CAC1B;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAkBD,qBAAa,+BAAgC,SAAQ,SAAS;IAC5D,QAAQ,CAAC,IAAI,iCAAiC;gBAElC,OAAO,SAA6D;CAIjF;AAED,qBAAa,6BAA8B,SAAQ,SAAS;IAC1D,QAAQ,CAAC,IAAI,iCAAiC;;CAM/C;AAuSD,wBAAgB,2BAA2B,CACzC,EAAE,EAAE,EAAE,EACN,OAAO,EAAE,kCAAkC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA4Q3B,MAAM;iBAQD,MAAM,gBAAgB,MAAM;4BAItC,MAAM,YACH,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,UAC1C;QACN,KAAK,EAAE,kBAAkB,CAAC;QAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;QAC5B,UAAU,CAAC,EAAE,uBAAuB,CAAC;KACtC,UACM,uBAAuB;2CA0EvB,MAAM,sBACO,MAAM,UACnB,uBAAuB;+BA0EvB,MAAM,gBACC,MAAM,oBACF,kBAAkB;oBAc7B,MAAM,YACH,mBAAmB,UACtB,uBAAuB;oBA6FvB,MAAM,gBACC,MAAM,YACV,mBAAmB,UACtB,uBAAuB,YACrB,uBAAuB;uBAgMzB,MAAM,gBACC,MAAM,UACb,uBAAuB;wBA4DvB,MAAM,gBACC,MAAM,UACb,uBAAuB;uBAhjBF,MAAM,gBAAgB,MAAM,KAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;0BAqlBhF,MAAM,gBACC,MAAM,UACb,uBAAuB;EAyMnC"}
@@ -1,10 +1,11 @@
1
- import { activityLog, agentCustomIntegrationBindings, customIntegrationTools, mcpConnections, mcpOAuthGrants, organizationSecrets, organizationSecretVersions, } from "@rudderhq/db";
1
+ import { activityLog, agentCustomIntegrationBindings, agents, customIntegrationTools, mcpConnections, mcpOAuthGrants, organizationSecrets, organizationSecretVersions, } from "@rudderhq/db";
2
2
  import { createMcpConnectionSchema, MCP_PROVIDER_CATALOG, mcpConnectionMergedConfigSchema, mcpConnectionMutationConfigSchema, updateMcpConnectionSchema, } from "@rudderhq/shared";
3
3
  import { and, asc, eq, sql } from "drizzle-orm";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { conflict, HttpError, notFound, unprocessable } from "../../errors.js";
6
6
  import { getSecretProvider } from "../../secrets/provider-registry.js";
7
7
  import { secretService } from "../secrets.js";
8
+ import { ensureDefaultManagedMcpBindingsForConnection } from "./managed-bindings.js";
8
9
  import { createManagedMcpClient, resolveMcpHttpCredentials, } from "./managed-client.js";
9
10
  import { MCP_PROVIDER_REGISTRY, resolveCuratedMcpEndpoint, } from "./provider-registry.js";
10
11
  import { assertSafeMcpCredentialHeaders, assertSafeMcpHeaders, resolveMcpHttpTarget, validateMcpStdioPolicy, } from "./security-policy.js";
@@ -160,6 +161,8 @@ function publicSummary(row) {
160
161
  return {
161
162
  id: row.id,
162
163
  orgId: row.orgId,
164
+ scope: row.scope,
165
+ ownerAgentId: row.ownerAgentId,
163
166
  name: row.name,
164
167
  displayName: row.displayName,
165
168
  provider: row.provider,
@@ -249,6 +252,19 @@ export function managedMcpConnectionService(db, options) {
249
252
  throw notFound("MCP connection not found");
250
253
  return row;
251
254
  }
255
+ async function assertConnectionOwner(orgId, scope, ownerAgentId) {
256
+ if (scope === "organization") {
257
+ if (ownerAgentId) {
258
+ throw unprocessable("Organization MCP connections cannot have an owner agent");
259
+ }
260
+ return;
261
+ }
262
+ if (!ownerAgentId)
263
+ throw unprocessable("Agent MCP connections require an owner agent");
264
+ const owner = await db.select({ id: agents.id }).from(agents).where(and(eq(agents.orgId, orgId), eq(agents.id, ownerAgentId))).then((rows) => rows[0] ?? null);
265
+ if (!owner)
266
+ throw unprocessable("MCP connection owner must belong to the organization");
267
+ }
252
268
  function assertHttpEnvironmentPolicy(config) {
253
269
  if (options.deploymentMode !== "authenticated")
254
270
  return;
@@ -459,13 +475,14 @@ export function managedMcpConnectionService(db, options) {
459
475
  .orderBy(asc(mcpConnections.displayName))
460
476
  .then((rows) => rows.map(publicSummary)),
461
477
  get: async (orgId, connectionId) => publicSummary(await findRow(orgId, connectionId)),
462
- ensureOfficial: async (orgId, provider, requestedAccessMode, actor = {}) => {
478
+ ensureOfficial: async (orgId, provider, target, actor = {}) => {
479
+ await assertConnectionOwner(orgId, target.scope, target.ownerAgentId);
463
480
  const definition = MCP_PROVIDER_REGISTRY[provider];
464
481
  const catalog = MCP_PROVIDER_CATALOG.find((entry) => entry.id === provider);
465
482
  if (!catalog) {
466
483
  throw unprocessable("Official MCP provider is invalid");
467
484
  }
468
- const accessMode = requestedAccessMode ?? definition.defaultAccessMode;
485
+ const accessMode = target.accessMode ?? definition.defaultAccessMode;
469
486
  const accessModeIsValid = provider === "notion"
470
487
  ? accessMode === "provider_default"
471
488
  : accessMode === "read_only" || accessMode === "read_write";
@@ -475,18 +492,24 @@ export function managedMcpConnectionService(db, options) {
475
492
  const row = await db.transaction(async (tx) => {
476
493
  await tx.execute(sql `
477
494
  select pg_advisory_xact_lock(
478
- hashtextextended(${`managed-mcp-official:${orgId}:${provider}`}, 0)
495
+ hashtextextended(${`managed-mcp-official:${orgId}:${provider}:${target.scope}:${target.ownerAgentId ?? "organization"}`}, 0)
479
496
  )
480
497
  `);
481
498
  const existing = await tx.select().from(mcpConnections)
482
- .where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.provider, provider), eq(mcpConnections.canonicalState, "canonical")))
499
+ .where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.provider, provider), eq(mcpConnections.scope, target.scope), target.scope === "agent"
500
+ ? eq(mcpConnections.ownerAgentId, target.ownerAgentId)
501
+ : sql `${mcpConnections.ownerAgentId} is null`, eq(mcpConnections.canonicalState, "canonical")))
483
502
  .for("update")
484
503
  .then((rows) => rows[0] ?? null);
485
504
  if (existing)
486
505
  return existing;
487
506
  const created = await tx.insert(mcpConnections).values({
488
507
  orgId,
489
- name: provider,
508
+ scope: target.scope,
509
+ ownerAgentId: target.ownerAgentId,
510
+ name: target.scope === "organization"
511
+ ? provider
512
+ : `${provider}-agent-${target.ownerAgentId.slice(0, 12)}`,
490
513
  displayName: catalog.label,
491
514
  provider,
492
515
  transport: "streamable_http",
@@ -510,6 +533,8 @@ export function managedMcpConnectionService(db, options) {
510
533
  provider,
511
534
  transport: created.transport,
512
535
  status: created.status,
536
+ scope: created.scope,
537
+ ownerAgentId: created.ownerAgentId,
513
538
  },
514
539
  }));
515
540
  return created;
@@ -536,19 +561,23 @@ export function managedMcpConnectionService(db, options) {
536
561
  throw unprocessable("Only a canonical project-scoped Supabase connection can be upgraded");
537
562
  }
538
563
  const existing = await tx.select().from(mcpConnections)
539
- .where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.provider, "supabase"), eq(mcpConnections.scopeMode, "account"), eq(mcpConnections.canonicalState, "superseded"), eq(mcpConnections.supersededByConnectionId, legacy.id)))
564
+ .where(and(eq(mcpConnections.orgId, orgId), eq(mcpConnections.provider, "supabase"), eq(mcpConnections.scope, legacy.scope), legacy.scope === "agent"
565
+ ? eq(mcpConnections.ownerAgentId, legacy.ownerAgentId)
566
+ : sql `${mcpConnections.ownerAgentId} is null`, eq(mcpConnections.scopeMode, "account"), eq(mcpConnections.canonicalState, "superseded"), eq(mcpConnections.supersededByConnectionId, legacy.id)))
540
567
  .then((rows) => rows[0] ?? null);
541
568
  if (existing)
542
569
  return existing;
543
570
  const created = await tx.insert(mcpConnections).values({
544
571
  orgId,
572
+ scope: legacy.scope,
573
+ ownerAgentId: legacy.ownerAgentId,
545
574
  name: `supabase-account-upgrade-${legacy.id}`,
546
575
  displayName: "Supabase",
547
576
  provider: "supabase",
548
577
  transport: "streamable_http",
549
578
  externalScope: null,
550
579
  scopeMode: "account",
551
- accessMode: "read_only",
580
+ accessMode: "read_write",
552
581
  status: "draft",
553
582
  safeConfig: {},
554
583
  enabled: true,
@@ -581,6 +610,7 @@ export function managedMcpConnectionService(db, options) {
581
610
  },
582
611
  create: async (orgId, rawInput, actor = {}) => {
583
612
  const input = createMcpConnectionSchema.parse(rawInput);
613
+ await assertConnectionOwner(orgId, input.scope, input.ownerAgentId ?? null);
584
614
  if (input.transport === "legacy_manual") {
585
615
  throw unprocessable("Legacy manual MCP definitions cannot be created as managed connections");
586
616
  }
@@ -621,6 +651,8 @@ export function managedMcpConnectionService(db, options) {
621
651
  }
622
652
  const created = await tx.insert(mcpConnections).values({
623
653
  orgId,
654
+ scope: input.scope,
655
+ ownerAgentId: input.ownerAgentId ?? null,
624
656
  credentialSecretId: credential?.id ?? null,
625
657
  name: input.name,
626
658
  displayName: input.displayName,
@@ -651,6 +683,8 @@ export function managedMcpConnectionService(db, options) {
651
683
  provider: created.provider,
652
684
  transport: created.transport,
653
685
  status: created.status,
686
+ scope: created.scope,
687
+ ownerAgentId: created.ownerAgentId,
654
688
  },
655
689
  }));
656
690
  return created;
@@ -1035,6 +1069,8 @@ export function managedMcpConnectionService(db, options) {
1035
1069
  },
1036
1070
  }));
1037
1071
  });
1072
+ const activated = await findRow(orgId, connectionId);
1073
+ await ensureDefaultManagedMcpBindingsForConnection(db, activated);
1038
1074
  return listTools(orgId, connectionId);
1039
1075
  }
1040
1076
  catch (error) {