@opentabs-dev/mcp-server 0.0.63 → 0.0.64
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/browser-tools/extension-get-logs.d.ts +1 -1
- package/dist/browser-tools/get-console-logs.d.ts +1 -1
- package/dist/dev-proxy.js +19 -7
- package/dist/dev-proxy.js.map +1 -1
- package/dist/extension-handlers.d.ts +8 -2
- package/dist/extension-handlers.d.ts.map +1 -1
- package/dist/extension-handlers.js +46 -6
- package/dist/extension-handlers.js.map +1 -1
- package/dist/extension-protocol.d.ts.map +1 -1
- package/dist/extension-protocol.js +6 -1
- package/dist/extension-protocol.js.map +1 -1
- package/dist/http-routes.d.ts.map +1 -1
- package/dist/http-routes.js +56 -0
- package/dist/http-routes.js.map +1 -1
- package/dist/mcp-prompts.d.ts +44 -0
- package/dist/mcp-prompts.d.ts.map +1 -0
- package/dist/mcp-prompts.js +412 -0
- package/dist/mcp-prompts.js.map +1 -0
- package/dist/mcp-setup.d.ts +1 -0
- package/dist/mcp-setup.d.ts.map +1 -1
- package/dist/mcp-setup.js +100 -1
- package/dist/mcp-setup.js.map +1 -1
- package/dist/reload.d.ts.map +1 -1
- package/dist/reload.js +5 -2
- package/dist/reload.js.map +1 -1
- package/dist/state.d.ts +4 -0
- package/dist/state.d.ts.map +1 -1
- package/dist/state.js +9 -3
- package/dist/state.js.map +1 -1
- package/package.json +1 -1
package/dist/http-routes.js
CHANGED
|
@@ -17,6 +17,7 @@ import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
|
17
17
|
import { toErrorMessage } from '@opentabs-dev/shared';
|
|
18
18
|
import { savePluginPermissions } from './config.js';
|
|
19
19
|
import { isDev } from './dev-mode.js';
|
|
20
|
+
import { buildConfigStatePayload, sendToExtension } from './extension-handlers.js';
|
|
20
21
|
import { handleExtensionMessage, queryExtension, rejectAllPendingConfirmations, sendExtensionReload, sendSyncFull, } from './extension-protocol.js';
|
|
21
22
|
import { getLogCount } from './log-buffer.js';
|
|
22
23
|
import { log } from './logger.js';
|
|
@@ -440,6 +441,57 @@ const handleMcp = async (req, server, state, transports, sessionServers) => {
|
|
|
440
441
|
}
|
|
441
442
|
return new Response('Method not allowed', { status: 405 });
|
|
442
443
|
};
|
|
444
|
+
/** Dev-only: set outdated plugins for E2E testing (POST /__test/set-outdated) */
|
|
445
|
+
const handleTestSetOutdated = async (req, state) => {
|
|
446
|
+
if (!isDev())
|
|
447
|
+
return new Response('Not Found', { status: 404 });
|
|
448
|
+
const authError = checkBearerAuth(req, state.wsSecret);
|
|
449
|
+
if (authError)
|
|
450
|
+
return authError;
|
|
451
|
+
const body = (await req.json());
|
|
452
|
+
if (!Array.isArray(body.outdatedPlugins)) {
|
|
453
|
+
return Response.json({ ok: false, error: 'Missing outdatedPlugins array' }, { status: 400 });
|
|
454
|
+
}
|
|
455
|
+
state.outdatedPlugins = body.outdatedPlugins;
|
|
456
|
+
sendToExtension(state, {
|
|
457
|
+
jsonrpc: '2.0',
|
|
458
|
+
method: 'plugins.changed',
|
|
459
|
+
params: { ...buildConfigStatePayload(state) },
|
|
460
|
+
});
|
|
461
|
+
return Response.json({ ok: true });
|
|
462
|
+
};
|
|
463
|
+
/**
|
|
464
|
+
* Dev-only: simulate a successful plugin update for E2E testing.
|
|
465
|
+
* Mutates the plugin's version in the registry, clears the matching
|
|
466
|
+
* outdated entry, and sends a `plugins.changed` notification.
|
|
467
|
+
*
|
|
468
|
+
* POST /__test/simulate-update { pluginName: string, newVersion: string }
|
|
469
|
+
*/
|
|
470
|
+
const handleTestSimulateUpdate = async (req, state) => {
|
|
471
|
+
if (!isDev())
|
|
472
|
+
return new Response('Not Found', { status: 404 });
|
|
473
|
+
const authError = checkBearerAuth(req, state.wsSecret);
|
|
474
|
+
if (authError)
|
|
475
|
+
return authError;
|
|
476
|
+
const body = (await req.json());
|
|
477
|
+
if (typeof body.pluginName !== 'string' || typeof body.newVersion !== 'string') {
|
|
478
|
+
return Response.json({ ok: false, error: 'Missing pluginName or newVersion' }, { status: 400 });
|
|
479
|
+
}
|
|
480
|
+
const plugin = state.registry.plugins.get(body.pluginName);
|
|
481
|
+
if (!plugin) {
|
|
482
|
+
return Response.json({ ok: false, error: `Plugin "${body.pluginName}" not found` }, { status: 404 });
|
|
483
|
+
}
|
|
484
|
+
// Mutate the version directly (test-only — the registry is normally immutable)
|
|
485
|
+
plugin.version = body.newVersion;
|
|
486
|
+
// Remove the matching outdated entry by npm package name
|
|
487
|
+
state.outdatedPlugins = state.outdatedPlugins.filter(o => o.name !== plugin.npmPackageName);
|
|
488
|
+
sendToExtension(state, {
|
|
489
|
+
jsonrpc: '2.0',
|
|
490
|
+
method: 'plugins.changed',
|
|
491
|
+
params: { ...buildConfigStatePayload(state) },
|
|
492
|
+
});
|
|
493
|
+
return Response.json({ ok: true });
|
|
494
|
+
};
|
|
443
495
|
// --- Main router ---
|
|
444
496
|
const createHandleFetch = ({ state, transports, sessionServers, getHotState }) => async (req, server) => {
|
|
445
497
|
const url = new URL(req.url);
|
|
@@ -476,6 +528,10 @@ const createHandleFetch = ({ state, transports, sessionServers, getHotState }) =
|
|
|
476
528
|
return handleReload(req, state, sessionServers, transports);
|
|
477
529
|
if (url.pathname === '/extension/reload' && req.method === 'POST')
|
|
478
530
|
return handleExtensionReload(req, state);
|
|
531
|
+
if (url.pathname === '/__test/set-outdated' && req.method === 'POST')
|
|
532
|
+
return handleTestSetOutdated(req, state);
|
|
533
|
+
if (url.pathname === '/__test/simulate-update' && req.method === 'POST')
|
|
534
|
+
return handleTestSimulateUpdate(req, state);
|
|
479
535
|
if (url.pathname === '/mcp')
|
|
480
536
|
return handleMcp(req, server, state, transports, sessionServers);
|
|
481
537
|
return new Response('Not Found', { status: 404 });
|
package/dist/http-routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-routes.js","sourceRoot":"","sources":["../src/http-routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"http-routes.js","sourceRoot":"","sources":["../src/http-routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP prompt definitions for the OpenTabs server.
|
|
3
|
+
*
|
|
4
|
+
* Prompts are pre-built templates that help AI agents accomplish specific tasks.
|
|
5
|
+
* Unlike instructions (sent on every session), prompts are pull-based — clients
|
|
6
|
+
* fetch them on demand via `prompts/get` when the user invokes them.
|
|
7
|
+
*
|
|
8
|
+
* Current prompts:
|
|
9
|
+
* - `build_plugin`: Full workflow for building a new OpenTabs plugin
|
|
10
|
+
*/
|
|
11
|
+
/** A single prompt argument definition */
|
|
12
|
+
interface PromptArgument {
|
|
13
|
+
name: string;
|
|
14
|
+
description: string;
|
|
15
|
+
required?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/** A prompt definition for MCP prompts/list */
|
|
18
|
+
export interface PromptDefinition {
|
|
19
|
+
name: string;
|
|
20
|
+
description: string;
|
|
21
|
+
arguments: PromptArgument[];
|
|
22
|
+
}
|
|
23
|
+
/** A resolved prompt message for MCP prompts/get */
|
|
24
|
+
export interface PromptMessage {
|
|
25
|
+
role: 'user' | 'assistant';
|
|
26
|
+
content: {
|
|
27
|
+
type: 'text';
|
|
28
|
+
text: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** Result of resolving a prompt */
|
|
32
|
+
export interface PromptResult {
|
|
33
|
+
description: string;
|
|
34
|
+
messages: PromptMessage[];
|
|
35
|
+
}
|
|
36
|
+
/** All registered prompts */
|
|
37
|
+
export declare const PROMPTS: PromptDefinition[];
|
|
38
|
+
/**
|
|
39
|
+
* Resolve a prompt by name with the given arguments.
|
|
40
|
+
* Returns null if the prompt name is not recognized.
|
|
41
|
+
*/
|
|
42
|
+
export declare const resolvePrompt: (name: string, args: Record<string, string>) => PromptResult | null;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=mcp-prompts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-prompts.d.ts","sourceRoot":"","sources":["../src/mcp-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,0CAA0C;AAC1C,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAED,mCAAmC;AACnC,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,6BAA6B;AAC7B,eAAO,MAAM,OAAO,EAAE,gBAAgB,EAoBrC,CAAC;AAKF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,YAAY,GAAG,IASzF,CAAC"}
|
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP prompt definitions for the OpenTabs server.
|
|
3
|
+
*
|
|
4
|
+
* Prompts are pre-built templates that help AI agents accomplish specific tasks.
|
|
5
|
+
* Unlike instructions (sent on every session), prompts are pull-based — clients
|
|
6
|
+
* fetch them on demand via `prompts/get` when the user invokes them.
|
|
7
|
+
*
|
|
8
|
+
* Current prompts:
|
|
9
|
+
* - `build_plugin`: Full workflow for building a new OpenTabs plugin
|
|
10
|
+
*/
|
|
11
|
+
/** All registered prompts */
|
|
12
|
+
export const PROMPTS = [
|
|
13
|
+
{
|
|
14
|
+
name: 'build_plugin',
|
|
15
|
+
description: 'Step-by-step workflow for building a new OpenTabs plugin for a web application. ' +
|
|
16
|
+
'Covers site analysis, auth discovery, API mapping, scaffolding, implementation, and testing. ' +
|
|
17
|
+
'Use this when you want to create a plugin that gives AI agents access to a web app.',
|
|
18
|
+
arguments: [
|
|
19
|
+
{
|
|
20
|
+
name: 'url',
|
|
21
|
+
description: 'URL of the target web application (e.g., "https://app.example.com")',
|
|
22
|
+
required: true,
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
name: 'name',
|
|
26
|
+
description: 'Plugin name in kebab-case (e.g., "my-app"). Derived from the URL if omitted.',
|
|
27
|
+
required: false,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
},
|
|
31
|
+
];
|
|
32
|
+
/** Prompt name → definition for O(1) lookup */
|
|
33
|
+
const PROMPT_MAP = new Map(PROMPTS.map(p => [p.name, p]));
|
|
34
|
+
/**
|
|
35
|
+
* Resolve a prompt by name with the given arguments.
|
|
36
|
+
* Returns null if the prompt name is not recognized.
|
|
37
|
+
*/
|
|
38
|
+
export const resolvePrompt = (name, args) => {
|
|
39
|
+
const def = PROMPT_MAP.get(name);
|
|
40
|
+
if (!def)
|
|
41
|
+
return null;
|
|
42
|
+
if (name === 'build_plugin') {
|
|
43
|
+
return resolveBuildPlugin(args);
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
};
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
// build_plugin prompt
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
const resolveBuildPlugin = (args) => {
|
|
51
|
+
const url = args.url ?? 'https://example.com';
|
|
52
|
+
const name = args.name ?? '';
|
|
53
|
+
return {
|
|
54
|
+
description: `Build an OpenTabs plugin for ${url}`,
|
|
55
|
+
messages: [
|
|
56
|
+
{
|
|
57
|
+
role: 'user',
|
|
58
|
+
content: {
|
|
59
|
+
type: 'text',
|
|
60
|
+
text: buildPluginPromptText(url, name),
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
const buildPluginPromptText = (url, name) => {
|
|
67
|
+
const nameClause = name ? `The plugin name should be \`${name}\`.` : '';
|
|
68
|
+
return `Build a production-ready OpenTabs plugin for ${url}. ${nameClause}
|
|
69
|
+
|
|
70
|
+
Follow the complete workflow below. Each phase builds on the previous one — do not skip phases.
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## Prerequisites
|
|
75
|
+
|
|
76
|
+
- The user has the target web app open in a browser tab at ${url}
|
|
77
|
+
- The MCP server is running (you are connected to it)
|
|
78
|
+
- You have access to the filesystem for creating plugin source files
|
|
79
|
+
|
|
80
|
+
### Browser Tool Permissions
|
|
81
|
+
|
|
82
|
+
Plugin development requires heavy use of browser tools (\`browser_execute_script\`, \`browser_navigate_tab\`, \`browser_get_tab_content\`, etc.). By default, tools have permission \`'off'\` (disabled) or \`'ask'\` (requires human approval).
|
|
83
|
+
|
|
84
|
+
Ask the user if they want to enable \`skipPermissions\` to bypass approval prompts during development. Set the env var: \`OPENTABS_DANGEROUSLY_SKIP_PERMISSIONS=1\`. Warn them this bypasses human approval and should only be used during active plugin development.
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Phase 1: Research the Codebase
|
|
89
|
+
|
|
90
|
+
Before writing any code, study the existing plugin infrastructure using the filesystem:
|
|
91
|
+
|
|
92
|
+
1. **Study the Plugin SDK** — read \`platform/plugin-sdk/CLAUDE.md\` and key source files (\`src/index.ts\`, \`src/plugin.ts\`, \`src/tool.ts\`). Understand:
|
|
93
|
+
- \`OpenTabsPlugin\` abstract base class (name, displayName, description, urlPatterns, tools, isReady)
|
|
94
|
+
- \`defineTool({ name, displayName, description, icon, input, output, handle })\` factory
|
|
95
|
+
- \`ToolError\` static factories: \`.auth()\`, \`.notFound()\`, \`.rateLimited()\`, \`.timeout()\`, \`.validation()\`, \`.internal()\`
|
|
96
|
+
- SDK utilities: \`fetchJSON\`, \`postJSON\`, \`getLocalStorage\`, \`waitForSelector\`, \`retry\`, \`sleep\`, \`log\`
|
|
97
|
+
- All plugin code runs in the **browser page context** (not server-side)
|
|
98
|
+
|
|
99
|
+
2. **Study an existing plugin** (e.g., \`plugins/slack/\`) as the canonical reference:
|
|
100
|
+
- \`src/index.ts\` — plugin class, imports all tools
|
|
101
|
+
- \`src/slack-api.ts\` — API wrapper with auth extraction + error classification
|
|
102
|
+
- \`src/tools/\` — one file per tool, shared schemas
|
|
103
|
+
- \`package.json\` — the opentabs field, dependency versions, scripts
|
|
104
|
+
|
|
105
|
+
3. **Study \`plugins/CLAUDE.md\`** — plugin isolation rules and conventions
|
|
106
|
+
|
|
107
|
+
---
|
|
108
|
+
|
|
109
|
+
## Phase 2: Explore the Target Web App
|
|
110
|
+
|
|
111
|
+
This is the most critical phase. Use browser tools to understand how the web app works.
|
|
112
|
+
|
|
113
|
+
### Step 1: Find the Tab
|
|
114
|
+
|
|
115
|
+
\`\`\`
|
|
116
|
+
plugin_list_tabs or browser_list_tabs → find the tab for ${url}
|
|
117
|
+
\`\`\`
|
|
118
|
+
|
|
119
|
+
### Step 2: Analyze the Site
|
|
120
|
+
|
|
121
|
+
\`\`\`
|
|
122
|
+
plugin_analyze_site(url: "${url}")
|
|
123
|
+
\`\`\`
|
|
124
|
+
|
|
125
|
+
This gives you a comprehensive report: auth methods, API endpoints, framework detection, storage keys, and concrete tool suggestions.
|
|
126
|
+
|
|
127
|
+
### Step 3: Enable Network Capture and Explore
|
|
128
|
+
|
|
129
|
+
\`\`\`
|
|
130
|
+
browser_enable_network_capture(tabId, urlFilter: "/api")
|
|
131
|
+
\`\`\`
|
|
132
|
+
|
|
133
|
+
Navigate around in the app to trigger API calls, then read them:
|
|
134
|
+
|
|
135
|
+
\`\`\`
|
|
136
|
+
browser_get_network_requests(tabId)
|
|
137
|
+
\`\`\`
|
|
138
|
+
|
|
139
|
+
Study the captured traffic to understand:
|
|
140
|
+
- API base URL
|
|
141
|
+
- Whether the API is same-origin or cross-origin (critical for CORS)
|
|
142
|
+
- Request format (JSON body vs form-encoded)
|
|
143
|
+
- Required headers (content-type, custom headers)
|
|
144
|
+
- Response shapes for each endpoint
|
|
145
|
+
- Error response format
|
|
146
|
+
|
|
147
|
+
### Step 4: Check CORS Policy (for Cross-Origin APIs)
|
|
148
|
+
|
|
149
|
+
If the API is on a different subdomain, verify CORS behavior:
|
|
150
|
+
|
|
151
|
+
\`\`\`bash
|
|
152
|
+
curl -sI -X OPTIONS https://api.example.com/endpoint \\
|
|
153
|
+
-H "Origin: ${url}" \\
|
|
154
|
+
-H "Access-Control-Request-Method: GET" \\
|
|
155
|
+
-H "Access-Control-Request-Headers: Authorization,Content-Type" \\
|
|
156
|
+
| grep -i "access-control"
|
|
157
|
+
\`\`\`
|
|
158
|
+
|
|
159
|
+
### Step 5: Discover Auth Token
|
|
160
|
+
|
|
161
|
+
**First, always check cookies with \`browser_get_cookies\`** to understand the auth model. Then probe the page:
|
|
162
|
+
|
|
163
|
+
- **localStorage**: Direct access or iframe fallback if the app deletes \`window.localStorage\`
|
|
164
|
+
- **Page globals**: \`window.__APP_STATE__\`, \`window.boot_data\`, \`window.__NEXT_DATA__\`
|
|
165
|
+
- **Webpack module stores**: For React/webpack SPAs
|
|
166
|
+
- **Cookies**: \`document.cookie\` for non-HttpOnly tokens
|
|
167
|
+
- **Script tags**: Inline \`<script>\` tags with embedded config
|
|
168
|
+
|
|
169
|
+
### Step 6: Test the API
|
|
170
|
+
|
|
171
|
+
Once you have the token, make a test API call with \`browser_execute_script\`:
|
|
172
|
+
|
|
173
|
+
\`\`\`javascript
|
|
174
|
+
const resp = await fetch('https://example.com/api/v2/me', {
|
|
175
|
+
headers: { Authorization: 'Bearer ' + token },
|
|
176
|
+
credentials: 'include',
|
|
177
|
+
});
|
|
178
|
+
const data = await resp.json();
|
|
179
|
+
return data;
|
|
180
|
+
\`\`\`
|
|
181
|
+
|
|
182
|
+
### Step 7: Map the API Surface
|
|
183
|
+
|
|
184
|
+
Discover the key endpoints: user/profile, list resources, get single resource, create/update/delete, search, messaging, reactions.
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Phase 3: Scaffold the Plugin
|
|
189
|
+
|
|
190
|
+
\`\`\`bash
|
|
191
|
+
cd plugins/
|
|
192
|
+
opentabs plugin create <name> --domain <domain> --display <DisplayName> --description "OpenTabs plugin for <DisplayName>"
|
|
193
|
+
\`\`\`
|
|
194
|
+
|
|
195
|
+
After scaffolding, compare \`package.json\` with an existing plugin (e.g., \`plugins/slack/package.json\`) and align:
|
|
196
|
+
- Package name: \`@opentabs-dev/opentabs-plugin-<name>\` for official plugins
|
|
197
|
+
- Version: Match the current platform version
|
|
198
|
+
- Add: \`publishConfig\`, \`check\` script
|
|
199
|
+
- Dependency versions: Match \`@opentabs-dev/plugin-sdk\` and \`@opentabs-dev/plugin-tools\` versions
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## Phase 4: Implement
|
|
204
|
+
|
|
205
|
+
### File Structure
|
|
206
|
+
|
|
207
|
+
\`\`\`
|
|
208
|
+
src/
|
|
209
|
+
index.ts # Plugin class — imports all tools, implements isReady()
|
|
210
|
+
<name>-api.ts # API wrapper — auth extraction + error classification
|
|
211
|
+
tools/
|
|
212
|
+
schemas.ts # Shared Zod schemas + defensive mappers
|
|
213
|
+
send-message.ts # One file per tool
|
|
214
|
+
...
|
|
215
|
+
\`\`\`
|
|
216
|
+
|
|
217
|
+
### API Wrapper Pattern (\`<name>-api.ts\`)
|
|
218
|
+
|
|
219
|
+
The API wrapper handles auth extraction, request construction, and error classification:
|
|
220
|
+
|
|
221
|
+
\`\`\`typescript
|
|
222
|
+
import { ToolError } from '@opentabs-dev/plugin-sdk';
|
|
223
|
+
|
|
224
|
+
interface AppAuth {
|
|
225
|
+
token: string;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
const getAuth = (): AppAuth | null => {
|
|
229
|
+
// Check globalThis persistence first (survives adapter re-injection)
|
|
230
|
+
// Then try localStorage, page globals, cookies
|
|
231
|
+
// Return null if not authenticated
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export const isAuthenticated = (): boolean => getAuth() !== null;
|
|
235
|
+
|
|
236
|
+
export const waitForAuth = (): Promise<boolean> =>
|
|
237
|
+
new Promise((resolve) => {
|
|
238
|
+
let elapsed = 0;
|
|
239
|
+
const interval = 500;
|
|
240
|
+
const maxWait = 5000;
|
|
241
|
+
const timer = setInterval(() => {
|
|
242
|
+
elapsed += interval;
|
|
243
|
+
if (isAuthenticated()) { clearInterval(timer); resolve(true); return; }
|
|
244
|
+
if (elapsed >= maxWait) { clearInterval(timer); resolve(false); }
|
|
245
|
+
}, interval);
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
export const api = async <T extends Record<string, unknown>>(
|
|
249
|
+
endpoint: string,
|
|
250
|
+
options: { method?: string; body?: Record<string, unknown>; query?: Record<string, string | number | boolean | undefined> } = {},
|
|
251
|
+
): Promise<T> => {
|
|
252
|
+
const auth = getAuth();
|
|
253
|
+
if (!auth) throw ToolError.auth('Not authenticated — please log in.');
|
|
254
|
+
|
|
255
|
+
let url = \\\`https://example.com/api\\\${endpoint}\\\`;
|
|
256
|
+
if (options.query) {
|
|
257
|
+
const params = new URLSearchParams();
|
|
258
|
+
for (const [key, value] of Object.entries(options.query)) {
|
|
259
|
+
if (value !== undefined) params.append(key, String(value));
|
|
260
|
+
}
|
|
261
|
+
const qs = params.toString();
|
|
262
|
+
if (qs) url += \\\`?\\\${qs}\\\`;
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
const headers: Record<string, string> = { Authorization: \\\`Bearer \\\${auth.token}\\\` };
|
|
266
|
+
let fetchBody: string | undefined;
|
|
267
|
+
if (options.body) {
|
|
268
|
+
headers['Content-Type'] = 'application/json';
|
|
269
|
+
fetchBody = JSON.stringify(options.body);
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
let response: Response;
|
|
273
|
+
try {
|
|
274
|
+
response = await fetch(url, {
|
|
275
|
+
method: options.method ?? 'GET', headers, body: fetchBody,
|
|
276
|
+
credentials: 'include', signal: AbortSignal.timeout(30_000),
|
|
277
|
+
});
|
|
278
|
+
} catch (err: unknown) {
|
|
279
|
+
if (err instanceof DOMException && err.name === 'TimeoutError')
|
|
280
|
+
throw ToolError.timeout(\\\`API request timed out: \\\${endpoint}\\\`);
|
|
281
|
+
throw new ToolError(
|
|
282
|
+
\\\`Network error: \\\${err instanceof Error ? err.message : String(err)}\\\`,
|
|
283
|
+
'network_error', { category: 'internal', retryable: true },
|
|
284
|
+
);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
if (!response.ok) {
|
|
288
|
+
const errorBody = (await response.text().catch(() => '')).substring(0, 512);
|
|
289
|
+
if (response.status === 429) throw ToolError.rateLimited(\\\`Rate limited: \\\${endpoint}\\\`);
|
|
290
|
+
if (response.status === 401 || response.status === 403)
|
|
291
|
+
throw ToolError.auth(\\\`Auth error (\\\${response.status}): \\\${errorBody}\\\`);
|
|
292
|
+
if (response.status === 404) throw ToolError.notFound(\\\`Not found: \\\${endpoint}\\\`);
|
|
293
|
+
throw ToolError.internal(\\\`API error (\\\${response.status}): \\\${endpoint} — \\\${errorBody}\\\`);
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
if (response.status === 204) return {} as T;
|
|
297
|
+
return (await response.json()) as T;
|
|
298
|
+
};
|
|
299
|
+
\`\`\`
|
|
300
|
+
|
|
301
|
+
### Tool Pattern (one file per tool)
|
|
302
|
+
|
|
303
|
+
\`\`\`typescript
|
|
304
|
+
import { defineTool } from '@opentabs-dev/plugin-sdk';
|
|
305
|
+
import { z } from 'zod';
|
|
306
|
+
import { api } from '../<name>-api.js';
|
|
307
|
+
|
|
308
|
+
export const sendMessage = defineTool({
|
|
309
|
+
name: 'send_message',
|
|
310
|
+
displayName: 'Send Message',
|
|
311
|
+
description: 'Send a message to a channel. Supports markdown formatting.',
|
|
312
|
+
summary: 'Send a message to a channel',
|
|
313
|
+
icon: 'send',
|
|
314
|
+
input: z.object({
|
|
315
|
+
channel: z.string().describe('Channel ID to send the message to'),
|
|
316
|
+
content: z.string().describe('Message text content'),
|
|
317
|
+
}),
|
|
318
|
+
output: z.object({
|
|
319
|
+
id: z.string().describe('Message ID'),
|
|
320
|
+
}),
|
|
321
|
+
handle: async (params) => {
|
|
322
|
+
const data = await api<Record<string, unknown>>(
|
|
323
|
+
'/channels/' + params.channel + '/messages',
|
|
324
|
+
{ method: 'POST', body: { content: params.content } },
|
|
325
|
+
);
|
|
326
|
+
return { id: (data.id as string) ?? '' };
|
|
327
|
+
},
|
|
328
|
+
});
|
|
329
|
+
\`\`\`
|
|
330
|
+
|
|
331
|
+
### Plugin Class Pattern (\`index.ts\`)
|
|
332
|
+
|
|
333
|
+
\`\`\`typescript
|
|
334
|
+
import { OpenTabsPlugin } from '@opentabs-dev/plugin-sdk';
|
|
335
|
+
import type { ToolDefinition } from '@opentabs-dev/plugin-sdk';
|
|
336
|
+
import { isAuthenticated, waitForAuth } from './<name>-api.js';
|
|
337
|
+
import { sendMessage } from './tools/send-message.js';
|
|
338
|
+
|
|
339
|
+
class MyPlugin extends OpenTabsPlugin {
|
|
340
|
+
readonly name = '<name>';
|
|
341
|
+
readonly description = 'OpenTabs plugin for <DisplayName>';
|
|
342
|
+
override readonly displayName = '<DisplayName>';
|
|
343
|
+
readonly urlPatterns = ['*://*.example.com/*'];
|
|
344
|
+
readonly tools: ToolDefinition[] = [sendMessage];
|
|
345
|
+
|
|
346
|
+
async isReady(): Promise<boolean> {
|
|
347
|
+
if (isAuthenticated()) return true;
|
|
348
|
+
return waitForAuth();
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
export default new MyPlugin();
|
|
353
|
+
\`\`\`
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Phase 5: Build and Test
|
|
358
|
+
|
|
359
|
+
### Build
|
|
360
|
+
|
|
361
|
+
\`\`\`bash
|
|
362
|
+
cd plugins/<name>
|
|
363
|
+
npm install
|
|
364
|
+
npm run build
|
|
365
|
+
\`\`\`
|
|
366
|
+
|
|
367
|
+
### Verify Plugin Loaded
|
|
368
|
+
|
|
369
|
+
\`\`\`
|
|
370
|
+
plugin_list_tabs(plugin: "<name>")
|
|
371
|
+
\`\`\`
|
|
372
|
+
|
|
373
|
+
Must show \`state: "ready"\` for the matching tab.
|
|
374
|
+
|
|
375
|
+
### Test Each Tool
|
|
376
|
+
|
|
377
|
+
Systematically test read-only tools first (list, get, search), then write tools (send, create, delete). Test error cases: invalid IDs, missing permissions.
|
|
378
|
+
|
|
379
|
+
### Full Check Suite
|
|
380
|
+
|
|
381
|
+
\`\`\`bash
|
|
382
|
+
npm run check # build + type-check + lint + format:check
|
|
383
|
+
\`\`\`
|
|
384
|
+
|
|
385
|
+
---
|
|
386
|
+
|
|
387
|
+
## Key Conventions
|
|
388
|
+
|
|
389
|
+
- **One file per tool** in \`src/tools/\`
|
|
390
|
+
- **Every Zod field gets \`.describe()\`** — this is what AI agents see in the tool schema
|
|
391
|
+
- **\`description\` is for AI clients** — detailed, informative. \`summary\` is for humans — short, under 80 chars
|
|
392
|
+
- **Defensive mapping** with fallback defaults (\`data.field ?? ''\`) — never trust API shapes
|
|
393
|
+
- **Error classification is critical** — use \`ToolError\` factories, never throw raw errors
|
|
394
|
+
- **\`credentials: 'include'\`** on all fetch calls
|
|
395
|
+
- **30-second timeout** via \`AbortSignal.timeout(30_000)\`
|
|
396
|
+
- **\`.js\` extension** on all imports (ESM requirement)
|
|
397
|
+
- **No \`.transform()\`/\`.pipe()\`/\`.preprocess()\`** in Zod schemas (breaks JSON Schema serialization)
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
## Common Gotchas
|
|
402
|
+
|
|
403
|
+
1. **All plugin code runs in the browser** — no Node.js APIs
|
|
404
|
+
2. **SPAs hydrate asynchronously** — \`isReady()\` must poll (500ms interval, 5s max)
|
|
405
|
+
3. **Some apps delete browser APIs** — use iframe fallback for \`localStorage\`
|
|
406
|
+
4. **Tokens must persist on \`globalThis.__openTabs.tokenCache.<pluginName>\`** — module-level variables reset on extension reload
|
|
407
|
+
5. **HttpOnly cookies are invisible to plugin code** — use \`credentials: 'include'\` for the browser to send them automatically, detect auth status from DOM signals
|
|
408
|
+
6. **Parse error response bodies before classifying by HTTP status** — many apps reuse 403 for both auth and permission errors
|
|
409
|
+
7. **Cross-origin API + cookies: check CORS before choosing fetch strategy**
|
|
410
|
+
8. **Always run \`npm run format\` after writing code** — Biome config uses single quotes`;
|
|
411
|
+
};
|
|
412
|
+
//# sourceMappingURL=mcp-prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-prompts.js","sourceRoot":"","sources":["../src/mcp-prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA4BH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,OAAO,GAAuB;IACzC;QACE,IAAI,EAAE,cAAc;QACpB,WAAW,EACT,kFAAkF;YAClF,+FAA+F;YAC/F,qFAAqF;QACvF,SAAS,EAAE;YACT;gBACE,IAAI,EAAE,KAAK;gBACX,WAAW,EAAE,qEAAqE;gBAClF,QAAQ,EAAE,IAAI;aACf;YACD;gBACE,IAAI,EAAE,MAAM;gBACZ,WAAW,EAAE,8EAA8E;gBAC3F,QAAQ,EAAE,KAAK;aAChB;SACF;KACF;CACF,CAAC;AAEF,+CAA+C;AAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1D;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAY,EAAE,IAA4B,EAAuB,EAAE;IAC/F,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC;IAEtB,IAAI,IAAI,KAAK,cAAc,EAAE,CAAC;QAC5B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,8EAA8E;AAC9E,sBAAsB;AACtB,8EAA8E;AAE9E,MAAM,kBAAkB,GAAG,CAAC,IAA4B,EAAgB,EAAE;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,IAAI,qBAAqB,CAAC;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC;IAE7B,OAAO;QACL,WAAW,EAAE,gCAAgC,GAAG,EAAE;QAClD,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC;iBACvC;aACF;SACF;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,GAAW,EAAE,IAAY,EAAU,EAAE;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,+BAA+B,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAExE,OAAO,gDAAgD,GAAG,KAAK,UAAU;;;;;;;;6DAQd,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+DAwCD,GAAG;;;;;;4BAMtC,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA+Bf,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0FAiQuE,CAAC;AAC3F,CAAC,CAAC"}
|
package/dist/mcp-setup.d.ts
CHANGED
|
@@ -33,6 +33,7 @@ interface McpServerInstance {
|
|
|
33
33
|
}, extra: RequestHandlerExtra) => unknown) => void;
|
|
34
34
|
connect: (transport: unknown) => Promise<void>;
|
|
35
35
|
sendToolListChanged: () => Promise<void>;
|
|
36
|
+
sendPromptListChanged: () => Promise<void>;
|
|
36
37
|
sendLoggingMessage: (params: {
|
|
37
38
|
level: string;
|
|
38
39
|
logger?: string;
|