@otwa/mcp-server 0.3.0 → 0.4.0
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/CHANGELOG.md +9 -0
- package/README.md +33 -4
- package/dist/http/index.js +40 -2
- package/dist/http/index.js.map +1 -1
- package/dist/tools/servers.js +81 -0
- package/dist/tools/servers.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.4.0 — 2026-05-31
|
|
4
|
+
|
|
5
|
+
- **New: server snapshots.** Four tools for the full snapshot lifecycle, backed by real vSphere snapshots:
|
|
6
|
+
- `otwa_list_snapshots` (scope: `servers:read`) — list a server's point-in-time disk snapshots.
|
|
7
|
+
- `otwa_create_snapshot` (scope: `servers:write`) — capture a disk snapshot (max 10/server).
|
|
8
|
+
- `otwa_revert_snapshot` (scope: `servers:destroy`) — roll the disk back to a snapshot. DESTRUCTIVE; guarded by `confirm` + `iAcknowledgeDataLoss` + an `expectedLabel` typo-guard (same pattern as `otwa_destroy_server`).
|
|
9
|
+
- `otwa_delete_snapshot` (scope: `servers:write`) — remove a snapshot; non-destructive to live data, single `confirm` flag.
|
|
10
|
+
- Brings the toolset to 30 tools.
|
|
11
|
+
|
|
3
12
|
## 0.3.0 — 2026-05-26
|
|
4
13
|
|
|
5
14
|
- **🔧 Fix: default API base now includes `/api` global-prefix** (`https://api.otwa.cloud/api`). otwa-cloud-api uses NestJS `setGlobalPrefix('api')` so every endpoint is under `/api/v1/*`. v0.1.x + v0.2.0 shipped with the prefix missing — every stdio tool call 404'd. Latent bug closed.
|
package/README.md
CHANGED
|
@@ -31,11 +31,36 @@ Claude → calls otwa_list_products, otwa_list_os_templates, otwa_list_regions
|
|
|
31
31
|
|
|
32
32
|
```
|
|
33
33
|
URL: https://mcp.otwa.cloud/mcp
|
|
34
|
-
Auth: Authorization: Bearer
|
|
34
|
+
Auth: Authorization: Bearer otwa_… (API key)
|
|
35
|
+
OR Authorization: Bearer otwa_at_… (OAuth 2.0 device-code, RFC 8628)
|
|
35
36
|
Health: GET https://mcp.otwa.cloud/healthz
|
|
36
37
|
```
|
|
37
38
|
|
|
38
|
-
The hosted server is stateless — every request is authenticated independently
|
|
39
|
+
The hosted server is stateless — every request is authenticated independently. No session state lives on `mcp.otwa.cloud`, so a leaked session id is useless. Both API keys and OAuth tokens are first-class — pick what your client supports.
|
|
40
|
+
|
|
41
|
+
### OAuth 2.0 device-code flow
|
|
42
|
+
|
|
43
|
+
Spec-compliant MCP clients can discover authorization automatically:
|
|
44
|
+
|
|
45
|
+
| Endpoint | Spec |
|
|
46
|
+
|---|---|
|
|
47
|
+
| `GET https://mcp.otwa.cloud/.well-known/oauth-protected-resource` | RFC 9728 |
|
|
48
|
+
| `GET https://api.otwa.cloud/.well-known/oauth-authorization-server` | RFC 8414 |
|
|
49
|
+
| `POST https://api.otwa.cloud/api/oauth/register` (DCR, no auth) | RFC 7591 |
|
|
50
|
+
| `POST https://api.otwa.cloud/api/oauth/device/code` | RFC 8628 §3.1 |
|
|
51
|
+
| `POST https://api.otwa.cloud/api/oauth/token` | RFC 8628 §3.4 |
|
|
52
|
+
| `POST https://api.otwa.cloud/api/oauth/revoke` | RFC 7009 |
|
|
53
|
+
|
|
54
|
+
Flow:
|
|
55
|
+
1. Client POSTs to `/oauth/register` with `client_name + scope` → gets a `client_id`.
|
|
56
|
+
2. POSTs to `/oauth/device/code` → receives `user_code` (XXXX-YYYY) + `verification_uri=https://otwa.cloud/oauth/device`.
|
|
57
|
+
3. User opens the URI, signs in, approves the requested scopes.
|
|
58
|
+
4. Client polls `/oauth/token` at the returned interval → receives `otwa_at_…` access + `otwa_rt_…` refresh tokens.
|
|
59
|
+
5. Use as `Authorization: Bearer otwa_at_…` against `/mcp` or any `/api/v1/*` endpoint.
|
|
60
|
+
6. Before access expires, refresh: POST `/oauth/token` with `grant_type=refresh_token` + the `otwa_rt_…` value → fresh pair. Refresh tokens are single-use — replaying one fails with `invalid_grant`.
|
|
61
|
+
7. User can revoke any time at [dashboard/api](https://otwa.cloud/dashboard/api) → OAuth grants tab.
|
|
62
|
+
|
|
63
|
+
A 401 from `/mcp` includes `WWW-Authenticate: Bearer realm="otwa-mcp", resource_metadata="…"` per RFC 9728 §5.3 to point clients at the discovery URL.
|
|
39
64
|
|
|
40
65
|
## Quick start (local stdio)
|
|
41
66
|
|
|
@@ -211,7 +236,7 @@ Restart your client and ask:
|
|
|
211
236
|
|
|
212
237
|
## Tools
|
|
213
238
|
|
|
214
|
-
|
|
239
|
+
30 tools across seven surfaces:
|
|
215
240
|
|
|
216
241
|
### Account & catalogue (read-only, `account:read`)
|
|
217
242
|
- `otwa_account` — current account, balance, tier
|
|
@@ -230,6 +255,10 @@ Restart your client and ask:
|
|
|
230
255
|
- `otwa_reset_server_password` — rotate root password *(servers:write)*
|
|
231
256
|
- `otwa_reinstall_server` — wipe and reinstall OS *(servers:destroy)*
|
|
232
257
|
- `otwa_destroy_server` — permanently terminate *(servers:destroy)*
|
|
258
|
+
- `otwa_list_snapshots` — list a server's disk snapshots *(servers:read)*
|
|
259
|
+
- `otwa_create_snapshot` — capture a disk snapshot, max 10/server *(servers:write)*
|
|
260
|
+
- `otwa_revert_snapshot` — roll the disk back to a snapshot *(servers:destroy)*
|
|
261
|
+
- `otwa_delete_snapshot` — remove a snapshot *(servers:write)*
|
|
233
262
|
- `otwa_get_dashboard_sso` — 5-min SSO link to dashboard *(servers:read or account:read)*
|
|
234
263
|
|
|
235
264
|
### Networking
|
|
@@ -253,7 +282,7 @@ Restart your client and ask:
|
|
|
253
282
|
|
|
254
283
|
## Safety
|
|
255
284
|
|
|
256
|
-
Destructive tools (`otwa_destroy_server`, `otwa_reinstall_server`) require:
|
|
285
|
+
Destructive tools (`otwa_destroy_server`, `otwa_reinstall_server`, `otwa_revert_snapshot`) require:
|
|
257
286
|
|
|
258
287
|
1. **`confirm: true`** and **`iAcknowledgeDataLoss: true`** in the tool call
|
|
259
288
|
2. **`expectedLabel`** matching the server's current label (typo-guard, only on destroy)
|
package/dist/http/index.js
CHANGED
|
@@ -13,6 +13,15 @@ const PORT = parseInt(process.env.PORT || '3210', 10);
|
|
|
13
13
|
const HOST = process.env.HOST || '127.0.0.1';
|
|
14
14
|
// See note in src/util/env.ts — default MUST include the /api globalPrefix.
|
|
15
15
|
const API_BASE = (process.env.OTWA_API_BASE?.trim() || 'https://api.otwa.cloud/api').replace(/\/+$/, '');
|
|
16
|
+
// Public hostname this server is exposed under. Used to build absolute URLs in
|
|
17
|
+
// the RFC 9728 protected-resource metadata and the WWW-Authenticate challenge.
|
|
18
|
+
// Override for staging.
|
|
19
|
+
const PUBLIC_BASE = (process.env.MCP_PUBLIC_BASE?.trim() || 'https://mcp.otwa.cloud').replace(/\/+$/, '');
|
|
20
|
+
// The OAuth 2.0 Authorization Server clients should talk to. This is currently
|
|
21
|
+
// the same otwa-cloud-api host that issues API keys; once the AS endpoints
|
|
22
|
+
// (RFC 8628 device-code + RFC 7591 DCR + RFC 8414 metadata) ship, clients that
|
|
23
|
+
// support OAuth will discover them automatically via the metadata below.
|
|
24
|
+
const OAUTH_AS = (process.env.OTWA_OAUTH_AS?.trim() || 'https://api.otwa.cloud').replace(/\/+$/, '');
|
|
16
25
|
const app = (0, express_1.default)();
|
|
17
26
|
app.disable('x-powered-by');
|
|
18
27
|
app.set('trust proxy', 'loopback');
|
|
@@ -21,6 +30,35 @@ const pkg = (0, version_1.packageInfo)();
|
|
|
21
30
|
app.get('/healthz', (_req, res) => {
|
|
22
31
|
res.json({ ok: true, service: pkg.name, version: pkg.version, apiBase: API_BASE });
|
|
23
32
|
});
|
|
33
|
+
// RFC 9728 OAuth 2.0 Protected Resource Metadata.
|
|
34
|
+
// Announces that this MCP server is an OAuth-protected resource served by the
|
|
35
|
+
// otwa.cloud authorization server. Clients that support OAuth discover the AS
|
|
36
|
+
// here, then fetch its metadata from `${OAUTH_AS}/.well-known/oauth-authorization-server`
|
|
37
|
+
// to learn the device-code + token endpoints.
|
|
38
|
+
//
|
|
39
|
+
// Until the AS endpoints ship, callers using Bearer API keys continue to work
|
|
40
|
+
// unchanged — this metadata document is purely additive.
|
|
41
|
+
const protectedResourceMetadata = () => ({
|
|
42
|
+
resource: `${PUBLIC_BASE}/mcp`,
|
|
43
|
+
authorization_servers: [OAUTH_AS],
|
|
44
|
+
bearer_methods_supported: ['header'],
|
|
45
|
+
scopes_supported: [
|
|
46
|
+
'account:read',
|
|
47
|
+
'servers:read', 'servers:write', 'servers:destroy',
|
|
48
|
+
'billing:read',
|
|
49
|
+
'webhooks:read', 'webhooks:write',
|
|
50
|
+
],
|
|
51
|
+
resource_name: '@otwa/mcp-server',
|
|
52
|
+
resource_documentation: 'https://otwa.cloud/docs/integrations/mcp',
|
|
53
|
+
});
|
|
54
|
+
app.get('/.well-known/oauth-protected-resource', (_req, res) => {
|
|
55
|
+
res.set('Cache-Control', 'public, max-age=3600').json(protectedResourceMetadata());
|
|
56
|
+
});
|
|
57
|
+
// Also serve the path-suffixed form some clients try first.
|
|
58
|
+
app.get('/.well-known/oauth-protected-resource/mcp', (_req, res) => {
|
|
59
|
+
res.set('Cache-Control', 'public, max-age=3600').json(protectedResourceMetadata());
|
|
60
|
+
});
|
|
61
|
+
const WWW_AUTH_HEADER = `Bearer realm="otwa-mcp", resource_metadata="${PUBLIC_BASE}/.well-known/oauth-protected-resource"`;
|
|
24
62
|
app.get('/', (_req, res) => {
|
|
25
63
|
res.json({
|
|
26
64
|
name: pkg.name,
|
|
@@ -47,7 +85,7 @@ function extractBearer(req) {
|
|
|
47
85
|
app.post('/mcp', async (req, res) => {
|
|
48
86
|
const apiKey = extractBearer(req);
|
|
49
87
|
if (!apiKey) {
|
|
50
|
-
res.status(401).json({
|
|
88
|
+
res.set('WWW-Authenticate', WWW_AUTH_HEADER).status(401).json({
|
|
51
89
|
jsonrpc: '2.0',
|
|
52
90
|
error: {
|
|
53
91
|
code: -32001,
|
|
@@ -59,7 +97,7 @@ app.post('/mcp', async (req, res) => {
|
|
|
59
97
|
return;
|
|
60
98
|
}
|
|
61
99
|
if (!apiKey.startsWith('otwa_')) {
|
|
62
|
-
res.status(401).json({
|
|
100
|
+
res.set('WWW-Authenticate', WWW_AUTH_HEADER).status(401).json({
|
|
63
101
|
jsonrpc: '2.0',
|
|
64
102
|
error: {
|
|
65
103
|
code: -32001,
|
package/dist/http/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":";;;;;;AACA,sDAA8B;AAE9B,mCAAoC;AACpC,0FAAmG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/http/index.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/servers.js
CHANGED
|
@@ -53,6 +53,18 @@ function registerServerTools(server, client) {
|
|
|
53
53
|
const stats = await client.request(`/v1/servers/${encodeURIComponent(id)}/stats`);
|
|
54
54
|
return (0, _helpers_1.jsonResult)(stats);
|
|
55
55
|
}));
|
|
56
|
+
server.registerTool('otwa_list_snapshots', {
|
|
57
|
+
title: "List a server's snapshots",
|
|
58
|
+
description: "Returns the point-in-time disk snapshots for a server: id, name, createTime, power state when " +
|
|
59
|
+
"taken, and whether it's the current one. Pass a snapshot `id` to otwa_revert_snapshot or " +
|
|
60
|
+
'otwa_delete_snapshot.',
|
|
61
|
+
inputSchema: {
|
|
62
|
+
id: zod_1.z.string().describe('Server UUID.'),
|
|
63
|
+
},
|
|
64
|
+
}, (0, _helpers_1.safeHandler)(async ({ id }) => {
|
|
65
|
+
const snaps = await client.request(`/v1/servers/${encodeURIComponent(id)}/snapshots`);
|
|
66
|
+
return (0, _helpers_1.jsonResult)(snaps);
|
|
67
|
+
}));
|
|
56
68
|
// ── Create ──────────────────────────────────────────────────────────────
|
|
57
69
|
server.registerTool('otwa_create_server', {
|
|
58
70
|
title: 'Provision a new server',
|
|
@@ -108,6 +120,33 @@ function registerServerTools(server, client) {
|
|
|
108
120
|
});
|
|
109
121
|
return (0, _helpers_1.jsonResult)(created);
|
|
110
122
|
}));
|
|
123
|
+
server.registerTool('otwa_create_snapshot', {
|
|
124
|
+
title: 'Create a server snapshot',
|
|
125
|
+
description: "Captures a point-in-time snapshot of the server's disk (memory not included). Fast and " +
|
|
126
|
+
'non-destructive — a good restore point to take before a risky change. Max 10 snapshots per ' +
|
|
127
|
+
'server; if full, delete an old one with otwa_delete_snapshot first.',
|
|
128
|
+
inputSchema: {
|
|
129
|
+
id: zod_1.z.string().describe('Server UUID.'),
|
|
130
|
+
name: zod_1.z
|
|
131
|
+
.string()
|
|
132
|
+
.min(1)
|
|
133
|
+
.max(80)
|
|
134
|
+
.optional()
|
|
135
|
+
.describe('Optional snapshot name. Defaults to a timestamp.'),
|
|
136
|
+
description: zod_1.z
|
|
137
|
+
.string()
|
|
138
|
+
.max(255)
|
|
139
|
+
.optional()
|
|
140
|
+
.describe('Optional description, e.g. "before the kernel upgrade".'),
|
|
141
|
+
},
|
|
142
|
+
}, (0, _helpers_1.safeHandler)(async ({ id, name, description }) => {
|
|
143
|
+
const res = await client.request(`/v1/servers/${encodeURIComponent(id)}/snapshots`, {
|
|
144
|
+
method: 'POST',
|
|
145
|
+
body: { name, description },
|
|
146
|
+
timeoutMs: 120_000,
|
|
147
|
+
});
|
|
148
|
+
return (0, _helpers_1.jsonResult)(res);
|
|
149
|
+
}));
|
|
111
150
|
// ── Updates ─────────────────────────────────────────────────────────────
|
|
112
151
|
server.registerTool('otwa_rename_server', {
|
|
113
152
|
title: 'Rename a server',
|
|
@@ -189,6 +228,48 @@ function registerServerTools(server, client) {
|
|
|
189
228
|
});
|
|
190
229
|
return (0, _helpers_1.jsonResult)(res);
|
|
191
230
|
}));
|
|
231
|
+
server.registerTool('otwa_revert_snapshot', {
|
|
232
|
+
title: 'Revert a server to a snapshot',
|
|
233
|
+
description: "Rolls the server's disk back to a snapshot. DESTRUCTIVE — everything written since the snapshot " +
|
|
234
|
+
'was taken is lost, and the server may reboot. Requires the API key to carry the ' +
|
|
235
|
+
'`servers:destroy` scope.\n\n' +
|
|
236
|
+
'SAFETY: Before calling, (1) call otwa_list_snapshots and otwa_get_server and show the user the ' +
|
|
237
|
+
'target snapshot plus the current label, (2) wait for explicit confirmation in chat, (3) pass ' +
|
|
238
|
+
'`expectedLabel` matching the current label as a typo-guard.',
|
|
239
|
+
inputSchema: {
|
|
240
|
+
id: zod_1.z.string().describe('Server UUID.'),
|
|
241
|
+
snapshotId: zod_1.z
|
|
242
|
+
.string()
|
|
243
|
+
.describe('Snapshot id from otwa_list_snapshots, e.g. "snapshot-1234".'),
|
|
244
|
+
expectedLabel: zod_1.z
|
|
245
|
+
.string()
|
|
246
|
+
.describe("The server's CURRENT label (from otwa_get_server). The call fails if this does not match — " +
|
|
247
|
+
'a typo-guard against reverting the wrong server.'),
|
|
248
|
+
...confirm_1.destructiveConfirm,
|
|
249
|
+
},
|
|
250
|
+
}, (0, _helpers_1.safeHandler)(async ({ id, snapshotId, expectedLabel }) => {
|
|
251
|
+
const current = await client.request(`/v1/servers/${encodeURIComponent(id)}`);
|
|
252
|
+
const actualLabel = current.label || '';
|
|
253
|
+
if (actualLabel.trim() !== expectedLabel.trim()) {
|
|
254
|
+
throw new errors_1.OtwaApiError(`Refusing to revert server ${id}: expectedLabel "${expectedLabel}" does not match the current ` +
|
|
255
|
+
`label "${actualLabel}". Re-fetch via otwa_get_server, confirm with the user, and call again.`, 400, 'label_mismatch');
|
|
256
|
+
}
|
|
257
|
+
const res = await client.request(`/v1/servers/${encodeURIComponent(id)}/snapshots/${encodeURIComponent(snapshotId)}/revert`, { method: 'POST', timeoutMs: 120_000 });
|
|
258
|
+
return (0, _helpers_1.jsonResult)(res);
|
|
259
|
+
}));
|
|
260
|
+
server.registerTool('otwa_delete_snapshot', {
|
|
261
|
+
title: 'Delete a server snapshot',
|
|
262
|
+
description: 'Removes a snapshot and frees its delta disk. Non-destructive to your running data — the live ' +
|
|
263
|
+
'disk is unaffected. Confirm with the user first.',
|
|
264
|
+
inputSchema: {
|
|
265
|
+
id: zod_1.z.string().describe('Server UUID.'),
|
|
266
|
+
snapshotId: zod_1.z.string().describe('Snapshot id from otwa_list_snapshots.'),
|
|
267
|
+
...confirm_1.mediumConfirm,
|
|
268
|
+
},
|
|
269
|
+
}, (0, _helpers_1.safeHandler)(async ({ id, snapshotId }) => {
|
|
270
|
+
const res = await client.request(`/v1/servers/${encodeURIComponent(id)}/snapshots/${encodeURIComponent(snapshotId)}`, { method: 'DELETE', timeoutMs: 120_000 });
|
|
271
|
+
return (0, _helpers_1.jsonResult)(res);
|
|
272
|
+
}));
|
|
192
273
|
server.registerTool('otwa_destroy_server', {
|
|
193
274
|
title: 'Permanently destroy a server',
|
|
194
275
|
description: 'Terminates a server permanently. Disk is wiped, IPs are released, billing stops. CANNOT BE ' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"servers.js","sourceRoot":"","sources":["../../src/tools/servers.ts"],"names":[],"mappings":";;AAgBA,kDA4TC;AA3UD,6BAAwB;AAExB,6CAAgD;AAOhD,+CAAsE;AACtE,yCAAiE;AAEjE,MAAM,cAAc,GAAG,0CAA0C,CAAC;AAClE,MAAM,WAAW,GAAG,8BAA8B,CAAC;AAEnD,SAAgB,mBAAmB,CAAC,MAAiB,EAAE,MAAkB;IACvE,2EAA2E;IAC3E,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,kCAAkC;QACzC,WAAW,EACT,6FAA6F;YAC7F,kEAAkE;QACpE,WAAW,EAAE,EAAE;KAChB,EACD,IAAA,sBAAW,EAAC,KAAK,IAAI,EAAE;QACrB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAkB,aAAa,CAAC,CAAC;QACrE,OAAO,IAAA,qBAAU,EAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,iGAAiG;YACjG,gGAAgG;YAChG,6CAA6C;QAC/C,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;SACxE;KACF,EACD,IAAA,sBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAe,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC3F,OAAO,IAAA,qBAAU,EAAC,MAAM,CAAC,CAAC;IAC5B,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,6BAA6B,EAC7B;QACE,KAAK,EAAE,2CAA2C;QAClD,WAAW,EACT,iGAAiG;YACjG,iGAAiG;YACjG,gDAAgD;QAClD,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SACxC;KACF,EACD,IAAA,sBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAChC,eAAe,kBAAkB,CAAC,EAAE,CAAC,cAAc,CACpD,CAAC;QACF,OAAO,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,gCAAgC;QACvC,WAAW,EACT,gGAAgG;YAChG,wBAAwB;QAC1B,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;SACxC;KACF,EACD,IAAA,sBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,kBAAkB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;QAClF,OAAO,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,CAAC,CACH,CAAC;IAEF,2EAA2E;IAC3E,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,wBAAwB;QAC/B,WAAW,EACT,gGAAgG;YAChG,8FAA8F;YAC9F,8FAA8F;YAC9F,oEAAoE;QACtE,WAAW,EAAE;YACX,SAAS,EAAE,OAAC;iBACT,MAAM,EAAE;iBACR,IAAI,EAAE;iBACN,QAAQ,CAAC,kEAAkE,CAAC;YAC/E,EAAE,EAAE,OAAC;iBACF,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,CAAC,+FAA+F,CAAC;YAC5G,UAAU,EAAE,OAAC;iBACV,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,GAAG,CAAC;iBACR,QAAQ,CAAC,2FAA2F,CAAC;YACxG,MAAM,EAAE,OAAC;iBACN,MAAM,EAAE;iBACR,GAAG,CAAC,EAAE,CAAC;iBACP,QAAQ,EAAE;iBACV,QAAQ,CAAC,0FAA0F,CAAC;YACvG,KAAK,EAAE,OAAC;iBACL,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,KAAK,CAAC,WAAW,EAAE,gFAAgF,CAAC;iBACpG,QAAQ,EAAE;iBACV,QAAQ,CAAC,kEAAkE,CAAC;YAC/E,QAAQ,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,KAAK,CAAC,cAAc,EAAE,yFAAyF,CAAC;iBAChH,QAAQ,EAAE;iBACV,QAAQ,CAAC,8FAA8F,CAAC;YAC3G,MAAM,EAAE,OAAC;iBACN,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;iBACjB,QAAQ,EAAE;iBACV,QAAQ,CAAC,4GAA4G,CAAC;SAC1H;KACF,EACD,IAAA,sBAAW,EAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACzB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,aAAa,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;QACH,OAAO,IAAA,qBAAU,EAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CACH,CAAC;IAEF,2EAA2E;IAC3E,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,2FAA2F;QACxG,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,KAAK,EAAE,OAAC;iBACL,MAAM,EAAE;iBACR,GAAG,CAAC,CAAC,CAAC;iBACN,GAAG,CAAC,EAAE,CAAC;iBACP,KAAK,CAAC,WAAW,EAAE,gFAAgF,CAAC;SACxG;KACF,EACD,IAAA,sBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAClC,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE;YAC9E,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,EAAE,KAAK,EAAE;SAChB,CAAC,CAAC;QACH,OAAO,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;QACE,KAAK,EAAE,kCAAkC;QACzC,WAAW,EACT,6FAA6F;YAC7F,wFAAwF;YACxF,4FAA4F;QAC9F,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,MAAM,EAAE,OAAC;iBACN,IAAI,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;iBACjC,QAAQ,CAAC,sCAAsC,CAAC;YACnD,OAAO,EAAE,OAAC;iBACP,OAAO,EAAE;iBACT,QAAQ,EAAE;iBACV,QAAQ,CAAC,8FAA8F,CAAC;SAC5G;KACF,EACD,IAAA,sBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAC5C,IAAI,CAAC,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,QAAQ,CAAC,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACnE,MAAM,IAAI,qBAAY,CACpB,QAAQ,MAAM,sBAAsB,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,kCAAkC;gBAC7G,kFAAkF,EACpF,GAAG,EACH,uBAAuB,CACxB,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAC9B,eAAe,kBAAkB,CAAC,EAAE,CAAC,UAAU,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAC3E,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;QACF,OAAO,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,kGAAkG;YAClG,wFAAwF;YACxF,wFAAwF;QAC1F,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,GAAG,uBAAa;SACjB;KACF,EACD,IAAA,sBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;QAC3B,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,kBAAkB,CAAC,EAAE,CAAC,iBAAiB,EAAE;YACvF,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;QACH,OAAO,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CACH,CAAC;IAEF,2EAA2E;IAC3E,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,kCAAkC;QACzC,WAAW,EACT,4FAA4F;YAC5F,6FAA6F;YAC7F,wCAAwC;YACxC,+FAA+F;YAC/F,qFAAqF;QACvF,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YACpF,UAAU,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;YAC5F,GAAG,4BAAkB;SACtB;KACF,EACD,IAAA,sBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;QAC3C,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,kBAAkB,CAAC,EAAE,CAAC,YAAY,EAAE;YAClF,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;YACxB,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,MAAM;SAClB,CAAC,CAAC;QACH,OAAO,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,8BAA8B;QACrC,WAAW,EACT,6FAA6F;YAC7F,wEAAwE;YACxE,+FAA+F;YAC/F,2FAA2F;YAC3F,6EAA6E;QAC/E,WAAW,EAAE;YACX,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;YACvC,aAAa,EAAE,OAAC;iBACb,MAAM,EAAE;iBACR,QAAQ,CACP,6FAA6F;gBAC3F,mDAAmD,CACtD;YACH,GAAG,4BAAkB;SACtB;KACF,EACD,IAAA,sBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE;QAC1C,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,OAAO,CAAe,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5F,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QACxC,IAAI,WAAW,CAAC,IAAI,EAAE,KAAK,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,qBAAY,CACpB,8BAA8B,EAAE,oBAAoB,aAAa,uBAAuB;gBACtF,kBAAkB,WAAW,0DAA0D;gBACvF,gDAAgD,EAClD,GAAG,EACH,gBAAgB,CACjB,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,eAAe,kBAAkB,CAAC,EAAE,CAAC,EAAE,EAAE;YACxE,MAAM,EAAE,QAAQ;SACjB,CAAC,CAAC;QACH,OAAO,IAAA,qBAAU,EAAC,GAAG,CAAC,CAAC;IACzB,CAAC,CAAC,CACH,CAAC;IAEF,2EAA2E;IAC3E,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;QACE,KAAK,EAAE,yDAAyD;QAChE,WAAW,EACT,+FAA+F;YAC/F,gGAAgG;YAChG,6CAA6C;QAC/C,WAAW,EAAE;YACX,EAAE,EAAE,OAAC;iBACF,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,sEAAsE,CAAC;YACnF,IAAI,EAAE,OAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CAAC,qFAAqF,CAAC;SACnG;KACF,EACD,IAAA,sBAAW,EAAC,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;QACjC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,kBAAkB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1E,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,OAAO,CAAc,IAAI,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE;SAC3B,CAAC,CAAC;QACH,OAAO,IAAA,qBAAU,EACf,6BAA6B,GAAG,CAAC,SAAS,cAAc,GAAG,CAAC,GAAG,MAAM;YACnE,4FAA4F,CAC/F,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"servers.js","sourceRoot":"","sources":["../../src/tools/servers.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@otwa/mcp-server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Official Model Context Protocol server for otwa.cloud — provision and manage servers from Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, Zed, Continue, OpenCode and other MCP-capable AI tools.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://otwa.cloud/docs/integrations/mcp",
|