@runonflux/flux-cloud-mcp 0.1.1 → 0.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 CHANGED
@@ -139,6 +139,36 @@ term. Private (enterprise) apps are supported through the `enterprise`
139
139
  argument: components are encrypted for the network and only ArcaneOS nodes
140
140
  can run them.
141
141
 
142
+ ## Hosted server: mcp.runonflux.com
143
+
144
+ The same server also runs on Flux Cloud itself, over Streamable HTTP, for
145
+ hosts that cannot start a local process (claude.ai connectors, ChatGPT,
146
+ browser and mobile agents). Add it as a remote MCP server:
147
+
148
+ ```
149
+ https://mcp.runonflux.com/mcp
150
+ ```
151
+
152
+ The hosted server holds no keys. Read-only tools need none. Tools that sign
153
+ or pay take `fluxIdPrivateKey` and `paymentPrivateKey` as call arguments,
154
+ used in memory for that call and never logged or stored. The server's
155
+ instructions tell agents to create a dedicated pair with `flux_generate_keys`
156
+ and to have the user fund only what a deployment needs, rather than asking
157
+ for the keys of a wallet used elsewhere. Anything typed into a chat passes
158
+ through the AI vendor and the host's history, so treat such a pair as
159
+ disposable and keep its balance small. For larger budgets, run the local
160
+ server, where keys never leave your machine.
161
+
162
+ Run your own copy with Docker:
163
+
164
+ ```bash
165
+ docker run -p 3000:3000 runonflux/flux-cloud-mcp
166
+ ```
167
+
168
+ It is stateless, so any number of instances can sit behind one load balancer.
169
+ `GET /healthz` reports liveness. The Flux app specification that runs the
170
+ public instance is in `deploy/cloudmcp.json`.
171
+
142
172
  ## Configuration
143
173
 
144
174
  | Variable | Default | Purpose |
package/dist/http.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Hosted entry point: the same server over Streamable HTTP, stateless.
4
+ *
5
+ * Every POST /mcp gets a fresh server and transport, so any instance behind a
6
+ * load balancer can answer any request and nothing lives between calls. The
7
+ * process holds no keys; tools that need them take them as arguments.
8
+ *
9
+ * Responses stream as SSE with a 10 s keepalive, which keeps Flux's domain
10
+ * gateway (25 s inactivity timeout) from cutting long tool calls.
11
+ */
12
+ export {};
package/dist/http.js ADDED
@@ -0,0 +1,94 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Hosted entry point: the same server over Streamable HTTP, stateless.
4
+ *
5
+ * Every POST /mcp gets a fresh server and transport, so any instance behind a
6
+ * load balancer can answer any request and nothing lives between calls. The
7
+ * process holds no keys; tools that need them take them as arguments.
8
+ *
9
+ * Responses stream as SSE with a 10 s keepalive, which keeps Flux's domain
10
+ * gateway (25 s inactivity timeout) from cutting long tool calls.
11
+ */
12
+ import { createServer as createHttpServer } from 'node:http';
13
+ import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
14
+ import { loadConfig } from './config.js';
15
+ import { createServer, SERVER_VERSION } from './server.js';
16
+ const config = loadConfig();
17
+ const port = Number(process.env.PORT ?? 3000);
18
+ const LANDING = `Flux Cloud MCP server ${SERVER_VERSION}
19
+
20
+ MCP endpoint: POST /mcp (Streamable HTTP, stateless)
21
+ Health: GET /healthz
22
+
23
+ Add it to your MCP host as a remote server with the URL <this host>/mcp.
24
+ Read-only tools need no keys. To deploy, the agent creates a dedicated key
25
+ pair with flux_generate_keys and you fund its payment address.
26
+
27
+ Source and local (stdio) version: https://github.com/RunOnFlux/flux-cloud-mcp
28
+ `;
29
+ function cors(res) {
30
+ res.setHeader('Access-Control-Allow-Origin', '*');
31
+ res.setHeader('Access-Control-Allow-Methods', 'GET, POST, DELETE, OPTIONS');
32
+ res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Accept, Authorization, Mcp-Session-Id, Mcp-Protocol-Version');
33
+ res.setHeader('Access-Control-Expose-Headers', 'Mcp-Session-Id');
34
+ }
35
+ function json(res, status, body) {
36
+ res.writeHead(status, { 'Content-Type': 'application/json' });
37
+ res.end(JSON.stringify(body));
38
+ }
39
+ async function handleMcp(req, res) {
40
+ if (req.method !== 'POST') {
41
+ json(res, 405, {
42
+ jsonrpc: '2.0',
43
+ error: { code: -32000, message: 'Method not allowed: this server is stateless, use POST' },
44
+ id: null,
45
+ });
46
+ return;
47
+ }
48
+ const server = createServer(config, { hosted: true });
49
+ // No sessionIdGenerator: stateless mode.
50
+ const transport = new StreamableHTTPServerTransport({ keepAliveMs: 10000 });
51
+ res.on('close', () => {
52
+ void transport.close();
53
+ void server.close();
54
+ });
55
+ await server.connect(transport);
56
+ await transport.handleRequest(req, res);
57
+ }
58
+ const httpServer = createHttpServer((req, res) => {
59
+ cors(res);
60
+ const url = new URL(req.url ?? '/', 'http://localhost');
61
+ if (req.method === 'OPTIONS') {
62
+ res.writeHead(204);
63
+ res.end();
64
+ return;
65
+ }
66
+ if (url.pathname === '/mcp') {
67
+ handleMcp(req, res).catch((error) => {
68
+ process.stderr.write(`mcp request failed: ${error.message}\n`);
69
+ if (!res.headersSent) {
70
+ json(res, 500, {
71
+ jsonrpc: '2.0',
72
+ error: { code: -32603, message: 'Internal server error' },
73
+ id: null,
74
+ });
75
+ }
76
+ });
77
+ return;
78
+ }
79
+ if (url.pathname === '/healthz') {
80
+ json(res, 200, { status: 'ok', version: SERVER_VERSION });
81
+ return;
82
+ }
83
+ if (url.pathname === '/') {
84
+ res.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
85
+ res.end(LANDING);
86
+ return;
87
+ }
88
+ res.writeHead(404);
89
+ res.end();
90
+ });
91
+ httpServer.listen(port, () => {
92
+ process.stderr.write(`flux-cloud-mcp http listening on :${port} (hosted mode, no keys held)\n`);
93
+ });
94
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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"}
package/dist/server.d.ts CHANGED
@@ -8,6 +8,14 @@ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
8
8
  import type { Config } from './config.js';
