@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.
@@ -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 });
@@ -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"}
@@ -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;