@manhq/localmcp 1.0.0 → 1.0.2

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.
Files changed (80) hide show
  1. package/README.md +177 -66
  2. package/README.vi.md +176 -65
  3. package/dist/api/openapi.d.ts +21 -0
  4. package/dist/api/openapi.d.ts.map +1 -0
  5. package/dist/api/openapi.js +74 -0
  6. package/dist/api/openapi.js.map +1 -0
  7. package/dist/api/playground.d.ts +2 -0
  8. package/dist/api/playground.d.ts.map +1 -0
  9. package/dist/api/playground.js +24 -0
  10. package/dist/api/playground.js.map +1 -0
  11. package/dist/api/registry.d.ts +19 -0
  12. package/dist/api/registry.d.ts.map +1 -0
  13. package/dist/api/registry.js +20 -0
  14. package/dist/api/registry.js.map +1 -0
  15. package/dist/api/rest.d.ts +3 -0
  16. package/dist/api/rest.d.ts.map +1 -0
  17. package/dist/api/rest.js +84 -0
  18. package/dist/api/rest.js.map +1 -0
  19. package/dist/api/server-with-registry.d.ts +8 -0
  20. package/dist/api/server-with-registry.d.ts.map +1 -0
  21. package/dist/api/server-with-registry.js +43 -0
  22. package/dist/api/server-with-registry.js.map +1 -0
  23. package/dist/cli.d.ts.map +1 -1
  24. package/dist/cli.js +82 -19
  25. package/dist/cli.js.map +1 -1
  26. package/dist/index.d.ts +2 -0
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +125 -48
  29. package/dist/index.js.map +1 -1
  30. package/dist/services/atlassian/index.d.ts +1 -1
  31. package/dist/services/atlassian/index.d.ts.map +1 -1
  32. package/dist/services/atlassian/index.js +3 -3
  33. package/dist/services/atlassian/index.js.map +1 -1
  34. package/dist/services/atlassian/tools/confluence.d.ts +1 -1
  35. package/dist/services/atlassian/tools/confluence.d.ts.map +1 -1
  36. package/dist/services/atlassian/tools/confluence.js +14 -13
  37. package/dist/services/atlassian/tools/confluence.js.map +1 -1
  38. package/dist/services/atlassian/tools/jira.d.ts +1 -1
  39. package/dist/services/atlassian/tools/jira.d.ts.map +1 -1
  40. package/dist/services/atlassian/tools/jira.js +16 -15
  41. package/dist/services/atlassian/tools/jira.js.map +1 -1
  42. package/dist/services/figma/index.d.ts +1 -1
  43. package/dist/services/figma/index.d.ts.map +1 -1
  44. package/dist/services/figma/index.js +6 -6
  45. package/dist/services/figma/index.js.map +1 -1
  46. package/dist/services/figma/tools/comments.d.ts +1 -1
  47. package/dist/services/figma/tools/comments.d.ts.map +1 -1
  48. package/dist/services/figma/tools/comments.js +4 -3
  49. package/dist/services/figma/tools/comments.js.map +1 -1
  50. package/dist/services/figma/tools/components.d.ts +1 -1
  51. package/dist/services/figma/tools/components.d.ts.map +1 -1
  52. package/dist/services/figma/tools/components.js +7 -6
  53. package/dist/services/figma/tools/components.js.map +1 -1
  54. package/dist/services/figma/tools/files.d.ts +1 -1
  55. package/dist/services/figma/tools/files.d.ts.map +1 -1
  56. package/dist/services/figma/tools/files.js +4 -3
  57. package/dist/services/figma/tools/files.js.map +1 -1
  58. package/dist/services/figma/tools/images.d.ts +1 -1
  59. package/dist/services/figma/tools/images.d.ts.map +1 -1
  60. package/dist/services/figma/tools/images.js +4 -3
  61. package/dist/services/figma/tools/images.js.map +1 -1
  62. package/dist/services/figma/tools/variables.d.ts +1 -1
  63. package/dist/services/figma/tools/variables.d.ts.map +1 -1
  64. package/dist/services/figma/tools/variables.js +4 -3
  65. package/dist/services/figma/tools/variables.js.map +1 -1
  66. package/dist/services/google-chat/index.d.ts +1 -1
  67. package/dist/services/google-chat/index.d.ts.map +1 -1
  68. package/dist/services/google-chat/index.js +2 -2
  69. package/dist/services/google-chat/index.js.map +1 -1
  70. package/dist/services/google-chat/tools/messages.d.ts +1 -1
  71. package/dist/services/google-chat/tools/messages.d.ts.map +1 -1
  72. package/dist/services/google-chat/tools/messages.js +6 -5
  73. package/dist/services/google-chat/tools/messages.js.map +1 -1
  74. package/docs/atlassian.md +145 -6
  75. package/docs/figma.md +145 -6
  76. package/docs/google-chat.md +145 -6
  77. package/docs/vi/atlassian.md +145 -6
  78. package/docs/vi/figma.md +145 -6
  79. package/docs/vi/google-chat.md +145 -6
  80. package/package.json +5 -3
