godmode 0.0.1 → 0.0.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.
@@ -1,58 +0,0 @@
1
- #!/usr/bin/env node
2
- import {
3
- GODMODE_HOME,
4
- loadManifest
5
- } from "./chunk-FBMQ3AC4.js";
6
- import "./chunk-EHS56XXY.js";
7
-
8
- // src/commands/mcp.ts
9
- import { resolve } from "path";
10
- import { readFile } from "fs/promises";
11
- import { spawn } from "child_process";
12
- async function runMcp(args) {
13
- const name = args[0];
14
- if (!name || name === "--help" || name === "-h") {
15
- console.log(`Serve a registered API as an MCP server over stdio.
16
-
17
- Usage:
18
- godmode mcp <name> [options]
19
-
20
- Options:
21
- --filter <text> Fuzzy-filter routes by resource name
22
- --method <method> Filter by HTTP method (get, post, etc.)
23
-
24
- For package-based adapters, spawns the adapter's MCP server.
25
- For spec-based adapters, serves routes as MCP tools.`);
26
- process.exit(name ? 0 : 1);
27
- }
28
- let filter;
29
- let method;
30
- for (let i = 1; i < args.length; i++) {
31
- if (args[i] === "--filter" && args[i + 1]) filter = args[++i];
32
- else if (args[i] === "--method" && args[i + 1]) method = args[++i];
33
- }
34
- const pkgName = name.startsWith("@") ? name : `@godmode-cli/${name}`;
35
- const pkgDir = resolve(GODMODE_HOME, "node_modules", pkgName);
36
- const mcpConfigPath = resolve(pkgDir, ".mcp.json");
37
- try {
38
- const mcpConfig = JSON.parse(await readFile(mcpConfigPath, "utf-8"));
39
- const serverKey = Object.keys(mcpConfig.mcpServers)[0];
40
- const server = mcpConfig.mcpServers[serverKey];
41
- if (server.type === "stdio" && server.command) {
42
- const child = spawn(server.command, server.args || [], {
43
- stdio: "inherit",
44
- cwd: pkgDir,
45
- env: { ...process.env, ...server.env }
46
- });
47
- child.on("exit", (code) => process.exit(code ?? 0));
48
- return;
49
- }
50
- } catch {
51
- }
52
- const manifest = await loadManifest(name);
53
- const { serveMcp } = await import("./mcp-server.js");
54
- await serveMcp(manifest, { filter, method });
55
- }
56
- export {
57
- runMcp
58
- };