capix-mcp 2.1.1 → 2.2.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/README.md +51 -72
- package/dist/prompts.d.ts +6 -1
- package/dist/prompts.d.ts.map +1 -1
- package/dist/prompts.js +41 -75
- package/dist/prompts.js.map +1 -1
- package/dist/route-families.d.ts +47 -0
- package/dist/route-families.d.ts.map +1 -0
- package/dist/route-families.js +96 -0
- package/dist/route-families.js.map +1 -0
- package/dist/server.d.ts +5 -5
- package/dist/server.js +8 -8
- package/dist/server.js.map +1 -1
- package/dist/tools/define-tool.d.ts +6 -0
- package/dist/tools/define-tool.d.ts.map +1 -1
- package/dist/tools/define-tool.js +1 -0
- package/dist/tools/define-tool.js.map +1 -1
- package/dist/tools/factory.d.ts +42 -0
- package/dist/tools/factory.d.ts.map +1 -0
- package/dist/tools/factory.js +363 -0
- package/dist/tools/factory.js.map +1 -0
- package/dist/tools/generate.d.ts +108 -0
- package/dist/tools/generate.d.ts.map +1 -0
- package/dist/tools/generate.js +149 -0
- package/dist/tools/generate.js.map +1 -0
- package/dist/tools/infra-context.d.ts +15 -11
- package/dist/tools/infra-context.d.ts.map +1 -1
- package/dist/tools/infra-context.js +43 -92
- package/dist/tools/infra-context.js.map +1 -1
- package/dist/tools/memes.d.ts +31 -0
- package/dist/tools/memes.d.ts.map +1 -0
- package/dist/tools/memes.js +175 -0
- package/dist/tools/memes.js.map +1 -0
- package/dist/tools.d.ts +47 -7
- package/dist/tools.d.ts.map +1 -1
- package/dist/tools.js +341 -891
- package/dist/tools.js.map +1 -1
- package/dist/types.d.ts +17 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +1 -1
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -15,7 +15,9 @@ That's it. Your AI agent can now deploy models, manage compute, and build websit
|
|
|
15
15
|
|
|
16
16
|
## How it works
|
|
17
17
|
|
|
18
|
-
Capix MCP exposes **
|
|
18
|
+
Capix MCP exposes **37 tools** grouped into six scopes. The server speaks stdio (for local agent integration) and streamable HTTP (for remote/hosted use). Authentication is handled via OAuth PKCE (through the `@capix/auth-broker`) or a simple `CAPIX_API_KEY` environment variable.
|
|
19
|
+
|
|
20
|
+
Every registered tool targets a route family that exists in the Capix control plane; a registry-level gate test (`src/tools/registry.test.ts`) asserts each tool's canonical path against an audited allowlist of real route families, so the tool list below is the true surface — no phantom routes.
|
|
19
21
|
|
|
20
22
|
Read-only tools auto-run after authentication. Billable tools require a bound `approvalToken` — the agent obtains this after quoting the cost upstream, so no spend happens without explicit user consent.
|
|
21
23
|
|
|
@@ -130,103 +132,80 @@ Or with streamable HTTP:
|
|
|
130
132
|
capix-mcp server --http 8080 --token <service-token>
|
|
131
133
|
```
|
|
132
134
|
|
|
133
|
-
## Tools (
|
|
135
|
+
## Tools (37)
|
|
134
136
|
|
|
135
137
|
All tools are prefixed with `capix_`. Read-only tools auto-run after authentication. Billable tools require a bound `approvalToken`.
|
|
136
138
|
|
|
137
|
-
### Discovery (
|
|
139
|
+
### Discovery (7) — read-only
|
|
138
140
|
|
|
139
141
|
| Tool | Description |
|
|
140
142
|
|---|---|
|
|
141
|
-
| `capix_account` | Inspect the authenticated account
|
|
142
|
-
| `capix_balance` | Get the
|
|
143
|
-
| `
|
|
144
|
-
| `
|
|
145
|
-
| `
|
|
146
|
-
| `
|
|
147
|
-
| `
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
### Planning (6) — read-only
|
|
143
|
+
| `capix_account` | Inspect the authenticated account (id, email, wallet, billing status, identities, devices) |
|
|
144
|
+
| `capix_balance` | Get the account ledger balances (SOL / USDC), USD valuation, and recent transactions |
|
|
145
|
+
| `capix_compute_catalog` | List the enabled compute capability catalog (workload types, providers, regions) |
|
|
146
|
+
| `capix_network_status` | Inspect service health and live feature gates |
|
|
147
|
+
| `capix_deployments` | List deployments with phase + allocation state (status/cursor filters) |
|
|
148
|
+
| `capix_receipts` | List work receipts for the account (approval-status/agent filters) |
|
|
149
|
+
| `capix_meme_templates` | List the meme template + vibe catalog and AI-canvas availability (free) |
|
|
150
|
+
|
|
151
|
+
### Planning (2) — read-only
|
|
152
152
|
|
|
153
153
|
| Tool | Description |
|
|
154
154
|
|---|---|
|
|
155
|
-
| `
|
|
156
|
-
| `
|
|
157
|
-
| `capix_model_plan` | Plan a model endpoint deployment |
|
|
158
|
-
| `capix_model_quote` | Get a canonical quote for a model endpoint plan |
|
|
159
|
-
| `capix_stack_validate` | Validate a multi-component stack definition |
|
|
160
|
-
| `capix_stack_plan` | Plan a multi-component stack deployment |
|
|
155
|
+
| `capix_compute_quote` | Get a canonical quote for a compute workload (15-minute TTL) |
|
|
156
|
+
| `capix_model_quote` | Get a canonical quote for a private model endpoint |
|
|
161
157
|
|
|
162
|
-
### Lifecycle (
|
|
158
|
+
### Lifecycle (19) — billable, requires approval
|
|
163
159
|
|
|
164
160
|
| Tool | Description |
|
|
165
161
|
|---|---|
|
|
166
|
-
| `capix_deploy` | Deploy a
|
|
167
|
-
| `
|
|
168
|
-
| `
|
|
169
|
-
| `
|
|
170
|
-
| `
|
|
171
|
-
| `
|
|
172
|
-
| `
|
|
173
|
-
|
|
174
|
-
|
|
162
|
+
| `capix_deploy` | Deploy a workload from a canonical quote |
|
|
163
|
+
| `capix_delete` | Terminate a deployment and settle early termination |
|
|
164
|
+
| `capix_cancel` | Cancel an in-flight operation |
|
|
165
|
+
| `capix_job_submit` | Submit a durable batch job (image + command) |
|
|
166
|
+
| `capix_job_list` | List durable jobs |
|
|
167
|
+
| `capix_job_get` | Get a job by id |
|
|
168
|
+
| `capix_job_logs` | Fetch job log chunks with an `after` cursor |
|
|
169
|
+
| `capix_job_cancel` | Request cooperative cancellation of a job |
|
|
170
|
+
| `capix_job_rerun` | Re-enqueue a terminal job |
|
|
171
|
+
| `capix_training_submit` | Submit a LoRA fine-tuning run |
|
|
172
|
+
| `capix_training_list` | List training runs |
|
|
173
|
+
| `capix_training_get` | Get a training run by id |
|
|
174
|
+
| `capix_training_deploy` | Deploy a finished training run (returns a handoff deep-link) |
|
|
175
|
+
| `capix_agent_deploy` | Deploy a hosted agent runtime (openclaw / hermes / custom) |
|
|
176
|
+
| `capix_agent_list` | List agent deployments |
|
|
177
|
+
| `capix_agent_get` | Get an agent deployment by id |
|
|
178
|
+
| `capix_agent_destroy` | Destroy an agent deployment (refund settles) |
|
|
179
|
+
| `capix_meme` | Generate a meme from a topic (template captions, or AI-canvas image at 2x price when `templateId` is omitted) |
|
|
180
|
+
| `capix_image_gen` | Generate an image from a text prompt (fixed per-image charge) |
|
|
181
|
+
|
|
182
|
+
### Verification (1) — read-only
|
|
175
183
|
|
|
176
184
|
| Tool | Description |
|
|
177
185
|
|---|---|
|
|
178
|
-
| `
|
|
179
|
-
| `capix_create_endpoint` | Create a network endpoint for a deployment |
|
|
180
|
-
| `capix_expose_port` | Expose a port on a deployment |
|
|
181
|
-
| `capix_close_port` | Close a previously exposed port |
|
|
182
|
-
| `capix_inspect_routes` | Inspect the routing table for a deployment |
|
|
183
|
-
| `capix_create_private_connection` | Create a private connection between deployments |
|
|
184
|
-
| `capix_request_dedicated_ip` | Request a dedicated IP for a deployment |
|
|
185
|
-
| `capix_port_forward` | Set up port forwarding for a deployment |
|
|
186
|
+
| `capix_inspect_receipt` | Inspect a signed route receipt (placement, price, cost basis, fees, margin) |
|
|
186
187
|
|
|
187
|
-
###
|
|
188
|
+
### Website (6)
|
|
188
189
|
|
|
189
190
|
| Tool | Description |
|
|
190
191
|
|---|---|
|
|
191
|
-
| `
|
|
192
|
-
| `
|
|
193
|
-
| `
|
|
194
|
-
| `
|
|
195
|
-
| `
|
|
196
|
-
| `
|
|
192
|
+
| `capix_website_create` | Create a website from a source ref (clone → detect → build → preview) |
|
|
193
|
+
| `capix_website_list` | List websites with their latest releases |
|
|
194
|
+
| `capix_website_get` | Get a website (status, URLs, releases, 50-line build log tail) |
|
|
195
|
+
| `capix_website_promote` | Promote a built release to production |
|
|
196
|
+
| `capix_website_rollback` | Roll back to a previous built release |
|
|
197
|
+
| `capix_website_destroy` | Destroy a website (soft delete) |
|
|
197
198
|
|
|
198
|
-
###
|
|
199
|
+
### Infra-context (2) — read-only
|
|
199
200
|
|
|
200
201
|
| Tool | Description |
|
|
201
202
|
|---|---|
|
|
202
|
-
| `
|
|
203
|
-
| `
|
|
204
|
-
| `capix_fetch_proof` | Fetch a zkVM proof artifact for a workload |
|
|
205
|
-
| `capix_verify_proof` | Verify a zkVM proof artifact against its public inputs |
|
|
206
|
-
| `capix_inspect_measurement` | Inspect the measurement of a workload |
|
|
207
|
-
| `capix_inspect_receipt` | Inspect a work receipt in detail |
|
|
203
|
+
| `capix_marketplace_browse` | Browse live GPU marketplace offers (region, trust tier, capability, price) |
|
|
204
|
+
| `capix_model_list` | List deployable models (public catalog + owned private endpoints) |
|
|
208
205
|
|
|
209
|
-
###
|
|
206
|
+
### Removed scopes
|
|
210
207
|
|
|
211
|
-
|
|
212
|
-
|---|---|
|
|
213
|
-
| `capix_website_project_string_check` | Check a website project string for validity |
|
|
214
|
-
| `capix_website_create` | Create a new website project |
|
|
215
|
-
| `capix_website_detect` | Auto-detect website framework from a repository |
|
|
216
|
-
| `capix_website_plan` | Plan a website deployment (build + hosting plan) |
|
|
217
|
-
| `capix_website_quote` | Get a canonical quote for a website deploy |
|
|
218
|
-
| `capix_website_deploy` | Deploy a website (build + host) |
|
|
219
|
-
| `capix_website_preview` | Create a preview deployment |
|
|
220
|
-
| `capix_website_promote` | Promote a preview to production |
|
|
221
|
-
| `capix_website_rollback` | Rollback a website to a previous deployment |
|
|
222
|
-
| `capix_website_get` | Get a website project descriptor |
|
|
223
|
-
| `capix_website_deployments` | List deployments for a website |
|
|
224
|
-
| `capix_website_logs` | Inspect build/runtime logs for a website |
|
|
225
|
-
| `capix_website_metrics` | Inspect request/bandwidth metrics for a website |
|
|
226
|
-
| `capix_website_domain_add` | Add a custom domain to a website |
|
|
227
|
-
| `capix_website_domain_verify` | Verify DNS ownership for a pending custom domain |
|
|
228
|
-
| `capix_website_domain_remove` | Remove a custom domain from a website |
|
|
229
|
-
| `capix_website_destroy` | Destroy a website and all its resources |
|
|
208
|
+
The pre-repair registry advertised networking (8), testing (6), and attestation/zkVM (5) tools, plus website sub-tools (domains, metrics, preview, detect, quote) and planning/lifecycle stubs — all targeting route families the control plane never implemented. They were removed in the 2026-07 repair and return when the backend ships (networking roadmap N1–N5; Secured Cloud TEE/zkVM deferred). See `src/route-families.ts` for the audited allowlist of real route families.
|
|
230
209
|
|
|
231
210
|
## Configuration
|
|
232
211
|
|
package/dist/prompts.d.ts
CHANGED
|
@@ -4,8 +4,13 @@
|
|
|
4
4
|
* Prompts are parameterised, server-side message templates the MCP client can
|
|
5
5
|
* list and instantiate. Each prompt returns a short multi-message transcript
|
|
6
6
|
* that guides an agent through a common Capix workflow (deploy, diagnose,
|
|
7
|
-
*
|
|
7
|
+
* ship a website, cleanup) — always ending with an assistant reminder that
|
|
8
8
|
* billable tools require a bound approval token before they will execute.
|
|
9
|
+
*
|
|
10
|
+
* 2026-07 repair: every prompt references only tools that exist in the
|
|
11
|
+
* post-repair registry. The plan_stack prompt was removed (no stack backend)
|
|
12
|
+
* and create_preview became ship_website (website previews are implicit per
|
|
13
|
+
* release; there is no preview-trigger route).
|
|
9
14
|
*/
|
|
10
15
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
11
16
|
/** Static prompt descriptor surfaced via prompts/list. */
|
package/dist/prompts.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAEzE,0DAA0D;AAC1D,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC7E;AAED,eAAO,MAAM,aAAa,EAAE,WAAW,EAmCtC,CAAC;AAKF;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqIvD"}
|
package/dist/prompts.js
CHANGED
|
@@ -4,48 +4,44 @@
|
|
|
4
4
|
* Prompts are parameterised, server-side message templates the MCP client can
|
|
5
5
|
* list and instantiate. Each prompt returns a short multi-message transcript
|
|
6
6
|
* that guides an agent through a common Capix workflow (deploy, diagnose,
|
|
7
|
-
*
|
|
7
|
+
* ship a website, cleanup) — always ending with an assistant reminder that
|
|
8
8
|
* billable tools require a bound approval token before they will execute.
|
|
9
|
+
*
|
|
10
|
+
* 2026-07 repair: every prompt references only tools that exist in the
|
|
11
|
+
* post-repair registry. The plan_stack prompt was removed (no stack backend)
|
|
12
|
+
* and create_preview became ship_website (website previews are implicit per
|
|
13
|
+
* release; there is no preview-trigger route).
|
|
9
14
|
*/
|
|
10
15
|
import { z } from "zod";
|
|
11
16
|
export const CAPIX_PROMPTS = [
|
|
12
17
|
{
|
|
13
18
|
name: "deploy_repository",
|
|
14
|
-
description: "
|
|
19
|
+
description: "Quote and deploy a workload on Capix compute, then track the operation.",
|
|
15
20
|
arguments: [
|
|
16
|
-
{ name: "
|
|
17
|
-
{ name: "
|
|
18
|
-
{ name: "region", description: "Preferred region." },
|
|
19
|
-
{ name: "workloadType", description: "Workload type, e.g. replicated_service.v1." },
|
|
21
|
+
{ name: "workloadType", description: "Workload type, e.g. replicated_service.v1.", required: true },
|
|
22
|
+
{ name: "region", description: "Preferred region (eu | us | asia | global)." },
|
|
20
23
|
],
|
|
21
24
|
},
|
|
22
25
|
{
|
|
23
26
|
name: "diagnose_deployment",
|
|
24
|
-
description: "Diagnose a failing deployment:
|
|
27
|
+
description: "Diagnose a failing deployment: inspect phase, placement receipt, and settlement.",
|
|
25
28
|
arguments: [
|
|
26
29
|
{ name: "deploymentId", description: "Deployment to diagnose.", required: true },
|
|
27
30
|
],
|
|
28
31
|
},
|
|
29
32
|
{
|
|
30
|
-
name: "
|
|
31
|
-
description: "Create a
|
|
33
|
+
name: "ship_website",
|
|
34
|
+
description: "Create a website from a source ref, wait for the build, and promote it to production.",
|
|
32
35
|
arguments: [
|
|
33
|
-
{ name: "
|
|
34
|
-
{ name: "
|
|
35
|
-
],
|
|
36
|
-
},
|
|
37
|
-
{
|
|
38
|
-
name: "plan_stack",
|
|
39
|
-
description: "Validate and plan a multi-service stack from a manifest URL or inline spec.",
|
|
40
|
-
arguments: [
|
|
41
|
-
{ name: "manifestUrl", description: "Stack manifest URL or inline spec.", required: true },
|
|
36
|
+
{ name: "name", description: "Site name.", required: true },
|
|
37
|
+
{ name: "sourceRef", description: "Source reference (repository/archive URL).", required: true },
|
|
42
38
|
],
|
|
43
39
|
},
|
|
44
40
|
{
|
|
45
41
|
name: "cleanup_task",
|
|
46
|
-
description: "Destroy
|
|
42
|
+
description: "Destroy the resources created for a completed task (§18 cleanup gate).",
|
|
47
43
|
arguments: [
|
|
48
|
-
{ name: "taskId", description: "Task
|
|
44
|
+
{ name: "taskId", description: "Task label for the cleanup summary.", required: true },
|
|
49
45
|
],
|
|
50
46
|
},
|
|
51
47
|
];
|
|
@@ -60,10 +56,8 @@ export function registerPrompts(server) {
|
|
|
60
56
|
server.registerPrompt("deploy_repository", {
|
|
61
57
|
description: CAPIX_PROMPTS[0].description,
|
|
62
58
|
argsSchema: {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
region: z.string().optional().describe("Preferred region."),
|
|
66
|
-
workloadType: z.string().optional().describe("Workload type, e.g. replicated_service.v1."),
|
|
59
|
+
workloadType: z.string().describe("Workload type, e.g. replicated_service.v1."),
|
|
60
|
+
region: z.string().optional().describe("Preferred region (eu | us | asia | global)."),
|
|
67
61
|
},
|
|
68
62
|
}, async (args) => ({
|
|
69
63
|
messages: [
|
|
@@ -72,15 +66,14 @@ export function registerPrompts(server) {
|
|
|
72
66
|
content: {
|
|
73
67
|
type: "text",
|
|
74
68
|
text: [
|
|
75
|
-
`Deploy
|
|
69
|
+
`Deploy a ${args.workloadType} workload on Capix.`,
|
|
76
70
|
args.region ? `Target region: ${args.region}.` : "Region: auto-select cheapest feasible.",
|
|
77
|
-
args.workloadType ? `Workload type: ${args.workloadType}.` : "",
|
|
78
71
|
"Steps:",
|
|
79
|
-
"1.
|
|
80
|
-
"2. capix_compute_quote — obtain a canonical quote.",
|
|
72
|
+
"1. capix_compute_catalog — confirm the workload type is enabled and pick a provider/region.",
|
|
73
|
+
"2. capix_compute_quote — obtain a canonical quote (15-minute TTL).",
|
|
81
74
|
"3. capix_deploy — provision against the quote (requires approvalToken).",
|
|
82
|
-
"4.
|
|
83
|
-
].
|
|
75
|
+
"4. capix_deployments — track the deployment phase until ready.",
|
|
76
|
+
].join("\n"),
|
|
84
77
|
},
|
|
85
78
|
},
|
|
86
79
|
{
|
|
@@ -103,10 +96,10 @@ export function registerPrompts(server) {
|
|
|
103
96
|
type: "text",
|
|
104
97
|
text: [
|
|
105
98
|
`Diagnose deployment ${args.deploymentId}:`,
|
|
106
|
-
"1.
|
|
107
|
-
"2.
|
|
108
|
-
"3.
|
|
109
|
-
"Summarise the failure mode and propose remediation (
|
|
99
|
+
"1. capix_deployments — locate the deployment, its phase, and its allocations.",
|
|
100
|
+
"2. capix_inspect_receipt — review the signed route receipt (placement + pricing evidence) behind it.",
|
|
101
|
+
"3. capix_receipts — check the account's work receipts for related failures.",
|
|
102
|
+
"Summarise the failure mode and propose remediation (redeploy vs terminate).",
|
|
110
103
|
].join("\n"),
|
|
111
104
|
},
|
|
112
105
|
},
|
|
@@ -119,12 +112,12 @@ export function registerPrompts(server) {
|
|
|
119
112
|
},
|
|
120
113
|
],
|
|
121
114
|
}));
|
|
122
|
-
//
|
|
123
|
-
server.registerPrompt("
|
|
115
|
+
// ship_website
|
|
116
|
+
server.registerPrompt("ship_website", {
|
|
124
117
|
description: CAPIX_PROMPTS[2].description,
|
|
125
118
|
argsSchema: {
|
|
126
|
-
|
|
127
|
-
|
|
119
|
+
name: z.string().describe("Site name."),
|
|
120
|
+
sourceRef: z.string().describe("Source reference (repository/archive URL)."),
|
|
128
121
|
},
|
|
129
122
|
}, async (args) => ({
|
|
130
123
|
messages: [
|
|
@@ -133,9 +126,10 @@ export function registerPrompts(server) {
|
|
|
133
126
|
content: {
|
|
134
127
|
type: "text",
|
|
135
128
|
text: [
|
|
136
|
-
`
|
|
137
|
-
"1.
|
|
138
|
-
"2.
|
|
129
|
+
`Ship the website ${args.name} from ${args.sourceRef}.`,
|
|
130
|
+
"1. capix_website_create — create + build (requires approvalToken).",
|
|
131
|
+
"2. capix_website_get — poll until the latest release is built (check its status/step/logTail).",
|
|
132
|
+
"3. Return the preview URL, then capix_website_promote — promote to production (requires approvalToken).",
|
|
139
133
|
].join("\n"),
|
|
140
134
|
},
|
|
141
135
|
},
|
|
@@ -145,40 +139,11 @@ export function registerPrompts(server) {
|
|
|
145
139
|
},
|
|
146
140
|
],
|
|
147
141
|
}));
|
|
148
|
-
// plan_stack
|
|
149
|
-
server.registerPrompt("plan_stack", {
|
|
150
|
-
description: CAPIX_PROMPTS[3].description,
|
|
151
|
-
argsSchema: {
|
|
152
|
-
manifestUrl: z.string().describe("Stack manifest URL or inline spec."),
|
|
153
|
-
},
|
|
154
|
-
}, async (args) => ({
|
|
155
|
-
messages: [
|
|
156
|
-
{
|
|
157
|
-
role: "user",
|
|
158
|
-
content: {
|
|
159
|
-
type: "text",
|
|
160
|
-
text: [
|
|
161
|
-
`Validate and plan the stack manifest at ${args.manifestUrl}.`,
|
|
162
|
-
"1. capix_stack_validate — check the manifest.",
|
|
163
|
-
"2. capix_stack_plan — produce a service plan graph + aggregate quote.",
|
|
164
|
-
"Report feasibility and per-service cost.",
|
|
165
|
-
].join("\n"),
|
|
166
|
-
},
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
role: "assistant",
|
|
170
|
-
content: {
|
|
171
|
-
type: "text",
|
|
172
|
-
text: "Stack planning tools are read-only and may auto-run; no approval token required.",
|
|
173
|
-
},
|
|
174
|
-
},
|
|
175
|
-
],
|
|
176
|
-
}));
|
|
177
142
|
// cleanup_task
|
|
178
143
|
server.registerPrompt("cleanup_task", {
|
|
179
|
-
description: CAPIX_PROMPTS[
|
|
144
|
+
description: CAPIX_PROMPTS[3].description,
|
|
180
145
|
argsSchema: {
|
|
181
|
-
taskId: z.string().describe("Task
|
|
146
|
+
taskId: z.string().describe("Task label for the cleanup summary."),
|
|
182
147
|
},
|
|
183
148
|
}, async (args) => ({
|
|
184
149
|
messages: [
|
|
@@ -187,9 +152,10 @@ export function registerPrompts(server) {
|
|
|
187
152
|
content: {
|
|
188
153
|
type: "text",
|
|
189
154
|
text: [
|
|
190
|
-
`Destroy all
|
|
191
|
-
"1.
|
|
192
|
-
"2.
|
|
155
|
+
`Destroy all resources created for ${args.taskId} (§18 cleanup gate).`,
|
|
156
|
+
"1. capix_deployments / capix_agent_list / capix_website_list — enumerate what is still running.",
|
|
157
|
+
"2. capix_delete / capix_agent_destroy / capix_website_destroy — release each one (requires approvalToken).",
|
|
158
|
+
"3. capix_receipts — confirm final settlement.",
|
|
193
159
|
].join("\n"),
|
|
194
160
|
},
|
|
195
161
|
},
|
package/dist/prompts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../src/prompts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capix MCP Server — the allowlist of REAL control-plane route families.
|
|
3
|
+
*
|
|
4
|
+
* Encoded from the 2026-07 live audit of the protocol repo
|
|
5
|
+
* (app/api/v1/* in CapIX-Protocol): every entry below is backed by a route
|
|
6
|
+
* handler that exists in the control plane today. The registry gate
|
|
7
|
+
* (tools/registry.test.ts) asserts that every registered tool's `routePath`
|
|
8
|
+
* starts with one of these families — this is the anti-regression guard that
|
|
9
|
+
* keeps phantom tools (tools pointing at routes the backend never
|
|
10
|
+
* implemented) out of the MCP surface.
|
|
11
|
+
*
|
|
12
|
+
* When the control plane ships a new route family, add it here WITH the
|
|
13
|
+
* backend evidence (route file path) in the comment, then add the tool.
|
|
14
|
+
*
|
|
15
|
+
* Evidence pointers are relative to the protocol repo root.
|
|
16
|
+
*/
|
|
17
|
+
export interface RouteFamily {
|
|
18
|
+
/** Canonical path prefix, e.g. "/api/v1/jobs". */
|
|
19
|
+
prefix: string;
|
|
20
|
+
/** Route file(s) in the protocol repo proving the family exists. */
|
|
21
|
+
evidence: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const REAL_ROUTE_FAMILIES: readonly RouteFamily[];
|
|
24
|
+
/**
|
|
25
|
+
* Route families that were advertised by pre-repair tools but DO NOT EXIST
|
|
26
|
+
* in the control plane (verified 2026-07 against app/api/v1/). Tools were
|
|
27
|
+
* removed from the registry; they return when the backend ships. Listed here
|
|
28
|
+
* so the gate test can also assert no tool regresses onto them.
|
|
29
|
+
*
|
|
30
|
+
* /api/v1/website (singular) — real family is /api/v1/websites (plural)
|
|
31
|
+
* /api/v1/networking, /api/v1/vpc — networking roadmap N1–N5, not built
|
|
32
|
+
* /api/v1/verification, /api/v1/attestations — Secured Cloud (TEE/zkVM) deferred
|
|
33
|
+
* /api/v1/testing — disposable test envs, not built
|
|
34
|
+
* /api/v1/planning — superseded by /api/v1/quotes
|
|
35
|
+
* /api/v1/lifecycle — superseded by /api/v1/deployments (+PATCH)
|
|
36
|
+
* /api/v1/projects — no projects list route exists
|
|
37
|
+
* /api/v1/catalog/compute, /api/v1/catalog/models — real: catalog/capabilities, models
|
|
38
|
+
* /api/v1/network/status — real: /api/v1/health
|
|
39
|
+
* /api/v1/account/balance — real: /api/v1/billing
|
|
40
|
+
* /api/v1/nodes/status, /api/v1/earnings — only nodes/[id]/earnings exists
|
|
41
|
+
*/
|
|
42
|
+
export declare const REMOVED_ROUTE_FAMILIES: readonly string[];
|
|
43
|
+
/** True when `path` (may contain :params) targets a real route family. */
|
|
44
|
+
export declare function isRealRoutePath(path: string): boolean;
|
|
45
|
+
/** True when `path` targets a family removed because the backend never existed. */
|
|
46
|
+
export declare function isRemovedRoutePath(path: string): boolean;
|
|
47
|
+
//# sourceMappingURL=route-families.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-families.d.ts","sourceRoot":"","sources":["../src/route-families.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,WAAW;IAC1B,kDAAkD;IAClD,MAAM,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,EAAE,SAAS,WAAW,EAmC5C,CAAC;AAEX;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAgB1C,CAAC;AAEX,0EAA0E;AAC1E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIrD;AAED,mFAAmF;AACnF,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIxD"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Capix MCP Server — the allowlist of REAL control-plane route families.
|
|
3
|
+
*
|
|
4
|
+
* Encoded from the 2026-07 live audit of the protocol repo
|
|
5
|
+
* (app/api/v1/* in CapIX-Protocol): every entry below is backed by a route
|
|
6
|
+
* handler that exists in the control plane today. The registry gate
|
|
7
|
+
* (tools/registry.test.ts) asserts that every registered tool's `routePath`
|
|
8
|
+
* starts with one of these families — this is the anti-regression guard that
|
|
9
|
+
* keeps phantom tools (tools pointing at routes the backend never
|
|
10
|
+
* implemented) out of the MCP surface.
|
|
11
|
+
*
|
|
12
|
+
* When the control plane ships a new route family, add it here WITH the
|
|
13
|
+
* backend evidence (route file path) in the comment, then add the tool.
|
|
14
|
+
*
|
|
15
|
+
* Evidence pointers are relative to the protocol repo root.
|
|
16
|
+
*/
|
|
17
|
+
export const REAL_ROUTE_FAMILIES = [
|
|
18
|
+
// GET /api/v1/account re-exports GET /api/v1/me (account/route.ts).
|
|
19
|
+
{ prefix: "/api/v1/account", evidence: "app/api/v1/account/route.ts" },
|
|
20
|
+
// GET /api/v1/billing — balances, valuation, transactions (billing/route.ts).
|
|
21
|
+
{ prefix: "/api/v1/billing", evidence: "app/api/v1/billing/route.ts" },
|
|
22
|
+
// GET /api/v1/catalog/capabilities — workload types + providers (public).
|
|
23
|
+
{ prefix: "/api/v1/catalog/capabilities", evidence: "app/api/v1/catalog/capabilities/route.ts" },
|
|
24
|
+
// GET/POST /api/v1/deployments, GET/PATCH/DELETE /api/v1/deployments/[id].
|
|
25
|
+
{ prefix: "/api/v1/deployments", evidence: "app/api/v1/deployments/route.ts + [id]/route.ts" },
|
|
26
|
+
// GET /api/v1/health — service status + feature gates (public).
|
|
27
|
+
{ prefix: "/api/v1/health", evidence: "app/api/v1/health/route.ts" },
|
|
28
|
+
// POST /api/v1/images — text-to-image (billable).
|
|
29
|
+
{ prefix: "/api/v1/images", evidence: "app/api/v1/images/route.ts" },
|
|
30
|
+
// POST/GET /api/v1/jobs (+ [id]/cancel, [id]/logs, [id]/rerun).
|
|
31
|
+
{ prefix: "/api/v1/jobs", evidence: "app/api/v1/jobs/route.ts + [id]/{cancel,logs,rerun}/route.ts" },
|
|
32
|
+
// GET /api/v1/marketplace/offers — provider-anonymized capacity offers (public).
|
|
33
|
+
{ prefix: "/api/v1/marketplace/offers", evidence: "app/api/v1/marketplace/offers/route.ts" },
|
|
34
|
+
// GET/POST /api/v1/memes, GET /api/v1/memes/[id].
|
|
35
|
+
{ prefix: "/api/v1/memes", evidence: "app/api/v1/memes/route.ts + [id]/route.ts" },
|
|
36
|
+
// GET /api/v1/models — public catalog + owned private endpoints.
|
|
37
|
+
{ prefix: "/api/v1/models", evidence: "app/api/v1/models/route.ts" },
|
|
38
|
+
// GET/POST /api/v1/operations/[id] (POST = cancel), GET [id]/events.
|
|
39
|
+
{ prefix: "/api/v1/operations", evidence: "app/api/v1/operations/[id]/route.ts" },
|
|
40
|
+
// GET/POST /api/v1/quotes (GET requires ?quoteId=).
|
|
41
|
+
{ prefix: "/api/v1/quotes", evidence: "app/api/v1/quotes/route.ts" },
|
|
42
|
+
// GET/POST /api/v1/receipts — work receipts (list/create only; no [id] route).
|
|
43
|
+
{ prefix: "/api/v1/receipts", evidence: "app/api/v1/receipts/route.ts" },
|
|
44
|
+
// GET /api/v1/route-receipts/[id] — signed placement receipt (by-id only).
|
|
45
|
+
{ prefix: "/api/v1/route-receipts", evidence: "app/api/v1/route-receipts/[id]/route.ts" },
|
|
46
|
+
// POST/GET /api/v1/training, GET [id], POST [id]/deploy.
|
|
47
|
+
{ prefix: "/api/v1/training", evidence: "app/api/v1/training/route.ts + [id]/{route,deploy/route}.ts" },
|
|
48
|
+
// POST/GET /api/v1/agent-deploys, GET/DELETE [id].
|
|
49
|
+
{ prefix: "/api/v1/agent-deploys", evidence: "app/api/v1/agent-deploys/route.ts + [id]/route.ts" },
|
|
50
|
+
// POST/GET /api/v1/websites, GET/DELETE [id], POST [id]/promote|rollback.
|
|
51
|
+
{ prefix: "/api/v1/websites", evidence: "app/api/v1/websites/route.ts + [id]/route.ts" },
|
|
52
|
+
];
|
|
53
|
+
/**
|
|
54
|
+
* Route families that were advertised by pre-repair tools but DO NOT EXIST
|
|
55
|
+
* in the control plane (verified 2026-07 against app/api/v1/). Tools were
|
|
56
|
+
* removed from the registry; they return when the backend ships. Listed here
|
|
57
|
+
* so the gate test can also assert no tool regresses onto them.
|
|
58
|
+
*
|
|
59
|
+
* /api/v1/website (singular) — real family is /api/v1/websites (plural)
|
|
60
|
+
* /api/v1/networking, /api/v1/vpc — networking roadmap N1–N5, not built
|
|
61
|
+
* /api/v1/verification, /api/v1/attestations — Secured Cloud (TEE/zkVM) deferred
|
|
62
|
+
* /api/v1/testing — disposable test envs, not built
|
|
63
|
+
* /api/v1/planning — superseded by /api/v1/quotes
|
|
64
|
+
* /api/v1/lifecycle — superseded by /api/v1/deployments (+PATCH)
|
|
65
|
+
* /api/v1/projects — no projects list route exists
|
|
66
|
+
* /api/v1/catalog/compute, /api/v1/catalog/models — real: catalog/capabilities, models
|
|
67
|
+
* /api/v1/network/status — real: /api/v1/health
|
|
68
|
+
* /api/v1/account/balance — real: /api/v1/billing
|
|
69
|
+
* /api/v1/nodes/status, /api/v1/earnings — only nodes/[id]/earnings exists
|
|
70
|
+
*/
|
|
71
|
+
export const REMOVED_ROUTE_FAMILIES = [
|
|
72
|
+
"/api/v1/website",
|
|
73
|
+
"/api/v1/networking",
|
|
74
|
+
"/api/v1/vpc",
|
|
75
|
+
"/api/v1/verification",
|
|
76
|
+
"/api/v1/attestations",
|
|
77
|
+
"/api/v1/testing",
|
|
78
|
+
"/api/v1/planning",
|
|
79
|
+
"/api/v1/lifecycle",
|
|
80
|
+
"/api/v1/projects",
|
|
81
|
+
"/api/v1/catalog/compute",
|
|
82
|
+
"/api/v1/catalog/models",
|
|
83
|
+
"/api/v1/network",
|
|
84
|
+
"/api/v1/account/balance",
|
|
85
|
+
"/api/v1/nodes",
|
|
86
|
+
"/api/v1/earnings",
|
|
87
|
+
];
|
|
88
|
+
/** True when `path` (may contain :params) targets a real route family. */
|
|
89
|
+
export function isRealRoutePath(path) {
|
|
90
|
+
return REAL_ROUTE_FAMILIES.some(({ prefix }) => path === prefix || path.startsWith(`${prefix}/`));
|
|
91
|
+
}
|
|
92
|
+
/** True when `path` targets a family removed because the backend never existed. */
|
|
93
|
+
export function isRemovedRoutePath(path) {
|
|
94
|
+
return REMOVED_ROUTE_FAMILIES.some((prefix) => path === prefix || path.startsWith(`${prefix}/`));
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=route-families.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"route-families.js","sourceRoot":"","sources":["../src/route-families.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AASH,MAAM,CAAC,MAAM,mBAAmB,GAA2B;IACzD,oEAAoE;IACpE,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,6BAA6B,EAAE;IACtE,8EAA8E;IAC9E,EAAE,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,6BAA6B,EAAE;IACtE,0EAA0E;IAC1E,EAAE,MAAM,EAAE,8BAA8B,EAAE,QAAQ,EAAE,0CAA0C,EAAE;IAChG,2EAA2E;IAC3E,EAAE,MAAM,EAAE,qBAAqB,EAAE,QAAQ,EAAE,iDAAiD,EAAE;IAC9F,gEAAgE;IAChE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,4BAA4B,EAAE;IACpE,kDAAkD;IAClD,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,4BAA4B,EAAE;IACpE,gEAAgE;IAChE,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,8DAA8D,EAAE;IACpG,iFAAiF;IACjF,EAAE,MAAM,EAAE,4BAA4B,EAAE,QAAQ,EAAE,wCAAwC,EAAE;IAC5F,kDAAkD;IAClD,EAAE,MAAM,EAAE,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE;IAClF,iEAAiE;IACjE,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,4BAA4B,EAAE;IACpE,qEAAqE;IACrE,EAAE,MAAM,EAAE,oBAAoB,EAAE,QAAQ,EAAE,qCAAqC,EAAE;IACjF,oDAAoD;IACpD,EAAE,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,4BAA4B,EAAE;IACpE,+EAA+E;IAC/E,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,8BAA8B,EAAE;IACxE,2EAA2E;IAC3E,EAAE,MAAM,EAAE,wBAAwB,EAAE,QAAQ,EAAE,yCAAyC,EAAE;IACzF,yDAAyD;IACzD,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,6DAA6D,EAAE;IACvG,mDAAmD;IACnD,EAAE,MAAM,EAAE,uBAAuB,EAAE,QAAQ,EAAE,mDAAmD,EAAE;IAClG,0EAA0E;IAC1E,EAAE,MAAM,EAAE,kBAAkB,EAAE,QAAQ,EAAE,8CAA8C,EAAE;CAChF,CAAC;AAEX;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAsB;IACvD,iBAAiB;IACjB,oBAAoB;IACpB,aAAa;IACb,sBAAsB;IACtB,sBAAsB;IACtB,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,kBAAkB;IAClB,yBAAyB;IACzB,wBAAwB;IACxB,iBAAiB;IACjB,yBAAyB;IACzB,eAAe;IACf,kBAAkB;CACV,CAAC;AAEX,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,mBAAmB,CAAC,IAAI,CAC7B,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CACjE,CAAC;AACJ,CAAC;AAED,mFAAmF;AACnF,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,sBAAsB,CAAC,IAAI,CAChC,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAC7D,CAAC;AACJ,CAAC"}
|
package/dist/server.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Capix MCP Server — the McpServer assembly + transport wiring.
|
|
3
3
|
*
|
|
4
|
-
* `createCapixMcpServer(client)` builds an {@link McpServer} with
|
|
5
|
-
*
|
|
6
|
-
* registration wires:
|
|
4
|
+
* `createCapixMcpServer(client)` builds an {@link McpServer} with every tool
|
|
5
|
+
* in the registry (TOOL_COUNT), the capix:// resources, and the guided
|
|
6
|
+
* prompts registered. Each tool registration wires:
|
|
7
7
|
* - inputSchema → the tool's Zod raw shape (validated by the SDK)
|
|
8
8
|
* - outputSchema → the tool's Zod raw output shape
|
|
9
9
|
* - annotations → readOnlyHint / destructiveHint / idempotentHint derived
|
|
@@ -32,8 +32,8 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
32
32
|
import type { CapixClient } from "./client.js";
|
|
33
33
|
import type { ToolDef, ToolScope } from "./types.js";
|
|
34
34
|
/**
|
|
35
|
-
* Build a fully-wired McpServer. All
|
|
36
|
-
*
|
|
35
|
+
* Build a fully-wired McpServer. All registered tools, resources, and prompts
|
|
36
|
+
* are wired before returning; the caller just attaches a transport.
|
|
37
37
|
*/
|
|
38
38
|
export declare function createCapixMcpServer(client: CapixClient, opts?: {
|
|
39
39
|
version?: string;
|