@daniel.stefan/metalink 1.3.1
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/README.md +160 -0
- package/package.json +96 -0
- package/packages/cli/dist/bin/cli.d.ts +3 -0
- package/packages/cli/dist/bin/cli.d.ts.map +1 -0
- package/packages/cli/dist/bin/cli.js +4 -0
- package/packages/cli/dist/bin/cli.js.map +1 -0
- package/packages/cli/dist/commands/config/init.d.ts +9 -0
- package/packages/cli/dist/commands/config/init.d.ts.map +1 -0
- package/packages/cli/dist/commands/config/init.js +38 -0
- package/packages/cli/dist/commands/config/init.js.map +1 -0
- package/packages/cli/dist/commands/config/validate.d.ts +9 -0
- package/packages/cli/dist/commands/config/validate.d.ts.map +1 -0
- package/packages/cli/dist/commands/config/validate.js +34 -0
- package/packages/cli/dist/commands/config/validate.js.map +1 -0
- package/packages/cli/dist/commands/daemon/restart.d.ts +15 -0
- package/packages/cli/dist/commands/daemon/restart.d.ts.map +1 -0
- package/packages/cli/dist/commands/daemon/restart.js +184 -0
- package/packages/cli/dist/commands/daemon/restart.js.map +1 -0
- package/packages/cli/dist/commands/daemon/start.d.ts +7 -0
- package/packages/cli/dist/commands/daemon/start.d.ts.map +1 -0
- package/packages/cli/dist/commands/daemon/start.js +85 -0
- package/packages/cli/dist/commands/daemon/start.js.map +1 -0
- package/packages/cli/dist/commands/daemon/status.d.ts +7 -0
- package/packages/cli/dist/commands/daemon/status.d.ts.map +1 -0
- package/packages/cli/dist/commands/daemon/status.js +69 -0
- package/packages/cli/dist/commands/daemon/status.js.map +1 -0
- package/packages/cli/dist/commands/daemon/stop.d.ts +8 -0
- package/packages/cli/dist/commands/daemon/stop.d.ts.map +1 -0
- package/packages/cli/dist/commands/daemon/stop.js +77 -0
- package/packages/cli/dist/commands/daemon/stop.js.map +1 -0
- package/packages/cli/dist/commands/import/mcpm.d.ts +10 -0
- package/packages/cli/dist/commands/import/mcpm.d.ts.map +1 -0
- package/packages/cli/dist/commands/import/mcpm.js +58 -0
- package/packages/cli/dist/commands/import/mcpm.js.map +1 -0
- package/packages/cli/dist/commands/safety/add-risky-pattern.d.ts +16 -0
- package/packages/cli/dist/commands/safety/add-risky-pattern.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/add-risky-pattern.js +72 -0
- package/packages/cli/dist/commands/safety/add-risky-pattern.js.map +1 -0
- package/packages/cli/dist/commands/safety/add-risky.d.ts +12 -0
- package/packages/cli/dist/commands/safety/add-risky.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/add-risky.js +52 -0
- package/packages/cli/dist/commands/safety/add-risky.js.map +1 -0
- package/packages/cli/dist/commands/safety/add-safe-pattern.d.ts +16 -0
- package/packages/cli/dist/commands/safety/add-safe-pattern.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/add-safe-pattern.js +72 -0
- package/packages/cli/dist/commands/safety/add-safe-pattern.js.map +1 -0
- package/packages/cli/dist/commands/safety/add-safe.d.ts +12 -0
- package/packages/cli/dist/commands/safety/add-safe.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/add-safe.js +52 -0
- package/packages/cli/dist/commands/safety/add-safe.js.map +1 -0
- package/packages/cli/dist/commands/safety/check.d.ts +9 -0
- package/packages/cli/dist/commands/safety/check.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/check.js +36 -0
- package/packages/cli/dist/commands/safety/check.js.map +1 -0
- package/packages/cli/dist/commands/safety/export.d.ts +10 -0
- package/packages/cli/dist/commands/safety/export.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/export.js +48 -0
- package/packages/cli/dist/commands/safety/export.js.map +1 -0
- package/packages/cli/dist/commands/safety/import.d.ts +12 -0
- package/packages/cli/dist/commands/safety/import.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/import.js +78 -0
- package/packages/cli/dist/commands/safety/import.js.map +1 -0
- package/packages/cli/dist/commands/safety/index.d.ts +8 -0
- package/packages/cli/dist/commands/safety/index.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/index.js +46 -0
- package/packages/cli/dist/commands/safety/index.js.map +1 -0
- package/packages/cli/dist/commands/safety/list.d.ts +6 -0
- package/packages/cli/dist/commands/safety/list.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/list.js +77 -0
- package/packages/cli/dist/commands/safety/list.js.map +1 -0
- package/packages/cli/dist/commands/safety/remove.d.ts +9 -0
- package/packages/cli/dist/commands/safety/remove.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/remove.js +46 -0
- package/packages/cli/dist/commands/safety/remove.js.map +1 -0
- package/packages/cli/dist/commands/safety/reset.d.ts +9 -0
- package/packages/cli/dist/commands/safety/reset.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/reset.js +46 -0
- package/packages/cli/dist/commands/safety/reset.js.map +1 -0
- package/packages/cli/dist/commands/safety/validate.d.ts +9 -0
- package/packages/cli/dist/commands/safety/validate.d.ts.map +1 -0
- package/packages/cli/dist/commands/safety/validate.js +51 -0
- package/packages/cli/dist/commands/safety/validate.js.map +1 -0
- package/packages/cli/dist/commands/secret/get.d.ts +9 -0
- package/packages/cli/dist/commands/secret/get.d.ts.map +1 -0
- package/packages/cli/dist/commands/secret/get.js +26 -0
- package/packages/cli/dist/commands/secret/get.js.map +1 -0
- package/packages/cli/dist/commands/secret/set.d.ts +10 -0
- package/packages/cli/dist/commands/secret/set.d.ts.map +1 -0
- package/packages/cli/dist/commands/secret/set.js +22 -0
- package/packages/cli/dist/commands/secret/set.js.map +1 -0
- package/packages/cli/dist/commands/server/__tests__/server-management-e2e.test.d.ts +2 -0
- package/packages/cli/dist/commands/server/__tests__/server-management-e2e.test.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/__tests__/server-management-e2e.test.js +234 -0
- package/packages/cli/dist/commands/server/__tests__/server-management-e2e.test.js.map +1 -0
- package/packages/cli/dist/commands/server/add.d.ts +14 -0
- package/packages/cli/dist/commands/server/add.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/add.js +86 -0
- package/packages/cli/dist/commands/server/add.js.map +1 -0
- package/packages/cli/dist/commands/server/available.d.ts +10 -0
- package/packages/cli/dist/commands/server/available.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/available.js +62 -0
- package/packages/cli/dist/commands/server/available.js.map +1 -0
- package/packages/cli/dist/commands/server/debug.d.ts +18 -0
- package/packages/cli/dist/commands/server/debug.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/debug.js +165 -0
- package/packages/cli/dist/commands/server/debug.js.map +1 -0
- package/packages/cli/dist/commands/server/info.d.ts +13 -0
- package/packages/cli/dist/commands/server/info.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/info.js +62 -0
- package/packages/cli/dist/commands/server/info.js.map +1 -0
- package/packages/cli/dist/commands/server/list.d.ts +10 -0
- package/packages/cli/dist/commands/server/list.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/list.js +105 -0
- package/packages/cli/dist/commands/server/list.js.map +1 -0
- package/packages/cli/dist/commands/server/refresh-tools.d.ts +13 -0
- package/packages/cli/dist/commands/server/refresh-tools.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/refresh-tools.js +46 -0
- package/packages/cli/dist/commands/server/refresh-tools.js.map +1 -0
- package/packages/cli/dist/commands/server/remove.d.ts +12 -0
- package/packages/cli/dist/commands/server/remove.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/remove.js +39 -0
- package/packages/cli/dist/commands/server/remove.js.map +1 -0
- package/packages/cli/dist/commands/server/restart.d.ts +9 -0
- package/packages/cli/dist/commands/server/restart.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/restart.js +30 -0
- package/packages/cli/dist/commands/server/restart.js.map +1 -0
- package/packages/cli/dist/commands/server/start.d.ts +9 -0
- package/packages/cli/dist/commands/server/start.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/start.js +37 -0
- package/packages/cli/dist/commands/server/start.js.map +1 -0
- package/packages/cli/dist/commands/server/status.d.ts +9 -0
- package/packages/cli/dist/commands/server/status.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/status.js +30 -0
- package/packages/cli/dist/commands/server/status.js.map +1 -0
- package/packages/cli/dist/commands/server/stop.d.ts +9 -0
- package/packages/cli/dist/commands/server/stop.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/stop.js +31 -0
- package/packages/cli/dist/commands/server/stop.js.map +1 -0
- package/packages/cli/dist/commands/server/validate.d.ts +15 -0
- package/packages/cli/dist/commands/server/validate.d.ts.map +1 -0
- package/packages/cli/dist/commands/server/validate.js +87 -0
- package/packages/cli/dist/commands/server/validate.js.map +1 -0
- package/packages/cli/dist/commands/stdio.d.ts +36 -0
- package/packages/cli/dist/commands/stdio.d.ts.map +1 -0
- package/packages/cli/dist/commands/stdio.js +85 -0
- package/packages/cli/dist/commands/stdio.js.map +1 -0
- package/packages/cli/dist/commands/tool/execute-confirm.d.ts +12 -0
- package/packages/cli/dist/commands/tool/execute-confirm.d.ts.map +1 -0
- package/packages/cli/dist/commands/tool/execute-confirm.js +98 -0
- package/packages/cli/dist/commands/tool/execute-confirm.js.map +1 -0
- package/packages/cli/dist/commands/tool/execute.d.ts +12 -0
- package/packages/cli/dist/commands/tool/execute.d.ts.map +1 -0
- package/packages/cli/dist/commands/tool/execute.js +55 -0
- package/packages/cli/dist/commands/tool/execute.js.map +1 -0
- package/packages/cli/dist/commands/tool/list.d.ts +13 -0
- package/packages/cli/dist/commands/tool/list.d.ts.map +1 -0
- package/packages/cli/dist/commands/tool/list.js +91 -0
- package/packages/cli/dist/commands/tool/list.js.map +1 -0
- package/packages/cli/dist/commands/tool/search.d.ts +12 -0
- package/packages/cli/dist/commands/tool/search.d.ts.map +1 -0
- package/packages/cli/dist/commands/tool/search.js +87 -0
- package/packages/cli/dist/commands/tool/search.js.map +1 -0
- package/packages/cli/dist/index.d.ts +2 -0
- package/packages/cli/dist/index.d.ts.map +1 -0
- package/packages/cli/dist/index.js +9 -0
- package/packages/cli/dist/index.js.map +1 -0
- package/packages/cli/dist/utils/daemon-checker.d.ts +18 -0
- package/packages/cli/dist/utils/daemon-checker.d.ts.map +1 -0
- package/packages/cli/dist/utils/daemon-checker.js +69 -0
- package/packages/cli/dist/utils/daemon-checker.js.map +1 -0
- package/packages/cli/dist/utils/daemon-endpoint.d.ts +7 -0
- package/packages/cli/dist/utils/daemon-endpoint.d.ts.map +1 -0
- package/packages/cli/dist/utils/daemon-endpoint.js +13 -0
- package/packages/cli/dist/utils/daemon-endpoint.js.map +1 -0
- package/packages/cli/dist/utils/get-configured-port.d.ts +43 -0
- package/packages/cli/dist/utils/get-configured-port.d.ts.map +1 -0
- package/packages/cli/dist/utils/get-configured-port.js +141 -0
- package/packages/cli/dist/utils/get-configured-port.js.map +1 -0
- package/packages/cli/dist/utils/stdio-bridge.d.ts +48 -0
- package/packages/cli/dist/utils/stdio-bridge.d.ts.map +1 -0
- package/packages/cli/dist/utils/stdio-bridge.js +181 -0
- package/packages/cli/dist/utils/stdio-bridge.js.map +1 -0
- package/packages/cli/package.json +48 -0
- package/packages/core/dist/config/defaults.d.ts +36 -0
- package/packages/core/dist/config/defaults.d.ts.map +1 -0
- package/packages/core/dist/config/defaults.js +324 -0
- package/packages/core/dist/config/defaults.js.map +1 -0
- package/packages/core/dist/config/index.d.ts +9 -0
- package/packages/core/dist/config/index.d.ts.map +1 -0
- package/packages/core/dist/config/index.js +14 -0
- package/packages/core/dist/config/index.js.map +1 -0
- package/packages/core/dist/config/loader.d.ts +269 -0
- package/packages/core/dist/config/loader.d.ts.map +1 -0
- package/packages/core/dist/config/loader.js +777 -0
- package/packages/core/dist/config/loader.js.map +1 -0
- package/packages/core/dist/config/registry.d.ts +212 -0
- package/packages/core/dist/config/registry.d.ts.map +1 -0
- package/packages/core/dist/config/registry.js +754 -0
- package/packages/core/dist/config/registry.js.map +1 -0
- package/packages/core/dist/config/schema.d.ts +4352 -0
- package/packages/core/dist/config/schema.d.ts.map +1 -0
- package/packages/core/dist/config/schema.js +267 -0
- package/packages/core/dist/config/schema.js.map +1 -0
- package/packages/core/dist/daemon.d.ts +7 -0
- package/packages/core/dist/daemon.d.ts.map +1 -0
- package/packages/core/dist/daemon.js +116 -0
- package/packages/core/dist/daemon.js.map +1 -0
- package/packages/core/dist/http-client-retry.d.ts +67 -0
- package/packages/core/dist/http-client-retry.d.ts.map +1 -0
- package/packages/core/dist/http-client-retry.js +133 -0
- package/packages/core/dist/http-client-retry.js.map +1 -0
- package/packages/core/dist/http-client-updated.d.ts +147 -0
- package/packages/core/dist/http-client-updated.d.ts.map +1 -0
- package/packages/core/dist/http-client-updated.js +452 -0
- package/packages/core/dist/http-client-updated.js.map +1 -0
- package/packages/core/dist/http-client.d.ts +207 -0
- package/packages/core/dist/http-client.d.ts.map +1 -0
- package/packages/core/dist/http-client.js +704 -0
- package/packages/core/dist/http-client.js.map +1 -0
- package/packages/core/dist/index.d.ts +13 -0
- package/packages/core/dist/index.d.ts.map +1 -0
- package/packages/core/dist/index.js +23 -0
- package/packages/core/dist/index.js.map +1 -0
- package/packages/core/dist/logging/index.d.ts +46 -0
- package/packages/core/dist/logging/index.d.ts.map +1 -0
- package/packages/core/dist/logging/index.js +74 -0
- package/packages/core/dist/logging/index.js.map +1 -0
- package/packages/core/dist/metrics/index.d.ts +339 -0
- package/packages/core/dist/metrics/index.d.ts.map +1 -0
- package/packages/core/dist/metrics/index.js +792 -0
- package/packages/core/dist/metrics/index.js.map +1 -0
- package/packages/core/dist/plugins/index.d.ts +49 -0
- package/packages/core/dist/plugins/index.d.ts.map +1 -0
- package/packages/core/dist/plugins/index.js +82 -0
- package/packages/core/dist/plugins/index.js.map +1 -0
- package/packages/core/dist/secrets/index.d.ts +6 -0
- package/packages/core/dist/secrets/index.d.ts.map +1 -0
- package/packages/core/dist/secrets/index.js +5 -0
- package/packages/core/dist/secrets/index.js.map +1 -0
- package/packages/core/dist/secrets/keyring.d.ts +54 -0
- package/packages/core/dist/secrets/keyring.d.ts.map +1 -0
- package/packages/core/dist/secrets/keyring.js +141 -0
- package/packages/core/dist/secrets/keyring.js.map +1 -0
- package/packages/core/dist/server/batch-executor.d.ts +83 -0
- package/packages/core/dist/server/batch-executor.d.ts.map +1 -0
- package/packages/core/dist/server/batch-executor.js +291 -0
- package/packages/core/dist/server/batch-executor.js.map +1 -0
- package/packages/core/dist/server/circuit-breaker.d.ts +215 -0
- package/packages/core/dist/server/circuit-breaker.d.ts.map +1 -0
- package/packages/core/dist/server/circuit-breaker.js +330 -0
- package/packages/core/dist/server/circuit-breaker.js.map +1 -0
- package/packages/core/dist/server/client-detection.d.ts +40 -0
- package/packages/core/dist/server/client-detection.d.ts.map +1 -0
- package/packages/core/dist/server/client-detection.js +242 -0
- package/packages/core/dist/server/client-detection.js.map +1 -0
- package/packages/core/dist/server/client-profiles.d.ts +102 -0
- package/packages/core/dist/server/client-profiles.d.ts.map +1 -0
- package/packages/core/dist/server/client-profiles.js +254 -0
- package/packages/core/dist/server/client-profiles.js.map +1 -0
- package/packages/core/dist/server/http.d.ts +386 -0
- package/packages/core/dist/server/http.d.ts.map +1 -0
- package/packages/core/dist/server/http.js +4253 -0
- package/packages/core/dist/server/http.js.map +1 -0
- package/packages/core/dist/server/index.d.ts +7 -0
- package/packages/core/dist/server/index.d.ts.map +1 -0
- package/packages/core/dist/server/index.js +6 -0
- package/packages/core/dist/server/index.js.map +1 -0
- package/packages/core/dist/server/manager.d.ts +458 -0
- package/packages/core/dist/server/manager.d.ts.map +1 -0
- package/packages/core/dist/server/manager.js +3255 -0
- package/packages/core/dist/server/manager.js.map +1 -0
- package/packages/core/dist/server/managers/HttpConnectionManager.d.ts +69 -0
- package/packages/core/dist/server/managers/HttpConnectionManager.d.ts.map +1 -0
- package/packages/core/dist/server/managers/HttpConnectionManager.js +214 -0
- package/packages/core/dist/server/managers/HttpConnectionManager.js.map +1 -0
- package/packages/core/dist/server/managers/ProcessManager.d.ts +128 -0
- package/packages/core/dist/server/managers/ProcessManager.d.ts.map +1 -0
- package/packages/core/dist/server/managers/ProcessManager.js +443 -0
- package/packages/core/dist/server/managers/ProcessManager.js.map +1 -0
- package/packages/core/dist/server/managers/SchemaCacheManager.d.ts +152 -0
- package/packages/core/dist/server/managers/SchemaCacheManager.d.ts.map +1 -0
- package/packages/core/dist/server/managers/SchemaCacheManager.js +426 -0
- package/packages/core/dist/server/managers/SchemaCacheManager.js.map +1 -0
- package/packages/core/dist/server/managers/index.d.ts +9 -0
- package/packages/core/dist/server/managers/index.d.ts.map +1 -0
- package/packages/core/dist/server/managers/index.js +9 -0
- package/packages/core/dist/server/managers/index.js.map +1 -0
- package/packages/core/dist/server/metrics.d.ts +134 -0
- package/packages/core/dist/server/metrics.d.ts.map +1 -0
- package/packages/core/dist/server/metrics.js +273 -0
- package/packages/core/dist/server/metrics.js.map +1 -0
- package/packages/core/dist/server/prompts.d.ts +58 -0
- package/packages/core/dist/server/prompts.d.ts.map +1 -0
- package/packages/core/dist/server/prompts.js +405 -0
- package/packages/core/dist/server/prompts.js.map +1 -0
- package/packages/core/dist/server/protocol-versions.d.ts +49 -0
- package/packages/core/dist/server/protocol-versions.d.ts.map +1 -0
- package/packages/core/dist/server/protocol-versions.js +173 -0
- package/packages/core/dist/server/protocol-versions.js.map +1 -0
- package/packages/core/dist/server/resources.d.ts +64 -0
- package/packages/core/dist/server/resources.d.ts.map +1 -0
- package/packages/core/dist/server/resources.js +243 -0
- package/packages/core/dist/server/resources.js.map +1 -0
- package/packages/core/dist/server/schema-store.d.ts +84 -0
- package/packages/core/dist/server/schema-store.d.ts.map +1 -0
- package/packages/core/dist/server/schema-store.js +234 -0
- package/packages/core/dist/server/schema-store.js.map +1 -0
- package/packages/core/dist/server/schema-validator.d.ts +51 -0
- package/packages/core/dist/server/schema-validator.d.ts.map +1 -0
- package/packages/core/dist/server/schema-validator.js +208 -0
- package/packages/core/dist/server/schema-validator.js.map +1 -0
- package/packages/core/dist/server/token-calculator.d.ts +44 -0
- package/packages/core/dist/server/token-calculator.d.ts.map +1 -0
- package/packages/core/dist/server/token-calculator.js +53 -0
- package/packages/core/dist/server/token-calculator.js.map +1 -0
- package/packages/core/dist/server/types.d.ts +45 -0
- package/packages/core/dist/server/types.d.ts.map +1 -0
- package/packages/core/dist/server/types.js +5 -0
- package/packages/core/dist/server/types.js.map +1 -0
- package/packages/core/dist/utils/file-lock.d.ts +73 -0
- package/packages/core/dist/utils/file-lock.d.ts.map +1 -0
- package/packages/core/dist/utils/file-lock.js +235 -0
- package/packages/core/dist/utils/file-lock.js.map +1 -0
- package/packages/core/package.json +36 -0
- package/packages/dashboard/dist/assets/index-B7hvkCMu.css +1 -0
- package/packages/dashboard/dist/assets/index-yZhLPpzr.js +1 -0
- package/packages/dashboard/dist/index.html +14 -0
- package/packages/dashboard/package.json +24 -0
- package/packages/shared/dist/version.d.ts +2 -0
- package/packages/shared/dist/version.d.ts.map +1 -0
- package/packages/shared/dist/version.js +2 -0
- package/packages/shared/dist/version.js.map +1 -0
- package/packages/shared/package.json +18 -0
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Prompts Module
|
|
3
|
+
*
|
|
4
|
+
* Provides built-in educational prompts for the Metalink 4-tool Speakeasy pattern.
|
|
5
|
+
* Implements MCP protocol prompts/list and prompts/get endpoints.
|
|
6
|
+
*
|
|
7
|
+
* v1.3.x: Consolidated to 2 documentation prompts (guide, safety).
|
|
8
|
+
* Executable skills are now provided via Claude Code user commands.
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Built-in prompt definitions
|
|
12
|
+
* v1.3.x: Consolidated to 2 documentation prompts
|
|
13
|
+
*/
|
|
14
|
+
const PROMPT_DEFINITIONS = [
|
|
15
|
+
{
|
|
16
|
+
name: 'guide',
|
|
17
|
+
description: 'Complete guide to using Metalink: the 4-tool workflow, searching, describing, and executing MCP tools',
|
|
18
|
+
arguments: [],
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
name: 'safety',
|
|
22
|
+
description: 'Understanding safe vs risky tool execution: when to use execute_tool vs execute_tool_confirm',
|
|
23
|
+
arguments: [],
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Prompt template generators
|
|
28
|
+
*/
|
|
29
|
+
const PROMPT_TEMPLATES = {
|
|
30
|
+
'guide': () => {
|
|
31
|
+
return {
|
|
32
|
+
description: 'Complete Metalink 4-Tool Workflow Guide',
|
|
33
|
+
messages: [
|
|
34
|
+
{
|
|
35
|
+
role: 'user',
|
|
36
|
+
content: {
|
|
37
|
+
type: 'text',
|
|
38
|
+
text: 'How do I use Metalink to access MCP tools?',
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
role: 'assistant',
|
|
43
|
+
content: {
|
|
44
|
+
type: 'text',
|
|
45
|
+
text: `# Metalink: Complete Guide
|
|
46
|
+
|
|
47
|
+
## Overview
|
|
48
|
+
|
|
49
|
+
Metalink uses a **4-tool Speakeasy pattern** for 97% token reduction:
|
|
50
|
+
- \`search_tools\` - Find tools across all MCP servers
|
|
51
|
+
- \`describe_tool\` - Get full schema and parameters
|
|
52
|
+
- \`execute_tool\` - Run safe (read-only) tools
|
|
53
|
+
- \`execute_tool_confirm\` - Run risky (write) tools with confirmation
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Step 1: Search for Tools
|
|
58
|
+
|
|
59
|
+
Find tools matching your needs:
|
|
60
|
+
|
|
61
|
+
\`\`\`json
|
|
62
|
+
search_tools({ "query": "memory" })
|
|
63
|
+
\`\`\`
|
|
64
|
+
|
|
65
|
+
**Results include:**
|
|
66
|
+
- \`server\`: Which MCP server provides the tool
|
|
67
|
+
- \`tool\`: Tool name
|
|
68
|
+
- \`safety\`: "safe" or "risky" (v1.3.x: top-level field)
|
|
69
|
+
- \`execute_with\`: "execute_tool" or "execute_tool_confirm"
|
|
70
|
+
- \`description\`: What the tool does
|
|
71
|
+
- \`annotations.safetyReason\`: Why it's classified that way
|
|
72
|
+
|
|
73
|
+
**Search strategies:**
|
|
74
|
+
- Keywords: \`"search"\`, \`"create"\`, \`"memory"\`, \`"file"\`
|
|
75
|
+
- Server-specific: \`search_tools({ "server_name": "memory" })\`
|
|
76
|
+
- Multi-word: \`"memory search"\` matches server AND tool name
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Step 2: Describe the Tool
|
|
81
|
+
|
|
82
|
+
Get complete schema before execution:
|
|
83
|
+
|
|
84
|
+
\`\`\`json
|
|
85
|
+
describe_tool({
|
|
86
|
+
"server_name": "memory",
|
|
87
|
+
"tool_name": "search_nodes"
|
|
88
|
+
})
|
|
89
|
+
\`\`\`
|
|
90
|
+
|
|
91
|
+
**Response includes:**
|
|
92
|
+
- \`inputSchema\`: Full JSON Schema for parameters
|
|
93
|
+
- \`requiredParams\`: List of required parameter names
|
|
94
|
+
- \`optionalParams\`: List of optional parameters
|
|
95
|
+
- \`example\`: Sample usage (if available)
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## Step 3: Execute the Tool
|
|
100
|
+
|
|
101
|
+
### For SAFE tools (read-only):
|
|
102
|
+
|
|
103
|
+
Check: \`safety: "safe"\` or \`execute_with: "execute_tool"\`
|
|
104
|
+
|
|
105
|
+
\`\`\`json
|
|
106
|
+
execute_tool({
|
|
107
|
+
"server_name": "memory",
|
|
108
|
+
"tool_name": "search_nodes",
|
|
109
|
+
"arguments": {
|
|
110
|
+
"query": "my search term"
|
|
111
|
+
}
|
|
112
|
+
})
|
|
113
|
+
\`\`\`
|
|
114
|
+
|
|
115
|
+
### For RISKY tools (write/modify):
|
|
116
|
+
|
|
117
|
+
Check: \`safety: "risky"\` or \`execute_with: "execute_tool_confirm"\`
|
|
118
|
+
|
|
119
|
+
\`\`\`json
|
|
120
|
+
execute_tool_confirm({
|
|
121
|
+
"server_name": "memory",
|
|
122
|
+
"tool_name": "create_entities",
|
|
123
|
+
"arguments": {
|
|
124
|
+
"entities": [{ "name": "Example", "entityType": "concept" }]
|
|
125
|
+
}
|
|
126
|
+
})
|
|
127
|
+
\`\`\`
|
|
128
|
+
|
|
129
|
+
User must approve before execution.
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Quick Reference
|
|
134
|
+
|
|
135
|
+
| Tool | Purpose | Safety |
|
|
136
|
+
|------|---------|--------|
|
|
137
|
+
| search_tools | Find tools | Always safe |
|
|
138
|
+
| describe_tool | Get schema | Always safe |
|
|
139
|
+
| execute_tool | Run tool | For safe tools only |
|
|
140
|
+
| execute_tool_confirm | Run tool | For risky tools |
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Common Patterns
|
|
145
|
+
|
|
146
|
+
**Memory/Knowledge:**
|
|
147
|
+
\`\`\`
|
|
148
|
+
search_tools({ "query": "memory" })
|
|
149
|
+
→ search_nodes, create_entities, add_observations
|
|
150
|
+
\`\`\`
|
|
151
|
+
|
|
152
|
+
**Web/Research:**
|
|
153
|
+
\`\`\`
|
|
154
|
+
search_tools({ "query": "search web" })
|
|
155
|
+
→ duckduckgo search, fetch content
|
|
156
|
+
\`\`\`
|
|
157
|
+
|
|
158
|
+
**Time/Utilities:**
|
|
159
|
+
\`\`\`
|
|
160
|
+
search_tools({ "query": "time" })
|
|
161
|
+
→ get_current_time
|
|
162
|
+
\`\`\`
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
## Error Handling
|
|
167
|
+
|
|
168
|
+
**Missing parameters:**
|
|
169
|
+
- Use describe_tool to see required fields
|
|
170
|
+
- Check the example in describe response
|
|
171
|
+
|
|
172
|
+
**Wrong safety level:**
|
|
173
|
+
- If execute_tool blocks a tool, it's risky
|
|
174
|
+
- Switch to execute_tool_confirm
|
|
175
|
+
|
|
176
|
+
**Pagination:**
|
|
177
|
+
- Add \`max_results: 10\` to limit results
|
|
178
|
+
- Add \`max_result_chars: 10000\` to limit response size
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Server-Level Safety (v1.3.x)
|
|
183
|
+
|
|
184
|
+
Servers can be configured as fully trusted:
|
|
185
|
+
|
|
186
|
+
\`\`\`json
|
|
187
|
+
{
|
|
188
|
+
"name": "memory",
|
|
189
|
+
"safety": "safe" // All tools from this server are safe
|
|
190
|
+
}
|
|
191
|
+
\`\`\`
|
|
192
|
+
|
|
193
|
+
Options:
|
|
194
|
+
- \`"safe"\`: All tools auto-approved
|
|
195
|
+
- \`"risky"\`: All tools need confirmation
|
|
196
|
+
- \`"default"\`: Per-tool classification (normal behavior)
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
This is everything you need to use Metalink effectively!`,
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
};
|
|
205
|
+
},
|
|
206
|
+
'safety': () => {
|
|
207
|
+
return {
|
|
208
|
+
description: 'Safe vs Risky Tool Execution Guide',
|
|
209
|
+
messages: [
|
|
210
|
+
{
|
|
211
|
+
role: 'user',
|
|
212
|
+
content: {
|
|
213
|
+
type: 'text',
|
|
214
|
+
text: 'When should I use execute_tool vs execute_tool_confirm?',
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
role: 'assistant',
|
|
219
|
+
content: {
|
|
220
|
+
type: 'text',
|
|
221
|
+
text: `# Understanding Tool Safety in Metalink
|
|
222
|
+
|
|
223
|
+
## The Two Execution Tools
|
|
224
|
+
|
|
225
|
+
### execute_tool (Auto-Approved)
|
|
226
|
+
For **safe, read-only** operations that don't modify state.
|
|
227
|
+
|
|
228
|
+
\`\`\`json
|
|
229
|
+
execute_tool({
|
|
230
|
+
"server_name": "memory",
|
|
231
|
+
"tool_name": "search_nodes",
|
|
232
|
+
"arguments": { "query": "test" }
|
|
233
|
+
})
|
|
234
|
+
\`\`\`
|
|
235
|
+
|
|
236
|
+
**Runs immediately without user confirmation.**
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
### execute_tool_confirm (Requires Confirmation)
|
|
241
|
+
For **risky, write** operations that modify state.
|
|
242
|
+
|
|
243
|
+
\`\`\`json
|
|
244
|
+
execute_tool_confirm({
|
|
245
|
+
"server_name": "memory",
|
|
246
|
+
"tool_name": "create_entities",
|
|
247
|
+
"arguments": { "entities": [...] }
|
|
248
|
+
})
|
|
249
|
+
\`\`\`
|
|
250
|
+
|
|
251
|
+
**User must approve before execution.**
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## How Safety is Determined
|
|
256
|
+
|
|
257
|
+
### 1. Search Results (v1.3.x - Top-Level Fields)
|
|
258
|
+
|
|
259
|
+
\`\`\`json
|
|
260
|
+
{
|
|
261
|
+
"tool": "create_entities",
|
|
262
|
+
"server": "memory",
|
|
263
|
+
"safety": "risky", // Top-level for easy access
|
|
264
|
+
"execute_with": "execute_tool_confirm", // Tells you which to use
|
|
265
|
+
"annotations": {
|
|
266
|
+
"safety": "risky",
|
|
267
|
+
"safetyReason": "Tool name matches risky pattern",
|
|
268
|
+
"requiresConfirmation": true
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
\`\`\`
|
|
272
|
+
|
|
273
|
+
### 2. Server-Level Safety (v1.3.x)
|
|
274
|
+
|
|
275
|
+
Servers can be configured as fully trusted:
|
|
276
|
+
|
|
277
|
+
| Config | Meaning |
|
|
278
|
+
|--------|---------|
|
|
279
|
+
| \`safety: "safe"\` | All tools from this server are safe |
|
|
280
|
+
| \`safety: "risky"\` | All tools need confirmation |
|
|
281
|
+
| \`safety: "default"\` | Use tool-level classification |
|
|
282
|
+
|
|
283
|
+
### 3. Tool Name Pattern Matching
|
|
284
|
+
|
|
285
|
+
**Safe patterns (execute_tool):**
|
|
286
|
+
- search, list, get, read, view, query, check, find, show, fetch
|
|
287
|
+
|
|
288
|
+
**Risky patterns (execute_tool_confirm):**
|
|
289
|
+
- create, update, delete, set, write, modify, remove, insert, add
|
|
290
|
+
|
|
291
|
+
### 4. Explicit Overrides
|
|
292
|
+
|
|
293
|
+
Some tools have explicit safe/risky overrides regardless of name:
|
|
294
|
+
- \`memory:*\` tools may be explicitly safe
|
|
295
|
+
- \`docs-server:*\` tools are explicitly safe
|
|
296
|
+
- External APIs default to risky
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## Safety Priority Order
|
|
301
|
+
|
|
302
|
+
1. **Server-level safety** (highest) - If server has \`safety: "safe"\`
|
|
303
|
+
2. **Explicit risky overrides** - Forced risky tools
|
|
304
|
+
3. **Explicit safe overrides** - Forced safe tools
|
|
305
|
+
4. **Argument inspection** - Some tools check argument content
|
|
306
|
+
5. **Risky name patterns** - create, update, delete, etc.
|
|
307
|
+
6. **Safe name patterns** - search, list, get, etc.
|
|
308
|
+
7. **Default: risky** - Unknown tools require confirmation
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## What Happens If You Use Wrong Tool?
|
|
313
|
+
|
|
314
|
+
### execute_tool on risky tool:
|
|
315
|
+
\`\`\`
|
|
316
|
+
Error: Tool memory:create_entities is classified as RISKY
|
|
317
|
+
Use 'execute_tool_confirm' instead.
|
|
318
|
+
Reason: Tool name matches risky pattern (create, update, delete, etc.)
|
|
319
|
+
\`\`\`
|
|
320
|
+
|
|
321
|
+
### execute_tool_confirm on safe tool:
|
|
322
|
+
Works fine, but unnecessary confirmation prompt.
|
|
323
|
+
|
|
324
|
+
---
|
|
325
|
+
|
|
326
|
+
## Best Practices
|
|
327
|
+
|
|
328
|
+
1. **Check \`execute_with\` field** in search results
|
|
329
|
+
2. **Use \`safety\` field** for quick classification
|
|
330
|
+
3. **When unsure, use execute_tool_confirm** - it's always safe
|
|
331
|
+
4. **Trust the error messages** - they tell you which to use
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## Examples
|
|
336
|
+
|
|
337
|
+
### Safe Tools (execute_tool):
|
|
338
|
+
- \`memory:search_nodes\` - searches, doesn't modify
|
|
339
|
+
- \`time:get_current_time\` - reads current time
|
|
340
|
+
- \`duckduckgo:search\` - web search
|
|
341
|
+
- \`docs-server:search_docs\` - documentation search
|
|
342
|
+
|
|
343
|
+
### Risky Tools (execute_tool_confirm):
|
|
344
|
+
- \`memory:create_entities\` - creates new data
|
|
345
|
+
- \`memory:delete_entities\` - removes data
|
|
346
|
+
- \`filesystem:write_file\` - modifies files
|
|
347
|
+
- \`database:execute\` - runs mutations
|
|
348
|
+
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## Quick Decision Flow
|
|
352
|
+
|
|
353
|
+
\`\`\`
|
|
354
|
+
1. Search for tool
|
|
355
|
+
2. Check "execute_with" field in results
|
|
356
|
+
3. If "execute_tool" → Use execute_tool
|
|
357
|
+
4. If "execute_tool_confirm" → Use execute_tool_confirm
|
|
358
|
+
5. If unsure → Use execute_tool_confirm (safe default)
|
|
359
|
+
\`\`\`
|
|
360
|
+
|
|
361
|
+
The safety classification protects against accidental data modification!`,
|
|
362
|
+
},
|
|
363
|
+
},
|
|
364
|
+
],
|
|
365
|
+
};
|
|
366
|
+
},
|
|
367
|
+
};
|
|
368
|
+
/**
|
|
369
|
+
* Get list of all available prompts
|
|
370
|
+
*
|
|
371
|
+
* @returns Array of prompt definitions for prompts/list response
|
|
372
|
+
*/
|
|
373
|
+
export function getPromptsList() {
|
|
374
|
+
return PROMPT_DEFINITIONS;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Get a specific prompt with arguments resolved
|
|
378
|
+
*
|
|
379
|
+
* @param name - Prompt identifier
|
|
380
|
+
* @param args - Argument key-value pairs
|
|
381
|
+
* @returns Rendered prompt with messages
|
|
382
|
+
* @throws Error if prompt not found or required arguments missing
|
|
383
|
+
*/
|
|
384
|
+
export function getPrompt(name, args = {}) {
|
|
385
|
+
// Validate prompt exists
|
|
386
|
+
const definition = PROMPT_DEFINITIONS.find(p => p.name === name);
|
|
387
|
+
if (!definition) {
|
|
388
|
+
throw new Error(`Prompt not found: ${name}`);
|
|
389
|
+
}
|
|
390
|
+
// Validate required arguments
|
|
391
|
+
const requiredArgs = definition.arguments?.filter(a => a.required) || [];
|
|
392
|
+
for (const arg of requiredArgs) {
|
|
393
|
+
if (!args[arg.name]) {
|
|
394
|
+
throw new Error(`Missing required argument: ${arg.name}`);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
// Get template function
|
|
398
|
+
const template = PROMPT_TEMPLATES[name];
|
|
399
|
+
if (!template) {
|
|
400
|
+
throw new Error(`Prompt template not implemented: ${name}`);
|
|
401
|
+
}
|
|
402
|
+
// Render and return
|
|
403
|
+
return template(args);
|
|
404
|
+
}
|
|
405
|
+
//# sourceMappingURL=prompts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/server/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqCH;;;GAGG;AACH,MAAM,kBAAkB,GAAuB;IAC7C;QACE,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,uGAAuG;QACpH,SAAS,EAAE,EAAE;KACd;IACD;QACE,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,8FAA8F;QAC3G,SAAS,EAAE,EAAE;KACd;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,gBAAgB,GAAqE;IACzF,OAAO,EAAE,GAAmB,EAAE;QAC5B,OAAO;YACL,WAAW,EAAE,yCAAyC;YACtD,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,4CAA4C;qBACnD;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yDA2JuC;qBAC9C;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAED,QAAQ,EAAE,GAAmB,EAAE;QAC7B,OAAO;YACL,WAAW,EAAE,oCAAoC;YACjD,QAAQ,EAAE;gBACR;oBACE,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,yDAAyD;qBAChE;iBACF;gBACD;oBACE,IAAI,EAAE,WAAW;oBACjB,OAAO,EAAE;wBACP,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yEA4IuD;qBAC9D;iBACF;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAA+B,EAAE;IACvE,yBAAyB;IACzB,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACjE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,8BAA8B;IAC9B,MAAM,YAAY,GAAG,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzE,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,oBAAoB;IACpB,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1.1.8: Protocol Versions Manager
|
|
3
|
+
* Manages MCP protocol version lifecycle and deprecation warnings
|
|
4
|
+
* Supports version tracking, EOL dates, and upgrade recommendations
|
|
5
|
+
*/
|
|
6
|
+
export interface ProtocolVersion {
|
|
7
|
+
version: string;
|
|
8
|
+
status: 'current' | 'deprecated' | 'legacy';
|
|
9
|
+
features: string[];
|
|
10
|
+
deprecatedDate?: Date;
|
|
11
|
+
eolDate?: Date;
|
|
12
|
+
upgradeTo?: string;
|
|
13
|
+
minorVersions?: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface ProtocolCompliance {
|
|
16
|
+
requestVersion: string;
|
|
17
|
+
status: 'compliant' | 'deprecated' | 'legacy' | 'unsupported';
|
|
18
|
+
isDeprecated: boolean;
|
|
19
|
+
isLegacy: boolean;
|
|
20
|
+
daysUntilEOL?: number;
|
|
21
|
+
eolDate?: Date;
|
|
22
|
+
upgradeTo?: string;
|
|
23
|
+
warningMessage?: string;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Check protocol compliance
|
|
27
|
+
*/
|
|
28
|
+
export declare function checkProtocolCompliance(requestVersion: string): ProtocolCompliance;
|
|
29
|
+
/**
|
|
30
|
+
* Get all protocol versions with status
|
|
31
|
+
*/
|
|
32
|
+
export declare function getAllProtocolVersions(): ProtocolVersion[];
|
|
33
|
+
/**
|
|
34
|
+
* Get current protocol version
|
|
35
|
+
*/
|
|
36
|
+
export declare function getCurrentProtocolVersion(): string;
|
|
37
|
+
/**
|
|
38
|
+
* Build response headers for protocol status
|
|
39
|
+
*/
|
|
40
|
+
export declare function buildProtocolHeaders(requestVersion: string): Record<string, string>;
|
|
41
|
+
/**
|
|
42
|
+
* Format protocol status for logging
|
|
43
|
+
*/
|
|
44
|
+
export declare function formatProtocolStatus(compliance: ProtocolCompliance): string;
|
|
45
|
+
/**
|
|
46
|
+
* Test helper: Create mock compliance result
|
|
47
|
+
*/
|
|
48
|
+
export declare function createMockCompliance(version: string, status: string): ProtocolCompliance;
|
|
49
|
+
//# sourceMappingURL=protocol-versions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-versions.d.ts","sourceRoot":"","sources":["../../src/server/protocol-versions.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,QAAQ,CAAC;IAC5C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,WAAW,GAAG,YAAY,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC9D,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,IAAI,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAiED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,CA4ClF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,eAAe,EAAE,CAE1D;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBnF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,kBAAkB,GAAG,MAAM,CAU3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,kBAAkB,CASxF"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* v1.1.8: Protocol Versions Manager
|
|
3
|
+
* Manages MCP protocol version lifecycle and deprecation warnings
|
|
4
|
+
* Supports version tracking, EOL dates, and upgrade recommendations
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Protocol version registry
|
|
8
|
+
*/
|
|
9
|
+
const PROTOCOL_VERSIONS = {
|
|
10
|
+
'2025-11-25': {
|
|
11
|
+
version: '2025-11-25',
|
|
12
|
+
status: 'current',
|
|
13
|
+
features: [
|
|
14
|
+
'JSON-RPC 2.0 compliance',
|
|
15
|
+
'Session management (30min timeout)',
|
|
16
|
+
'Batch requests (sequential/parallel/hybrid)',
|
|
17
|
+
'Tool schema caching',
|
|
18
|
+
'Server auto-start',
|
|
19
|
+
'Client capability detection',
|
|
20
|
+
'Protocol deprecation warnings',
|
|
21
|
+
'Response headers: MCP-Protocol-Version, Mcp-Session-Id',
|
|
22
|
+
'Streamable HTTP transport'
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
'2025-06-18': {
|
|
26
|
+
version: '2025-06-18',
|
|
27
|
+
status: 'current',
|
|
28
|
+
features: [
|
|
29
|
+
'JSON-RPC 2.0 compliance',
|
|
30
|
+
'Session management (30min timeout)',
|
|
31
|
+
'Batch requests (sequential/parallel/hybrid)',
|
|
32
|
+
'Tool schema caching',
|
|
33
|
+
'Server auto-start',
|
|
34
|
+
'Client capability detection',
|
|
35
|
+
'Protocol deprecation warnings',
|
|
36
|
+
'Response headers: MCP-Protocol-Version, Mcp-Session-Id'
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
'2025-03-26': {
|
|
40
|
+
version: '2025-03-26',
|
|
41
|
+
status: 'deprecated',
|
|
42
|
+
deprecatedDate: new Date('2025-11-22'),
|
|
43
|
+
eolDate: new Date('2026-06-01'),
|
|
44
|
+
upgradeTo: '2025-11-25',
|
|
45
|
+
features: [
|
|
46
|
+
'JSON-RPC 2.0 compliance',
|
|
47
|
+
'Session management',
|
|
48
|
+
'Tool schema caching',
|
|
49
|
+
'Server auto-start'
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
'2024-11-05': {
|
|
53
|
+
version: '2024-11-05',
|
|
54
|
+
status: 'legacy',
|
|
55
|
+
deprecatedDate: new Date('2025-06-01'),
|
|
56
|
+
eolDate: new Date('2025-12-01'),
|
|
57
|
+
upgradeTo: '2025-11-25',
|
|
58
|
+
features: [
|
|
59
|
+
'JSON-RPC 2.0 basic support',
|
|
60
|
+
'Tool list endpoint',
|
|
61
|
+
'Tool execution'
|
|
62
|
+
]
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
/**
|
|
66
|
+
* Check protocol compliance
|
|
67
|
+
*/
|
|
68
|
+
export function checkProtocolCompliance(requestVersion) {
|
|
69
|
+
const versionInfo = PROTOCOL_VERSIONS[requestVersion];
|
|
70
|
+
if (!versionInfo) {
|
|
71
|
+
return {
|
|
72
|
+
requestVersion,
|
|
73
|
+
status: 'unsupported',
|
|
74
|
+
isDeprecated: false,
|
|
75
|
+
isLegacy: false,
|
|
76
|
+
upgradeTo: '2025-11-25',
|
|
77
|
+
warningMessage: `Protocol version ${requestVersion} is not supported. Current version: 2025-11-25`
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
const now = new Date();
|
|
81
|
+
const daysUntilEOL = versionInfo.eolDate
|
|
82
|
+
? Math.ceil((versionInfo.eolDate.getTime() - now.getTime()) / (1000 * 60 * 60 * 24))
|
|
83
|
+
: undefined;
|
|
84
|
+
let status = 'compliant';
|
|
85
|
+
let warningMessage;
|
|
86
|
+
if (versionInfo.status === 'deprecated') {
|
|
87
|
+
status = 'deprecated';
|
|
88
|
+
warningMessage = `Protocol version ${requestVersion} is deprecated as of ${versionInfo.deprecatedDate?.toISOString().split('T')[0]}. ` +
|
|
89
|
+
`EOL: ${versionInfo.eolDate?.toISOString().split('T')[0]}. ` +
|
|
90
|
+
`Please upgrade to ${versionInfo.upgradeTo}`;
|
|
91
|
+
}
|
|
92
|
+
else if (versionInfo.status === 'legacy') {
|
|
93
|
+
status = 'legacy';
|
|
94
|
+
warningMessage = `Protocol version ${requestVersion} is legacy (deprecated since ${versionInfo.deprecatedDate?.toISOString().split('T')[0]}). ` +
|
|
95
|
+
`EOL: ${versionInfo.eolDate?.toISOString().split('T')[0]}. ` +
|
|
96
|
+
`URGENT: Upgrade to ${versionInfo.upgradeTo}`;
|
|
97
|
+
}
|
|
98
|
+
return {
|
|
99
|
+
requestVersion,
|
|
100
|
+
status,
|
|
101
|
+
isDeprecated: versionInfo.status === 'deprecated',
|
|
102
|
+
isLegacy: versionInfo.status === 'legacy',
|
|
103
|
+
daysUntilEOL,
|
|
104
|
+
eolDate: versionInfo.eolDate,
|
|
105
|
+
upgradeTo: versionInfo.upgradeTo,
|
|
106
|
+
warningMessage
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Get all protocol versions with status
|
|
111
|
+
*/
|
|
112
|
+
export function getAllProtocolVersions() {
|
|
113
|
+
return Object.values(PROTOCOL_VERSIONS);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Get current protocol version
|
|
117
|
+
*/
|
|
118
|
+
export function getCurrentProtocolVersion() {
|
|
119
|
+
return '2025-11-25';
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Build response headers for protocol status
|
|
123
|
+
*/
|
|
124
|
+
export function buildProtocolHeaders(requestVersion) {
|
|
125
|
+
const compliance = checkProtocolCompliance(requestVersion);
|
|
126
|
+
const headers = {
|
|
127
|
+
'MCP-Protocol-Version': getCurrentProtocolVersion()
|
|
128
|
+
};
|
|
129
|
+
if (compliance.isDeprecated) {
|
|
130
|
+
headers['X-MetaLink-Protocol-Status'] = 'deprecated';
|
|
131
|
+
if (compliance.daysUntilEOL !== undefined) {
|
|
132
|
+
headers['X-MetaLink-Protocol-EOL'] = compliance.eolDate?.toISOString().split('T')[0] || '';
|
|
133
|
+
}
|
|
134
|
+
headers['X-MetaLink-Upgrade-Available'] = compliance.upgradeTo || '';
|
|
135
|
+
}
|
|
136
|
+
else if (compliance.isLegacy) {
|
|
137
|
+
headers['X-MetaLink-Protocol-Status'] = 'legacy';
|
|
138
|
+
headers['X-MetaLink-Protocol-EOL'] = compliance.eolDate?.toISOString().split('T')[0] || '';
|
|
139
|
+
headers['X-MetaLink-Upgrade-Available'] = compliance.upgradeTo || '';
|
|
140
|
+
}
|
|
141
|
+
return headers;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Format protocol status for logging
|
|
145
|
+
*/
|
|
146
|
+
export function formatProtocolStatus(compliance) {
|
|
147
|
+
if (compliance.status === 'compliant') {
|
|
148
|
+
return `✅ Protocol ${compliance.requestVersion} compliant`;
|
|
149
|
+
}
|
|
150
|
+
else if (compliance.status === 'deprecated') {
|
|
151
|
+
return `⚠️ Protocol ${compliance.requestVersion} deprecated (EOL in ${compliance.daysUntilEOL} days)`;
|
|
152
|
+
}
|
|
153
|
+
else if (compliance.status === 'legacy') {
|
|
154
|
+
return `🔴 Protocol ${compliance.requestVersion} legacy (EOL in ${compliance.daysUntilEOL} days, UPGRADE REQUIRED)`;
|
|
155
|
+
}
|
|
156
|
+
else {
|
|
157
|
+
return `❌ Protocol ${compliance.requestVersion} unsupported`;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Test helper: Create mock compliance result
|
|
162
|
+
*/
|
|
163
|
+
export function createMockCompliance(version, status) {
|
|
164
|
+
return {
|
|
165
|
+
requestVersion: version,
|
|
166
|
+
status: status,
|
|
167
|
+
isDeprecated: status === 'deprecated',
|
|
168
|
+
isLegacy: status === 'legacy',
|
|
169
|
+
daysUntilEOL: status === 'deprecated' ? 180 : 0,
|
|
170
|
+
upgradeTo: status === 'deprecated' || status === 'legacy' ? '2025-11-25' : undefined
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=protocol-versions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol-versions.js","sourceRoot":"","sources":["../../src/server/protocol-versions.ts"],"names":[],"mappings":"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"}
|