@continuumdao/continuum-node-sdk 1.3.1 → 1.3.3
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/core/mpc/mpa-billing-helpers.d.ts +39 -0
- package/dist/core/mpc/mpa-billing-helpers.d.ts.map +1 -0
- package/dist/core/mpc/mpa-billing-helpers.js +57 -0
- package/dist/core/mpc/mpa-billing-helpers.js.map +1 -0
- package/dist/core/mpc/mpa-billing-ops.d.ts +2 -11
- package/dist/core/mpc/mpa-billing-ops.d.ts.map +1 -1
- package/dist/core/mpc/mpa-billing-ops.js +28 -12
- package/dist/core/mpc/mpa-billing-ops.js.map +1 -1
- package/dist/core/mpc/mpa-fee-status.d.ts +63 -0
- package/dist/core/mpc/mpa-fee-status.d.ts.map +1 -0
- package/dist/core/mpc/mpa-fee-status.js +431 -0
- package/dist/core/mpc/mpa-fee-status.js.map +1 -0
- package/dist/core/mpc/mpa-top-up.d.ts +2 -12
- package/dist/core/mpc/mpa-top-up.d.ts.map +1 -1
- package/dist/core/mpc/mpa-top-up.js +35 -77
- package/dist/core/mpc/mpa-top-up.js.map +1 -1
- package/dist/core/mpc/schemas.d.ts +20 -0
- package/dist/core/mpc/schemas.d.ts.map +1 -1
- package/dist/core/mpc/schemas.js +20 -0
- package/dist/core/mpc/schemas.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/index.d.ts +1 -1
- package/dist/mcp/index.d.ts.map +1 -1
- package/dist/mcp/index.js +1 -1
- package/dist/mcp/index.js.map +1 -1
- package/dist/mcp/mpc.d.ts.map +1 -1
- package/dist/mcp/mpc.js +4 -4
- package/dist/mcp/mpc.js.map +1 -1
- package/dist/mcp/register.d.ts +2 -2
- package/dist/mcp/register.d.ts.map +1 -1
- package/dist/mcp/register.js +2 -8
- package/dist/mcp/register.js.map +1 -1
- package/dist/mcp/resources/mpc.md +8 -8
- package/dist/mcp/resources/overview.md +2 -1
- package/dist/mcp/resources/technical-indicators.md +4 -2
- package/dist/mcp/resources/vpn.md +3 -1
- package/dist/mcp/server/http-transport.d.ts +6 -3
- package/dist/mcp/server/http-transport.d.ts.map +1 -1
- package/dist/mcp/server/http-transport.js +38 -19
- package/dist/mcp/server/http-transport.js.map +1 -1
- package/dist/mcp/server/index.js +10 -1
- package/dist/mcp/server/index.js.map +1 -1
- package/dist/mcp/vpn.d.ts +3 -1
- package/dist/mcp/vpn.d.ts.map +1 -1
- package/dist/mcp/vpn.js +18 -0
- package/dist/mcp/vpn.js.map +1 -1
- package/package.json +1 -1
|
@@ -63,17 +63,17 @@ Shared optional fields on most create inputs: `purpose`, `useCustomGas`, `starti
|
|
|
63
63
|
### MPA wallet (Linea)
|
|
64
64
|
|
|
65
65
|
- `get_mpa_wallet_status`
|
|
66
|
-
- Read MPA
|
|
66
|
+
- Read MPA KeyGen billing status (node `/getFeeStatusByKeyGenId` merged with on-chain subscription).
|
|
67
67
|
- Input: `keyGenId`.
|
|
68
|
-
- Returns registration
|
|
68
|
+
- Returns registration, credit pool (`remainingDeposit`, `remainingDepositWei`), monthly fee, `fundedForCurrentMonth`, signing credits, and pay-month hints (`canPayMonthFromCredit`, `payMonthDisabledReason`).
|
|
69
69
|
- `create_mpa_top_up_multi_sign_request`
|
|
70
70
|
- Create batch `multiSignRequest` (USDC `approve` on Linea fee token when needed + `deposit(string,string,uint256,uint256)` with deposit-only sentinel) to top up MPA KeyGen credits on Linea.
|
|
71
|
-
- Input: `keyGenId`, `amountWei`; optional shared fields.
|
|
72
|
-
- Fee token must be on the KeyGen executor.
|
|
71
|
+
- Input: `keyGenId`, `amountWei`; optional `activateBillingMonthAfterDeposit` (append `syncBilling` when month inactive and post-deposit pool covers monthly fee), shared fields.
|
|
72
|
+
- Fee token must be on the KeyGen executor. By default does not activate the billing month.
|
|
73
73
|
- `create_mpa_sync_billing_multi_sign_request`
|
|
74
|
-
-
|
|
74
|
+
- Pay/activate the current KeyGen billing month from the existing credit pool via `syncBilling(string,string,uint256)`.
|
|
75
75
|
- Input: `keyGenId`; optional `globalNonce`, shared fields.
|
|
76
|
-
- Uses node-reported global nonce or chain pending nonce when `globalNonce` is omitted.
|
|
76
|
+
- Requires inactive billing month and credit pool >= monthly fee. Uses node-reported global nonce or chain pending nonce when `globalNonce` is omitted.
|
|
77
77
|
- `create_mpa_overage_purchase_multi_sign_request`
|
|
78
78
|
- Purchase extra signing credits via `purchaseOverageSignatures(string,string,uint256)` after the billing month is active.
|
|
79
79
|
- Input: `keyGenId`, `signatureCount`; optional shared fields.
|
|
@@ -90,9 +90,9 @@ Shared optional fields on most create inputs: `purpose`, `useCustomGas`, `starti
|
|
|
90
90
|
- Input: `keyGenId`, `hostIpAddress`; optional `nodeKey`, shared fields.
|
|
91
91
|
- KeyGen executor must be the VPN withdraw authority.
|
|
92
92
|
- `get_mpa_vpn_status`
|
|
93
|
-
- Read
|
|
93
|
+
- Read VPN MPA billing status (node `/getVpnFeeStatus` merged with on-chain subscription).
|
|
94
94
|
- Input: `hostIpAddress`; optional `nodeKey`.
|
|
95
|
-
- Returns
|
|
95
|
+
- Returns `vpnBillingRegistered`, `vpnBillingMonthActive`, credit pool, monthly fee, and pay-month hints (`canPayMonthFromCredit`, `payMonthDisabledReason`).
|
|
96
96
|
|
|
97
97
|
### Sign request lifecycle
|
|
98
98
|
|
|
@@ -19,7 +19,8 @@ This server helps an MCP client operate a Continuum node through safe, structure
|
|
|
19
19
|
- Manage the token registry (`get_token_registry`, `add_to_token_registry`, `remove_from_token_registry`).
|
|
20
20
|
- Manage the chain registry (`get_chain_registry`, `add_to_chain_registry`, `remove_from_chain_registry`).
|
|
21
21
|
- Manage agent MCP servers on the node (`list_mcp_servers`, `add_mcp_server_from_catalog`, `get_mcp_server`, `add_mcp_server`, `remove_mcp_server`) — see `agent-mcp-servers.md`.
|
|
22
|
-
-
|
|
22
|
+
- Optional **Technical indicators** MCP (catalog id `technical-indicators`, not loaded by default): add from catalog and enable **Initial load** when needed — `list_technical_indicators`, `calculate_technical_indicator`.
|
|
23
|
+
- Optional **VPN** MCP (catalog id `vpn`, not loaded by default): admin WireGuard and peer egress tools — add from catalog and enable **Initial load** when needed. MPA VPN billing multisign tools remain on this server (`mpc.md`).
|
|
23
24
|
- Provide signed management route tools that handle signing internally (never expose manual signing/plan steps to clients).
|
|
24
25
|
|
|
25
26
|
## Common node-operator loop
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
# Technical indicators (
|
|
1
|
+
# Technical indicators (opt-in MCP)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Catalog id **`technical-indicators`**: HTTP endpoint on **continuum-mcp** (`/mcp/ta`), **`initialLoad: false`** by default — add from the node MCP catalog and enable **Initial load** when you want these tools in a session.
|
|
4
|
+
|
|
5
|
+
Tools wrapping [fast-technical-indicators](https://www.npmjs.com/package/fast-technical-indicators). Call **`list_technical_indicators`** first to see required input profiles, then **`calculate_technical_indicator`**.
|
|
4
6
|
|
|
5
7
|
## Input profiles
|
|
6
8
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
# VPN (admin + egress)
|
|
1
|
+
# VPN (admin + egress, opt-in MCP)
|
|
2
|
+
|
|
3
|
+
Catalog id **`vpn`**: HTTP endpoint on **continuum-mcp** (`/mcp/vpn`), **`initialLoad: false`** by default — add from the node MCP catalog and enable **Initial load** when you want these tools in a session. MPA VPN billing multisign tools (`register_vpn_on_linea`, etc.) stay on the main **continuum** MCP server — see `mpc.md`.
|
|
2
4
|
|
|
3
5
|
WireGuard admin VPN and peer egress flows on the attached node. Read tools use GET management API routes; write and download tools POST management-signed bodies with the preferred Ed25519 management key (same as agent skills and cron jobs).
|
|
4
6
|
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
export type CreateMcpServer = () => McpServer;
|
|
3
|
+
export type HttpMcpRoute = {
|
|
4
|
+
path: string;
|
|
5
|
+
createServer: CreateMcpServer;
|
|
6
|
+
};
|
|
3
7
|
export type HttpTransportOptions = {
|
|
4
8
|
host?: string;
|
|
5
9
|
port?: number;
|
|
6
|
-
path?: string;
|
|
7
10
|
};
|
|
8
|
-
export declare function startHttpTransportServer(
|
|
9
|
-
|
|
11
|
+
export declare function startHttpTransportServer(routes: HttpMcpRoute | HttpMcpRoute[], options?: HttpTransportOptions): Promise<{
|
|
12
|
+
urls: URL[];
|
|
10
13
|
close: () => Promise<void>;
|
|
11
14
|
}>;
|
|
12
15
|
//# sourceMappingURL=http-transport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAMvE,MAAM,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"http-transport.d.ts","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAMvE,MAAM,MAAM,eAAe,GAAG,MAAM,SAAS,CAAC;AAE9C,MAAM,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,eAAe,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IAClC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AA0IF,wBAAsB,wBAAwB,CAC7C,MAAM,EAAE,YAAY,GAAG,YAAY,EAAE,EACrC,OAAO,GAAE,oBAAyB,GAChC,OAAO,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAC,CAAC,CA8DpD"}
|
|
@@ -5,15 +5,12 @@ import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js';
|
|
|
5
5
|
function resolveHttpOptions(options = {}) {
|
|
6
6
|
const host = options.host ?? process.env['MCP_HTTP_HOST'] ?? '127.0.0.1';
|
|
7
7
|
const port = Number(process.env['MCP_HTTP_PORT'] ?? process.env['MCP_PORT'] ?? '3000');
|
|
8
|
-
const path = options.path ?? process.env['MCP_HTTP_PATH'] ?? '/mcp';
|
|
9
8
|
if (!Number.isInteger(port) || port <= 0 || port > 65_535) {
|
|
10
9
|
throw new Error(`Invalid MCP HTTP port: ${String(port)}`);
|
|
11
10
|
}
|
|
12
|
-
return { host, port
|
|
11
|
+
return { host, port };
|
|
13
12
|
}
|
|
14
|
-
|
|
15
|
-
const { host, port, path } = resolveHttpOptions(options);
|
|
16
|
-
const app = createMcpExpressApp({ host });
|
|
13
|
+
function createMcpRouteHandlers(createServer) {
|
|
17
14
|
const transports = {};
|
|
18
15
|
const mcpPostHandler = async (req, res) => {
|
|
19
16
|
const sessionIdHeader = req.headers['mcp-session-id'];
|
|
@@ -100,10 +97,36 @@ export async function startHttpTransportServer(createServer, options = {}) {
|
|
|
100
97
|
}
|
|
101
98
|
}
|
|
102
99
|
};
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
100
|
+
const closeTransports = async () => {
|
|
101
|
+
for (const activeSessionId of Object.keys(transports)) {
|
|
102
|
+
try {
|
|
103
|
+
await transports[activeSessionId].close();
|
|
104
|
+
delete transports[activeSessionId];
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
console.error(`Error closing transport for session ${activeSessionId}:`, error);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
return { mcpPostHandler, mcpGetHandler, mcpDeleteHandler, closeTransports };
|
|
112
|
+
}
|
|
113
|
+
export async function startHttpTransportServer(routes, options = {}) {
|
|
114
|
+
const routeList = Array.isArray(routes) ? routes : [routes];
|
|
115
|
+
if (routeList.length === 0) {
|
|
116
|
+
throw new Error('At least one MCP HTTP route is required');
|
|
117
|
+
}
|
|
118
|
+
const { host, port } = resolveHttpOptions(options);
|
|
119
|
+
const app = createMcpExpressApp({ host });
|
|
120
|
+
const closeHandlers = [];
|
|
121
|
+
const urls = [];
|
|
122
|
+
for (const route of routeList) {
|
|
123
|
+
const { mcpPostHandler, mcpGetHandler, mcpDeleteHandler, closeTransports } = createMcpRouteHandlers(route.createServer);
|
|
124
|
+
app.post(route.path, mcpPostHandler);
|
|
125
|
+
app.get(route.path, mcpGetHandler);
|
|
126
|
+
app.delete(route.path, mcpDeleteHandler);
|
|
127
|
+
closeHandlers.push(closeTransports);
|
|
128
|
+
urls.push(new URL(`http://${host}:${port}${route.path}`));
|
|
129
|
+
}
|
|
107
130
|
const httpServer = await new Promise((resolve, reject) => {
|
|
108
131
|
const listener = app.listen(port, host, (error) => {
|
|
109
132
|
if (error) {
|
|
@@ -113,16 +136,12 @@ export async function startHttpTransportServer(createServer, options = {}) {
|
|
|
113
136
|
resolve(listener);
|
|
114
137
|
});
|
|
115
138
|
});
|
|
116
|
-
|
|
139
|
+
for (const url of urls) {
|
|
140
|
+
console.error(`Continuum MCP Server listening on ${url.toString()}`);
|
|
141
|
+
}
|
|
117
142
|
const close = async () => {
|
|
118
|
-
for (const
|
|
119
|
-
|
|
120
|
-
await transports[activeSessionId].close();
|
|
121
|
-
delete transports[activeSessionId];
|
|
122
|
-
}
|
|
123
|
-
catch (error) {
|
|
124
|
-
console.error(`Error closing transport for session ${activeSessionId}:`, error);
|
|
125
|
-
}
|
|
143
|
+
for (const closeTransports of closeHandlers) {
|
|
144
|
+
await closeTransports();
|
|
126
145
|
}
|
|
127
146
|
await new Promise((resolve, reject) => {
|
|
128
147
|
httpServer.close(error => {
|
|
@@ -141,6 +160,6 @@ export async function startHttpTransportServer(createServer, options = {}) {
|
|
|
141
160
|
};
|
|
142
161
|
process.on('SIGINT', shutdown);
|
|
143
162
|
process.on('SIGTERM', shutdown);
|
|
144
|
-
return {
|
|
163
|
+
return { urls, close };
|
|
145
164
|
}
|
|
146
165
|
//# sourceMappingURL=http-transport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAC,mBAAmB,EAAC,MAAM,6CAA6C,CAAC;AAChF,OAAO,EAAC,6BAA6B,EAAC,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAAC,mBAAmB,EAAC,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"http-transport.js","sourceRoot":"","sources":["../../../src/mcp/server/http-transport.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/server/index.js
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
1
1
|
import { createContinuumMcpServer } from '../register.js';
|
|
2
|
+
import { createTaMcpServer } from '../ta/register.js';
|
|
3
|
+
import { createVpnMcpServer } from '../vpn.js';
|
|
2
4
|
import { nodeSdkConfigFromEnv } from './config-from-env.js';
|
|
3
5
|
import { startHttpTransportServer } from './http-transport.js';
|
|
4
6
|
async function main() {
|
|
5
7
|
const config = nodeSdkConfigFromEnv();
|
|
6
|
-
|
|
8
|
+
const mainPath = process.env['MCP_HTTP_PATH'] ?? '/mcp';
|
|
9
|
+
const taPath = process.env['MCP_HTTP_TA_PATH'] ?? '/mcp/ta';
|
|
10
|
+
const vpnPath = process.env['MCP_HTTP_VPN_PATH'] ?? '/mcp/vpn';
|
|
11
|
+
await startHttpTransportServer([
|
|
12
|
+
{ path: mainPath, createServer: () => createContinuumMcpServer(config) },
|
|
13
|
+
{ path: taPath, createServer: () => createTaMcpServer() },
|
|
14
|
+
{ path: vpnPath, createServer: () => createVpnMcpServer(config) },
|
|
15
|
+
]);
|
|
7
16
|
}
|
|
8
17
|
main().catch(error => {
|
|
9
18
|
console.error('Fatal error in main():', error);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAE7D,KAAK,UAAU,IAAI;IAClB,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,wBAAwB,CAAC,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mcp/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,iBAAiB,EAAC,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAC,kBAAkB,EAAC,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAC,oBAAoB,EAAC,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAC,wBAAwB,EAAC,MAAM,qBAAqB,CAAC;AAE7D,KAAK,UAAU,IAAI;IAClB,MAAM,MAAM,GAAG,oBAAoB,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,MAAM,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,UAAU,CAAC;IAE/D,MAAM,wBAAwB,CAAC;QAC9B,EAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,wBAAwB,CAAC,MAAM,CAAC,EAAC;QACtE,EAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,EAAC;QACvD,EAAC,IAAI,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAC;KAC/D,CAAC,CAAC;AACJ,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;IACpB,OAAO,CAAC,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC,CAAC"}
|
package/dist/mcp/vpn.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
2
|
import type { NodeSdkConfig } from '../config/schema.js';
|
|
3
3
|
export declare function registerVpnTools(server: McpServer, config: NodeSdkConfig): void;
|
|
4
|
+
export declare function registerVpnResources(server: McpServer): void;
|
|
5
|
+
export declare function createVpnMcpServer(config: NodeSdkConfig): McpServer;
|
|
4
6
|
//# sourceMappingURL=vpn.d.ts.map
|
package/dist/mcp/vpn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vpn.d.ts","sourceRoot":"","sources":["../../src/mcp/vpn.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"vpn.d.ts","sourceRoot":"","sources":["../../src/mcp/vpn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,yCAAyC,CAAC;AAElE,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,qBAAqB,CAAC;AA+DvD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,GAAG,IAAI,CA8G/E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAO5D;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,CAiBnE"}
|
package/dist/mcp/vpn.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
1
2
|
import { z } from 'zod';
|
|
2
3
|
import { getVpnStatus, setVpnEnabled, downloadVpnAdminClientConfig } from '../core/vpn/vpn-admin.js';
|
|
3
4
|
import { getVpnEgressStatus, listVpnEgressExits, setVpnEgressSharing, revokeVpnEgressPeer, downloadVpnEgressClientConfig, } from '../core/vpn/vpn-egress.js';
|
|
4
5
|
import { DownloadVpnAdminClientConfigInputSchema, DownloadVpnEgressClientConfigInputSchema, ListVpnEgressExitsOutputSchema, RevokeVpnEgressPeerInputSchema, SetVpnEgressSharingInputSchema, SetVpnEnabledInputSchema, VpnDownloadOutputSchema, VpnEgressStatusSchema, VpnSignedActionOutputSchema, VpnStatusSchema, } from '../core/vpn/schemas.js';
|
|
6
|
+
import { registerMcpMarkdownResource } from './mcp-resources.js';
|
|
5
7
|
import { camelToSnake, sdkResultToCallToolResult, wrapSdk } from './tool-utils.js';
|
|
6
8
|
function summarizeVpnStatus(status) {
|
|
7
9
|
return {
|
|
@@ -104,4 +106,20 @@ export function registerVpnTools(server, config) {
|
|
|
104
106
|
outputSchema: VpnDownloadOutputSchema,
|
|
105
107
|
}, async (input) => wrapSdk(downloadVpnEgressClientConfig(config, input)));
|
|
106
108
|
}
|
|
109
|
+
export function registerVpnResources(server) {
|
|
110
|
+
registerMcpMarkdownResource(server, 'vpn_docs', 'vpn.md', 'Admin VPN and peer egress: enable/disable, client configs, sharing, revoke.');
|
|
111
|
+
}
|
|
112
|
+
export function createVpnMcpServer(config) {
|
|
113
|
+
const server = new McpServer({
|
|
114
|
+
name: 'continuum-vpn-mcp',
|
|
115
|
+
version: '1.0.0',
|
|
116
|
+
}, {
|
|
117
|
+
capabilities: {
|
|
118
|
+
tools: {},
|
|
119
|
+
},
|
|
120
|
+
});
|
|
121
|
+
registerVpnTools(server, config);
|
|
122
|
+
registerVpnResources(server);
|
|
123
|
+
return server;
|
|
124
|
+
}
|
|
107
125
|
//# sourceMappingURL=vpn.js.map
|
package/dist/mcp/vpn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vpn.js","sourceRoot":"","sources":["../../src/mcp/vpn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vpn.js","sourceRoot":"","sources":["../../src/mcp/vpn.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED