@opentabs-dev/mcp-server 0.0.19
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/audit-disk.d.ts +23 -0
- package/dist/audit-disk.d.ts.map +1 -0
- package/dist/audit-disk.js +74 -0
- package/dist/audit-disk.js.map +1 -0
- package/dist/browser-tools/analyze-site/detect-apis.d.ts +36 -0
- package/dist/browser-tools/analyze-site/detect-apis.d.ts.map +1 -0
- package/dist/browser-tools/analyze-site/detect-apis.js +383 -0
- package/dist/browser-tools/analyze-site/detect-apis.js.map +1 -0
- package/dist/browser-tools/analyze-site/detect-auth.d.ts +72 -0
- package/dist/browser-tools/analyze-site/detect-auth.d.ts.map +1 -0
- package/dist/browser-tools/analyze-site/detect-auth.js +384 -0
- package/dist/browser-tools/analyze-site/detect-auth.js.map +1 -0
- package/dist/browser-tools/analyze-site/detect-dom.d.ts +65 -0
- package/dist/browser-tools/analyze-site/detect-dom.d.ts.map +1 -0
- package/dist/browser-tools/analyze-site/detect-dom.js +45 -0
- package/dist/browser-tools/analyze-site/detect-dom.js.map +1 -0
- package/dist/browser-tools/analyze-site/detect-framework.d.ts +48 -0
- package/dist/browser-tools/analyze-site/detect-framework.d.ts.map +1 -0
- package/dist/browser-tools/analyze-site/detect-framework.js +31 -0
- package/dist/browser-tools/analyze-site/detect-framework.js.map +1 -0
- package/dist/browser-tools/analyze-site/detect-globals.d.ts +41 -0
- package/dist/browser-tools/analyze-site/detect-globals.d.ts.map +1 -0
- package/dist/browser-tools/analyze-site/detect-globals.js +42 -0
- package/dist/browser-tools/analyze-site/detect-globals.js.map +1 -0
- package/dist/browser-tools/analyze-site/detect-storage.d.ts +39 -0
- package/dist/browser-tools/analyze-site/detect-storage.d.ts.map +1 -0
- package/dist/browser-tools/analyze-site/detect-storage.js +34 -0
- package/dist/browser-tools/analyze-site/detect-storage.js.map +1 -0
- package/dist/browser-tools/analyze-site/index.d.ts +52 -0
- package/dist/browser-tools/analyze-site/index.d.ts.map +1 -0
- package/dist/browser-tools/analyze-site/index.js +827 -0
- package/dist/browser-tools/analyze-site/index.js.map +1 -0
- package/dist/browser-tools/analyze-site.d.ts +17 -0
- package/dist/browser-tools/analyze-site.d.ts.map +1 -0
- package/dist/browser-tools/analyze-site.js +41 -0
- package/dist/browser-tools/analyze-site.js.map +1 -0
- package/dist/browser-tools/clear-console-logs.d.ts +9 -0
- package/dist/browser-tools/clear-console-logs.d.ts.map +1 -0
- package/dist/browser-tools/clear-console-logs.js +16 -0
- package/dist/browser-tools/clear-console-logs.js.map +1 -0
- package/dist/browser-tools/click-element.d.ts +10 -0
- package/dist/browser-tools/click-element.d.ts.map +1 -0
- package/dist/browser-tools/click-element.js +22 -0
- package/dist/browser-tools/click-element.js.map +1 -0
- package/dist/browser-tools/close-tab.d.ts +9 -0
- package/dist/browser-tools/close-tab.d.ts.map +1 -0
- package/dist/browser-tools/close-tab.js +16 -0
- package/dist/browser-tools/close-tab.js.map +1 -0
- package/dist/browser-tools/definition.d.ts +26 -0
- package/dist/browser-tools/definition.d.ts.map +1 -0
- package/dist/browser-tools/definition.js +16 -0
- package/dist/browser-tools/definition.js.map +1 -0
- package/dist/browser-tools/delete-cookies.d.ts +10 -0
- package/dist/browser-tools/delete-cookies.d.ts.map +1 -0
- package/dist/browser-tools/delete-cookies.js +19 -0
- package/dist/browser-tools/delete-cookies.js.map +1 -0
- package/dist/browser-tools/disable-network-capture.d.ts +9 -0
- package/dist/browser-tools/disable-network-capture.d.ts.map +1 -0
- package/dist/browser-tools/disable-network-capture.js +16 -0
- package/dist/browser-tools/disable-network-capture.js.map +1 -0
- package/dist/browser-tools/enable-network-capture.d.ts +12 -0
- package/dist/browser-tools/enable-network-capture.d.ts.map +1 -0
- package/dist/browser-tools/enable-network-capture.js +42 -0
- package/dist/browser-tools/enable-network-capture.js.map +1 -0
- package/dist/browser-tools/execute-script.d.ts +19 -0
- package/dist/browser-tools/execute-script.d.ts.map +1 -0
- package/dist/browser-tools/execute-script.js +51 -0
- package/dist/browser-tools/execute-script.js.map +1 -0
- package/dist/browser-tools/extension-check-adapter.d.ts +11 -0
- package/dist/browser-tools/extension-check-adapter.d.ts.map +1 -0
- package/dist/browser-tools/extension-check-adapter.js +22 -0
- package/dist/browser-tools/extension-check-adapter.js.map +1 -0
- package/dist/browser-tools/extension-force-reconnect.d.ts +9 -0
- package/dist/browser-tools/extension-force-reconnect.d.ts.map +1 -0
- package/dist/browser-tools/extension-force-reconnect.js +19 -0
- package/dist/browser-tools/extension-force-reconnect.js.map +1 -0
- package/dist/browser-tools/extension-get-logs.d.ts +24 -0
- package/dist/browser-tools/extension-get-logs.d.ts.map +1 -0
- package/dist/browser-tools/extension-get-logs.js +34 -0
- package/dist/browser-tools/extension-get-logs.js.map +1 -0
- package/dist/browser-tools/extension-get-side-panel.d.ts +8 -0
- package/dist/browser-tools/extension-get-side-panel.d.ts.map +1 -0
- package/dist/browser-tools/extension-get-side-panel.js +17 -0
- package/dist/browser-tools/extension-get-side-panel.js.map +1 -0
- package/dist/browser-tools/extension-get-state.d.ts +9 -0
- package/dist/browser-tools/extension-get-state.d.ts.map +1 -0
- package/dist/browser-tools/extension-get-state.js +19 -0
- package/dist/browser-tools/extension-get-state.js.map +1 -0
- package/dist/browser-tools/focus-tab.d.ts +9 -0
- package/dist/browser-tools/focus-tab.d.ts.map +1 -0
- package/dist/browser-tools/focus-tab.js +17 -0
- package/dist/browser-tools/focus-tab.js.map +1 -0
- package/dist/browser-tools/get-console-logs.d.ts +18 -0
- package/dist/browser-tools/get-console-logs.d.ts.map +1 -0
- package/dist/browser-tools/get-console-logs.js +30 -0
- package/dist/browser-tools/get-console-logs.js.map +1 -0
- package/dist/browser-tools/get-cookies.d.ts +10 -0
- package/dist/browser-tools/get-cookies.d.ts.map +1 -0
- package/dist/browser-tools/get-cookies.js +23 -0
- package/dist/browser-tools/get-cookies.js.map +1 -0
- package/dist/browser-tools/get-network-requests.d.ts +10 -0
- package/dist/browser-tools/get-network-requests.d.ts.map +1 -0
- package/dist/browser-tools/get-network-requests.js +27 -0
- package/dist/browser-tools/get-network-requests.js.map +1 -0
- package/dist/browser-tools/get-page-html.d.ts +11 -0
- package/dist/browser-tools/get-page-html.d.ts.map +1 -0
- package/dist/browser-tools/get-page-html.js +32 -0
- package/dist/browser-tools/get-page-html.js.map +1 -0
- package/dist/browser-tools/get-resource-content.d.ts +11 -0
- package/dist/browser-tools/get-resource-content.d.ts.map +1 -0
- package/dist/browser-tools/get-resource-content.js +31 -0
- package/dist/browser-tools/get-resource-content.js.map +1 -0
- package/dist/browser-tools/get-storage.d.ts +14 -0
- package/dist/browser-tools/get-storage.d.ts.map +1 -0
- package/dist/browser-tools/get-storage.js +28 -0
- package/dist/browser-tools/get-storage.js.map +1 -0
- package/dist/browser-tools/get-tab-content.d.ts +11 -0
- package/dist/browser-tools/get-tab-content.d.ts.map +1 -0
- package/dist/browser-tools/get-tab-content.js +29 -0
- package/dist/browser-tools/get-tab-content.js.map +1 -0
- package/dist/browser-tools/get-tab-info.d.ts +9 -0
- package/dist/browser-tools/get-tab-info.d.ts.map +1 -0
- package/dist/browser-tools/get-tab-info.js +17 -0
- package/dist/browser-tools/get-tab-info.js.map +1 -0
- package/dist/browser-tools/handle-dialog.d.ts +14 -0
- package/dist/browser-tools/handle-dialog.d.ts.map +1 -0
- package/dist/browser-tools/handle-dialog.js +30 -0
- package/dist/browser-tools/handle-dialog.js.map +1 -0
- package/dist/browser-tools/hover-element.d.ts +11 -0
- package/dist/browser-tools/hover-element.d.ts.map +1 -0
- package/dist/browser-tools/hover-element.js +24 -0
- package/dist/browser-tools/hover-element.js.map +1 -0
- package/dist/browser-tools/index.d.ts +7 -0
- package/dist/browser-tools/index.d.ts.map +1 -0
- package/dist/browser-tools/index.js +81 -0
- package/dist/browser-tools/index.js.map +1 -0
- package/dist/browser-tools/list-resources.d.ts +10 -0
- package/dist/browser-tools/list-resources.d.ts.map +1 -0
- package/dist/browser-tools/list-resources.js +29 -0
- package/dist/browser-tools/list-resources.js.map +1 -0
- package/dist/browser-tools/list-tabs.d.ts +7 -0
- package/dist/browser-tools/list-tabs.d.ts.map +1 -0
- package/dist/browser-tools/list-tabs.js +16 -0
- package/dist/browser-tools/list-tabs.js.map +1 -0
- package/dist/browser-tools/navigate-tab.d.ts +10 -0
- package/dist/browser-tools/navigate-tab.d.ts.map +1 -0
- package/dist/browser-tools/navigate-tab.js +18 -0
- package/dist/browser-tools/navigate-tab.js.map +1 -0
- package/dist/browser-tools/open-tab.d.ts +9 -0
- package/dist/browser-tools/open-tab.d.ts.map +1 -0
- package/dist/browser-tools/open-tab.js +18 -0
- package/dist/browser-tools/open-tab.js.map +1 -0
- package/dist/browser-tools/press-key.d.ts +17 -0
- package/dist/browser-tools/press-key.d.ts.map +1 -0
- package/dist/browser-tools/press-key.js +43 -0
- package/dist/browser-tools/press-key.js.map +1 -0
- package/dist/browser-tools/query-elements.d.ts +12 -0
- package/dist/browser-tools/query-elements.d.ts.map +1 -0
- package/dist/browser-tools/query-elements.js +30 -0
- package/dist/browser-tools/query-elements.js.map +1 -0
- package/dist/browser-tools/reload-extension.d.ts +13 -0
- package/dist/browser-tools/reload-extension.d.ts.map +1 -0
- package/dist/browser-tools/reload-extension.js +35 -0
- package/dist/browser-tools/reload-extension.js.map +1 -0
- package/dist/browser-tools/screenshot-tab.d.ts +9 -0
- package/dist/browser-tools/screenshot-tab.d.ts.map +1 -0
- package/dist/browser-tools/screenshot-tab.js +22 -0
- package/dist/browser-tools/screenshot-tab.js.map +1 -0
- package/dist/browser-tools/scroll.d.ts +23 -0
- package/dist/browser-tools/scroll.d.ts.map +1 -0
- package/dist/browser-tools/scroll.js +56 -0
- package/dist/browser-tools/scroll.js.map +1 -0
- package/dist/browser-tools/select-option.d.ts +12 -0
- package/dist/browser-tools/select-option.d.ts.map +1 -0
- package/dist/browser-tools/select-option.js +25 -0
- package/dist/browser-tools/select-option.js.map +1 -0
- package/dist/browser-tools/set-cookie.d.ts +16 -0
- package/dist/browser-tools/set-cookie.d.ts.map +1 -0
- package/dist/browser-tools/set-cookie.js +42 -0
- package/dist/browser-tools/set-cookie.js.map +1 -0
- package/dist/browser-tools/type-text.d.ts +12 -0
- package/dist/browser-tools/type-text.d.ts.map +1 -0
- package/dist/browser-tools/type-text.js +25 -0
- package/dist/browser-tools/type-text.js.map +1 -0
- package/dist/browser-tools/url-validation.d.ts +13 -0
- package/dist/browser-tools/url-validation.d.ts.map +1 -0
- package/dist/browser-tools/url-validation.js +23 -0
- package/dist/browser-tools/url-validation.js.map +1 -0
- package/dist/browser-tools/wait-for-element.d.ts +12 -0
- package/dist/browser-tools/wait-for-element.d.ts.map +1 -0
- package/dist/browser-tools/wait-for-element.js +29 -0
- package/dist/browser-tools/wait-for-element.js.map +1 -0
- package/dist/config.d.ts +99 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +344 -0
- package/dist/config.js.map +1 -0
- package/dist/dev-mode.d.ts +14 -0
- package/dist/dev-mode.d.ts.map +1 -0
- package/dist/dev-mode.js +15 -0
- package/dist/dev-mode.js.map +1 -0
- package/dist/discovery-legacy.d.ts +32 -0
- package/dist/discovery-legacy.d.ts.map +1 -0
- package/dist/discovery-legacy.js +415 -0
- package/dist/discovery-legacy.js.map +1 -0
- package/dist/discovery.d.ts +28 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/discovery.js +97 -0
- package/dist/discovery.js.map +1 -0
- package/dist/extension-install.d.ts +27 -0
- package/dist/extension-install.d.ts.map +1 -0
- package/dist/extension-install.js +75 -0
- package/dist/extension-install.js.map +1 -0
- package/dist/extension-protocol.d.ts +130 -0
- package/dist/extension-protocol.d.ts.map +1 -0
- package/dist/extension-protocol.js +869 -0
- package/dist/extension-protocol.js.map +1 -0
- package/dist/file-watcher.d.ts +75 -0
- package/dist/file-watcher.d.ts.map +1 -0
- package/dist/file-watcher.js +616 -0
- package/dist/file-watcher.js.map +1 -0
- package/dist/http-routes.d.ts +88 -0
- package/dist/http-routes.d.ts.map +1 -0
- package/dist/http-routes.js +545 -0
- package/dist/http-routes.js.map +1 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +187 -0
- package/dist/index.js.map +1 -0
- package/dist/loader.d.ts +100 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +402 -0
- package/dist/loader.js.map +1 -0
- package/dist/log-buffer.d.ts +33 -0
- package/dist/log-buffer.d.ts.map +1 -0
- package/dist/log-buffer.js +64 -0
- package/dist/log-buffer.js.map +1 -0
- package/dist/logger.d.ts +34 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +81 -0
- package/dist/logger.js.map +1 -0
- package/dist/manifest-schema.d.ts +14 -0
- package/dist/manifest-schema.d.ts.map +1 -0
- package/dist/manifest-schema.js +51 -0
- package/dist/manifest-schema.js.map +1 -0
- package/dist/mcp-setup.d.ts +131 -0
- package/dist/mcp-setup.d.ts.map +1 -0
- package/dist/mcp-setup.js +673 -0
- package/dist/mcp-setup.js.map +1 -0
- package/dist/permissions.d.ts +59 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +141 -0
- package/dist/permissions.js.map +1 -0
- package/dist/registry.d.ts +78 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +187 -0
- package/dist/registry.js.map +1 -0
- package/dist/reload.d.ts +52 -0
- package/dist/reload.d.ts.map +1 -0
- package/dist/reload.js +326 -0
- package/dist/reload.js.map +1 -0
- package/dist/resolver.d.ts +53 -0
- package/dist/resolver.d.ts.map +1 -0
- package/dist/resolver.js +272 -0
- package/dist/resolver.js.map +1 -0
- package/dist/sanitize-error.d.ts +8 -0
- package/dist/sanitize-error.d.ts.map +1 -0
- package/dist/sanitize-error.js +25 -0
- package/dist/sanitize-error.js.map +1 -0
- package/dist/sanitize-tool-output.d.ts +20 -0
- package/dist/sanitize-tool-output.d.ts.map +1 -0
- package/dist/sanitize-tool-output.js +52 -0
- package/dist/sanitize-tool-output.js.map +1 -0
- package/dist/sdk-version.d.ts +11 -0
- package/dist/sdk-version.d.ts.map +1 -0
- package/dist/sdk-version.js +23 -0
- package/dist/sdk-version.js.map +1 -0
- package/dist/shutdown.d.ts +28 -0
- package/dist/shutdown.d.ts.map +1 -0
- package/dist/shutdown.js +68 -0
- package/dist/shutdown.js.map +1 -0
- package/dist/skip-confirmation.d.ts +15 -0
- package/dist/skip-confirmation.d.ts.map +1 -0
- package/dist/skip-confirmation.js +16 -0
- package/dist/skip-confirmation.js.map +1 -0
- package/dist/skip-sanitization.d.ts +17 -0
- package/dist/skip-sanitization.d.ts.map +1 -0
- package/dist/skip-sanitization.js +18 -0
- package/dist/skip-sanitization.js.map +1 -0
- package/dist/skip-verification.d.ts +11 -0
- package/dist/skip-verification.d.ts.map +1 -0
- package/dist/skip-verification.js +12 -0
- package/dist/skip-verification.js.map +1 -0
- package/dist/state.d.ts +290 -0
- package/dist/state.d.ts.map +1 -0
- package/dist/state.js +111 -0
- package/dist/state.js.map +1 -0
- package/dist/verify-plugin.d.ts +53 -0
- package/dist/verify-plugin.d.ts.map +1 -0
- package/dist/verify-plugin.js +123 -0
- package/dist/verify-plugin.js.map +1 -0
- package/dist/version-check.d.ts +35 -0
- package/dist/version-check.d.ts.map +1 -0
- package/dist/version-check.js +111 -0
- package/dist/version-check.js.map +1 -0
- package/dist/version.d.ts +10 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +22 -0
- package/dist/version.js.map +1 -0
- package/package.json +28 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schema for runtime validation of opentabs-plugin.json manifests.
|
|
3
|
+
*
|
|
4
|
+
* Validates the shape and types of plugin manifests read from disk,
|
|
5
|
+
* producing clear error messages for malformed files instead of cryptic
|
|
6
|
+
* downstream crashes from unchecked casts.
|
|
7
|
+
*/
|
|
8
|
+
import type { PluginManifest } from '@opentabs-dev/shared';
|
|
9
|
+
/**
|
|
10
|
+
* Parse and validate a plugin manifest JSON string.
|
|
11
|
+
* Throws a descriptive error on invalid input.
|
|
12
|
+
*/
|
|
13
|
+
export declare const parseManifest: (raw: string, sourcePath: string) => PluginManifest;
|
|
14
|
+
//# sourceMappingURL=manifest-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-schema.d.ts","sourceRoot":"","sources":["../src/manifest-schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AA+B3D;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,KAAK,MAAM,EAAE,YAAY,MAAM,KAAG,cAe/D,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Zod schema for runtime validation of opentabs-plugin.json manifests.
|
|
3
|
+
*
|
|
4
|
+
* Validates the shape and types of plugin manifests read from disk,
|
|
5
|
+
* producing clear error messages for malformed files instead of cryptic
|
|
6
|
+
* downstream crashes from unchecked casts.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from 'zod';
|
|
9
|
+
const manifestToolSchema = z.object({
|
|
10
|
+
name: z.string().min(1, 'Tool name is required'),
|
|
11
|
+
displayName: z.string().min(1, 'Tool displayName is required'),
|
|
12
|
+
description: z
|
|
13
|
+
.string()
|
|
14
|
+
.min(1, 'Tool description is required')
|
|
15
|
+
.max(1000, 'Tool description must be at most 1000 characters'),
|
|
16
|
+
icon: z.string().min(1, 'Tool icon is required'),
|
|
17
|
+
input_schema: z.record(z.string(), z.unknown()),
|
|
18
|
+
output_schema: z.record(z.string(), z.unknown()),
|
|
19
|
+
});
|
|
20
|
+
const pluginManifestSchema = z.looseObject({
|
|
21
|
+
name: z.string().min(1, 'Plugin name is required'),
|
|
22
|
+
version: z.string().min(1, 'Plugin version is required'),
|
|
23
|
+
displayName: z.string().min(1, 'Plugin displayName is required'),
|
|
24
|
+
description: z
|
|
25
|
+
.string()
|
|
26
|
+
.min(1, 'Plugin description is required')
|
|
27
|
+
.max(500, 'Plugin description must be at most 500 characters'),
|
|
28
|
+
url_patterns: z.array(z.string()).min(1, 'At least one URL pattern is required'),
|
|
29
|
+
tools: z.array(manifestToolSchema).min(1, 'At least one tool is required'),
|
|
30
|
+
adapterHash: z.string().optional(),
|
|
31
|
+
});
|
|
32
|
+
/**
|
|
33
|
+
* Parse and validate a plugin manifest JSON string.
|
|
34
|
+
* Throws a descriptive error on invalid input.
|
|
35
|
+
*/
|
|
36
|
+
export const parseManifest = (raw, sourcePath) => {
|
|
37
|
+
let parsed;
|
|
38
|
+
try {
|
|
39
|
+
parsed = JSON.parse(raw);
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
throw new Error(`Invalid JSON in manifest at ${sourcePath}`);
|
|
43
|
+
}
|
|
44
|
+
const result = pluginManifestSchema.safeParse(parsed);
|
|
45
|
+
if (!result.success) {
|
|
46
|
+
const issues = result.error.issues.map(issue => ` - ${issue.path.join('.')}: ${issue.message}`).join('\n');
|
|
47
|
+
throw new Error(`Invalid plugin manifest at ${sourcePath}:\n${issues}`);
|
|
48
|
+
}
|
|
49
|
+
return result.data;
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=manifest-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-schema.js","sourceRoot":"","sources":["../src/manifest-schema.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IAChD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;IAC9D,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,8BAA8B,CAAC;SACtC,GAAG,CAAC,IAAI,EAAE,kDAAkD,CAAC;IAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,CAAC;IAChD,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;IAC/C,aAAa,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;CACjD,CAAC,CAAC;AAEH,MAAM,oBAAoB,GAAG,CAAC,CAAC,WAAW,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;IAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B,CAAC;IACxD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,gCAAgC,CAAC;IAChE,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,gCAAgC,CAAC;SACxC,GAAG,CAAC,GAAG,EAAE,mDAAmD,CAAC;IAChE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,sCAAsC,CAAC;IAChF,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,+BAA+B,CAAC;IAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAC;AAMH;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAW,EAAE,UAAkB,EAAkB,EAAE;IAC/E,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5G,MAAM,IAAI,KAAK,CAAC,8BAA8B,UAAU,MAAM,MAAM,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC;AACrB,CAAC,CAAC"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP server factory.
|
|
3
|
+
* Creates a low-level Server instance and registers tools dynamically from
|
|
4
|
+
* discovered plugins and built-in browser tools.
|
|
5
|
+
*
|
|
6
|
+
* Uses the low-level Server API (not McpServer) because plugin manifests provide
|
|
7
|
+
* raw JSON Schema objects for tool input/output — McpServer.registerTool() requires
|
|
8
|
+
* Zod schemas and cannot accept pre-computed JSON Schema. The Server class deprecation
|
|
9
|
+
* message acknowledges this: "Only use Server for advanced use cases."
|
|
10
|
+
*
|
|
11
|
+
* The Server import uses dynamic import() to satisfy import-x/no-deprecated. The
|
|
12
|
+
* @typescript-eslint/no-deprecated rule is addressed by typing through the awaited
|
|
13
|
+
* module rather than referencing the deprecated class name directly.
|
|
14
|
+
*
|
|
15
|
+
* Hot reload:
|
|
16
|
+
* `registerMcpHandlers` is separated from `createMcpServer` so that existing
|
|
17
|
+
* MCP sessions can have their tools/list and tools/call handler logic refreshed
|
|
18
|
+
* on hot reload. After bun --hot re-evaluates this module, calling
|
|
19
|
+
* `registerMcpHandlers(server, state)` on each existing session replaces the
|
|
20
|
+
* old handler closures with new ones that reference the fresh module imports
|
|
21
|
+
* (dispatchToExtension, sendInvocationStart, etc.).
|
|
22
|
+
*/
|
|
23
|
+
import type { ServerState } from './state.js';
|
|
24
|
+
/**
|
|
25
|
+
* Recursively remove dangerous keys from objects to prevent prototype pollution
|
|
26
|
+
* in MCP clients that use naive JSON deserialization.
|
|
27
|
+
*/
|
|
28
|
+
declare const sanitizeOutput: (obj: unknown, depth?: number) => unknown;
|
|
29
|
+
/** Extra context passed to request handlers by the MCP SDK */
|
|
30
|
+
interface RequestHandlerExtra {
|
|
31
|
+
signal: AbortSignal;
|
|
32
|
+
sessionId?: string;
|
|
33
|
+
_meta?: {
|
|
34
|
+
progressToken?: string | number;
|
|
35
|
+
};
|
|
36
|
+
sendNotification: (notification: {
|
|
37
|
+
method: string;
|
|
38
|
+
params?: Record<string, unknown>;
|
|
39
|
+
}) => Promise<void>;
|
|
40
|
+
}
|
|
41
|
+
/** The instantiated MCP server with the methods we use */
|
|
42
|
+
interface McpServerInstance {
|
|
43
|
+
setRequestHandler: (schema: unknown, handler: (request: {
|
|
44
|
+
params: {
|
|
45
|
+
name: string;
|
|
46
|
+
arguments?: Record<string, unknown>;
|
|
47
|
+
uri?: string;
|
|
48
|
+
};
|
|
49
|
+
}, extra: RequestHandlerExtra) => unknown) => void;
|
|
50
|
+
connect: (transport: unknown) => Promise<void>;
|
|
51
|
+
sendToolListChanged: () => Promise<void>;
|
|
52
|
+
sendResourceListChanged: () => Promise<void>;
|
|
53
|
+
sendPromptListChanged: () => Promise<void>;
|
|
54
|
+
sendLoggingMessage: (params: {
|
|
55
|
+
level: string;
|
|
56
|
+
logger?: string;
|
|
57
|
+
data?: unknown;
|
|
58
|
+
}) => Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Rebuild cached browser tool JSON schemas on state.
|
|
62
|
+
* Called after state.browserTools changes (during reload).
|
|
63
|
+
* Plugin tool lookups are handled by the immutable registry.
|
|
64
|
+
*/
|
|
65
|
+
declare const rebuildCachedBrowserTools: (state: ServerState) => void;
|
|
66
|
+
/**
|
|
67
|
+
* Register (or re-register) tools/list and tools/call handlers on an MCP Server
|
|
68
|
+
* instance. Each handler creates fresh closures over the current module's imports
|
|
69
|
+
* (dispatchToolToExtension, sendInvocationStart, etc.), ensuring that after hot
|
|
70
|
+
* reload, existing sessions invoke the latest handler logic.
|
|
71
|
+
*
|
|
72
|
+
* Called by:
|
|
73
|
+
* 1. `createMcpServer` — for new sessions
|
|
74
|
+
* 2. Hot reload sequence in reload.ts — for existing sessions
|
|
75
|
+
*/
|
|
76
|
+
declare const registerMcpHandlers: (server: McpServerInstance, state: ServerState) => void;
|
|
77
|
+
/**
|
|
78
|
+
* Create a new low-level MCP Server instance with the OpenTabs server info
|
|
79
|
+
* and register handlers for tools/list and tools/call.
|
|
80
|
+
*/
|
|
81
|
+
declare const createMcpServer: (state: ServerState) => Promise<McpServerInstance>;
|
|
82
|
+
/**
|
|
83
|
+
* Notify a connected MCP client that the tool list has changed.
|
|
84
|
+
* Logs a warning if the notification fails (e.g., transport in a bad state)
|
|
85
|
+
* to aid debugging when a client doesn't see a tool update.
|
|
86
|
+
*/
|
|
87
|
+
declare const notifyToolListChanged: (server: McpServerInstance) => void;
|
|
88
|
+
/**
|
|
89
|
+
* Notify a connected MCP client that the resource list has changed.
|
|
90
|
+
*/
|
|
91
|
+
declare const notifyResourceListChanged: (server: McpServerInstance) => void;
|
|
92
|
+
/**
|
|
93
|
+
* Notify a connected MCP client that the prompt list has changed.
|
|
94
|
+
*/
|
|
95
|
+
declare const notifyPromptListChanged: (server: McpServerInstance) => void;
|
|
96
|
+
/**
|
|
97
|
+
* Returns the list of enabled tools for MCP tools/list responses.
|
|
98
|
+
* Plugin tools are filtered by the toolConfig (disabled tools are excluded).
|
|
99
|
+
* Browser tools are filtered by the browserToolPolicy (disabled tools are excluded).
|
|
100
|
+
*/
|
|
101
|
+
export declare const getEnabledToolsList: (state: ServerState) => Array<{
|
|
102
|
+
name: string;
|
|
103
|
+
description: string;
|
|
104
|
+
inputSchema: Record<string, unknown>;
|
|
105
|
+
}>;
|
|
106
|
+
/** Result of checking whether a plugin tool is callable */
|
|
107
|
+
export interface ToolCallableOk {
|
|
108
|
+
ok: true;
|
|
109
|
+
pluginName: string;
|
|
110
|
+
toolName: string;
|
|
111
|
+
}
|
|
112
|
+
/** A failed tool-callable check with a human-readable error message. */
|
|
113
|
+
export interface ToolCallableError {
|
|
114
|
+
ok: false;
|
|
115
|
+
error: string;
|
|
116
|
+
}
|
|
117
|
+
/** Discriminated union returned by {@link checkToolCallable} indicating success or failure. */
|
|
118
|
+
export type ToolCallableResult = ToolCallableOk | ToolCallableError;
|
|
119
|
+
/**
|
|
120
|
+
* Check if a prefixed plugin tool name is callable: exists in the tool lookup
|
|
121
|
+
* and is enabled in the tool config. Browser tools are handled separately
|
|
122
|
+
* (before this check) in the tools/call handler.
|
|
123
|
+
*
|
|
124
|
+
* @param state - Server state containing the plugin registry and tool config
|
|
125
|
+
* @param prefixedToolName - Fully prefixed tool name (e.g., 'slack_send_message')
|
|
126
|
+
* @returns An ok result with pluginName/toolName if callable, or an error result with a message
|
|
127
|
+
*/
|
|
128
|
+
export declare const checkToolCallable: (state: ServerState, prefixedToolName: string) => ToolCallableResult;
|
|
129
|
+
export type { McpServerInstance, RequestHandlerExtra };
|
|
130
|
+
export { createMcpServer, registerMcpHandlers, rebuildCachedBrowserTools, notifyToolListChanged, notifyResourceListChanged, notifyPromptListChanged, sanitizeOutput, };
|
|
131
|
+
//# sourceMappingURL=mcp-setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-setup.d.ts","sourceRoot":"","sources":["../src/mcp-setup.ts"],"names":[],"mappings":"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"}
|