ugly-app 0.1.666 → 0.1.667
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/cli/version.d.ts +1 -1
- package/dist/cli/version.js +1 -1
- package/dist/native/contract-meta.d.ts.map +1 -1
- package/dist/native/contract-meta.js +11 -0
- package/dist/native/contract-meta.js.map +1 -1
- package/dist/native/contract.d.ts +130 -1
- package/dist/native/contract.d.ts.map +1 -1
- package/dist/native/contract.js.map +1 -1
- package/dist/native/facades/mcp.d.ts +54 -0
- package/dist/native/facades/mcp.d.ts.map +1 -0
- package/dist/native/facades/mcp.js +22 -0
- package/dist/native/facades/mcp.js.map +1 -0
- package/dist/native/index.d.ts +3 -1
- package/dist/native/index.d.ts.map +1 -1
- package/dist/native/index.js +1 -0
- package/dist/native/index.js.map +1 -1
- package/dist/native/mcp-catalog.d.ts +11 -0
- package/dist/native/mcp-catalog.d.ts.map +1 -0
- package/dist/native/mcp-catalog.js +233 -0
- package/dist/native/mcp-catalog.js.map +1 -0
- package/dist/native/wrapper.d.ts +1 -0
- package/dist/native/wrapper.d.ts.map +1 -1
- package/dist/native/wrapper.js +2 -0
- package/dist/native/wrapper.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/version.ts +1 -1
- package/src/native/contract-meta.ts +11 -0
- package/src/native/contract.ts +82 -1
- package/src/native/facades/mcp.ts +65 -0
- package/src/native/index.ts +11 -0
- package/src/native/mcp-catalog.ts +237 -0
- package/src/native/wrapper.ts +5 -0
package/dist/cli/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const CLI_VERSION = "0.1.
|
|
1
|
+
export declare const CLI_VERSION = "0.1.667";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/dist/cli/version.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-meta.d.ts","sourceRoot":"","sources":["../../src/native/contract-meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAC7D,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,eAAO,MAAM,UAAU,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"contract-meta.d.ts","sourceRoot":"","sources":["../../src/native/contract-meta.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,MAAM,QAAQ,GAAG,KAAK,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;AAC7D,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3D,eAAO,MAAM,UAAU,EAAE,SAAS,EAsBjC,CAAC;AA4GF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAA0B,CAAC;AAEpG,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,CAK1E"}
|
|
@@ -20,6 +20,7 @@ export const NAMESPACES = [
|
|
|
20
20
|
'permissions',
|
|
21
21
|
'browser',
|
|
22
22
|
'browse',
|
|
23
|
+
'mcp',
|
|
23
24
|
];
|
|
24
25
|
// Per-namespace fallback profile when no explicit channel override applies.
|
|
25
26
|
// Tuple order: [ios, android, desktop, web].
|
|
@@ -44,6 +45,7 @@ const NS_DEFAULT = {
|
|
|
44
45
|
permissions: ['native', 'native', 'native', 'native'],
|
|
45
46
|
browser: ['throw', 'throw', 'native', 'throw'],
|
|
46
47
|
browse: ['throw', 'throw', 'native', 'throw'], // desktop-only (Ugly Browser)
|
|
48
|
+
mcp: ['throw', 'throw', 'native', 'throw'], // desktop-only (Studio MCP registry)
|
|
47
49
|
};
|
|
48
50
|
const PLATFORM_INDEX = { ios: 0, android: 1, desktop: 2, web: 3 };
|
|
49
51
|
// All request/response channels (mirrors contract.ts channels; the test guards count).
|
|
@@ -104,6 +106,15 @@ const CHANNELS = [
|
|
|
104
106
|
'net.write',
|
|
105
107
|
'net.end',
|
|
106
108
|
'net.close',
|
|
109
|
+
'mcp.listServers',
|
|
110
|
+
'mcp.addServer',
|
|
111
|
+
'mcp.removeServer',
|
|
112
|
+
'mcp.updateServer',
|
|
113
|
+
'mcp.auth',
|
|
114
|
+
'mcp.listTools',
|
|
115
|
+
'mcp.call',
|
|
116
|
+
'mcp.catalog',
|
|
117
|
+
'mcp.openSettings',
|
|
107
118
|
];
|
|
108
119
|
function buildChannelFallback() {
|
|
109
120
|
const out = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-meta.js","sourceRoot":"","sources":["../../src/native/contract-meta.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAK5C,MAAM,CAAC,MAAM,UAAU,GAAgB;IACrC,SAAS;IACT,KAAK;IACL,cAAc;IACd,OAAO;IACP,KAAK;IACL,MAAM;IACN,WAAW;IACX,QAAQ;IACR,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,SAAS;IACT,OAAO;IACP,SAAS;IACT,KAAK;IACL,SAAS;IACT,SAAS;IACT,aAAa;IACb,SAAS;IACT,QAAQ;
|
|
1
|
+
{"version":3,"file":"contract-meta.js","sourceRoot":"","sources":["../../src/native/contract-meta.ts"],"names":[],"mappings":"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"}
|
|
@@ -108,6 +108,67 @@ export interface BrowseOpenOptions {
|
|
|
108
108
|
/** Fixed settle delay after load (ms). */
|
|
109
109
|
waitMs?: number;
|
|
110
110
|
}
|
|
111
|
+
export type McpTransport = 'stdio' | 'http' | 'sse';
|
|
112
|
+
/** A server definition — the standard Claude Desktop / Cursor / mcporter shape. */
|
|
113
|
+
export interface McpServerConfig {
|
|
114
|
+
name: string;
|
|
115
|
+
transport: McpTransport;
|
|
116
|
+
/** stdio transport: */
|
|
117
|
+
command?: string;
|
|
118
|
+
args?: string[];
|
|
119
|
+
env?: Record<string, string>;
|
|
120
|
+
cwd?: string;
|
|
121
|
+
/** http/sse transport: */
|
|
122
|
+
url?: string;
|
|
123
|
+
headers?: Record<string, string>;
|
|
124
|
+
}
|
|
125
|
+
export type McpAuthState = 'none' | 'required' | 'authorized' | 'error';
|
|
126
|
+
export type McpServerStatus = 'connected' | 'disconnected' | 'unauthorized' | 'error';
|
|
127
|
+
export interface McpServerInfo {
|
|
128
|
+
name: string;
|
|
129
|
+
transport: McpTransport;
|
|
130
|
+
status: McpServerStatus;
|
|
131
|
+
authState: McpAuthState;
|
|
132
|
+
toolCount?: number;
|
|
133
|
+
error?: string;
|
|
134
|
+
}
|
|
135
|
+
export interface McpToolInfo {
|
|
136
|
+
name: string;
|
|
137
|
+
description?: string;
|
|
138
|
+
/** JSON-schema for the tool's arguments (as the server advertises it). */
|
|
139
|
+
inputSchema?: unknown;
|
|
140
|
+
}
|
|
141
|
+
export interface McpCallContentPart {
|
|
142
|
+
type: 'text' | 'image' | 'json' | 'resource';
|
|
143
|
+
text?: string;
|
|
144
|
+
/** base64 payload for image/resource parts. */
|
|
145
|
+
data?: string;
|
|
146
|
+
mimeType?: string;
|
|
147
|
+
}
|
|
148
|
+
export interface McpCallResult {
|
|
149
|
+
ok: boolean;
|
|
150
|
+
content: McpCallContentPart[];
|
|
151
|
+
/** The MCP server flagged the result as an error (tool-level failure). */
|
|
152
|
+
isError?: boolean;
|
|
153
|
+
/** Transport/connection error (couldn't reach the server / not authorized). */
|
|
154
|
+
error?: string;
|
|
155
|
+
}
|
|
156
|
+
/** One curated quick-add entry shown in the Studio MCP settings panel. */
|
|
157
|
+
export interface McpCatalogEntry {
|
|
158
|
+
id: string;
|
|
159
|
+
name: string;
|
|
160
|
+
category: string;
|
|
161
|
+
transport: McpTransport;
|
|
162
|
+
/** stdio quick-add: */
|
|
163
|
+
command?: string;
|
|
164
|
+
args?: string[];
|
|
165
|
+
/** http/sse quick-add: */
|
|
166
|
+
url?: string;
|
|
167
|
+
/** Names of env vars / secrets to prompt for (e.g. ['EXA_API_KEY']). */
|
|
168
|
+
env?: string[];
|
|
169
|
+
authType: 'none' | 'apiKey' | 'oauth';
|
|
170
|
+
blurb: string;
|
|
171
|
+
}
|
|
111
172
|
export interface NativeContract {
|
|
112
173
|
channels: {
|
|
113
174
|
'capture.screenshot': {
|
|
@@ -562,6 +623,74 @@ export interface NativeContract {
|
|
|
562
623
|
};
|
|
563
624
|
result: void;
|
|
564
625
|
};
|
|
626
|
+
'mcp.listServers': {
|
|
627
|
+
payload: void;
|
|
628
|
+
result: {
|
|
629
|
+
servers: McpServerInfo[];
|
|
630
|
+
};
|
|
631
|
+
};
|
|
632
|
+
'mcp.addServer': {
|
|
633
|
+
payload: {
|
|
634
|
+
config: McpServerConfig;
|
|
635
|
+
};
|
|
636
|
+
result: {
|
|
637
|
+
ok: boolean;
|
|
638
|
+
error?: string;
|
|
639
|
+
};
|
|
640
|
+
};
|
|
641
|
+
'mcp.removeServer': {
|
|
642
|
+
payload: {
|
|
643
|
+
name: string;
|
|
644
|
+
};
|
|
645
|
+
result: void;
|
|
646
|
+
};
|
|
647
|
+
'mcp.updateServer': {
|
|
648
|
+
payload: {
|
|
649
|
+
name: string;
|
|
650
|
+
config: McpServerConfig;
|
|
651
|
+
};
|
|
652
|
+
result: {
|
|
653
|
+
ok: boolean;
|
|
654
|
+
error?: string;
|
|
655
|
+
};
|
|
656
|
+
};
|
|
657
|
+
'mcp.auth': {
|
|
658
|
+
payload: {
|
|
659
|
+
name: string;
|
|
660
|
+
reset?: boolean;
|
|
661
|
+
};
|
|
662
|
+
result: {
|
|
663
|
+
ok: boolean;
|
|
664
|
+
authorizationUrl?: string;
|
|
665
|
+
error?: string;
|
|
666
|
+
};
|
|
667
|
+
};
|
|
668
|
+
'mcp.listTools': {
|
|
669
|
+
payload: {
|
|
670
|
+
server: string;
|
|
671
|
+
};
|
|
672
|
+
result: {
|
|
673
|
+
tools: McpToolInfo[];
|
|
674
|
+
};
|
|
675
|
+
};
|
|
676
|
+
'mcp.call': {
|
|
677
|
+
payload: {
|
|
678
|
+
server: string;
|
|
679
|
+
tool: string;
|
|
680
|
+
args?: Record<string, unknown>;
|
|
681
|
+
};
|
|
682
|
+
result: McpCallResult;
|
|
683
|
+
};
|
|
684
|
+
'mcp.catalog': {
|
|
685
|
+
payload: void;
|
|
686
|
+
result: {
|
|
687
|
+
entries: McpCatalogEntry[];
|
|
688
|
+
};
|
|
689
|
+
};
|
|
690
|
+
'mcp.openSettings': {
|
|
691
|
+
payload: void;
|
|
692
|
+
result: void;
|
|
693
|
+
};
|
|
565
694
|
};
|
|
566
695
|
events: {
|
|
567
696
|
'gps.position': {
|
|
@@ -597,6 +726,6 @@ export type NativeEvent = keyof NativeContract['events'];
|
|
|
597
726
|
export type PayloadOf<C extends Channel> = NativeContract['channels'][C]['payload'];
|
|
598
727
|
export type ResultOf<C extends Channel> = NativeContract['channels'][C]['result'];
|
|
599
728
|
export type DataOf<E extends NativeEvent> = NativeContract['events'][E];
|
|
600
|
-
export type Namespace = 'capture' | 'gps' | 'liveActivity' | 'alarm' | 'tts' | 'push' | 'clipboard' | 'system' | 'badge' | 'ui' | 'fs' | 'secrets' | 'serve' | 'workers' | 'net' | 'process' | 'sandbox' | 'permissions' | 'browser' | 'browse';
|
|
729
|
+
export type Namespace = 'capture' | 'gps' | 'liveActivity' | 'alarm' | 'tts' | 'push' | 'clipboard' | 'system' | 'badge' | 'ui' | 'fs' | 'secrets' | 'serve' | 'workers' | 'net' | 'process' | 'sandbox' | 'permissions' | 'browser' | 'browse' | 'mcp';
|
|
601
730
|
export declare function namespaceOf(channel: Channel): Namespace;
|
|
602
731
|
//# sourceMappingURL=contract.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/native/contract.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AACD,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB;AACD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,YAAY,GAAG,WAAW,GAAG,aAAa,GAAG,YAAY,GAAG,OAAO,CAAC;IACjG,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAC7E,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,WAAW,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACzE;AAGD,oDAAoD;AACpD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,aAAa,CAAC;AAC1D,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,SAAS,EAAE,OAAO,CAAC;IACnB,iEAAiE;IACjE,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,CAAC;IACxD,sEAAsE;IACtE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AACD,2DAA2D;AAC3D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,OAAO,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAGD,kEAAkE;AAClE,MAAM,MAAM,aAAa,GAAG,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAC5D,wCAAwC;AACxC,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;IACtB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,iEAAiE;AACjE,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AACD,mDAAmD;AACnD,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE;QAER,oBAAoB,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAExD,WAAW,EAAE;YAAE,OAAO,EAAE;gBAAE,YAAY,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAClF,UAAU,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAE5C,2BAA2B,EAAE;YAAE,OAAO,EAAE,cAAc,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QACvE,4BAA4B,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QACjF,yBAAyB,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC3D,0BAA0B,EAAE;YAAE,OAAO,EAAE,aAAa,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QACrE,2BAA2B,EAAE;YAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC/E,wBAAwB,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAE1D,gBAAgB,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,YAAY,EAAE,MAAM,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QACjH,cAAc,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC3D,iBAAiB,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,MAAM,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAEhG,WAAW,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,KAAK,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QACzE,WAAW,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC7C,YAAY,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC9C,UAAU,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAE5C,eAAe,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QAE9D,iBAAiB,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC/D,gBAAgB,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QAE9D,qBAAqB,EAAE;YAAE,OAAO,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAClE,cAAc,EAAE;YAAE,OAAO,EAAE;gBAAE,KAAK,CAAC,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,MAAM,CAAC;gBAAC,GAAG,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAE3F,WAAW,EAAE;YAAE,OAAO,EAAE;gBAAE,KAAK,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAE1D,gBAAgB,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE,cAAc,CAAA;SAAE,CAAC;QAE5D,aAAa,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,OAAO,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QAC1E,cAAc,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,OAAO,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC7E,UAAU,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,SAAS,CAAC,EAAE,OAAO,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC7E,OAAO,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,SAAS,CAAC,EAAE,OAAO,CAAC;gBAAC,KAAK,CAAC,EAAE,OAAO,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC3F,WAAW,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QACrE,YAAY,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,OAAO,EAAE,UAAU,EAAE,CAAA;aAAE,CAAA;SAAE,CAAC;QAC/E,SAAS,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,QAAQ,CAAA;SAAE,CAAC;QAC3D,WAAW,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,MAAM,EAAE,OAAO,CAAA;aAAE,CAAA;SAAE,CAAC;QACxE,aAAa,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QAEvE,kBAAkB,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE;gBAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;aAAE,CAAA;SAAE,CAAC;QAEvE,kBAAkB,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QAC5E,mBAAmB,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAE/E,aAAa,EAAE;YAAE,OAAO,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;aAAE,CAAA;SAAE,CAAC;QAC9E,aAAa,EAAE;YAAE,OAAO,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QACzE,gBAAgB,EAAE;YAAE,OAAO,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC7D,cAAc,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE;gBAAE,IAAI,EAAE,MAAM,EAAE,CAAA;aAAE,CAAA;SAAE,CAAC;QAE9D,aAAa,EAAE;YAAE,OAAO,EAAE;gBAAE,GAAG,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,GAAG,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QACpF,YAAY,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAE1D,kBAAkB,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,OAAO,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QAC1F,oBAAoB,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAChE,cAAc,EAAE;YAAE,OAAO,EAAE,IAAI,CAAC;YAAC,MAAM,EAAE;gBAAE,GAAG,EAAE,MAAM,EAAE,CAAA;aAAE,CAAA;SAAE,CAAC;QAG7D,eAAe,EAAE;YAAE,OAAO,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,EAAE,CAAC;gBAAC,IAAI,CAAC,EAAE,SAAS,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;aAAE,CAAA;SAAE,CAAC;QAC5H,eAAe,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QACzE,oBAAoB,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAChE,cAAc,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAG3E,gBAAgB,EAAE;YAAE,OAAO,EAAE;gBAAE,SAAS,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,aAAa,CAAA;SAAE,CAAC;QAC5E,oBAAoB,EAAE;YAAE,OAAO,EAAE;gBAAE,SAAS,EAAE,MAAM,CAAC;gBAAC,UAAU,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,aAAa,CAAA;SAAE,CAAC;QACpG,kBAAkB,EAAE;YAAE,OAAO,EAAE;gBAAE,SAAS,EAAE,MAAM,CAAC;gBAAC,UAAU,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,aAAa,CAAA;SAAE,CAAC;QAGlG,aAAa,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QACnF,YAAY,EAAE;YAAE,OAAO,EAAE;gBAAE,IAAI,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC;QACnF,WAAW,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QACrE,SAAS,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QACrD,WAAW,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAEvD,gBAAgB,EAAE;YAChB,OAAO,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,iBAAiB,GAAG;oBAAE,MAAM,CAAC,EAAE,aAAa,CAAA;iBAAE,CAAA;aAAE,CAAC;YAChF,MAAM,EAAE,aAAa,CAAC;SACvB,CAAC;QACF,aAAa,EAAE;YAAE,OAAO,EAAE;gBAAE,GAAG,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,iBAAiB,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,aAAa,CAAA;SAAE,CAAC;QAC7F,iBAAiB,EAAE;YACjB,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,GAAG,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE,iBAAiB,CAAA;aAAE,CAAC;YAC/D,MAAM,EAAE,aAAa,CAAC;SACvB,CAAC;QACF,cAAc,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;QAC5E,aAAa,EAAE;YACb,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE;oBAAE,KAAK,CAAC,EAAE,OAAO,CAAC;oBAAC,MAAM,CAAC,EAAE,OAAO,CAAA;iBAAE,CAAA;aAAE,CAAC;YACtG,MAAM,EAAE,IAAI,CAAC;SACd,CAAC;QACF,wBAAwB,EAAE;YACxB,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,MAAM,CAAC;gBAAC,SAAS,CAAC,EAAE,MAAM,CAAA;aAAE,CAAC;YAC9D,MAAM,EAAE,OAAO,CAAC;SACjB,CAAC;QACF,gBAAgB,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,IAAI,CAAC,EAAE;oBAAE,MAAM,CAAC,EAAE,aAAa,CAAA;iBAAE,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,aAAa,CAAA;SAAE,CAAC;QACxG,cAAc,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,QAAQ,EAAE,CAAA;SAAE,CAAC;QAChE,aAAa,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,UAAU,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,OAAO,CAAA;SAAE,CAAC;QAChF,mBAAmB,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACjE,aAAa,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,aAAa,CAAA;SAAE,CAAC;QAClE,cAAc,EAAE;YAAE,OAAO,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,MAAM,EAAE,IAAI,CAAA;SAAE,CAAC;KAC3D,CAAC;IACF,MAAM,EAAE;QACN,cAAc,EAAE;YACd,GAAG,EAAE,MAAM,CAAC;YACZ,GAAG,EAAE,MAAM,CAAC;YACZ,QAAQ,EAAE,MAAM,CAAC;YACjB,SAAS,EAAE,MAAM,CAAC;YAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,aAAa,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9B,iBAAiB,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACtC,iBAAiB,EAAE,cAAc,CAAC;QAClC,WAAW,EAAE;YAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,UAAU,CAAA;SAAE,CAAC;QAC/E,YAAY,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAChC,wBAAwB,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;SAAE,CAAC;KAC5E,CAAC;CACH;AAED,MAAM,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;AACvD,MAAM,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;AACzD,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACpF,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,OAAO,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AAClF,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,WAAW,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAIxE,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,KAAK,GACL,cAAc,GACd,OAAO,GACP,KAAK,GACL,MAAM,GACN,WAAW,GACX,QAAQ,GACR,OAAO,GACP,IAAI,GACJ,IAAI,GACJ,SAAS,GACT,OAAO,GACP,SAAS,GACT,KAAK,GACL,SAAS,GACT,SAAS,GACT,aAAa,GACb,SAAS,GACT,QAAQ,CAAC;AAEb,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAEvD"}
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../src/native/contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/native/contract.ts"],"names":[],"mappings":"AAAA,+DAA+D;
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/native/contract.ts"],"names":[],"mappings":"AAAA,+DAA+D;AA+V/D,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,OAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAc,CAAC;AAC5C,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import type { McpServerConfig, McpServerInfo, McpToolInfo, McpCallResult, McpCatalogEntry } from '../contract.js';
|
|
2
|
+
/**
|
|
3
|
+
* `mcp.*` — Model Context Protocol, owned by Ugly Studio and exposed to hosted
|
|
4
|
+
* apps over UglyNative. The HOST holds server configs, connections, and OAuth
|
|
5
|
+
* tokens, and executes tool calls LOCALLY; apps only consume this facade. This
|
|
6
|
+
* is how a hosted app reaches Google Docs / Notion / Linear / any MCP server
|
|
7
|
+
* without holding credentials or speaking the wire protocol itself.
|
|
8
|
+
*
|
|
9
|
+
* Gated by the `mcp` permission (the host re-enforces the grant). Desktop-only;
|
|
10
|
+
* other platforms reject. Registration UI + OAuth consent live in Studio — apps
|
|
11
|
+
* can deep-link there via `openSettings()`.
|
|
12
|
+
*/
|
|
13
|
+
export interface McpFacade {
|
|
14
|
+
/** Registered servers + live status (one shared registry across all apps). */
|
|
15
|
+
listServers(): Promise<McpServerInfo[]>;
|
|
16
|
+
/** Register a server. Returns ok=false + error if the definition is rejected. */
|
|
17
|
+
addServer(config: McpServerConfig): Promise<{
|
|
18
|
+
ok: boolean;
|
|
19
|
+
error?: string;
|
|
20
|
+
}>;
|
|
21
|
+
removeServer(name: string): Promise<void>;
|
|
22
|
+
updateServer(name: string, config: McpServerConfig): Promise<{
|
|
23
|
+
ok: boolean;
|
|
24
|
+
error?: string;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Start the OAuth handshake for a server. Studio drives the consent redirect
|
|
28
|
+
* in its own browser and resolves when complete; `authorizationUrl` is set
|
|
29
|
+
* only when the host couldn't open a browser (headless fallback).
|
|
30
|
+
*/
|
|
31
|
+
auth(name: string, opts?: {
|
|
32
|
+
reset?: boolean;
|
|
33
|
+
}): Promise<{
|
|
34
|
+
ok: boolean;
|
|
35
|
+
authorizationUrl?: string;
|
|
36
|
+
error?: string;
|
|
37
|
+
}>;
|
|
38
|
+
/** The tools a server advertises (with their JSON-schemas). */
|
|
39
|
+
listTools(server: string): Promise<McpToolInfo[]>;
|
|
40
|
+
/** Call a tool on a server and get its result (executed locally by the host). */
|
|
41
|
+
call(server: string, tool: string, args?: Record<string, unknown>): Promise<McpCallResult>;
|
|
42
|
+
/** The curated quick-add catalog Studio ships (popular servers). */
|
|
43
|
+
catalog(): Promise<McpCatalogEntry[]>;
|
|
44
|
+
/** Open the Studio MCP settings panel (where users add/auth servers). */
|
|
45
|
+
openSettings(): Promise<void>;
|
|
46
|
+
}
|
|
47
|
+
type Invoke = (channel: string, payload: unknown) => Promise<unknown>;
|
|
48
|
+
/**
|
|
49
|
+
* Build the `mcp` facade over the uniform UglyNative protocol. `ensure` is the
|
|
50
|
+
* permission gate (fired before each call; the host re-enforces it).
|
|
51
|
+
*/
|
|
52
|
+
export declare function createMcpFacade(invoke: Invoke, ensure: () => Promise<void>): McpFacade;
|
|
53
|
+
export {};
|
|
54
|
+
//# sourceMappingURL=mcp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/native/facades/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,aAAa,EACb,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAExB;;;;;;;;;;GAUG;AACH,MAAM,WAAW,SAAS;IACxB,8EAA8E;IAC9E,WAAW,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACxC,iFAAiF;IACjF,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9F;;;;OAIG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpH,+DAA+D;IAC/D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAClD,iFAAiF;IACjF,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC3F,oEAAoE;IACpE,OAAO,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;IACtC,yEAAyE;IACzE,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B;AAED,KAAK,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;AAEtE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAgBtF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build the `mcp` facade over the uniform UglyNative protocol. `ensure` is the
|
|
3
|
+
* permission gate (fired before each call; the host re-enforces it).
|
|
4
|
+
*/
|
|
5
|
+
export function createMcpFacade(invoke, ensure) {
|
|
6
|
+
const inv = async (ch, p) => {
|
|
7
|
+
await ensure();
|
|
8
|
+
return invoke(ch, p);
|
|
9
|
+
};
|
|
10
|
+
return {
|
|
11
|
+
listServers: async () => (await inv('mcp.listServers')).servers,
|
|
12
|
+
addServer: (config) => inv('mcp.addServer', { config }),
|
|
13
|
+
removeServer: (name) => inv('mcp.removeServer', { name }),
|
|
14
|
+
updateServer: (name, config) => inv('mcp.updateServer', { name, config }),
|
|
15
|
+
auth: (name, opts) => inv('mcp.auth', { name, ...opts }),
|
|
16
|
+
listTools: async (server) => (await inv('mcp.listTools', { server })).tools,
|
|
17
|
+
call: (server, tool, args) => inv('mcp.call', { server, tool, args }),
|
|
18
|
+
catalog: async () => (await inv('mcp.catalog')).entries,
|
|
19
|
+
openSettings: () => inv('mcp.openSettings'),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=mcp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/native/facades/mcp.ts"],"names":[],"mappings":"AA4CA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAA2B;IACzE,MAAM,GAAG,GAAG,KAAK,EAAK,EAAU,EAAE,CAAW,EAAc,EAAE;QAC3D,MAAM,MAAM,EAAE,CAAC;QACf,OAAO,MAAM,CAAC,EAAE,EAAE,CAAC,CAAe,CAAC;IACrC,CAAC,CAAC;IACF,OAAO;QACL,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAA+B,iBAAiB,CAAC,CAAC,CAAC,OAAO;QAC7F,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAkC,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC;QACxF,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAO,kBAAkB,EAAE,EAAE,IAAI,EAAE,CAAC;QAC/D,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAkC,kBAAkB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;QAC1G,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAA6D,UAAU,EAAE,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;QACpH,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,GAAG,CAA2B,eAAe,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,KAAK;QACrG,IAAI,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,CAAgB,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACpF,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAiC,aAAa,CAAC,CAAC,CAAC,OAAO;QACvF,YAAY,EAAE,GAAG,EAAE,CAAC,GAAG,CAAO,kBAAkB,CAAC;KAClD,CAAC;AACJ,CAAC"}
|
package/dist/native/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { NativeContract, Channel, NativeEvent, PayloadOf, ResultOf, DataOf, Namespace, WorkoutLAState, CardioLAState, HostDirent, HostStat, UpdateStatus, GrantState, SpawnOpts, SandboxMode, SandboxStatus, SandboxResult, SafeAreaInsets, ExtractFormat, ExtractedPage, PageLink, BrowseSession, BrowseOpenOptions, } from './contract.js';
|
|
1
|
+
export type { NativeContract, Channel, NativeEvent, PayloadOf, ResultOf, DataOf, Namespace, WorkoutLAState, CardioLAState, HostDirent, HostStat, UpdateStatus, GrantState, SpawnOpts, SandboxMode, SandboxStatus, SandboxResult, SafeAreaInsets, ExtractFormat, ExtractedPage, PageLink, BrowseSession, BrowseOpenOptions, McpTransport, McpServerConfig, McpAuthState, McpServerStatus, McpServerInfo, McpToolInfo, McpCallContentPart, McpCallResult, McpCatalogEntry, } from './contract.js';
|
|
2
2
|
export { namespaceOf } from './contract.js';
|
|
3
3
|
export type { Platform, Fallback } from './contract-meta.js';
|
|
4
4
|
export { CHANNEL_FALLBACK, NAMESPACES, fallbackFor } from './contract-meta.js';
|
|
@@ -12,4 +12,6 @@ export type { UglySocket, UglyServer } from './facades/net.js';
|
|
|
12
12
|
export type { SandboxFacade } from './facades/sandbox.js';
|
|
13
13
|
export type { BrowserFacade, BrowserTab } from './facades/browser.js';
|
|
14
14
|
export type { BrowseFacade } from './facades/browse.js';
|
|
15
|
+
export type { McpFacade } from './facades/mcp.js';
|
|
16
|
+
export { MCP_CATALOG } from './mcp-catalog.js';
|
|
15
17
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,OAAO,EACP,WAAW,EACX,SAAS,EACT,QAAQ,EACR,MAAM,EACN,SAAS,EACT,cAAc,EACd,aAAa,EACb,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,QAAQ,EACR,aAAa,EACb,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,cAAc,EACd,OAAO,EACP,WAAW,EACX,SAAS,EACT,QAAQ,EACR,MAAM,EACN,SAAS,EACT,cAAc,EACd,aAAa,EACb,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,QAAQ,EACR,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,eAAe,EACf,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,YAAY,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/native/index.js
CHANGED
|
@@ -3,4 +3,5 @@ export { CHANNEL_FALLBACK, NAMESPACES, fallbackFor } from './contract-meta.js';
|
|
|
3
3
|
export { NativeUnavailableError, PermissionDeniedError } from './protocol.js';
|
|
4
4
|
export { installUglyNative } from './install.js';
|
|
5
5
|
export { native, permissions, nativePlatform, isNativeAvailable } from './wrapper.js';
|
|
6
|
+
export { MCP_CATALOG } from './mcp-catalog.js';
|
|
6
7
|
//# sourceMappingURL=index.js.map
|
package/dist/native/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/native/index.ts"],"names":[],"mappings":"AAkCA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAE/E,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAQtF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { McpCatalogEntry } from './contract.js';
|
|
2
|
+
/**
|
|
3
|
+
* Curated quick-add catalog of popular MCP servers, shipped so the Studio MCP
|
|
4
|
+
* settings panel can offer one-click setup (and apps/agents can suggest from
|
|
5
|
+
* it). Package names/versions verified live (npm/pypi, Jun 2026); remote OAuth
|
|
6
|
+
* URLs are the vendors' standard endpoints — re-verify periodically. The long
|
|
7
|
+
* tail lives in registries; this is the top ~20. Studio returns this via the
|
|
8
|
+
* `mcp.catalog` channel.
|
|
9
|
+
*/
|
|
10
|
+
export declare const MCP_CATALOG: McpCatalogEntry[];
|
|
11
|
+
//# sourceMappingURL=mcp-catalog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-catalog.d.ts","sourceRoot":"","sources":["../../src/native/mcp-catalog.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;;GAOG;AACH,eAAO,MAAM,WAAW,EAAE,eAAe,EAkOxC,CAAC"}
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Curated quick-add catalog of popular MCP servers, shipped so the Studio MCP
|
|
3
|
+
* settings panel can offer one-click setup (and apps/agents can suggest from
|
|
4
|
+
* it). Package names/versions verified live (npm/pypi, Jun 2026); remote OAuth
|
|
5
|
+
* URLs are the vendors' standard endpoints — re-verify periodically. The long
|
|
6
|
+
* tail lives in registries; this is the top ~20. Studio returns this via the
|
|
7
|
+
* `mcp.catalog` channel.
|
|
8
|
+
*/
|
|
9
|
+
export const MCP_CATALOG = [
|
|
10
|
+
// ── Zero-config (no key, local stdio) ──────────────────────────────────
|
|
11
|
+
{
|
|
12
|
+
id: 'filesystem',
|
|
13
|
+
name: 'Filesystem',
|
|
14
|
+
category: 'Files',
|
|
15
|
+
transport: 'stdio',
|
|
16
|
+
command: 'npx',
|
|
17
|
+
args: ['-y', '@modelcontextprotocol/server-filesystem'],
|
|
18
|
+
authType: 'none',
|
|
19
|
+
blurb: 'Scoped local file access (pass an allowed directory as an argument).',
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
id: 'git',
|
|
23
|
+
name: 'Git',
|
|
24
|
+
category: 'Dev',
|
|
25
|
+
transport: 'stdio',
|
|
26
|
+
command: 'uvx',
|
|
27
|
+
args: ['mcp-server-git'],
|
|
28
|
+
authType: 'none',
|
|
29
|
+
blurb: 'Read, search, and manipulate Git repositories.',
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: 'fetch',
|
|
33
|
+
name: 'Fetch',
|
|
34
|
+
category: 'Web',
|
|
35
|
+
transport: 'stdio',
|
|
36
|
+
command: 'uvx',
|
|
37
|
+
args: ['mcp-server-fetch'],
|
|
38
|
+
authType: 'none',
|
|
39
|
+
blurb: 'Fetch a URL and convert it to clean text for the model.',
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: 'memory',
|
|
43
|
+
name: 'Memory',
|
|
44
|
+
category: 'Memory',
|
|
45
|
+
transport: 'stdio',
|
|
46
|
+
command: 'npx',
|
|
47
|
+
args: ['-y', '@modelcontextprotocol/server-memory'],
|
|
48
|
+
authType: 'none',
|
|
49
|
+
blurb: 'Knowledge-graph persistent memory.',
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
id: 'sequential-thinking',
|
|
53
|
+
name: 'Sequential Thinking',
|
|
54
|
+
category: 'Reasoning',
|
|
55
|
+
transport: 'stdio',
|
|
56
|
+
command: 'npx',
|
|
57
|
+
args: ['-y', '@modelcontextprotocol/server-sequential-thinking'],
|
|
58
|
+
authType: 'none',
|
|
59
|
+
blurb: 'Structured step-by-step reasoning scratchpad.',
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
id: 'time',
|
|
63
|
+
name: 'Time',
|
|
64
|
+
category: 'Utility',
|
|
65
|
+
transport: 'stdio',
|
|
66
|
+
command: 'uvx',
|
|
67
|
+
args: ['mcp-server-time'],
|
|
68
|
+
authType: 'none',
|
|
69
|
+
blurb: 'Current time and timezone conversion.',
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: 'playwright',
|
|
73
|
+
name: 'Playwright',
|
|
74
|
+
category: 'Web',
|
|
75
|
+
transport: 'stdio',
|
|
76
|
+
command: 'npx',
|
|
77
|
+
args: ['-y', '@playwright/mcp@latest'],
|
|
78
|
+
authType: 'none',
|
|
79
|
+
blurb: "Microsoft's browser automation server.",
|
|
80
|
+
},
|
|
81
|
+
// ── One-click remote (OAuth in the Studio browser) ─────────────────────
|
|
82
|
+
{
|
|
83
|
+
id: 'github',
|
|
84
|
+
name: 'GitHub',
|
|
85
|
+
category: 'Dev',
|
|
86
|
+
transport: 'http',
|
|
87
|
+
url: 'https://api.githubcopilot.com/mcp/',
|
|
88
|
+
authType: 'oauth',
|
|
89
|
+
blurb: 'Repos, issues, PRs, and Actions (official).',
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
id: 'notion',
|
|
93
|
+
name: 'Notion',
|
|
94
|
+
category: 'Productivity',
|
|
95
|
+
transport: 'http',
|
|
96
|
+
url: 'https://mcp.notion.com/mcp',
|
|
97
|
+
authType: 'oauth',
|
|
98
|
+
blurb: 'Read/write Notion docs and databases.',
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
id: 'linear',
|
|
102
|
+
name: 'Linear',
|
|
103
|
+
category: 'Productivity',
|
|
104
|
+
transport: 'sse',
|
|
105
|
+
url: 'https://mcp.linear.app/sse',
|
|
106
|
+
authType: 'oauth',
|
|
107
|
+
blurb: 'Issues and projects.',
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
id: 'sentry',
|
|
111
|
+
name: 'Sentry',
|
|
112
|
+
category: 'Dev',
|
|
113
|
+
transport: 'http',
|
|
114
|
+
url: 'https://mcp.sentry.dev/mcp',
|
|
115
|
+
authType: 'oauth',
|
|
116
|
+
blurb: 'Triage and analyze errors.',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
id: 'atlassian',
|
|
120
|
+
name: 'Atlassian (Jira/Confluence)',
|
|
121
|
+
category: 'Productivity',
|
|
122
|
+
transport: 'sse',
|
|
123
|
+
url: 'https://mcp.atlassian.com/v1/sse',
|
|
124
|
+
authType: 'oauth',
|
|
125
|
+
blurb: 'Jira tickets and Confluence wiki.',
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: 'stripe',
|
|
129
|
+
name: 'Stripe',
|
|
130
|
+
category: 'Business',
|
|
131
|
+
transport: 'http',
|
|
132
|
+
url: 'https://mcp.stripe.com',
|
|
133
|
+
authType: 'oauth',
|
|
134
|
+
blurb: 'Payments and billing.',
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
id: 'cloudflare',
|
|
138
|
+
name: 'Cloudflare',
|
|
139
|
+
category: 'Dev',
|
|
140
|
+
transport: 'sse',
|
|
141
|
+
url: 'https://docs.mcp.cloudflare.com/sse',
|
|
142
|
+
authType: 'oauth',
|
|
143
|
+
blurb: 'Cloudflare docs / Workers / R2.',
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
id: 'vercel',
|
|
147
|
+
name: 'Vercel',
|
|
148
|
+
category: 'Dev',
|
|
149
|
+
transport: 'http',
|
|
150
|
+
url: 'https://mcp.vercel.com',
|
|
151
|
+
authType: 'oauth',
|
|
152
|
+
blurb: 'Deployments and projects.',
|
|
153
|
+
},
|
|
154
|
+
// ── Local + API key ────────────────────────────────────────────────────
|
|
155
|
+
{
|
|
156
|
+
id: 'context7',
|
|
157
|
+
name: 'Context7',
|
|
158
|
+
category: 'Dev',
|
|
159
|
+
transport: 'stdio',
|
|
160
|
+
command: 'npx',
|
|
161
|
+
args: ['-y', '@upstash/context7-mcp'],
|
|
162
|
+
env: ['CONTEXT7_API_KEY'],
|
|
163
|
+
authType: 'apiKey',
|
|
164
|
+
blurb: 'Live, version-specific library documentation (most-installed server).',
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
id: 'exa',
|
|
168
|
+
name: 'Exa',
|
|
169
|
+
category: 'Search',
|
|
170
|
+
transport: 'stdio',
|
|
171
|
+
command: 'npx',
|
|
172
|
+
args: ['-y', 'exa-mcp-server'],
|
|
173
|
+
env: ['EXA_API_KEY'],
|
|
174
|
+
authType: 'apiKey',
|
|
175
|
+
blurb: 'AI-optimized web search.',
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
id: 'firecrawl',
|
|
179
|
+
name: 'Firecrawl',
|
|
180
|
+
category: 'Web',
|
|
181
|
+
transport: 'stdio',
|
|
182
|
+
command: 'npx',
|
|
183
|
+
args: ['-y', 'firecrawl-mcp'],
|
|
184
|
+
env: ['FIRECRAWL_API_KEY'],
|
|
185
|
+
authType: 'apiKey',
|
|
186
|
+
blurb: 'Scrape, crawl, and extract from websites.',
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
id: 'brave-search',
|
|
190
|
+
name: 'Brave Search',
|
|
191
|
+
category: 'Search',
|
|
192
|
+
transport: 'stdio',
|
|
193
|
+
command: 'npx',
|
|
194
|
+
args: ['-y', '@brave/brave-search-mcp-server'],
|
|
195
|
+
env: ['BRAVE_API_KEY'],
|
|
196
|
+
authType: 'apiKey',
|
|
197
|
+
blurb: 'Web and local search via Brave.',
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
id: 'supabase',
|
|
201
|
+
name: 'Supabase',
|
|
202
|
+
category: 'Dev',
|
|
203
|
+
transport: 'stdio',
|
|
204
|
+
command: 'npx',
|
|
205
|
+
args: ['-y', '@supabase/mcp-server-supabase'],
|
|
206
|
+
env: ['SUPABASE_ACCESS_TOKEN'],
|
|
207
|
+
authType: 'apiKey',
|
|
208
|
+
blurb: 'Postgres, auth, and storage.',
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
id: 'slack',
|
|
212
|
+
name: 'Slack',
|
|
213
|
+
category: 'Communication',
|
|
214
|
+
transport: 'stdio',
|
|
215
|
+
command: 'npx',
|
|
216
|
+
args: ['-y', '@modelcontextprotocol/server-slack'],
|
|
217
|
+
env: ['SLACK_BOT_TOKEN', 'SLACK_TEAM_ID'],
|
|
218
|
+
authType: 'apiKey',
|
|
219
|
+
blurb: 'Channels and messaging.',
|
|
220
|
+
},
|
|
221
|
+
// ── Google Workspace — in-place Google Docs edits + Gmail/Drive/Calendar ─
|
|
222
|
+
{
|
|
223
|
+
id: 'google-workspace',
|
|
224
|
+
name: 'Google Workspace',
|
|
225
|
+
category: 'Productivity',
|
|
226
|
+
transport: 'stdio',
|
|
227
|
+
command: 'uvx',
|
|
228
|
+
args: ['workspace-mcp'],
|
|
229
|
+
authType: 'oauth',
|
|
230
|
+
blurb: 'Google Docs (in-place edits), Gmail, Drive, Calendar, and Sheets.',
|
|
231
|
+
},
|
|
232
|
+
];
|
|
233
|
+
//# sourceMappingURL=mcp-catalog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-catalog.js","sourceRoot":"","sources":["../../src/native/mcp-catalog.ts"],"names":[],"mappings":"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"}
|
package/dist/native/wrapper.d.ts
CHANGED
|
@@ -81,6 +81,7 @@ export declare const native: {
|
|
|
81
81
|
sandbox: import("./facades/sandbox.js").SandboxFacade;
|
|
82
82
|
browser: import("./facades/browser.js").BrowserFacade;
|
|
83
83
|
browse: import("./facades/browse.js").BrowseFacade;
|
|
84
|
+
mcp: import("./facades/mcp.js").McpFacade;
|
|
84
85
|
secrets: {
|
|
85
86
|
get: (key: string) => Promise<string | null>;
|
|
86
87
|
set: (key: string, value: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/native/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,MAAM,EAAE,SAAS,EAAY,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../src/native/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAW,MAAM,EAAE,SAAS,EAAY,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAcpD,eAAO,MAAM,WAAW,8CAAgF,CAAC;AAezG,eAAO,MAAM,MAAM;;;;;;mBAMJ,SAAS,CAAC,WAAW,CAAC;;yBAEhB,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,KAAK,IAAI;;;0BAGlC,SAAS,CAAC,2BAA2B,CAAC;2BACrC,SAAS,CAAC,4BAA4B,CAAC;;yBAEzC,SAAS,CAAC,0BAA0B,CAAC;0BACpC,SAAS,CAAC,2BAA2B,CAAC;;;;sBAI1C,SAAS,CAAC,gBAAgB,CAAC;oBAC7B,SAAS,CAAC,cAAc,CAAC;uBACtB,SAAS,CAAC,iBAAiB,CAAC;sBAC7B,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,IAAI;;;mBAGrC,SAAS,CAAC,WAAW,CAAC;;;;sBAInB,CAAC,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI;;;;;;sBAIhC,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,KAAK,IAAI;kCACrB,CAAC,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC,KAAK,IAAI;;;mBAI5D,SAAS,CAAC,iBAAiB,CAAC;;;;;;0BAIrB,SAAS,CAAC,qBAAqB,CAAC;mBACvC,SAAS,CAAC,cAAc,CAAC;;;iBAG3B,SAAS,CAAC,WAAW,CAAC;;;;+BAIR,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,KAAK,IAAI;+BACtC,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,KAAK,IAAI;;;yBAGtC,MAAM;0BAIL,MAAM,WAAW,MAAM;sBAI3B,MAAM;mBAIT,MAAM,SAAQ;YAAE,SAAS,CAAC,EAAE,OAAO,CAAC;YAAC,KAAK,CAAC,EAAE,OAAO,CAAA;SAAE;uBAIlD,MAAM,MAAM,MAAM;wBAIjB,MAAM;qBAIT,MAAM;uBAIJ,MAAM;yBAIJ,MAAM;QAI7B;+EACuE;6BAC9C,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;8BACnB,MAAM,KAAG,OAAO,CAAC,UAAU,CAAC;+BAI3B,MAAM,SAAS,UAAU,KAAG,OAAO,CAAC,IAAI,CAAC;;;;;;;;;mBA6BrD,MAAM;mBAIN,MAAM,SAAS,MAAM;sBAIlB,MAAM;;;;sBAUN,MAAM;;;;qBAIP,MAAM;;;yBAMF,MAAM;yBAIN,MAAM;;;CAShC,CAAC;AAEF,wBAAgB,cAAc,IAAI,cAAc,CAE/C;AACD,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C"}
|
package/dist/native/wrapper.js
CHANGED
|
@@ -5,6 +5,7 @@ import { createNetFacade } from './facades/net.js';
|
|
|
5
5
|
import { createSandboxFacade } from './facades/sandbox.js';
|
|
6
6
|
import { createBrowserFacade } from './facades/browser.js';
|
|
7
7
|
import { createBrowseFacade } from './facades/browse.js';
|
|
8
|
+
import { createMcpFacade } from './facades/mcp.js';
|
|
8
9
|
const n = () => installUglyNative();
|
|
9
10
|
const inv = (c, p) => n().invoke(c, p);
|
|
10
11
|
export const permissions = createPermissions((c, p) => n().invoke(c, p), n().platform);
|
|
@@ -128,6 +129,7 @@ export const native = {
|
|
|
128
129
|
sandbox: createSandboxFacade((ch, p) => n().invoke(ch, p)),
|
|
129
130
|
browser: createBrowserFacade((ch, p) => n().invoke(ch, p), (ev, cb) => n().subscribe(ev, cb)),
|
|
130
131
|
browse: createBrowseFacade((ch, p) => n().invoke(ch, p), () => permissions.ensure('browse')),
|
|
132
|
+
mcp: createMcpFacade((ch, p) => n().invoke(ch, p), () => permissions.ensure('mcp')),
|
|
131
133
|
secrets: {
|
|
132
134
|
get: async (key) => {
|
|
133
135
|
await permissions.ensure('secrets');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/native/wrapper.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../src/native/wrapper.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ugly-app",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.667",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"comment:files": "Allowlist what ships to npm. dist = runtime; src = sourcemap targets (dist/*.js.map reference ../../src/); templates = CLI scaffold. Everything else at repo root (.pgdata local Postgres, coverage, assets/icons sources, test/, test-results/) is excluded by omission. The !negations strip the scaffold's installed deps + cruft (templates/node_modules is 200MB+ and must never ship). package.json/README/LICENSE ship automatically.",
|
|
6
6
|
"files": [
|
package/src/cli/version.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Auto-generated by prebuild — do not edit manually
|
|
2
|
-
export const CLI_VERSION = "0.1.
|
|
2
|
+
export const CLI_VERSION = "0.1.667";
|
|
@@ -25,6 +25,7 @@ export const NAMESPACES: Namespace[] = [
|
|
|
25
25
|
'permissions',
|
|
26
26
|
'browser',
|
|
27
27
|
'browse',
|
|
28
|
+
'mcp',
|
|
28
29
|
];
|
|
29
30
|
|
|
30
31
|
// Per-namespace fallback profile when no explicit channel override applies.
|
|
@@ -50,6 +51,7 @@ const NS_DEFAULT: Record<Namespace, [Fallback, Fallback, Fallback, Fallback]> =
|
|
|
50
51
|
permissions: ['native', 'native', 'native', 'native'],
|
|
51
52
|
browser: ['throw', 'throw', 'native', 'throw'],
|
|
52
53
|
browse: ['throw', 'throw', 'native', 'throw'], // desktop-only (Ugly Browser)
|
|
54
|
+
mcp: ['throw', 'throw', 'native', 'throw'], // desktop-only (Studio MCP registry)
|
|
53
55
|
};
|
|
54
56
|
|
|
55
57
|
const PLATFORM_INDEX: Record<Platform, 0 | 1 | 2 | 3> = { ios: 0, android: 1, desktop: 2, web: 3 };
|
|
@@ -112,6 +114,15 @@ const CHANNELS: Channel[] = [
|
|
|
112
114
|
'net.write',
|
|
113
115
|
'net.end',
|
|
114
116
|
'net.close',
|
|
117
|
+
'mcp.listServers',
|
|
118
|
+
'mcp.addServer',
|
|
119
|
+
'mcp.removeServer',
|
|
120
|
+
'mcp.updateServer',
|
|
121
|
+
'mcp.auth',
|
|
122
|
+
'mcp.listTools',
|
|
123
|
+
'mcp.call',
|
|
124
|
+
'mcp.catalog',
|
|
125
|
+
'mcp.openSettings',
|
|
115
126
|
];
|
|
116
127
|
|
|
117
128
|
function buildChannelFallback(): Record<Channel, Record<Platform, Fallback>> {
|
package/src/native/contract.ts
CHANGED
|
@@ -112,6 +112,72 @@ export interface BrowseOpenOptions {
|
|
|
112
112
|
waitMs?: number;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
+
// ── mcp (Model Context Protocol — Studio-owned registry + local execution) ───
|
|
116
|
+
// MCP lives in Ugly Studio (the host owns server configs, connections, and OAuth
|
|
117
|
+
// tokens) and is exposed to hosted apps over UglyNative. Apps never hold creds
|
|
118
|
+
// or speak the MCP wire protocol — they call `native.mcp.*`. Desktop-only.
|
|
119
|
+
export type McpTransport = 'stdio' | 'http' | 'sse';
|
|
120
|
+
/** A server definition — the standard Claude Desktop / Cursor / mcporter shape. */
|
|
121
|
+
export interface McpServerConfig {
|
|
122
|
+
name: string;
|
|
123
|
+
transport: McpTransport;
|
|
124
|
+
/** stdio transport: */
|
|
125
|
+
command?: string;
|
|
126
|
+
args?: string[];
|
|
127
|
+
env?: Record<string, string>;
|
|
128
|
+
cwd?: string;
|
|
129
|
+
/** http/sse transport: */
|
|
130
|
+
url?: string;
|
|
131
|
+
headers?: Record<string, string>;
|
|
132
|
+
}
|
|
133
|
+
export type McpAuthState = 'none' | 'required' | 'authorized' | 'error';
|
|
134
|
+
export type McpServerStatus = 'connected' | 'disconnected' | 'unauthorized' | 'error';
|
|
135
|
+
export interface McpServerInfo {
|
|
136
|
+
name: string;
|
|
137
|
+
transport: McpTransport;
|
|
138
|
+
status: McpServerStatus;
|
|
139
|
+
authState: McpAuthState;
|
|
140
|
+
toolCount?: number;
|
|
141
|
+
error?: string;
|
|
142
|
+
}
|
|
143
|
+
export interface McpToolInfo {
|
|
144
|
+
name: string;
|
|
145
|
+
description?: string;
|
|
146
|
+
/** JSON-schema for the tool's arguments (as the server advertises it). */
|
|
147
|
+
inputSchema?: unknown;
|
|
148
|
+
}
|
|
149
|
+
export interface McpCallContentPart {
|
|
150
|
+
type: 'text' | 'image' | 'json' | 'resource';
|
|
151
|
+
text?: string;
|
|
152
|
+
/** base64 payload for image/resource parts. */
|
|
153
|
+
data?: string;
|
|
154
|
+
mimeType?: string;
|
|
155
|
+
}
|
|
156
|
+
export interface McpCallResult {
|
|
157
|
+
ok: boolean;
|
|
158
|
+
content: McpCallContentPart[];
|
|
159
|
+
/** The MCP server flagged the result as an error (tool-level failure). */
|
|
160
|
+
isError?: boolean;
|
|
161
|
+
/** Transport/connection error (couldn't reach the server / not authorized). */
|
|
162
|
+
error?: string;
|
|
163
|
+
}
|
|
164
|
+
/** One curated quick-add entry shown in the Studio MCP settings panel. */
|
|
165
|
+
export interface McpCatalogEntry {
|
|
166
|
+
id: string;
|
|
167
|
+
name: string;
|
|
168
|
+
category: string;
|
|
169
|
+
transport: McpTransport;
|
|
170
|
+
/** stdio quick-add: */
|
|
171
|
+
command?: string;
|
|
172
|
+
args?: string[];
|
|
173
|
+
/** http/sse quick-add: */
|
|
174
|
+
url?: string;
|
|
175
|
+
/** Names of env vars / secrets to prompt for (e.g. ['EXA_API_KEY']). */
|
|
176
|
+
env?: string[];
|
|
177
|
+
authType: 'none' | 'apiKey' | 'oauth';
|
|
178
|
+
blurb: string;
|
|
179
|
+
}
|
|
180
|
+
|
|
115
181
|
// ── Request/response channels (via invoke) ───────────────────────────────────
|
|
116
182
|
export interface NativeContract {
|
|
117
183
|
channels: {
|
|
@@ -218,6 +284,20 @@ export interface NativeContract {
|
|
|
218
284
|
'browse.screenshot': { payload: { id: string }; result: string };
|
|
219
285
|
'browse.info': { payload: { id: string }; result: BrowseSession };
|
|
220
286
|
'browse.close': { payload: { id: string }; result: void };
|
|
287
|
+
// mcp (Studio-owned MCP registry; calls execute locally in the host)
|
|
288
|
+
'mcp.listServers': { payload: void; result: { servers: McpServerInfo[] } };
|
|
289
|
+
'mcp.addServer': { payload: { config: McpServerConfig }; result: { ok: boolean; error?: string } };
|
|
290
|
+
'mcp.removeServer': { payload: { name: string }; result: void };
|
|
291
|
+
'mcp.updateServer': { payload: { name: string; config: McpServerConfig }; result: { ok: boolean; error?: string } };
|
|
292
|
+
// Start the OAuth handshake for a server — the host drives the consent
|
|
293
|
+
// redirect in the Studio browser and resolves when done.
|
|
294
|
+
'mcp.auth': { payload: { name: string; reset?: boolean }; result: { ok: boolean; authorizationUrl?: string; error?: string } };
|
|
295
|
+
'mcp.listTools': { payload: { server: string }; result: { tools: McpToolInfo[] } };
|
|
296
|
+
'mcp.call': { payload: { server: string; tool: string; args?: Record<string, unknown> }; result: McpCallResult };
|
|
297
|
+
// The curated quick-add catalog (surfaced to apps + the settings UI).
|
|
298
|
+
'mcp.catalog': { payload: void; result: { entries: McpCatalogEntry[] } };
|
|
299
|
+
// Deep-link the user to the Studio MCP settings panel.
|
|
300
|
+
'mcp.openSettings': { payload: void; result: void };
|
|
221
301
|
};
|
|
222
302
|
events: {
|
|
223
303
|
'gps.position': {
|
|
@@ -266,7 +346,8 @@ export type Namespace =
|
|
|
266
346
|
| 'sandbox'
|
|
267
347
|
| 'permissions'
|
|
268
348
|
| 'browser'
|
|
269
|
-
| 'browse'
|
|
349
|
+
| 'browse'
|
|
350
|
+
| 'mcp';
|
|
270
351
|
|
|
271
352
|
export function namespaceOf(channel: Channel): Namespace {
|
|
272
353
|
return channel.split('.')[0] as Namespace;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
McpServerConfig,
|
|
3
|
+
McpServerInfo,
|
|
4
|
+
McpToolInfo,
|
|
5
|
+
McpCallResult,
|
|
6
|
+
McpCatalogEntry,
|
|
7
|
+
} from '../contract.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* `mcp.*` — Model Context Protocol, owned by Ugly Studio and exposed to hosted
|
|
11
|
+
* apps over UglyNative. The HOST holds server configs, connections, and OAuth
|
|
12
|
+
* tokens, and executes tool calls LOCALLY; apps only consume this facade. This
|
|
13
|
+
* is how a hosted app reaches Google Docs / Notion / Linear / any MCP server
|
|
14
|
+
* without holding credentials or speaking the wire protocol itself.
|
|
15
|
+
*
|
|
16
|
+
* Gated by the `mcp` permission (the host re-enforces the grant). Desktop-only;
|
|
17
|
+
* other platforms reject. Registration UI + OAuth consent live in Studio — apps
|
|
18
|
+
* can deep-link there via `openSettings()`.
|
|
19
|
+
*/
|
|
20
|
+
export interface McpFacade {
|
|
21
|
+
/** Registered servers + live status (one shared registry across all apps). */
|
|
22
|
+
listServers(): Promise<McpServerInfo[]>;
|
|
23
|
+
/** Register a server. Returns ok=false + error if the definition is rejected. */
|
|
24
|
+
addServer(config: McpServerConfig): Promise<{ ok: boolean; error?: string }>;
|
|
25
|
+
removeServer(name: string): Promise<void>;
|
|
26
|
+
updateServer(name: string, config: McpServerConfig): Promise<{ ok: boolean; error?: string }>;
|
|
27
|
+
/**
|
|
28
|
+
* Start the OAuth handshake for a server. Studio drives the consent redirect
|
|
29
|
+
* in its own browser and resolves when complete; `authorizationUrl` is set
|
|
30
|
+
* only when the host couldn't open a browser (headless fallback).
|
|
31
|
+
*/
|
|
32
|
+
auth(name: string, opts?: { reset?: boolean }): Promise<{ ok: boolean; authorizationUrl?: string; error?: string }>;
|
|
33
|
+
/** The tools a server advertises (with their JSON-schemas). */
|
|
34
|
+
listTools(server: string): Promise<McpToolInfo[]>;
|
|
35
|
+
/** Call a tool on a server and get its result (executed locally by the host). */
|
|
36
|
+
call(server: string, tool: string, args?: Record<string, unknown>): Promise<McpCallResult>;
|
|
37
|
+
/** The curated quick-add catalog Studio ships (popular servers). */
|
|
38
|
+
catalog(): Promise<McpCatalogEntry[]>;
|
|
39
|
+
/** Open the Studio MCP settings panel (where users add/auth servers). */
|
|
40
|
+
openSettings(): Promise<void>;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
type Invoke = (channel: string, payload: unknown) => Promise<unknown>;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Build the `mcp` facade over the uniform UglyNative protocol. `ensure` is the
|
|
47
|
+
* permission gate (fired before each call; the host re-enforces it).
|
|
48
|
+
*/
|
|
49
|
+
export function createMcpFacade(invoke: Invoke, ensure: () => Promise<void>): McpFacade {
|
|
50
|
+
const inv = async <T>(ch: string, p?: unknown): Promise<T> => {
|
|
51
|
+
await ensure();
|
|
52
|
+
return invoke(ch, p) as Promise<T>;
|
|
53
|
+
};
|
|
54
|
+
return {
|
|
55
|
+
listServers: async () => (await inv<{ servers: McpServerInfo[] }>('mcp.listServers')).servers,
|
|
56
|
+
addServer: (config) => inv<{ ok: boolean; error?: string }>('mcp.addServer', { config }),
|
|
57
|
+
removeServer: (name) => inv<void>('mcp.removeServer', { name }),
|
|
58
|
+
updateServer: (name, config) => inv<{ ok: boolean; error?: string }>('mcp.updateServer', { name, config }),
|
|
59
|
+
auth: (name, opts) => inv<{ ok: boolean; authorizationUrl?: string; error?: string }>('mcp.auth', { name, ...opts }),
|
|
60
|
+
listTools: async (server) => (await inv<{ tools: McpToolInfo[] }>('mcp.listTools', { server })).tools,
|
|
61
|
+
call: (server, tool, args) => inv<McpCallResult>('mcp.call', { server, tool, args }),
|
|
62
|
+
catalog: async () => (await inv<{ entries: McpCatalogEntry[] }>('mcp.catalog')).entries,
|
|
63
|
+
openSettings: () => inv<void>('mcp.openSettings'),
|
|
64
|
+
};
|
|
65
|
+
}
|
package/src/native/index.ts
CHANGED
|
@@ -22,6 +22,15 @@ export type {
|
|
|
22
22
|
PageLink,
|
|
23
23
|
BrowseSession,
|
|
24
24
|
BrowseOpenOptions,
|
|
25
|
+
McpTransport,
|
|
26
|
+
McpServerConfig,
|
|
27
|
+
McpAuthState,
|
|
28
|
+
McpServerStatus,
|
|
29
|
+
McpServerInfo,
|
|
30
|
+
McpToolInfo,
|
|
31
|
+
McpCallContentPart,
|
|
32
|
+
McpCallResult,
|
|
33
|
+
McpCatalogEntry,
|
|
25
34
|
} from './contract.js';
|
|
26
35
|
export { namespaceOf } from './contract.js';
|
|
27
36
|
export type { Platform, Fallback } from './contract-meta.js';
|
|
@@ -36,3 +45,5 @@ export type { UglySocket, UglyServer } from './facades/net.js';
|
|
|
36
45
|
export type { SandboxFacade } from './facades/sandbox.js';
|
|
37
46
|
export type { BrowserFacade, BrowserTab } from './facades/browser.js';
|
|
38
47
|
export type { BrowseFacade } from './facades/browse.js';
|
|
48
|
+
export type { McpFacade } from './facades/mcp.js';
|
|
49
|
+
export { MCP_CATALOG } from './mcp-catalog.js';
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import type { McpCatalogEntry } from './contract.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Curated quick-add catalog of popular MCP servers, shipped so the Studio MCP
|
|
5
|
+
* settings panel can offer one-click setup (and apps/agents can suggest from
|
|
6
|
+
* it). Package names/versions verified live (npm/pypi, Jun 2026); remote OAuth
|
|
7
|
+
* URLs are the vendors' standard endpoints — re-verify periodically. The long
|
|
8
|
+
* tail lives in registries; this is the top ~20. Studio returns this via the
|
|
9
|
+
* `mcp.catalog` channel.
|
|
10
|
+
*/
|
|
11
|
+
export const MCP_CATALOG: McpCatalogEntry[] = [
|
|
12
|
+
// ── Zero-config (no key, local stdio) ──────────────────────────────────
|
|
13
|
+
{
|
|
14
|
+
id: 'filesystem',
|
|
15
|
+
name: 'Filesystem',
|
|
16
|
+
category: 'Files',
|
|
17
|
+
transport: 'stdio',
|
|
18
|
+
command: 'npx',
|
|
19
|
+
args: ['-y', '@modelcontextprotocol/server-filesystem'],
|
|
20
|
+
authType: 'none',
|
|
21
|
+
blurb: 'Scoped local file access (pass an allowed directory as an argument).',
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: 'git',
|
|
25
|
+
name: 'Git',
|
|
26
|
+
category: 'Dev',
|
|
27
|
+
transport: 'stdio',
|
|
28
|
+
command: 'uvx',
|
|
29
|
+
args: ['mcp-server-git'],
|
|
30
|
+
authType: 'none',
|
|
31
|
+
blurb: 'Read, search, and manipulate Git repositories.',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
id: 'fetch',
|
|
35
|
+
name: 'Fetch',
|
|
36
|
+
category: 'Web',
|
|
37
|
+
transport: 'stdio',
|
|
38
|
+
command: 'uvx',
|
|
39
|
+
args: ['mcp-server-fetch'],
|
|
40
|
+
authType: 'none',
|
|
41
|
+
blurb: 'Fetch a URL and convert it to clean text for the model.',
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
id: 'memory',
|
|
45
|
+
name: 'Memory',
|
|
46
|
+
category: 'Memory',
|
|
47
|
+
transport: 'stdio',
|
|
48
|
+
command: 'npx',
|
|
49
|
+
args: ['-y', '@modelcontextprotocol/server-memory'],
|
|
50
|
+
authType: 'none',
|
|
51
|
+
blurb: 'Knowledge-graph persistent memory.',
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: 'sequential-thinking',
|
|
55
|
+
name: 'Sequential Thinking',
|
|
56
|
+
category: 'Reasoning',
|
|
57
|
+
transport: 'stdio',
|
|
58
|
+
command: 'npx',
|
|
59
|
+
args: ['-y', '@modelcontextprotocol/server-sequential-thinking'],
|
|
60
|
+
authType: 'none',
|
|
61
|
+
blurb: 'Structured step-by-step reasoning scratchpad.',
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: 'time',
|
|
65
|
+
name: 'Time',
|
|
66
|
+
category: 'Utility',
|
|
67
|
+
transport: 'stdio',
|
|
68
|
+
command: 'uvx',
|
|
69
|
+
args: ['mcp-server-time'],
|
|
70
|
+
authType: 'none',
|
|
71
|
+
blurb: 'Current time and timezone conversion.',
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: 'playwright',
|
|
75
|
+
name: 'Playwright',
|
|
76
|
+
category: 'Web',
|
|
77
|
+
transport: 'stdio',
|
|
78
|
+
command: 'npx',
|
|
79
|
+
args: ['-y', '@playwright/mcp@latest'],
|
|
80
|
+
authType: 'none',
|
|
81
|
+
blurb: "Microsoft's browser automation server.",
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
// ── One-click remote (OAuth in the Studio browser) ─────────────────────
|
|
85
|
+
{
|
|
86
|
+
id: 'github',
|
|
87
|
+
name: 'GitHub',
|
|
88
|
+
category: 'Dev',
|
|
89
|
+
transport: 'http',
|
|
90
|
+
url: 'https://api.githubcopilot.com/mcp/',
|
|
91
|
+
authType: 'oauth',
|
|
92
|
+
blurb: 'Repos, issues, PRs, and Actions (official).',
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
id: 'notion',
|
|
96
|
+
name: 'Notion',
|
|
97
|
+
category: 'Productivity',
|
|
98
|
+
transport: 'http',
|
|
99
|
+
url: 'https://mcp.notion.com/mcp',
|
|
100
|
+
authType: 'oauth',
|
|
101
|
+
blurb: 'Read/write Notion docs and databases.',
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: 'linear',
|
|
105
|
+
name: 'Linear',
|
|
106
|
+
category: 'Productivity',
|
|
107
|
+
transport: 'sse',
|
|
108
|
+
url: 'https://mcp.linear.app/sse',
|
|
109
|
+
authType: 'oauth',
|
|
110
|
+
blurb: 'Issues and projects.',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
id: 'sentry',
|
|
114
|
+
name: 'Sentry',
|
|
115
|
+
category: 'Dev',
|
|
116
|
+
transport: 'http',
|
|
117
|
+
url: 'https://mcp.sentry.dev/mcp',
|
|
118
|
+
authType: 'oauth',
|
|
119
|
+
blurb: 'Triage and analyze errors.',
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
id: 'atlassian',
|
|
123
|
+
name: 'Atlassian (Jira/Confluence)',
|
|
124
|
+
category: 'Productivity',
|
|
125
|
+
transport: 'sse',
|
|
126
|
+
url: 'https://mcp.atlassian.com/v1/sse',
|
|
127
|
+
authType: 'oauth',
|
|
128
|
+
blurb: 'Jira tickets and Confluence wiki.',
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
id: 'stripe',
|
|
132
|
+
name: 'Stripe',
|
|
133
|
+
category: 'Business',
|
|
134
|
+
transport: 'http',
|
|
135
|
+
url: 'https://mcp.stripe.com',
|
|
136
|
+
authType: 'oauth',
|
|
137
|
+
blurb: 'Payments and billing.',
|
|
138
|
+
},
|
|
139
|
+
{
|
|
140
|
+
id: 'cloudflare',
|
|
141
|
+
name: 'Cloudflare',
|
|
142
|
+
category: 'Dev',
|
|
143
|
+
transport: 'sse',
|
|
144
|
+
url: 'https://docs.mcp.cloudflare.com/sse',
|
|
145
|
+
authType: 'oauth',
|
|
146
|
+
blurb: 'Cloudflare docs / Workers / R2.',
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
id: 'vercel',
|
|
150
|
+
name: 'Vercel',
|
|
151
|
+
category: 'Dev',
|
|
152
|
+
transport: 'http',
|
|
153
|
+
url: 'https://mcp.vercel.com',
|
|
154
|
+
authType: 'oauth',
|
|
155
|
+
blurb: 'Deployments and projects.',
|
|
156
|
+
},
|
|
157
|
+
|
|
158
|
+
// ── Local + API key ────────────────────────────────────────────────────
|
|
159
|
+
{
|
|
160
|
+
id: 'context7',
|
|
161
|
+
name: 'Context7',
|
|
162
|
+
category: 'Dev',
|
|
163
|
+
transport: 'stdio',
|
|
164
|
+
command: 'npx',
|
|
165
|
+
args: ['-y', '@upstash/context7-mcp'],
|
|
166
|
+
env: ['CONTEXT7_API_KEY'],
|
|
167
|
+
authType: 'apiKey',
|
|
168
|
+
blurb: 'Live, version-specific library documentation (most-installed server).',
|
|
169
|
+
},
|
|
170
|
+
{
|
|
171
|
+
id: 'exa',
|
|
172
|
+
name: 'Exa',
|
|
173
|
+
category: 'Search',
|
|
174
|
+
transport: 'stdio',
|
|
175
|
+
command: 'npx',
|
|
176
|
+
args: ['-y', 'exa-mcp-server'],
|
|
177
|
+
env: ['EXA_API_KEY'],
|
|
178
|
+
authType: 'apiKey',
|
|
179
|
+
blurb: 'AI-optimized web search.',
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
id: 'firecrawl',
|
|
183
|
+
name: 'Firecrawl',
|
|
184
|
+
category: 'Web',
|
|
185
|
+
transport: 'stdio',
|
|
186
|
+
command: 'npx',
|
|
187
|
+
args: ['-y', 'firecrawl-mcp'],
|
|
188
|
+
env: ['FIRECRAWL_API_KEY'],
|
|
189
|
+
authType: 'apiKey',
|
|
190
|
+
blurb: 'Scrape, crawl, and extract from websites.',
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
id: 'brave-search',
|
|
194
|
+
name: 'Brave Search',
|
|
195
|
+
category: 'Search',
|
|
196
|
+
transport: 'stdio',
|
|
197
|
+
command: 'npx',
|
|
198
|
+
args: ['-y', '@brave/brave-search-mcp-server'],
|
|
199
|
+
env: ['BRAVE_API_KEY'],
|
|
200
|
+
authType: 'apiKey',
|
|
201
|
+
blurb: 'Web and local search via Brave.',
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
id: 'supabase',
|
|
205
|
+
name: 'Supabase',
|
|
206
|
+
category: 'Dev',
|
|
207
|
+
transport: 'stdio',
|
|
208
|
+
command: 'npx',
|
|
209
|
+
args: ['-y', '@supabase/mcp-server-supabase'],
|
|
210
|
+
env: ['SUPABASE_ACCESS_TOKEN'],
|
|
211
|
+
authType: 'apiKey',
|
|
212
|
+
blurb: 'Postgres, auth, and storage.',
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
id: 'slack',
|
|
216
|
+
name: 'Slack',
|
|
217
|
+
category: 'Communication',
|
|
218
|
+
transport: 'stdio',
|
|
219
|
+
command: 'npx',
|
|
220
|
+
args: ['-y', '@modelcontextprotocol/server-slack'],
|
|
221
|
+
env: ['SLACK_BOT_TOKEN', 'SLACK_TEAM_ID'],
|
|
222
|
+
authType: 'apiKey',
|
|
223
|
+
blurb: 'Channels and messaging.',
|
|
224
|
+
},
|
|
225
|
+
|
|
226
|
+
// ── Google Workspace — in-place Google Docs edits + Gmail/Drive/Calendar ─
|
|
227
|
+
{
|
|
228
|
+
id: 'google-workspace',
|
|
229
|
+
name: 'Google Workspace',
|
|
230
|
+
category: 'Productivity',
|
|
231
|
+
transport: 'stdio',
|
|
232
|
+
command: 'uvx',
|
|
233
|
+
args: ['workspace-mcp'],
|
|
234
|
+
authType: 'oauth',
|
|
235
|
+
blurb: 'Google Docs (in-place edits), Gmail, Drive, Calendar, and Sheets.',
|
|
236
|
+
},
|
|
237
|
+
];
|
package/src/native/wrapper.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { createNetFacade } from './facades/net.js';
|
|
|
7
7
|
import { createSandboxFacade } from './facades/sandbox.js';
|
|
8
8
|
import { createBrowserFacade } from './facades/browser.js';
|
|
9
9
|
import { createBrowseFacade } from './facades/browse.js';
|
|
10
|
+
import { createMcpFacade } from './facades/mcp.js';
|
|
10
11
|
|
|
11
12
|
const n = () => installUglyNative();
|
|
12
13
|
const inv = <C extends Channel>(c: C, p: PayloadOf<C>): Promise<ResultOf<C>> =>
|
|
@@ -148,6 +149,10 @@ export const native = {
|
|
|
148
149
|
(ch, p) => n().invoke(ch as never, p as never),
|
|
149
150
|
() => permissions.ensure('browse'),
|
|
150
151
|
),
|
|
152
|
+
mcp: createMcpFacade(
|
|
153
|
+
(ch, p) => n().invoke(ch as never, p as never),
|
|
154
|
+
() => permissions.ensure('mcp'),
|
|
155
|
+
),
|
|
151
156
|
secrets: {
|
|
152
157
|
get: async (key: string) => {
|
|
153
158
|
await permissions.ensure('secrets');
|