@@ -0,0 +1,21 @@
1
+ import type { ToolDef } from "./registry.js";
2
+ interface OpenApiSpec {
3
+ openapi: string;
4
+ info: {
5
+ title: string;
6
+ version: string;
7
+ description: string;
8
+ };
9
+ servers: Array<{
10
+ url: string;
11
+ description: string;
12
+ }>;
13
+ tags: Array<{
14
+ name: string;
15
+ description: string;
16
+ }>;
17
+ paths: Record<string, unknown>;
18
+ }
19
+ export declare function buildOpenApiSpec(tools: ToolDef[], port: number): OpenApiSpec;
20
+ export {};
21
+ //# sourceMappingURL=openapi.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.d.ts","sourceRoot":"","sources":["../../src/api/openapi.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9D,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,IAAI,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAmE5E"}
@@ -0,0 +1,74 @@
1
+ import { zodToJsonSchema } from "zod-to-json-schema";
2
+ export function buildOpenApiSpec(tools, port) {
3
+ const serviceSet = new Set(tools.map((t) => t.service));
4
+ const tags = [...serviceSet].map((s) => ({
5
+ name: s,
6
+ description: `${capitalize(s)} tools`,
7
+ }));
8
+ const paths = {};
9
+ for (const tool of tools) {
10
+ const path = `/api/${tool.service}/${tool.name}`;
11
+ const jsonSchema = zodToJsonSchema(tool.inputSchema, { target: "openApi3" });
12
+ const requestBody = isEmptySchema(jsonSchema)
13
+ ? undefined
14
+ : {
15
+ required: true,
16
+ content: {
17
+ "application/json": {
18
+ schema: jsonSchema,
19
+ },
20
+ },
21
+ };
22
+ paths[path] = {
23
+ post: {
24
+ operationId: tool.name,
25
+ summary: tool.name,
26
+ description: tool.description,
27
+ tags: [tool.service],
28
+ ...(requestBody ? { requestBody } : {}),
29
+ responses: {
30
+ "200": {
31
+ description: "Tool result",
32
+ content: {
33
+ "application/json": {
34
+ schema: {
35
+ type: "object",
36
+ properties: {
37
+ result: { description: "Tool output (JSON or text)" },
38
+ isError: { type: "boolean" },
39
+ },
40
+ },
41
+ },
42
+ },
43
+ },
44
+ "400": { description: "Invalid input" },
45
+ "404": { description: "Tool not found" },
46
+ "500": { description: "Tool execution error" },
47
+ },
48
+ },
49
+ };
50
+ }
51
+ return {
52
+ openapi: "3.1.0",
53
+ info: {
54
+ title: "LocalMCP REST API",
55
+ version: "1.0.0",
56
+ description: "REST interface for LocalMCP tools. Each POST endpoint mirrors an MCP tool — " +
57
+ "send JSON body matching the tool's input schema and receive the result.",
58
+ },
59
+ servers: [{ url: `http://localhost:${port}`, description: "Local server" }],
60
+ tags,
61
+ paths,
62
+ };
63
+ }
64
+ function isEmptySchema(schema) {
65
+ if (typeof schema !== "object" || schema === null)
66
+ return true;
67
+ const s = schema;
68
+ return (s["type"] === "object" &&
69
+ (!s["properties"] || Object.keys(s["properties"]).length === 0));
70
+ }
71
+ function capitalize(s) {
72
+ return s.charAt(0).toUpperCase() + s.slice(1);
73
+ }
74
+ //# sourceMappingURL=openapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../src/api/openapi.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function playgroundHtml(port: number): string;
2
+ //# sourceMappingURL=playground.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playground.d.ts","sourceRoot":"","sources":["../../src/api/playground.ts"],"names":[],"mappings":"AAAA,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAsBnD"}
@@ -0,0 +1,24 @@
1
+ export function playgroundHtml(port) {
2
+ return `<!doctype html>
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
7
+ <title>LocalMCP Playground</title>
8
+ <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🔧</text></svg>" />
9
+ <style>
10
+ body { margin: 0; }
11
+ scalar-api-reference { display: block; height: 100vh; }
12
+ </style>
13
+ </head>
14
+ <body>
15
+ <script
16
+ id="api-reference"
17
+ data-url="http://localhost:${port}/api/openapi.json"
18
+ data-configuration='{"theme":"default","layout":"modern","defaultHttpClient":{"targetKey":"js","clientKey":"fetch"}}'
19
+ ></script>
20
+ <script src="https://cdn.jsdelivr.net/npm/@scalar/api-reference"></script>
21
+ </body>
22
+ </html>`;
23
+ }
24
+ //# sourceMappingURL=playground.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"playground.js","sourceRoot":"","sources":["../../src/api/playground.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO;;;;;;;;;;;;;;;mCAe0B,IAAI;;;;;QAK/B,CAAC;AACT,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from "zod";
2
+ export interface ToolDef {
3
+ name: string;
4
+ service: string;
5
+ description: string;
6
+ inputSchema: z.ZodTypeAny;
7
+ handler: (input: unknown) => Promise<unknown>;
8
+ }
9
+ declare class ToolRegistry {
10
+ private tools;
11
+ private key;
12
+ register(def: ToolDef): void;
13
+ get(service: string, name: string): ToolDef | undefined;
14
+ list(): ToolDef[];
15
+ byService(service: string): ToolDef[];
16
+ }
17
+ export declare const registry: ToolRegistry;
18
+ export {};
19
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/api/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,CAAC,CAAC,UAAU,CAAC;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CAC/C;AAED,cAAM,YAAY;IAChB,OAAO,CAAC,KAAK,CAA8B;IAE3C,OAAO,CAAC,GAAG;IAIX,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI;IAI5B,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAIvD,IAAI,IAAI,OAAO,EAAE;IAIjB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE;CAGtC;AAED,eAAO,MAAM,QAAQ,cAAqB,CAAC"}
@@ -0,0 +1,20 @@
1
+ class ToolRegistry {
2
+ tools = new Map();
3
+ key(service, name) {
4
+ return `${service}:${name}`;
5
+ }
6
+ register(def) {
7
+ this.tools.set(this.key(def.service, def.name), def);
8
+ }
9
+ get(service, name) {
10
+ return this.tools.get(this.key(service, name));
11
+ }
12
+ list() {
13
+ return [...this.tools.values()];
14
+ }
15
+ byService(service) {
16
+ return this.list().filter((t) => t.service === service);
17
+ }
18
+ }
19
+ export const registry = new ToolRegistry();
20
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/api/registry.ts"],"names":[],"mappings":"AAUA,MAAM,YAAY;IACR,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAC;IAEnC,GAAG,CAAC,OAAe,EAAE,IAAY;QACvC,OAAO,GAAG,OAAO,IAAI,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,QAAQ,CAAC,GAAY;QACnB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;IAED,GAAG,CAAC,OAAe,EAAE,IAAY;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,CAAC;IAED,SAAS,CAAC,OAAe;QACvB,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC1D,CAAC;CACF;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type express from "express";
2
+ export declare function mountRestApi(app: express.Express): void;
3
+ //# sourceMappingURL=rest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest.d.ts","sourceRoot":"","sources":["../../src/api/rest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AA8BnC,wBAAgB,YAAY,CAAC,GAAG,EAAE,OAAO,CAAC,OAAO,GAAG,IAAI,CA8DvD"}
@@ -0,0 +1,84 @@
1
+ import { registry } from "./registry.js";
2
+ import { buildOpenApiSpec } from "./openapi.js";
3
+ import { playgroundHtml } from "./playground.js";
4
+ import { env } from "../shared/env.js";
5
+ function extractResult(mcpResult) {
6
+ if (typeof mcpResult !== "object" || mcpResult === null) {
7
+ return { result: mcpResult, isError: false };
8
+ }
9
+ const r = mcpResult;
10
+ const isError = !!r["isError"];
11
+ if (!Array.isArray(r["content"])) {
12
+ return { result: mcpResult, isError };
13
+ }
14
+ // Collect all content parts, preserving non-text types as-is
15
+ const parts = r["content"];
16
+ const results = parts.map((p) => {
17
+ if (p.type === "text" && p.text !== undefined) {
18
+ try {
19
+ return JSON.parse(p.text);
20
+ }
21
+ catch {
22
+ return p.text;
23
+ }
24
+ }
25
+ return p; // image, resource, or other content types passed through
26
+ });
27
+ return { result: results.length === 1 ? results[0] : results, isError };
28
+ }
29
+ export function mountRestApi(app) {
30
+ // Build spec once after all tools are registered; lazy on first request.
31
+ let cachedSpec = null;
32
+ // GET /api/openapi.json — must be before /api/:service wildcard
33
+ app.get("/api/openapi.json", (_req, res) => {
34
+ cachedSpec ??= buildOpenApiSpec(registry.list(), env.PORT);
35
+ res.json(cachedSpec);
36
+ });
37
+ // GET /playground — Scalar UI
38
+ app.get("/playground", (_req, res) => {
39
+ res.setHeader("Content-Type", "text/html").send(playgroundHtml(env.PORT));
40
+ });
41
+ // GET /api — list all services and their tool counts
42
+ app.get("/api", (_req, res) => {
43
+ const tools = registry.list();
44
+ const serviceSet = new Set(tools.map((t) => t.service));
45
+ res.json([...serviceSet].map((service) => ({
46
+ service,
47
+ toolCount: tools.filter((t) => t.service === service).length,
48
+ endpoint: `/api/${service}`,
49
+ })));
50
+ });
51
+ // GET /api/:service — list tools for a service
52
+ app.get("/api/:service", (req, res) => {
53
+ const tools = registry.byService(req.params["service"]);
54
+ if (tools.length === 0) {
55
+ res.status(404).json({ error: `Service '${req.params["service"]}' not found` });
56
+ return;
57
+ }
58
+ res.json(tools.map((t) => ({ name: t.name, description: t.description })));
59
+ });
60
+ // POST /api/:service/:tool — call a tool
61
+ app.post("/api/:service/:tool", async (req, res) => {
62
+ const service = req.params["service"];
63
+ const toolName = req.params["tool"];
64
+ const tool = registry.get(service, toolName);
65
+ if (!tool) {
66
+ res.status(404).json({ error: `Tool '${service}/${toolName}' not found` });
67
+ return;
68
+ }
69
+ const parsed = tool.inputSchema.safeParse(req.body ?? {});
70
+ if (!parsed.success) {
71
+ res.status(400).json({ error: "Invalid input", details: parsed.error.flatten() });
72
+ return;
73
+ }
74
+ try {
75
+ const raw = await tool.handler(parsed.data);
76
+ res.json(extractResult(raw));
77
+ }
78
+ catch (err) {
79
+ const message = err instanceof Error ? err.message : String(err);
80
+ res.status(500).json({ error: message, isError: true });
81
+ }
82
+ });
83
+ }
84
+ //# sourceMappingURL=rest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest.js","sourceRoot":"","sources":["../../src/api/rest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ /**
3
+ * Creates a McpServer that also registers every tool into the global REST
4
+ * registry. We patch registerTool on the instance (not the prototype) so
5
+ * the rest of the SDK behaviour is unchanged.
6
+ */
7
+ export declare function createMcpServerWithRegistry(service: string, info: ConstructorParameters<typeof McpServer>[0]): McpServer;
8
+ //# sourceMappingURL=server-with-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-with-registry.d.ts","sourceRoot":"","sources":["../../src/api/server-with-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAIpE;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,qBAAqB,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,GAC/C,SAAS,CA+CX"}
@@ -0,0 +1,43 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { z } from "zod";
3
+ import { registry } from "./registry.js";
4
+ /**
5
+ * Creates a McpServer that also registers every tool into the global REST
6
+ * registry. We patch registerTool on the instance (not the prototype) so
7
+ * the rest of the SDK behaviour is unchanged.
8
+ */
9
+ export function createMcpServerWithRegistry(service, info) {
10
+ const server = new McpServer(info);
11
+ const origRegisterTool = server.registerTool.bind(server);
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ server.registerTool = (name, config,
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ cb) => {
16
+ // Determine the full Zod schema we can use for validation and OpenAPI gen
17
+ const rawSchema = config?.inputSchema;
18
+ let zodSchema = z.object({});
19
+ if (rawSchema instanceof z.ZodType) {
20
+ zodSchema = rawSchema;
21
+ }
22
+ else if (rawSchema && typeof rawSchema === "object" && !Array.isArray(rawSchema)) {
23
+ // Shape object — wrap in z.object
24
+ try {
25
+ zodSchema = z.object(rawSchema);
26
+ }
27
+ catch {
28
+ zodSchema = z.object({});
29
+ }
30
+ }
31
+ registry.register({
32
+ name,
33
+ service,
34
+ description: config?.description ?? "",
35
+ inputSchema: zodSchema,
36
+ handler: (input) => Promise.resolve(cb(input)),
37
+ });
38
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-return
39
+ return origRegisterTool(name, config, cb);
40
+ };
41
+ return server;
42
+ }
43
+ //# sourceMappingURL=server-with-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-with-registry.js","sourceRoot":"","sources":["../../src/api/server-with-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CACzC,OAAe,EACf,IAAgD;IAEhD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,gBAAgB,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE1D,8DAA8D;IAC7D,MAAc,CAAC,YAAY,GAAG,CAC7B,IAAY,EACZ,MAQC;IACD,8DAA8D;IAC9D,EAA2B,EAC3B,EAAE;QACF,0EAA0E;QAC1E,MAAM,SAAS,GAAG,MAAM,EAAE,WAAW,CAAC;QACtC,IAAI,SAAS,GAAiB,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3C,IAAI,SAAS,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;YACnC,SAAS,GAAG,SAAS,CAAC;QACxB,CAAC;aAAM,IAAI,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACnF,kCAAkC;YAClC,IAAI,CAAC;gBACH,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,SAA0B,CAAC,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,QAAQ,CAAC,QAAQ,CAAC;YAChB,IAAI;YACJ,OAAO;YACP,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,EAAE;YACtC,WAAW,EAAE,SAAS;YACtB,OAAO,EAAE,CAAC,KAAc,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;SACxD,CAAC,CAAC;QAEH,+DAA+D;QAC/D,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
package/dist/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAuBA,wBAAsB,MAAM,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoCxE"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AA0BA,wBAAsB,MAAM,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkDxE"}
package/dist/cli.js CHANGED
@@ -5,6 +5,8 @@ import { dirname, join } from "node:path";
5
5
  import { createInterface } from "node:readline/promises";