9
9
  import { walletFromConfig } from './deploy.js';
10
10
  export declare const SERVER_NAME = "flux-cloud";
11
- export declare const SERVER_VERSION = "0.1.1";
12
- export declare function createServer(config: Config): McpServer;
11
+ export declare const SERVER_VERSION = "0.2.0";
12
+ export interface ServerOptions {
13
+ /**
14
+ * Hosted mode: the server holds no keys. Tools that need them take
15
+ * `fluxIdPrivateKey` and `paymentPrivateKey` as call arguments, used in
16
+ * memory for that call only and never logged or stored.
17
+ */
18
+ hosted?: boolean;
19
+ }
20
+ export declare function createServer(baseConfig: Config, options?: ServerOptions): McpServer;
13
21
  export { walletFromConfig };
package/dist/server.js CHANGED
@@ -14,7 +14,7 @@ import { currentSession, generateIdentity, identityFromWif } from './keys.js';
14
14
  import { DEFAULT_USD_RATES, estimateQuote, fetchFluxUsdRate, fetchUsdRates, quoteFromNetwork, } from './pricing.js';
15
15
  import { BLOCKS_PER_MONTH, buildSpecification, componentsOf, durabilityWarnings, expireOf, formatSpecification, normalizePublished, validateSpecification, } from './spec.js';
16
16
  export const SERVER_NAME = 'flux-cloud';
17
- export const SERVER_VERSION = '0.1.1';
17
+ export const SERVER_VERSION = '0.2.0';
18
18
  // ---------------------------------------------------------------------------
19
19
  // Schemas shared by several tools
20
20
  // ---------------------------------------------------------------------------
@@ -200,15 +200,46 @@ function urlsFor(spec, locations) {
200
200
  });
201
201
  return { shared, direct };
202
202
  }
