studiograph 1.3.48-next.265 → 1.3.48-next.267
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.
- package/dist/mcp/connector-catalog.d.ts +100 -0
- package/dist/mcp/connector-catalog.js +234 -0
- package/dist/mcp/connector-catalog.js.map +1 -0
- package/dist/mcp/connector-manager.js +6 -1
- package/dist/mcp/connector-manager.js.map +1 -1
- package/dist/mcp/tools.js +35 -10
- package/dist/mcp/tools.js.map +1 -1
- package/dist/server/canonical-origin.d.ts +41 -0
- package/dist/server/canonical-origin.js +62 -0
- package/dist/server/canonical-origin.js.map +1 -0
- package/dist/server/routes/artifact-export-api.js +10 -14
- package/dist/server/routes/artifact-export-api.js.map +1 -1
- package/dist/server/routes/connectors-api.js +39 -15
- package/dist/server/routes/connectors-api.js.map +1 -1
- package/dist/server/routes/oauth-api.d.ts +1 -5
- package/dist/server/routes/oauth-api.js +8 -16
- package/dist/server/routes/oauth-api.js.map +1 -1
- package/dist/web/_app/immutable/assets/{3.CuCc4ZHI.css → 3.DzGYDX-U.css} +1 -1
- package/dist/web/_app/immutable/assets/4.BLOz0wHY.css +1 -0
- package/dist/web/_app/immutable/assets/AgentRunSparkle.CKB3dqsz.css +1 -0
- package/dist/web/_app/immutable/assets/KanbanView.BAlTjtYG.css +1 -0
- package/dist/web/_app/immutable/assets/SettingsDialog.CFukBBGR.css +1 -0
- package/dist/web/_app/immutable/assets/{WorkspaceView.Cd6TS6oo.css → WorkspaceView.CjUSwQuU.css} +1 -1
- package/dist/web/_app/immutable/chunks/{BpMTCpZW2.js → A3PbRVDI2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{Cm5olAoz.js → AI-17gyY.js} +1 -1
- package/dist/web/_app/immutable/chunks/B67Zknhm.js +12 -0
- package/dist/web/_app/immutable/chunks/{S0v4n3M8.js → BQEM_BEG.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DWo0EAlb.js → BScg4GjA.js} +2 -2
- package/dist/web/_app/immutable/chunks/{CpOrPclx.js → Bi5JIkOP.js} +1 -1
- package/dist/web/_app/immutable/chunks/{C1buLhjm.js → Biwwwz6X.js} +1 -1
- package/dist/web/_app/immutable/chunks/Bjs00b2h2.js +1 -0
- package/dist/web/_app/immutable/chunks/{DIZIxzq42.js → C-6KVArM2.js} +1 -1
- package/dist/web/_app/immutable/chunks/C65Q_mg3.js +2 -0
- package/dist/web/_app/immutable/chunks/{Dfgg4DDd.js → C9rNF-Bd.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DPRbIB3f.js → CUxoKSVx.js} +1 -1
- package/dist/web/_app/immutable/chunks/{iBMhzBmq.js → C_qoFhYr.js} +1 -1
- package/dist/web/_app/immutable/chunks/{B-CQqYgt.js → Cb3BVFFn.js} +1 -1
- package/dist/web/_app/immutable/chunks/{Ej_xBsFC.js → CcrN3rzd.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DA2on8nn2.js → ChQT3VLU2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BcarInLG.js → CxfwdM7W.js} +3 -3
- package/dist/web/_app/immutable/chunks/{B4dNFbPh.js → D4KW6Wch.js} +1 -1
- package/dist/web/_app/immutable/chunks/DAU9K362.js +1 -0
- package/dist/web/_app/immutable/chunks/DAqLp_2P.js +1 -0
- package/dist/web/_app/immutable/chunks/{BmFdfOoW.js → DHW8pXbR.js} +1 -1
- package/dist/web/_app/immutable/chunks/{iFJGBP2P.js → DJTvBXur.js} +1 -1
- package/dist/web/_app/immutable/chunks/{C9uLX8pa.js → DQGoiRR0.js} +1 -1
- package/dist/web/_app/immutable/chunks/DRN5mkzR.js +1 -0
- package/dist/web/_app/immutable/chunks/{q1tHnoyc2.js → DRRnTiLr2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{Dig68LLS2.js → DWwl2R562.js} +1 -1
- package/dist/web/_app/immutable/chunks/Ddh1A5eA.js +2 -0
- package/dist/web/_app/immutable/chunks/{Cn714K-w.js → DhCzBEAa.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BYC7bZbA.js → DnDp6J5t.js} +1 -1
- package/dist/web/_app/immutable/chunks/{il1jgTa3.js → DqABu-W5.js} +1 -1
- package/dist/web/_app/immutable/chunks/DtxycoZJ.js +2 -0
- package/dist/web/_app/immutable/chunks/{CqzLrdin.js → GsfCDqgx.js} +1 -1
- package/dist/web/_app/immutable/chunks/{B_JkXNED.js → HSAlbmU2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CWw5e4gQ.js → HsZnhz65.js} +1 -1
- package/dist/web/_app/immutable/chunks/{P8t1RSi32.js → KEU82pwj2.js} +1 -1
- package/dist/web/_app/immutable/chunks/R7Lu4BpY2.js +2 -0
- package/dist/web/_app/immutable/chunks/{CSFqzxo72.js → SDP5VNA82.js} +1 -1
- package/dist/web/_app/immutable/chunks/{B_p4bA2Z.js → YeWKDUtx.js} +1 -1
- package/dist/web/_app/immutable/chunks/{BhKuC9G4.js → _F7l3B26.js} +3 -3
- package/dist/web/_app/immutable/chunks/_V7dwjfe2.js +1 -0
- package/dist/web/_app/immutable/chunks/{D5nkV1N62.js → gXc9dKWI2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{ygCGHqA72.js → hAyVfjCD2.js} +1 -1
- package/dist/web/_app/immutable/chunks/{CAwlBxR4.js → mw5OAhDc.js} +1 -1
- package/dist/web/_app/immutable/chunks/{Dx23ktx_.js → rJY_35Ba.js} +1 -1
- package/dist/web/_app/immutable/chunks/{DL8zIIt52.js → w9r21hdX2.js} +1 -1
- package/dist/web/_app/immutable/chunks/zdCEzdCk2.js +2 -0
- package/dist/web/_app/immutable/entry/app.DZmPbzi-.js +2 -0
- package/dist/web/_app/immutable/entry/start.BrU16SCN.js +1 -0
- package/dist/web/_app/immutable/nodes/{0.DVp5GCVE.js → 0.WAToqGqG.js} +2 -2
- package/dist/web/_app/immutable/nodes/{1.CfprkEBr.js → 1.CG1VY7mY.js} +1 -1
- package/dist/web/_app/immutable/nodes/{10.BpEOm6nm.js → 10.CZx92OMI.js} +1 -1
- package/dist/web/_app/immutable/nodes/{11.CGIBMhCc.js → 11.BoIW7Gc9.js} +1 -1
- package/dist/web/_app/immutable/nodes/{12.DffLJqj9.js → 12.Awh-CsBU.js} +1 -1
- package/dist/web/_app/immutable/nodes/{13.Cpl6M5Je.js → 13.CP5W0zb1.js} +1 -1
- package/dist/web/_app/immutable/nodes/{15.DoEwRs9L.js → 15.Dxl8GaH9.js} +1 -1
- package/dist/web/_app/immutable/nodes/{16.DawYNLRh.js → 16.C1oMKtaO.js} +1 -1
- package/dist/web/_app/immutable/nodes/{18.Dd18FDRk.js → 18.hVgSF_XO.js} +1 -1
- package/dist/web/_app/immutable/nodes/{19.DE0sV2lh.js → 19.CfAettkI.js} +1 -1
- package/dist/web/_app/immutable/nodes/{2.CkhFkTfL.js → 2.D3rvssHU.js} +4 -4
- package/dist/web/_app/immutable/nodes/3.CPHCnvu4.js +6 -0
- package/dist/web/_app/immutable/nodes/{4.DH4T3JKw.js → 4.dJkBkHoL.js} +4 -4
- package/dist/web/_app/immutable/nodes/{5.9uCJft9u.js → 5.Btfug_nX.js} +1 -1
- package/dist/web/_app/immutable/nodes/{6.DbtX1ydg.js → 6.Dkpwd5NE.js} +1 -1
- package/dist/web/_app/immutable/nodes/{7.DM94YJ9w.js → 7.Dq8uor4d.js} +1 -1
- package/dist/web/_app/immutable/nodes/{8.Bg8J3W9C.js → 8.Dt1RslW6.js} +1 -1
- package/dist/web/_app/immutable/nodes/{9.CiW_jtxU.js → 9.CcUccR1_.js} +1 -1
- package/dist/web/_app/version.json +1 -1
- package/dist/web/index.html +13 -13
- package/package.json +1 -1
- package/dist/web/_app/immutable/assets/4.BQtJCY5N.css +0 -1
- package/dist/web/_app/immutable/assets/KanbanView.BB_ORPCc.css +0 -1
- package/dist/web/_app/immutable/assets/SettingsDialog.CHzfQoo_.css +0 -1
- package/dist/web/_app/immutable/chunks/BgEzcid7.js +0 -1
- package/dist/web/_app/immutable/chunks/C2g_t-iJ2.js +0 -1
- package/dist/web/_app/immutable/chunks/CY6YkeE6.js +0 -1
- package/dist/web/_app/immutable/chunks/Cv4gSLga.js +0 -12
- package/dist/web/_app/immutable/chunks/DJDRGW3N2.js +0 -2
- package/dist/web/_app/immutable/chunks/DQEMvxpX.js +0 -2
- package/dist/web/_app/immutable/chunks/DiblfoaV.js +0 -1
- package/dist/web/_app/immutable/chunks/DkLBuVqB2.js +0 -2
- package/dist/web/_app/immutable/chunks/VfK-wQaf.js +0 -2
- package/dist/web/_app/immutable/chunks/baoK95Zs.js +0 -2
- package/dist/web/_app/immutable/chunks/i2CC1kS1.js +0 -1
- package/dist/web/_app/immutable/entry/app.Bius3tuc.js +0 -2
- package/dist/web/_app/immutable/entry/start.Bs7yVyhH.js +0 -1
- package/dist/web/_app/immutable/nodes/3.5qIJ7QFU.js +0 -6
- /package/dist/web/_app/immutable/assets/{run-with-agent.D6hf2pNJ.css → CodeMirrorEditor.D6hf2pNJ.css} +0 -0
- /package/dist/web/_app/immutable/chunks/{B_y9A6Kg2.js → B_y9A6Kg.js} +0 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connector Catalog
|
|
3
|
+
*
|
|
4
|
+
* Curated catalog of MCP connectors Studiograph promotes as "Available" tiles
|
|
5
|
+
* in Settings → External Connectors, plus the runtime OAuth-routing table for
|
|
6
|
+
* the broker-backed subset.
|
|
7
|
+
*
|
|
8
|
+
* Each entry declares a `kind` that drives BOTH the client add-flow and the
|
|
9
|
+
* server-side auth path:
|
|
10
|
+
* - 'broker' — pre-registered OAuth app on auth.studiograph.com. The runtime
|
|
11
|
+
* routes OAuth through the broker (which holds the client secret). Requires
|
|
12
|
+
* a `hostname` for routing + a matching entry in the broker's CONNECTORS map.
|
|
13
|
+
* - 'dcr' — the remote MCP server self-registers via Dynamic Client
|
|
14
|
+
* Registration (RFC 7591). No broker app, no per-instance credentials.
|
|
15
|
+
* - 'token' — the user supplies an API key (Bearer Authorization header).
|
|
16
|
+
*
|
|
17
|
+
* `kind` is correctness-bearing, not cosmetic: ONLY 'broker' entries feed the
|
|
18
|
+
* OAuth routing table (`BROKER_HOSTS`). A 'dcr'/'token' hostname must never
|
|
19
|
+
* enter it, or its OAuth would wrongly route through the broker.
|
|
20
|
+
* `assertCatalogInvariants` guards the related invariant (every broker entry
|
|
21
|
+
* has a hostname) at module load — failing at boot, not at a user's click.
|
|
22
|
+
*
|
|
23
|
+
* Adding a 'broker' entry is a deliberate decision (provider relationship,
|
|
24
|
+
* rate-limit exposure, single point of compromise) — see
|
|
25
|
+
* docs/agents/agent-system.md § "Adding a new service to the broker". Adding a
|
|
26
|
+
* 'dcr'/'token' entry is just a verified URL + metadata.
|
|
27
|
+
*/
|
|
28
|
+
declare const BROKER_URL = "https://auth.studiograph.com";
|
|
29
|
+
/** How a catalog connector authenticates — drives add-flow + routing. */
|
|
30
|
+
export type ConnectorAuthKind = 'broker' | 'dcr' | 'token';
|
|
31
|
+
/** Maturity badge shown on a visible tile. */
|
|
32
|
+
export type ConnectorStatus = 'stable' | 'beta' | 'limited';
|
|
33
|
+
export interface CatalogConnector {
|
|
34
|
+
/** url-safe slug — internal identity (config filename, OAuth state, polling key). */
|
|
35
|
+
name: string;
|
|
36
|
+
/** User-facing display label for the catalog tile. */
|
|
37
|
+
displayName: string;
|
|
38
|
+
/** Canonical MCP server URL the tile imports when added. Verified periodically. */
|
|
39
|
+
serverUrl: string;
|
|
40
|
+
/** Auth path + client add-flow this connector uses. */
|
|
41
|
+
kind: ConnectorAuthKind;
|
|
42
|
+
/** Maturity badge for a visible tile. Omit for hidden entries. */
|
|
43
|
+
status?: ConnectorStatus;
|
|
44
|
+
/** One-line honest capability note (e.g. "comments only") so a tile can't oversell. */
|
|
45
|
+
capability?: string;
|
|
46
|
+
/** Short marketing blurb for the tile. */
|
|
47
|
+
description?: string;
|
|
48
|
+
/** Grouping for the tile grid: 'Design' | 'CRM' | 'Comms' | 'Docs' … */
|
|
49
|
+
category?: string;
|
|
50
|
+
/** Icon asset slug for the tile (UI falls back to a generic glyph). */
|
|
51
|
+
icon?: string;
|
|
52
|
+
/**
|
|
53
|
+
* If true, the catalog suppresses the tile even though the runtime still
|
|
54
|
+
* routes OAuth (for broker entries) should someone configure it manually.
|
|
55
|
+
* Use for entries whose OAuth app/scope isn't generally available yet.
|
|
56
|
+
*/
|
|
57
|
+
catalogHidden?: boolean;
|
|
58
|
+
/** kind:'broker' ONLY — hostname used for runtime OAuth routing to the broker. */
|
|
59
|
+
hostname?: string;
|
|
60
|
+
/** kind:'token' ONLY — how to prompt the user for their key (Bearer Authorization). */
|
|
61
|
+
token?: {
|
|
62
|
+
label: string;
|
|
63
|
+
helpUrl?: string;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/** Public catalog projection (drops routing/visibility internals). */
|
|
67
|
+
export type AvailableCatalogConnector = Omit<CatalogConnector, 'hostname' | 'catalogHidden'>;
|
|
68
|
+
export declare const CATALOG_CONNECTORS: readonly CatalogConnector[];
|
|
69
|
+
/**
|
|
70
|
+
* Pure invariant check, exported for direct unit testing AND called once at
|
|
71
|
+
* module load (below). Invariant: every kind:'broker' entry MUST have a
|
|
72
|
+
* non-empty hostname, because broker OAuth routing is keyed on hostname — a
|
|
73
|
+
* broker entry without one would silently drop out of `BROKER_HOSTS` and fail
|
|
74
|
+
* Connect at runtime.
|
|
75
|
+
*/
|
|
76
|
+
export declare function assertCatalogInvariants(entries: readonly CatalogConnector[]): void;
|
|
77
|
+
/**
|
|
78
|
+
* Check if a connector URL has broker support.
|
|
79
|
+
* Returns the broker connect URL, or undefined if not supported.
|
|
80
|
+
*/
|
|
81
|
+
export declare function getBrokerConnectUrl(connectorUrl: string, state: string): string | undefined;
|
|
82
|
+
/**
|
|
83
|
+
* Check if a connector URL is supported by the broker.
|
|
84
|
+
*/
|
|
85
|
+
export declare function hasBrokerSupport(connectorUrl: string): boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Catalog entries owners can add from Settings. Drops `catalogHidden` entries
|
|
88
|
+
* and anything already configured (matched by name OR displayName, case-
|
|
89
|
+
* insensitive). Projects the tile metadata the UI renders plus the `kind` /
|
|
90
|
+
* `status` that drive the add-flow and the badge.
|
|
91
|
+
*/
|
|
92
|
+
export declare function listAvailableConnectors(configuredNames?: ReadonlySet<string>): AvailableCatalogConnector[];
|
|
93
|
+
/**
|
|
94
|
+
* Look up a catalog connector by slug or display name (case-insensitive).
|
|
95
|
+
* Used to enrich an already-configured connector with its curated catalog
|
|
96
|
+
* metadata (description) and to tell catalog connectors from custom ones.
|
|
97
|
+
*/
|
|
98
|
+
export declare function getCatalogConnector(name: string): CatalogConnector | undefined;
|
|
99
|
+
/** Broker base URL for claim retrieval. */
|
|
100
|
+
export { BROKER_URL };
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connector Catalog
|
|
3
|
+
*
|
|
4
|
+
* Curated catalog of MCP connectors Studiograph promotes as "Available" tiles
|
|
5
|
+
* in Settings → External Connectors, plus the runtime OAuth-routing table for
|
|
6
|
+
* the broker-backed subset.
|
|
7
|
+
*
|
|
8
|
+
* Each entry declares a `kind` that drives BOTH the client add-flow and the
|
|
9
|
+
* server-side auth path:
|
|
10
|
+
* - 'broker' — pre-registered OAuth app on auth.studiograph.com. The runtime
|
|
11
|
+
* routes OAuth through the broker (which holds the client secret). Requires
|
|
12
|
+
* a `hostname` for routing + a matching entry in the broker's CONNECTORS map.
|
|
13
|
+
* - 'dcr' — the remote MCP server self-registers via Dynamic Client
|
|
14
|
+
* Registration (RFC 7591). No broker app, no per-instance credentials.
|
|
15
|
+
* - 'token' — the user supplies an API key (Bearer Authorization header).
|
|
16
|
+
*
|
|
17
|
+
* `kind` is correctness-bearing, not cosmetic: ONLY 'broker' entries feed the
|
|
18
|
+
* OAuth routing table (`BROKER_HOSTS`). A 'dcr'/'token' hostname must never
|
|
19
|
+
* enter it, or its OAuth would wrongly route through the broker.
|
|
20
|
+
* `assertCatalogInvariants` guards the related invariant (every broker entry
|
|
21
|
+
* has a hostname) at module load — failing at boot, not at a user's click.
|
|
22
|
+
*
|
|
23
|
+
* Adding a 'broker' entry is a deliberate decision (provider relationship,
|
|
24
|
+
* rate-limit exposure, single point of compromise) — see
|
|
25
|
+
* docs/agents/agent-system.md § "Adding a new service to the broker". Adding a
|
|
26
|
+
* 'dcr'/'token' entry is just a verified URL + metadata.
|
|
27
|
+
*/
|
|
28
|
+
const BROKER_URL = 'https://auth.studiograph.com';
|
|
29
|
+
export const CATALOG_CONNECTORS = [
|
|
30
|
+
{
|
|
31
|
+
hostname: 'mcp.asana.com',
|
|
32
|
+
name: 'asana',
|
|
33
|
+
displayName: 'Asana',
|
|
34
|
+
serverUrl: 'https://mcp.asana.com/sse',
|
|
35
|
+
kind: 'broker',
|
|
36
|
+
status: 'stable',
|
|
37
|
+
category: 'Productivity',
|
|
38
|
+
description: 'Tasks, projects, and portfolios.',
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
hostname: 'mcp.figma.com',
|
|
42
|
+
name: 'figma',
|
|
43
|
+
displayName: 'Figma',
|
|
44
|
+
// Endpoint verified correct (Figma's official remote MCP server). Kept here
|
|
45
|
+
// so the broker still routes OAuth if someone configures it manually.
|
|
46
|
+
serverUrl: 'https://mcp.figma.com/mcp',
|
|
47
|
+
kind: 'broker',
|
|
48
|
+
// Hidden until Figma grants Studiograph access to the gated `mcp:connect`
|
|
49
|
+
// OAuth scope via their MCP catalog allowlist. Until then the OAuth flow
|
|
50
|
+
// fails with `Invalid scopes for app` (the scope is not available to
|
|
51
|
+
// general third-party apps). The broker CONNECTORS entry + endpoints are
|
|
52
|
+
// ready; only the scope grant + broker FIGMA_CLIENT_ID/SECRET are missing.
|
|
53
|
+
// See docs/agents/agent-system.md § "Adding a new service to the broker".
|
|
54
|
+
catalogHidden: true,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
// Self-serve via Dynamic Client Registration (no broker app). Verified
|
|
58
|
+
// first-party: this exact url + requiresOAuth is a working connector in a
|
|
59
|
+
// live workspace.
|
|
60
|
+
name: 'superhuman',
|
|
61
|
+
displayName: 'Superhuman',
|
|
62
|
+
serverUrl: 'https://mcp.mail.superhuman.com/mcp',
|
|
63
|
+
kind: 'dcr',
|
|
64
|
+
status: 'stable',
|
|
65
|
+
category: 'Email',
|
|
66
|
+
description: 'Email and calendar — triage, draft, send, and schedule.',
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
// Self-serve via Dynamic Client Registration. Linear's remote MCP supports
|
|
70
|
+
// OAuth 2.1 + DCR (https://linear.app/docs/mcp), so this is one-click —
|
|
71
|
+
// no API key needed. (Linear also accepts a Bearer API key, but DCR is the
|
|
72
|
+
// cleaner add-flow.)
|
|
73
|
+
name: 'linear',
|
|
74
|
+
displayName: 'Linear',
|
|
75
|
+
serverUrl: 'https://mcp.linear.app/mcp',
|
|
76
|
+
kind: 'dcr',
|
|
77
|
+
status: 'stable',
|
|
78
|
+
category: 'Productivity',
|
|
79
|
+
description: 'Issues and projects — create, update, and search.',
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
// Notion remote MCP: OAuth 2.0 + DCR (RFC 7591) — https://developers.notion.com/guides/mcp
|
|
83
|
+
name: 'notion',
|
|
84
|
+
displayName: 'Notion',
|
|
85
|
+
serverUrl: 'https://mcp.notion.com/mcp',
|
|
86
|
+
kind: 'dcr',
|
|
87
|
+
status: 'stable',
|
|
88
|
+
category: 'Docs',
|
|
89
|
+
description: 'Pages and databases — search, read, and update.',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
// GitHub official remote MCP. NOT dcr: its authorization server
|
|
93
|
+
// (github.com/login/oauth) has no DCR registration_endpoint, so a generic
|
|
94
|
+
// client can't self-register (it's "one-click" only for GitHub's
|
|
95
|
+
// pre-registered clients). But the server accepts a PAT via
|
|
96
|
+
// `Authorization: Bearer <pat>`, so it works as a self-serve token tile.
|
|
97
|
+
// https://docs.github.com/copilot (remote MCP server, PAT auth)
|
|
98
|
+
name: 'github',
|
|
99
|
+
displayName: 'GitHub',
|
|
100
|
+
serverUrl: 'https://api.githubcopilot.com/mcp/',
|
|
101
|
+
kind: 'token',
|
|
102
|
+
status: 'stable',
|
|
103
|
+
category: 'Developer',
|
|
104
|
+
description: 'Repositories, issues, and pull requests.',
|
|
105
|
+
token: { label: 'Personal access token', helpUrl: 'https://github.com/settings/tokens' },
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
// Sentry remote MCP: OAuth only — https://docs.sentry.io/product/sentry-mcp
|
|
109
|
+
name: 'sentry',
|
|
110
|
+
displayName: 'Sentry',
|
|
111
|
+
serverUrl: 'https://mcp.sentry.dev/mcp',
|
|
112
|
+
kind: 'dcr',
|
|
113
|
+
status: 'stable',
|
|
114
|
+
category: 'Developer',
|
|
115
|
+
description: 'Errors and performance — triage and debug issues.',
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
// Atlassian Rovo remote MCP: OAuth 2.1 + DCR — https://support.atlassian.com/atlassian-rovo-mcp-server
|
|
119
|
+
name: 'atlassian',
|
|
120
|
+
displayName: 'Atlassian',
|
|
121
|
+
serverUrl: 'https://mcp.atlassian.com/v1/mcp',
|
|
122
|
+
kind: 'dcr',
|
|
123
|
+
status: 'stable',
|
|
124
|
+
category: 'Productivity',
|
|
125
|
+
description: 'Jira and Confluence — issues, pages, and search.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
// DocuSign e-signature. Broker connector (pre-registered OAuth app on
|
|
129
|
+
// auth.studiograph.com). DocuSign's Authorization Code grant is NOT
|
|
130
|
+
// allowlist-gated (unlike Figma's mcp:connect), so once the broker app +
|
|
131
|
+
// secrets are live, Connect works. The matching broker entry lives in
|
|
132
|
+
// studiograph-auth-proxy/src/index.ts (`docusign`, scope `signature`,
|
|
133
|
+
// client_secret_basic). See docs/agents/agent-system.md § "Adding a new
|
|
134
|
+
// service to the broker".
|
|
135
|
+
//
|
|
136
|
+
// DEMO endpoints (mcp-d / account-d) for pre-go-live testing. At go-live
|
|
137
|
+
// flip BOTH this hostname/serverUrl to mcp.docusign.com AND the broker
|
|
138
|
+
// entry's authorization/token endpoints to account.docusign.com, then
|
|
139
|
+
// remove catalogHidden.
|
|
140
|
+
//
|
|
141
|
+
// Hidden until: (1) the broker DOCUSIGN_CLIENT_ID/SECRET are set, and
|
|
142
|
+
// (2) the Integration Key passes DocuSign go-live (for the prod flip).
|
|
143
|
+
// The custom `send_artifact_for_signature` tool (artifact → PDF → envelope
|
|
144
|
+
// with fields placed from the artifact's signature-zones) is a separate
|
|
145
|
+
// first-class tool that reuses this connector's broker-minted token; it
|
|
146
|
+
// ships separately.
|
|
147
|
+
hostname: 'mcp-d.docusign.com',
|
|
148
|
+
name: 'docusign',
|
|
149
|
+
displayName: 'DocuSign',
|
|
150
|
+
serverUrl: 'https://mcp-d.docusign.com/mcp',
|
|
151
|
+
kind: 'broker',
|
|
152
|
+
category: 'Finance & Ops',
|
|
153
|
+
description: 'Send documents for e-signature and track envelopes.',
|
|
154
|
+
catalogHidden: true,
|
|
155
|
+
},
|
|
156
|
+
];
|
|
157
|
+
/**
|
|
158
|
+
* Pure invariant check, exported for direct unit testing AND called once at
|
|
159
|
+
* module load (below). Invariant: every kind:'broker' entry MUST have a
|
|
160
|
+
* non-empty hostname, because broker OAuth routing is keyed on hostname — a
|
|
161
|
+
* broker entry without one would silently drop out of `BROKER_HOSTS` and fail
|
|
162
|
+
* Connect at runtime.
|
|
163
|
+
*/
|
|
164
|
+
export function assertCatalogInvariants(entries) {
|
|
165
|
+
for (const c of entries) {
|
|
166
|
+
if (c.kind === 'broker' && !c.hostname?.trim()) {
|
|
167
|
+
throw new Error(`Catalog connector "${c.name}" is kind:'broker' but has no hostname — broker OAuth routing requires one.`);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
assertCatalogInvariants(CATALOG_CONNECTORS);
|
|
172
|
+
/**
|
|
173
|
+
* Internal OAuth-routing table — hostname → slug, built from the BROKER subset
|
|
174
|
+
* ONLY. dcr/token connectors must never appear here (see module header).
|
|
175
|
+
*/
|
|
176
|
+
const BROKER_HOSTS = new Map(CATALOG_CONNECTORS
|
|
177
|
+
.filter((c) => c.kind === 'broker' && !!c.hostname)
|
|
178
|
+
.map(c => [c.hostname, c.name]));
|
|
179
|
+
/**
|
|
180
|
+
* Check if a connector URL has broker support.
|
|
181
|
+
* Returns the broker connect URL, or undefined if not supported.
|
|
182
|
+
*/
|
|
183
|
+
export function getBrokerConnectUrl(connectorUrl, state) {
|
|
184
|
+
try {
|
|
185
|
+
const hostname = new URL(connectorUrl).hostname;
|
|
186
|
+
const connectorName = BROKER_HOSTS.get(hostname);
|
|
187
|
+
if (!connectorName)
|
|
188
|
+
return undefined;
|
|
189
|
+
return `${BROKER_URL}/connect/${connectorName}?state=${encodeURIComponent(state)}`;
|
|
190
|
+
}
|
|
191
|
+
catch {
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Check if a connector URL is supported by the broker.
|
|
197
|
+
*/
|
|
198
|
+
export function hasBrokerSupport(connectorUrl) {
|
|
199
|
+
try {
|
|
200
|
+
return BROKER_HOSTS.has(new URL(connectorUrl).hostname);
|
|
201
|
+
}
|
|
202
|
+
catch {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Catalog entries owners can add from Settings. Drops `catalogHidden` entries
|
|
208
|
+
* and anything already configured (matched by name OR displayName, case-
|
|
209
|
+
* insensitive). Projects the tile metadata the UI renders plus the `kind` /
|
|
210
|
+
* `status` that drive the add-flow and the badge.
|
|
211
|
+
*/
|
|
212
|
+
export function listAvailableConnectors(configuredNames = new Set()) {
|
|
213
|
+
const normalized = new Set([...configuredNames].map(n => n.toLowerCase()));
|
|
214
|
+
return CATALOG_CONNECTORS
|
|
215
|
+
.filter(c => !c.catalogHidden)
|
|
216
|
+
.filter(c => !normalized.has(c.name.toLowerCase()) && !normalized.has(c.displayName.toLowerCase()))
|
|
217
|
+
// Drop the routing/visibility internals; everything else is the public
|
|
218
|
+
// tile projection. Destructure-rest (not a hand-listed field map) so the
|
|
219
|
+
// payload can't silently drift from `AvailableCatalogConnector` when a new
|
|
220
|
+
// tile field is added.
|
|
221
|
+
.map(({ hostname, catalogHidden, ...tile }) => tile);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Look up a catalog connector by slug or display name (case-insensitive).
|
|
225
|
+
* Used to enrich an already-configured connector with its curated catalog
|
|
226
|
+
* metadata (description) and to tell catalog connectors from custom ones.
|
|
227
|
+
*/
|
|
228
|
+
export function getCatalogConnector(name) {
|
|
229
|
+
const lc = name.toLowerCase();
|
|
230
|
+
return CATALOG_CONNECTORS.find(c => c.name.toLowerCase() === lc || c.displayName.toLowerCase() === lc);
|
|
231
|
+
}
|
|
232
|
+
/** Broker base URL for claim retrieval. */
|
|
233
|
+
export { BROKER_URL };
|
|
234
|
+
//# sourceMappingURL=connector-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connector-catalog.js","sourceRoot":"","sources":["../../src/mcp/connector-catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,7 +30,7 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
|
30
30
|
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
31
31
|
import { enforceConnectorConfig } from '../core/schemas/connector.js';
|
|
32
32
|
import { McpOAuthProvider } from './oauth-provider.js';
|
|
33
|
-
import { hasBrokerSupport } from './
|
|
33
|
+
import { hasBrokerSupport } from './connector-catalog.js';
|
|
34
34
|
import { log } from '../utils/log.js';
|
|
35
35
|
export const CONNECTORS_DIR = join(homedir(), '.studiograph', 'connectors');
|
|
36
36
|
// ── ConnectorManager ──────────────────────────────────────────────────────────
|
|
@@ -220,6 +220,11 @@ export class ConnectorManager {
|
|
|
220
220
|
result.description = config.description;
|
|
221
221
|
if (config.oauth)
|
|
222
222
|
result.oauth = config.oauth;
|
|
223
|
+
// Preserve an explicit OAuth-mode declaration (e.g. a catalog `dcr` tile
|
|
224
|
+
// that knows it needs OAuth) so the import path doesn't have to rediscover
|
|
225
|
+
// it via a best-effort probe.
|
|
226
|
+
if (typeof config.requiresOAuth === 'boolean')
|
|
227
|
+
result.requiresOAuth = config.requiresOAuth;
|
|
223
228
|
return result;
|
|
224
229
|
}
|
|
225
230
|
/** Try to infer a connector name from the URL. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connector-manager.js","sourceRoot":"","sources":["../../src/mcp/connector-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"connector-manager.js","sourceRoot":"","sources":["../../src/mcp/connector-manager.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/tools.js
CHANGED
|
@@ -18,6 +18,7 @@ import { z } from 'zod';
|
|
|
18
18
|
import { ENTITY_SCHEMAS } from '../core/validation.js';
|
|
19
19
|
import { isWorkspaceOwner } from '../services/auth-service.js';
|
|
20
20
|
import { mintArtifactAssetTokenForBundle } from '../server/artifact-asset-mint.js';
|
|
21
|
+
import { resolveConfiguredBaseUrl, readWorkspaceOriginConfig } from '../server/canonical-origin.js';
|
|
21
22
|
import { getAccessibleRepos, hasRepoAccess, canWriteRepo, isFolderAdminOrOwner, getAccessibleEntityIds, filterWikilinks, } from '../services/access-control.js';
|
|
22
23
|
import { assetDeleteDenial } from '../services/asset-delete-authz.js';
|
|
23
24
|
import { isArchivedRepo } from '../core/types.js';
|
|
@@ -265,6 +266,21 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
265
266
|
// pass through untouched.
|
|
266
267
|
const baseRegisterTool = server.registerTool.bind(server);
|
|
267
268
|
const reg = ((name, def, handler) => baseRegisterTool(name, PINNED_SET.has(name) ? { ...def, ...PIN_META } : def, handler));
|
|
269
|
+
// Resolve the render origin + bundle-scoped asset token shared by inspect_artifact
|
|
270
|
+
// and export_artifact, so BOTH render paths load workspace fonts/images faithfully.
|
|
271
|
+
// base_url defaults to the server's CONFIGURED origin (env → workspace server_url →
|
|
272
|
+
// railway) so a caller that omits it still gets authorized /api/assets/* loads; the
|
|
273
|
+
// token is minted only for a PERSISTED target (repo + entity_id), which is also the
|
|
274
|
+
// only case the origin is defaulted — a bundle-only inspect has no repo to scope a
|
|
275
|
+
// token to, so it renders against whatever base_url was (or wasn't) passed.
|
|
276
|
+
const resolveRenderAssets = (baseUrlArg, repo, entityId, bundle) => {
|
|
277
|
+
const baseUrl = baseUrlArg
|
|
278
|
+
?? ((repo && entityId) ? (resolveConfiguredBaseUrl(readWorkspaceOriginConfig(wm.getWorkspacePath())) ?? undefined) : undefined);
|
|
279
|
+
const assetToken = (baseUrl && repo && entityId)
|
|
280
|
+
? mintArtifactAssetTokenForBundle(wm, authService, repo, entityId, bundle, String(user.id)).token
|
|
281
|
+
: undefined;
|
|
282
|
+
return { baseUrl, assetToken };
|
|
283
|
+
};
|
|
268
284
|
// External-agent identity: "<owner first name>'s <token name>", or
|
|
269
285
|
// "<owner first name>'s agent" as a fallback when the token has no name
|
|
270
286
|
// (older tokens or contexts that didn't thread the token through). First name
|
|
@@ -1107,12 +1123,10 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
1107
1123
|
const entity = wm.getGraph(parsed.repo).get('artifact', parsed.entity_id);
|
|
1108
1124
|
bundle = parseArtifactBundleFromBody(entity.document.content, `Artifact ${parsed.repo}/${parsed.entity_id}`);
|
|
1109
1125
|
}
|
|
1110
|
-
//
|
|
1111
|
-
//
|
|
1112
|
-
//
|
|
1113
|
-
const assetToken = (parsed.base_url
|
|
1114
|
-
? mintArtifactAssetTokenForBundle(wm, authService, parsed.repo, parsed.entity_id, bundle, String(user.id)).token
|
|
1115
|
-
: undefined;
|
|
1126
|
+
// Resolve the render origin + asset token so a persisted inspect loads its
|
|
1127
|
+
// workspace fonts/images (token-mode auth) instead of broken-image
|
|
1128
|
+
// placeholders — defaulting base_url to the server origin when omitted.
|
|
1129
|
+
const { baseUrl, assetToken } = resolveRenderAssets(parsed.base_url, parsed.repo, parsed.entity_id, bundle);
|
|
1116
1130
|
const options = {
|
|
1117
1131
|
context: parsed.context,
|
|
1118
1132
|
frameIndexes: parsed.frame_indexes,
|
|
@@ -1120,7 +1134,7 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
1120
1134
|
includePageScreenshot: parsed.include_page_screenshot,
|
|
1121
1135
|
includeFrameScreenshots: parsed.include_frame_screenshots,
|
|
1122
1136
|
screenshotFormat: parsed.screenshot_format,
|
|
1123
|
-
baseUrl
|
|
1137
|
+
baseUrl,
|
|
1124
1138
|
assetToken,
|
|
1125
1139
|
};
|
|
1126
1140
|
// Emit screenshots as real MCP image content blocks (vision) + a
|
|
@@ -1158,7 +1172,7 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
1158
1172
|
repo: z.string().describe('Folder containing the artifact entry.'),
|
|
1159
1173
|
entity_id: z.string().describe('Persisted artifact entity id.'),
|
|
1160
1174
|
format: z.enum(['html', 'png', 'pdf']).describe('Export format to produce. HTML returns text content; PNG/PDF return base64 bytes.'),
|
|
1161
|
-
base_url: z.string().optional().describe('Optional app origin such as http://localhost:3000
|
|
1175
|
+
base_url: z.string().optional().describe('Optional app origin such as http://localhost:3000 that authorizes same-origin /api/assets/* font/image loads during PNG/PDF render. Defaults to the server\'s configured origin, so workspace fonts/images render faithfully without it; pass it only to override (e.g. a local dev origin).'),
|
|
1162
1176
|
});
|
|
1163
1177
|
reg('export_artifact', {
|
|
1164
1178
|
description: 'Export a persisted Artifact Canvas entry as HTML, PNG, or PDF. HTML returns text content; workspace images ' +
|
|
@@ -1174,6 +1188,16 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
1174
1188
|
const entity = wm.getGraph(repo).get('artifact', entity_id);
|
|
1175
1189
|
const bundle = parseArtifactBundleFromBody(entity.document.content, `Artifact ${repo}/${entity_id}`);
|
|
1176
1190
|
const typedFormat = format;
|
|
1191
|
+
// A PNG/PDF render loads workspace fonts/images over /api/assets/*, which
|
|
1192
|
+
// needs both a base origin to resolve the root-relative URLs and a token to
|
|
1193
|
+
// authorize them. Resolve both via the shared helper (defaults the origin to
|
|
1194
|
+
// the server's configured one so callers get faithful output without passing
|
|
1195
|
+
// base_url). Without any origin the render still succeeds but substitutes
|
|
1196
|
+
// fallback fonts — flag that so it isn't a silent fidelity loss.
|
|
1197
|
+
const { baseUrl: effectiveBaseUrl, assetToken } = resolveRenderAssets(base_url, repo, entity_id, bundle);
|
|
1198
|
+
const fidelityNote = (typedFormat !== 'html' && !effectiveBaseUrl)
|
|
1199
|
+
? 'No app origin is configured (set STUDIOGRAPH_PUBLIC_URL / workspace server_url) and base_url was not provided, so workspace fonts and images could NOT be authorized for this render — the output uses fallback fonts and omits workspace images. Pass base_url (e.g. the app origin) for faithful output.'
|
|
1200
|
+
: undefined;
|
|
1177
1201
|
let bytes;
|
|
1178
1202
|
let filename = artifactExportFilename(bundle, typedFormat);
|
|
1179
1203
|
let mimeType;
|
|
@@ -1192,7 +1216,7 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
1192
1216
|
});
|
|
1193
1217
|
}
|
|
1194
1218
|
else if (typedFormat === 'png') {
|
|
1195
|
-
const pngFiles = await renderArtifactPngFiles(bundle, { baseUrl:
|
|
1219
|
+
const pngFiles = await renderArtifactPngFiles(bundle, { baseUrl: effectiveBaseUrl, assetToken });
|
|
1196
1220
|
if (pngFiles.length > 1) {
|
|
1197
1221
|
const namedFiles = nameArtifactPngFiles(bundle, pngFiles);
|
|
1198
1222
|
bytes = await zipArtifactPngFiles(namedFiles);
|
|
@@ -1204,7 +1228,7 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
1204
1228
|
}
|
|
1205
1229
|
}
|
|
1206
1230
|
else {
|
|
1207
|
-
bytes = await renderArtifactPdf(bundle, { baseUrl:
|
|
1231
|
+
bytes = await renderArtifactPdf(bundle, { baseUrl: effectiveBaseUrl, assetToken });
|
|
1208
1232
|
}
|
|
1209
1233
|
return ok({
|
|
1210
1234
|
success: true,
|
|
@@ -1212,6 +1236,7 @@ export function registerTools(server, wm, authService, ctx) {
|
|
|
1212
1236
|
entity_id,
|
|
1213
1237
|
format: typedFormat,
|
|
1214
1238
|
filename,
|
|
1239
|
+
...(fidelityNote ? { note: fidelityNote } : {}),
|
|
1215
1240
|
...exportedData(typedFormat, bytes, mimeType),
|
|
1216
1241
|
});
|
|
1217
1242
|
}
|