6
6
  import { fileURLToPath } from "node:url";
7
7
  import { ensureSettingsFile, getPort, getServiceStatuses, loadSettings, saveSettings, SERVICE_NAMES, SETTINGS_PATH, } from "./shared/settings.js";
8
+ // Resolved once at module load — used by register and inspect to build stdio commands
9
+ const CLI_PATH = join(dirname(fileURLToPath(import.meta.url)), "cli.js");
8
10
  const AGENTS = ["claude", "codex", "cursor", "vscode", "windsurf", "antigravity"];
9
11
  const REGISTER_TARGETS = ["localmcp", ...SERVICE_NAMES];
10
12
  export async function runCli(argv = process.argv.slice(2)) {
@@ -25,9 +27,23 @@ export async function runCli(argv = process.argv.slice(2)) {
25
27
  case "register":
26
28
  await handleRegister(args);
27
29
  return;
30
+ case "stdio": {
31
+ const svc = args[0];
32
+ if (svc && !SERVICE_NAMES.includes(svc)) {
33
+ console.error(`Unknown service: ${svc}`);
34
+ console.error(`Available: ${SERVICE_NAMES.join(", ")}`);
35
+ process.exitCode = 1;
36
+ return;
37
+ }
38
+ await import("./index.js").then(({ startStdio }) => startStdio(svc));
39
+ return;
40
+ }
28
41
  case "inspect":
29
42
  handleInspect(args);
30
43
  return;
44
+ case "playground":
45
+ handlePlayground();
46
+ return;
31
47
  case "help":
32
48
  case "--help":
33
49
  case "-h":
@@ -84,8 +100,10 @@ async function handleConfig(args) {
84
100
  await promptServiceConfig(service);
85
101
  }
86
102
  async function handleRegister(args) {
87
- const agent = args[0]
88
- ? validateChoice(args[0], AGENTS, "AI agent")
103
+ const nonFlagArgs = args.filter((a) => !a.startsWith("-"));
104
+ const useStdio = args.includes("--stdio");
105
+ const agent = nonFlagArgs[0]
106
+ ? validateChoice(nonFlagArgs[0], AGENTS, "AI agent")
89
107
  : await promptSelect("Select AI agent", AGENTS);
90
108
  if (!agent)
91
109
  return;
@@ -95,23 +113,55 @@ async function handleRegister(args) {
95
113
  : await promptSelect("Select service", REGISTER_TARGETS);
96
114
  if (!targetName)
97
115
  return;
98
- const target = getRegistrationTarget(targetName);
116
+ // --stdio skips the prompt and defaults to stdio; without it, default to http
117
+ const transport = useStdio ? "stdio" : "http";
99
118
  const serverName = targetName;
119
+ const stdioArgs = targetName === "localmcp" ? ["stdio"] : ["stdio", targetName];
100
120
  if (agent === "claude") {
101
- spawnAndInherit("claude", ["mcp", "add", "--transport", "http", serverName, target.url]);
121
+ if (transport === "stdio") {
122
+ spawnAndInherit("claude", ["mcp", "add", serverName, process.execPath, CLI_PATH, ...stdioArgs]);
123
+ }
124
+ else {
125
+ spawnAndInherit("claude", ["mcp", "add", "--transport", "http", serverName, getRegistrationTarget(targetName).url]);
126
+ }
102
127
  return;
103
128
  }
104
129
  if (agent === "codex") {
105
- spawnAndInherit("codex", ["mcp", "add", serverName, "--url", target.url]);
130
+ if (transport === "stdio") {
131
+ spawnAndInherit("codex", ["mcp", "add", serverName, process.execPath, CLI_PATH, ...stdioArgs]);
132
+ }
133
+ else {
134
+ spawnAndInherit("codex", ["mcp", "add", serverName, "--url", getRegistrationTarget(targetName).url]);
135
+ }
106
136
  return;
107
137
  }
108
- registerJsonConfig(agent, serverName, target.url);
138
+ registerJsonConfig(agent, serverName, transport, getRegistrationTarget(targetName).url, stdioArgs);
139
+ }
140
+ function handlePlayground() {
141
+ const url = `http://localhost:${getPort()}/playground`;
142
+ console.log(`Opening playground at ${url}`);
143
+ const opener = process.platform === "win32" ? "start" :
144
+ process.platform === "darwin" ? "open" : "xdg-open";
145
+ spawnAndInherit(opener, [url]);
109
146
  }
110
- function handleInspect(_args) {
111
- const target = getRegistrationTarget("localmcp");
147
+ function handleInspect(args) {
148
+ const useStdio = args.includes("--stdio");
112
149
  const configPath = join(process.cwd(), ".localmcp-inspector.json");
113
- writeFileSync(configPath, `${JSON.stringify({ mcpServers: { localmcp: { url: target.url } } }, null, 2)}\n`);
114
- console.log(`Starting MCP Inspector for ${target.url}`);
150
+ const serverConfig = useStdio
151
+ ? {
152
+ type: "stdio",
153
+ command: process.execPath,
154
+ args: [CLI_PATH, "stdio"],
155
+ }
156
+ : {
157
+ type: "http",
158
+ url: getRegistrationTarget("localmcp").url,
159
+ };
160
+ writeFileSync(configPath, `${JSON.stringify({ mcpServers: { localmcp: serverConfig } }, null, 2)}\n`);
161
+ const label = useStdio ? "stdio" : serverConfig.url;
162
+ console.log(`Starting MCP Inspector (${useStdio ? "stdio" : "http"}: ${label})`);
163
+ if (!useStdio)
164
+ console.log("Make sure the server is running: localmcp");
115
165
  console.log("If npx asks to install @modelcontextprotocol/inspector, approve it once.");
116
166
  spawnAndInherit("npx", [
117
167
  "@modelcontextprotocol/inspector",
@@ -127,30 +177,38 @@ function getRegistrationTarget(target) {
127
177
  return { url: `http://localhost:${port}/mcp` };
128
178
  return { url: `http://localhost:${port}/mcp/${target}` };
129
179
  }
130
- function registerJsonConfig(agent, serverName, url) {
180
+ function registerJsonConfig(agent, serverName, transport, url, stdioArgs) {
181
+ const stdioEntry = { command: process.execPath, args: [CLI_PATH, ...stdioArgs] };
182
+ const httpEntry = { url };
131
183
  if (agent === "vscode") {
132
184
  const path = join(process.cwd(), ".vscode", "mcp.json");
133
185
  const config = readJson(path);
134
- config.servers = { ...(config.servers ?? {}), [serverName]: { type: "http", url } };
186
+ const entry = transport === "stdio"
187
+ ? { type: "stdio", ...stdioEntry }
188
+ : { type: "http", ...httpEntry };
189
+ config.servers = { ...(config.servers ?? {}), [serverName]: entry };
135
190
  writeJson(path, config);
136
- console.log(`Registered ${serverName} in ${path}`);
191
+ console.log(`Registered ${serverName} (${transport}) in ${path}`);
137
192
  return;
138
193
  }
139
194
  if (agent === "cursor") {
140
195
  const path = join(process.cwd(), ".cursor", "mcp.json");
141
196
  const config = readJson(path);
142
- config.mcpServers = { ...(config.mcpServers ?? {}), [serverName]: { url } };
197
+ const entry = transport === "stdio" ? stdioEntry : httpEntry;
198
+ config.mcpServers = { ...(config.mcpServers ?? {}), [serverName]: entry };
143
199
  writeJson(path, config);
144
- console.log(`Registered ${serverName} in ${path}`);
200
+ console.log(`Registered ${serverName} (${transport}) in ${path}`);
145
201
  return;
146
202
  }
203
+ // windsurf / antigravity
147
204
  const path = agent === "windsurf"
148
205
  ? join(homedir(), ".codeium", "windsurf", "mcp_config.json")
149
206
  : join(homedir(), ".gemini", "config", "mcp_config.json");
150
207
  const config = readJson(path);
151
- config.mcpServers = { ...(config.mcpServers ?? {}), [serverName]: { serverUrl: url } };
208
+ const entry = transport === "stdio" ? stdioEntry : { serverUrl: url };
209
+ config.mcpServers = { ...(config.mcpServers ?? {}), [serverName]: entry };
152
210
  writeJson(path, config);
153
- console.log(`Registered ${serverName} in ${path}`);
211
+ console.log(`Registered ${serverName} (${transport}) in ${path}`);
154
212
  }
155
213
  async function promptServiceConfig(service) {
156
214
  const settings = loadSettings();
@@ -313,9 +371,14 @@ Usage:
313
371
  localmcp list List configured services
314
372
  localmcp config Open settings in vim or $EDITOR
315
373
  localmcp config <service> Configure one service inline
316
- localmcp register Select AI agent, then select service
374
+ localmcp register Select AI agent, transport, and service
317
375
  localmcp register codex --service figma
318
- localmcp inspect Open MCP Inspector
376
+ localmcp register codex --service figma --stdio
377
+ localmcp stdio Run as stdio MCP server (combined)
378
+ localmcp stdio <service> Run as stdio MCP server for one service
379
+ localmcp inspect Open MCP Inspector (HTTP, server must be running)
380
+ localmcp inspect --stdio Open MCP Inspector using stdio transport
381
+ localmcp playground Open REST API playground in browser
319
382
  localmcp --version, -v Show version
320
383
 
321
384
  Services:
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import express from "express";
2
+ import { ServiceName } from "./shared/settings.js";
2
3
  export declare function createApp(): express.Express;
3
4
  export declare function startServer(): void;
5
+ export declare function startStdio(service?: ServiceName): Promise<void>;
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAyE9B,wBAAgB,SAAS,IAAI,OAAO,CAAC,OAAO,CAgD3C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAQlC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAO9B,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAuHnD,wBAAgB,SAAS,IAAI,OAAO,CAAC,OAAO,CA4D3C;AAED,wBAAgB,WAAW,IAAI,IAAI,CAqBlC;AAED,wBAAsB,UAAU,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAIrE"}