203
- // ---------------------------------------------------------------------------
204
- // Server
205
- // ---------------------------------------------------------------------------
206
- export function createServer(config) {
207
- const server = new McpServer({ name: SERVER_NAME, version: SERVER_VERSION }, {
208
- instructions: 'Deploy and manage apps on Flux Cloud, the decentralized cloud. Read the flux://guide/overview resource first. ' +
209
- 'All prices are Flux Cloud USD prices (converted to FLUX for payment). Always show the user the USD quote from ' +
210
- 'flux_quote_app and get their agreement before calling flux_deploy_app with confirm=true, which spends FLUX.',
211
- });
203
+ const KeysShape = {
204
+ fluxIdPrivateKey: z
205
+ .string()
206
+ .optional()
207
+ .describe('WIF private key of the Flux ID that owns the app. Use a dedicated key from flux_generate_keys, never a main wallet key.'),
208
+ paymentPrivateKey: z
209
+ .string()
210
+ .optional()
211
+ .describe('WIF private key of the Flux address that pays. Fund it with only what you intend to spend.'),
212
+ };
213
+ function withKeys(base, args) {
214
+ return {
215
+ ...base,
216
+ ownerWif: args.fluxIdPrivateKey?.trim() || base.ownerWif,
217
+ payerWif: args.paymentPrivateKey?.trim() || base.payerWif,
218
+ };
219
+ }
220
+ const LOCAL_INSTRUCTIONS = 'Deploy and manage apps on Flux Cloud, the decentralized cloud. Read the flux://guide/overview resource first. ' +
221
+ 'All prices are Flux Cloud USD prices (converted to FLUX for payment). Always show the user the USD quote from ' +
222
+ 'flux_quote_app and get their agreement before calling flux_deploy_app with confirm=true, which spends FLUX.';
223
+ const HOSTED_INSTRUCTIONS = LOCAL_INSTRUCTIONS +
224
+ ' This is the hosted server: it stores no keys. Read-only tools need none. Tools that sign or pay take ' +
225
+ 'fluxIdPrivateKey and paymentPrivateKey as arguments, used only for that call. NEVER ask the user for the keys of ' +
226
+ 'a wallet they use elsewhere: call flux_generate_keys to create a dedicated pair, tell the user to fund the payment ' +
227
+ 'address with only the amount needed, and reuse that pair in later calls. Remind the user to save the keys.';
228
+ export function createServer(baseConfig, options = {}) {
229
+ const hosted = options.hosted === true;
230
+ const server = new McpServer({ name: SERVER_NAME, version: SERVER_VERSION }, { instructions: hosted ? HOSTED_INSTRUCTIONS : LOCAL_INSTRUCTIONS });
231
+ /**
232
+ * Register a tool whose handler receives the effective config: in hosted
233
+ * mode the call's own keys (if any) layered over the base config.
234
+ */
235
+ function tool(name, meta, handler) {
236
+ const inputSchema = (hosted ? { ...meta.inputSchema, ...KeysShape } : meta.inputSchema);
237
+ const callback = (async (args) => {
238
+ const typed = args;
239
+ return handler(typed, withKeys(baseConfig, typed));
240
+ });
241
+ server.registerTool(name, { ...meta, inputSchema }, callback);
242
+ }
212
243
  // ----- resources --------------------------------------------------------
213
244
  const guides = [
214
245
  [
@@ -264,7 +295,7 @@ export function createServer(config) {
264
295
  * single-container apps are just `<app>`. Pick a running node when none is given.
265
296
  */
266
297
  async function resolveContainer(name, component, nodeIp) {
267
- const lb = api(config);
298
+ const lb = api(baseConfig);
268
299
  const [spec, locations] = await Promise.all([publishedSpec(lb, name), appLocations(lb, name)]);
269
300
  if (!spec)
270
301
  throw new Error(`${name} is not registered on the network.`);
@@ -283,12 +314,12 @@ export function createServer(config) {
283
314
  return { target, container };
284
315
  }
285
316
  // ----- identity ---------------------------------------------------------
286
- server.registerTool('flux_get_identity', {
317
+ tool('flux_get_identity', {
287
318
  title: 'Show the configured Flux identity and balance',
288
319
  description: 'Returns the Flux ID (app owner address), the payment address and its spendable FLUX balance with its USD value. ' +
289
320
  'Explains what to configure if keys are missing. Never returns private keys.',
290
321
  inputSchema: {},
291
- }, async () => {
322
+ }, async (_args, config) => {
292
323
  try {
293
324
  const owner = config.ownerWif ? identityFromWif(config.ownerWif) : undefined;
294
325
  const payer = config.payerWif ? identityFromWif(config.payerWif) : undefined;
@@ -315,7 +346,9 @@ export function createServer(config) {
315
346
  ...(owner && payer
316
347
  ? {}
317
348
  : {
318
- setup: 'Set FLUX_ID_PRIVATE_KEY (owner) and FLUX_PAYMENT_PRIVATE_KEY (payer) in the MCP server environment, or run flux_generate_keys.',
349
+ setup: hosted
350
+ ? 'No keys were passed. Run flux_generate_keys once, then pass fluxIdPrivateKey and paymentPrivateKey to tools that need them.'
351
+ : 'Set FLUX_ID_PRIVATE_KEY (owner) and FLUX_PAYMENT_PRIVATE_KEY (payer) in the MCP server environment, or run flux_generate_keys.',
319
352
  }),
320
353
  ...(payer && balance && balance.spendableFlux === 0
321
354
  ? {
@@ -328,33 +361,39 @@ export function createServer(config) {
328
361
  return fail(error);
329
362
  }
330
363
  });
331
- server.registerTool('flux_generate_keys', {
364
+ tool('flux_generate_keys', {
332
365
  title: 'Generate a new Flux ID and payment key pair',
333
366
  description: 'Creates two fresh private keys (WIF): one for the Flux ID that will own apps, one for the address that pays. ' +
334
367
  'The response contains the secrets; store them in the MCP server environment as FLUX_ID_PRIVATE_KEY and ' +
335
368
  'FLUX_PAYMENT_PRIVATE_KEY, then restart the server. Nothing is stored or sent anywhere by this tool.',
336
369
  inputSchema: {},
337
- }, async () => {
370
+ }, async (_args, _config) => {
338
371
  const owner = generateIdentity();
339
372
  const payer = generateIdentity();
340
373
  return ok({
341
374
  fluxId: { address: owner.zelid, privateKeyWif: owner.wif },
342
375
  payment: { address: payer.fluxAddress, privateKeyWif: payer.wif },
343
376
  env: { FLUX_ID_PRIVATE_KEY: owner.wif, FLUX_PAYMENT_PRIVATE_KEY: payer.wif },
344
- next: [
345
- 'Save both private keys somewhere safe; they cannot be recovered.',
346
- 'Put the env values into the MCP server configuration and restart it.',
347
- `Send FLUX to ${payer.fluxAddress} to fund deployments.`,
348
- ],
377
+ next: hosted
378
+ ? [
379
+ 'Show both private keys to the user and tell them to save them; they cannot be recovered.',
380
+ 'Pass them as fluxIdPrivateKey and paymentPrivateKey in later tool calls.',
381
+ `The user funds ${payer.fluxAddress} with only the FLUX needed for their deployments.`,
382
+ ]
383
+ : [
384
+ 'Save both private keys somewhere safe; they cannot be recovered.',
385
+ 'Put the env values into the MCP server configuration and restart it.',
386
+ `Send FLUX to ${payer.fluxAddress} to fund deployments.`,
387
+ ],
349
388
  });
350
389
  });
351
390
  // ----- pricing ----------------------------------------------------------
352
- server.registerTool('flux_get_pricing', {
391
+ tool('flux_get_pricing', {
353
392
  title: 'Get the Flux Cloud rate card',
354
393
  description: 'Returns the current USD rate card, the live FLUX/USD rate, the pay-in-FLUX discount and instant USD estimates for ' +
355
394
  'a few reference sizes. Use flux_quote_app for the exact price of a specific app.',
356
395
  inputSchema: {},
357
- }, async () => {
396
+ }, async (_args, config) => {
358
397
  try {
359
398
  const [rates, fluxUsd] = await Promise.all([
360
399
  fetchUsdRates(config.statsUrl),
@@ -409,14 +448,20 @@ export function createServer(config) {
409
448
  }
410
449
  });
411
450
  // ----- spec building & validation --------------------------------------
412
- server.registerTool('flux_build_spec', {
451
+ tool('flux_build_spec', {
413
452
  title: 'Build a Flux app specification from a simple description',
414
453
  description: 'Turns images, ports, resources and a term into a complete, correctly formatted v8 specification, with public ' +
415
454
  'ports auto-picked and data replication enabled. Returns the spec plus local validation errors and warnings.',
416
- inputSchema: SimpleAppSchema.shape,
417
- }, async (input) => {
455
+ inputSchema: {
456
+ ...SimpleAppSchema.shape,
457
+ owner: z
458
+ .string()
459
+ .optional()
460
+ .describe('Flux ID that will own the app. Defaults to the configured or passed key.'),
461
+ },
462
+ }, async ({ owner, ...input }, config) => {
418
463
  try {
419
- const spec = buildSpecification({ ...input, owner: ownerOf(config) });
464
+ const spec = buildSpecification({ ...input, owner: ownerOf(config, owner) });
420
465
  const errors = validateSpecification(spec);
421
466
  return ok({
422
467
  spec,
@@ -430,7 +475,7 @@ export function createServer(config) {
430
475
  return fail(error);
431
476
  }
432
477
  });
433
- server.registerTool('flux_validate_spec', {
478
+ tool('flux_validate_spec', {
434
479
  title: 'Validate a specification locally and on the network',
435
480
  description: 'Runs the local rule checks, then asks a FluxOS node to verify the specification exactly as it would at registration ' +
436
481
  '(image reachable, architecture, ports, name availability). Returns the node-formatted spec on success.',
@@ -438,7 +483,7 @@ export function createServer(config) {
438
483
  spec: SpecSchema,
439
484
  network: z.boolean().default(true).describe('Also verify on a FluxOS node.'),
440
485
  },
441
- }, async ({ spec, network }) => {
486
+ }, async ({ spec, network }, config) => {
442
487
  try {
443
488
  const formatted = formatSpecification({ ...spec, owner: ownerOf(config, spec.owner) });
444
489
  const errors = validateSpecification(formatted);
@@ -474,12 +519,12 @@ export function createServer(config) {
474
519
  return fail(error);
475
520
  }
476
521
  });
477
- server.registerTool('flux_quote_app', {
522
+ tool('flux_quote_app', {
478
523
  title: 'Quote the price of an app in USD and FLUX',
479
524
  description: 'Returns the Flux Cloud price for registering the given specification, or for updating it if an app of that name ' +
480
525
  'already exists (the unused part of the current term is credited). Price is in USD with the FLUX amount at market rate.',
481
526
  inputSchema: { spec: SpecSchema },
482
- }, async ({ spec }) => {
527
+ }, async ({ spec }, config) => {
483
528
  try {
484
529
  const formatted = formatSpecification({ ...spec, owner: ownerOf(config, spec.owner) });
485
530
  const errors = validateSpecification(formatted);
@@ -508,7 +553,7 @@ export function createServer(config) {
508
553
  .optional()
509
554
  .describe('Make the app private: these components and contacts are encrypted so only the nodes running the app can read them. ' +
510
555
  'When set, spec.compose should be [] and spec.enterprise "".');
511
- server.registerTool('flux_deploy_app', {
556
+ tool('flux_deploy_app', {
512
557
  title: 'Deploy (register or update) an app and pay for it',
513
558
  description: 'Validates the specification on a node, quotes it, and with confirm=true signs it with the Flux ID, broadcasts ' +
514
559
  'it and pays the quoted FLUX from the payment address. Without confirm it only returns the plan (price, balance, ' +
@@ -522,7 +567,7 @@ export function createServer(config) {
522
567
  .default(false)
523
568
  .describe('Set true to actually sign, broadcast and pay.'),
524
569
  },
525
- }, async ({ spec, enterprise, confirm }) => {
570
+ }, async ({ spec, enterprise, confirm }, config) => {
526
571
  const log = [];
527
572
  try {
528
573
  const enterpriseInput = enterprise
@@ -588,7 +633,7 @@ export function createServer(config) {
588
633
  };
589
634
  }
590
635
  });
591
- server.registerTool('flux_wait_for_app', {
636
+ tool('flux_wait_for_app', {
592
637
  title: 'Wait for a deployment to be accepted and its instances to run',
593
638
  description: 'Polls the network for up to timeoutSeconds (default 300, max 600). Returns payment confirmations, whether the ' +
594
639
  'spec was accepted, and the running instances with URLs. Safe to call repeatedly until done=true.',
@@ -604,7 +649,7 @@ export function createServer(config) {
604
649
  .describe('For updates: the hash of the previous spec, so acceptance means a new hash.'),
605
650
  timeoutSeconds: z.number().int().min(10).max(600).default(300),
606
651
  },
607
- }, async ({ name, txid, previousHash, timeoutSeconds }) => {
652
+ }, async ({ name, txid, previousHash, timeoutSeconds }, config) => {
608
653
  try {
609
654
  const result = await waitForApp(config, name, {
610
655
  txid,
@@ -636,11 +681,11 @@ export function createServer(config) {
636
681
  }
637
682
  });
638
683
  // ----- inspect ----------------------------------------------------------
639
- server.registerTool('flux_get_app', {
684
+ tool('flux_get_app', {
640
685
  title: 'Get a deployed app: spec, status, instances, URLs',
641
686
  description: 'Looks up any app on the network by name and returns its published specification, expiry, running instances and URLs.',
642
687
  inputSchema: { name: z.string() },
643
- }, async ({ name }) => {
688
+ }, async ({ name }, config) => {
644
689
  try {
645
690
  const lb = api(config);
646
691
  const [spec, locations, info] = await Promise.all([
@@ -673,14 +718,14 @@ export function createServer(config) {
673
718
  return fail(error);
674
719
  }
675
720
  });
676
- server.registerTool('flux_list_my_apps', {
721
+ tool('flux_list_my_apps', {
677
722
  title: 'List apps owned by the configured Flux ID',
678
723
  description: 'Lists every app registered by the owner (or a given Flux ID) with expiry and instance counts.',
679
724
  inputSchema: {
680
725
  owner: z.string().optional().describe('Flux ID to list; defaults to the configured one.'),
681
726
  nameContains: z.string().optional().describe('Only apps whose name contains this text.'),
682
727
  },
683
- }, async ({ owner, nameContains }) => {
728
+ }, async ({ owner, nameContains }, config) => {
684
729
  try {
685
730
  const zelid = ownerOf(config, owner);
686
731
  const lb = api(config);
@@ -714,7 +759,7 @@ export function createServer(config) {
714
759
  return fail(error);
715
760
  }
716
761
  });
717
- server.registerTool('flux_get_app_logs', {
762
+ tool('flux_get_app_logs', {
718
763
  title: 'Read container logs from a running instance',
719
764
  description: 'Fetches the last N log lines of an app (or one component of it) from one of the nodes running it. Requires the owner key.',
720
765
  inputSchema: {
@@ -726,7 +771,7 @@ export function createServer(config) {
726
771
  .optional()
727
772
  .describe('ip[:port] of the instance; defaults to the first running one.'),
728
773
  },
729
- }, async ({ name, component, lines, nodeIp }) => {
774
+ }, async ({ name, component, lines, nodeIp }, config) => {
730
775
  try {
731
776
  const session = currentSession(requireOwnerWif(config));
732
777
  const { target, container } = await resolveContainer(name, component, nodeIp);
@@ -741,7 +786,7 @@ export function createServer(config) {
741
786
  return fail(error);
742
787
  }
743
788
  });
744
- server.registerTool('flux_get_app_stats', {
789
+ tool('flux_get_app_stats', {
745
790
  title: 'Get live resource usage of a running instance',
746
791
  description: 'CPU, memory and network stats of the containers of an app on one node. Requires the owner key.',
747
792
  inputSchema: {
@@ -749,7 +794,7 @@ export function createServer(config) {
749
794
  component: z.string().optional().describe('Component name for multi-component apps.'),
750
795
  nodeIp: z.string().optional(),
751
796
  },
752
- }, async ({ name, component, nodeIp }) => {
797
+ }, async ({ name, component, nodeIp }, config) => {
753
798
  try {
754
799
  const session = currentSession(requireOwnerWif(config));
755
800
  const { target, container } = await resolveContainer(name, component, nodeIp);
@@ -765,7 +810,7 @@ export function createServer(config) {
765
810
  }
766
811
  });
767
812
  // ----- control ----------------------------------------------------------
768
- server.registerTool('flux_control_app', {
813
+ tool('flux_control_app', {
769
814
  title: 'Restart, redeploy or remove app instances',
770
815
  description: 'restart: restarts containers. redeploy: pulls the image again and recreates containers (hard=true also wipes data). ' +
771
816
  'remove: uninstalls from nodes; the registration stays and the network re-spawns it elsewhere, so use flux_cancel_app ' +
@@ -780,7 +825,7 @@ export function createServer(config) {
780
825
  .describe('Required for scope=node; also the node the global command is sent through.'),
781
826
  hard: z.boolean().default(false).describe('For redeploy: also delete the app data.'),
782
827
  },
783
- }, async ({ name, action, scope, nodeIp, hard }) => {
828
+ }, async ({ name, action, scope, nodeIp, hard }, config) => {
784
829
  try {
785
830
  const session = currentSession(requireOwnerWif(config));
786
831
  const target = nodeIp ?? (await appLocations(api(config), name))[0]?.ip;
@@ -800,12 +845,12 @@ export function createServer(config) {
800
845
  return fail(error);
801
846
  }
802
847
  });
803
- server.registerTool('flux_cancel_app', {
848
+ tool('flux_cancel_app', {
804
849
  title: 'Cancel an app (stop it and stop paying)',
805
850
  description: 'Ends an app early by updating its term so it expires within about an hour. The network then uninstalls it everywhere. ' +
806
851
  'With confirm=true this signs and pays the (usually minimal) update; without it, returns the plan.',
807
852
  inputSchema: { name: z.string(), confirm: z.boolean().default(false) },
808
- }, async ({ name, confirm }) => {
853
+ }, async ({ name, confirm }, config) => {
809
854
  try {
810
855
  const existing = await publishedSpec(api(config), name);
811
856
  if (!existing)
@@ -839,11 +884,11 @@ export function createServer(config) {
839
884
  }
840
885
  });
841
886
  // ----- network ----------------------------------------------------------
842
- server.registerTool('flux_get_network_info', {
887
+ tool('flux_get_network_info', {
843
888
  title: 'Network overview',
844
889
  description: 'Node counts by tier, current block height, FLUX/USD rate and the deployment payment address.',
845
890
  inputSchema: {},
846
- }, async () => {
891
+ }, async (_args, config) => {
847
892
  try {
848
893
  const lb = api(config);
849
894
  const [count, info, deployment, rate] = await Promise.all([
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@runonflux/flux-cloud-mcp",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "MCP server for Flux Cloud. Lets any AI agent quote, deploy, pay for, inspect and manage apps on the Flux decentralized cloud, priced in USD.",
5
5
  "license": "MIT",
6
6
  "type": "module",
7
7
  "bin": {
8
- "flux-cloud-mcp": "dist/index.js"
8
+ "flux-cloud-mcp": "dist/index.js",
9
+ "flux-cloud-mcp-http": "dist/http.js"
9
10
  },
10
11
  "main": "dist/server.js",
11
12
  "types": "dist/server.d.ts",
@@ -27,7 +28,9 @@
27
28
  "test:live": "FLUX_LIVE_TESTS=1 node --test --import tsx test/live/*.test.ts",
28
29
  "start": "node dist/index.js",
29
30
  "dev": "tsx src/index.ts",
30
- "prepublishOnly": "yarn type-check && yarn lint && yarn format:check && yarn build && yarn test"
31
+ "prepublishOnly": "yarn type-check && yarn lint && yarn format:check && yarn build && yarn test",
32
+ "start:http": "node dist/http.js",
33
+ "docker:build": "docker build --platform linux/amd64 -t runonflux/flux-cloud-mcp:$npm_package_version -t runonflux/flux-cloud-mcp:latest ."
31
34
  },
32
35
  "keywords": [
33
36
  "flux",
@@ -41,7 +44,7 @@
41
44
  ],
42
45
  "repository": {
43
46
  "type": "git",
44
- "url": "https://github.com/RunOnFlux/flux-cloud-mcp"
47
+ "url": "git+https://github.com/RunOnFlux/flux-cloud-mcp.git"
45
48
  },
46
49
  "dependencies": {
47
50
  "@modelcontextprotocol/sdk": "1.30.0",