@vymalo/opencode-devtools-mcp 0.11.0 → 0.14.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/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { toMcpContent, toMcpError } from "./render.js";
2
2
  export { createMcpServer, groupsFromEnv, selectTools } from "./server.js";
3
+
3
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC5F,OAAO,EAAE,eAAe,EAAE,aAAa,EAAsB,WAAW,EAAE,MAAM,aAAa,CAAC"}
1
+ {"mappings":"AAAA,SAA8C,cAAc,kBAAkB;AAC9E,SAAS,iBAAiB,eAAmC,mBAAmB","names":[],"sources":["../src/index.ts"],"version":3,"file":"index.js","sourceRoot":""}
package/dist/mcp.d.ts CHANGED
@@ -1,2 +1 @@
1
- #!/usr/bin/env node
2
1
  export {};
package/dist/mcp.js CHANGED
@@ -3,23 +3,24 @@ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
3
3
  import { DEFAULT_GROUPS, resolveOptions, TOOL_GROUPS } from "@vymalo/opencode-devtools/lib";
4
4
  import { createMcpServer, groupsFromEnv } from "./server.js";
5
5
  async function main() {
6
- const groups = groupsFromEnv(process.env.OCD_GROUPS, TOOL_GROUPS, DEFAULT_GROUPS);
7
- const options = resolveOptions({
8
- groups,
9
- http: {
10
- allowPrivateNetwork: /^(1|true|yes|on)$/i.test(process.env.OCD_HTTP_ALLOW_PRIVATE ?? ""),
11
- timeoutMs: Number(process.env.OCD_HTTP_TIMEOUT ?? 30_000)
12
- }
13
- });
14
- process.stderr.write(`opencode-devtools-mcp: groups ${options.groups.join(", ")}\n`);
15
- if (options.groups.includes("http")) {
16
- process.stderr.write(`opencode-devtools-mcp: http egress enabled (allowPrivateNetwork=${options.http.allowPrivateNetwork})\n`);
17
- }
18
- const server = createMcpServer(options);
19
- await server.connect(new StdioServerTransport());
6
+ const groups = groupsFromEnv(process.env.OCD_GROUPS, TOOL_GROUPS, DEFAULT_GROUPS);
7
+ const options = resolveOptions({
8
+ groups,
9
+ http: {
10
+ allowPrivateNetwork: /^(1|true|yes|on)$/i.test(process.env.OCD_HTTP_ALLOW_PRIVATE ?? ""),
11
+ timeoutMs: Number(process.env.OCD_HTTP_TIMEOUT ?? 3e4)
12
+ }
13
+ });
14
+ process.stderr.write(`opencode-devtools-mcp: groups ${options.groups.join(", ")}\n`);
15
+ if (options.groups.includes("http")) {
16
+ process.stderr.write(`opencode-devtools-mcp: http egress enabled (allowPrivateNetwork=${options.http.allowPrivateNetwork})\n`);
17
+ }
18
+ const server = createMcpServer(options);
19
+ await server.connect(new StdioServerTransport());
20
20
  }
21
21
  main().catch((err) => {
22
- process.stderr.write(`opencode-devtools-mcp fatal: ${err instanceof Error ? err.message : String(err)}\n`);
23
- process.exit(1);
22
+ process.stderr.write(`opencode-devtools-mcp fatal: ${err instanceof Error ? err.message : String(err)}\n`);
23
+ process.exit(1);
24
24
  });
25
+
25
26
  //# sourceMappingURL=mcp.js.map
package/dist/mcp.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5F,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE7D,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,WAAW,EAAE,cAAc,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,cAAc,CAAC;QAC7B,MAAM;QACN,IAAI,EAAE;YACJ,mBAAmB,EAAE,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE,CAAC;YACxF,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC;SAC1D;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrF,IAAI,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mEAAmE,OAAO,CAAC,IAAI,CAAC,mBAAmB,KAAK,CACzG,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,MAAM,MAAM,CAAC,OAAO,CAAC,IAAI,oBAAoB,EAAE,CAAC,CAAC;AACnD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,gCAAgC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CACrF,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"mappings":";AACA,SAAS,4BAA4B;AACrC,SAAS,gBAAgB,gBAAgB,mBAAmB;AAE5D,SAAS,iBAAiB,qBAAqB;AAE/C,eAAe,OAAsB;CACnC,MAAM,SAAS,cAAc,QAAQ,IAAI,YAAY,aAAa,cAAc;CAChF,MAAM,UAAU,eAAe;EAC7B;EACA,MAAM;GACJ,qBAAqB,qBAAqB,KAAK,QAAQ,IAAI,0BAA0B,EAAE;GACvF,WAAW,OAAO,QAAQ,IAAI,oBAAoB,GAAM;EAC1D;CACF,CAAC;CAED,QAAQ,OAAO,MAAM,iCAAiC,QAAQ,OAAO,KAAK,IAAI,EAAE,GAAG;CACnF,IAAI,QAAQ,OAAO,SAAS,MAAM,GAAG;EACnC,QAAQ,OAAO,MACb,mEAAmE,QAAQ,KAAK,oBAAoB,IACtG;CACF;CAEA,MAAM,SAAS,gBAAgB,OAAO;CACtC,MAAM,OAAO,QAAQ,IAAI,qBAAqB,CAAC;AACjD;AAEA,KAAK,CAAC,CAAC,OAAO,QAAQ;CACpB,QAAQ,OAAO,MACb,gCAAgC,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG,EAAE,GACnF;CACA,QAAQ,KAAK,CAAC;AAChB,CAAC","names":[],"sources":["../src/mcp.ts"],"version":3,"file":"mcp.js","sourceRoot":""}
package/dist/render.d.ts CHANGED
@@ -1,18 +1,18 @@
1
1
  import type { NeutralResult } from "@vymalo/opencode-devtools/lib";
2
2
  /** An MCP tool-result content block. Devtools results are text-only. */
3
3
  export type McpContent = {
4
- type: "text";
5
- text: string;
4
+ type: "text";
5
+ text: string;
6
6
  };
7
7
  export interface McpToolResult {
8
- content: McpContent[];
9
- isError?: boolean;
8
+ content: McpContent[];
9
+ isError?: boolean;
10
10
  }
11
11
  /**
12
- * Render an adapter-neutral result into MCP tool-result content. Devtools tools
13
- * never return images, so both `text` and `json` results map to a TextContent
14
- * (the neutral result's `text` is always self-sufficient).
15
- */
12
+ * Render an adapter-neutral result into MCP tool-result content. Devtools tools
13
+ * never return images, so both `text` and `json` results map to a TextContent
14
+ * (the neutral result's `text` is always self-sufficient).
15
+ */
16
16
  export declare function toMcpContent(result: NeutralResult): McpToolResult;
17
17
  /** Render a thrown error as an MCP tool error result (so the model sees it). */
18
18
  export declare function toMcpError(err: unknown): McpToolResult;
package/dist/render.js CHANGED
@@ -1,14 +1,24 @@
1
1
  /**
2
- * Render an adapter-neutral result into MCP tool-result content. Devtools tools
3
- * never return images, so both `text` and `json` results map to a TextContent
4
- * (the neutral result's `text` is always self-sufficient).
5
- */
2
+ * Render an adapter-neutral result into MCP tool-result content. Devtools tools
3
+ * never return images, so both `text` and `json` results map to a TextContent
4
+ * (the neutral result's `text` is always self-sufficient).
5
+ */
6
6
  export function toMcpContent(result) {
7
- return { content: [{ type: "text", text: result.text }] };
7
+ return { content: [{
8
+ type: "text",
9
+ text: result.text
10
+ }] };
8
11
  }
9
12
  /** Render a thrown error as an MCP tool error result (so the model sees it). */
10
13
  export function toMcpError(err) {
11
- const message = err instanceof Error ? err.message : String(err);
12
- return { content: [{ type: "text", text: message }], isError: true };
14
+ const message = err instanceof Error ? err.message : String(err);
15
+ return {
16
+ content: [{
17
+ type: "text",
18
+ text: message
19
+ }],
20
+ isError: true
21
+ };
13
22
  }
23
+
14
24
  //# sourceMappingURL=render.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAUA;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAqB;IAChD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,GAAY;IACrC,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACjE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACvE,CAAC"}
1
+ {"mappings":";;;;;AAeA,OAAO,SAAS,aAAa,QAAsC;CACjE,OAAO,EAAE,SAAS,CAAC;EAAE,MAAM;EAAQ,MAAM,OAAO;CAAK,CAAC,EAAE;AAC1D;;AAGA,OAAO,SAAS,WAAW,KAA6B;CACtD,MAAM,UAAU,eAAe,QAAQ,IAAI,UAAU,OAAO,GAAG;CAC/D,OAAO;EAAE,SAAS,CAAC;GAAE,MAAM;GAAQ,MAAM;EAAQ,CAAC;EAAG,SAAS;CAAK;AACrE","names":[],"sources":["../src/render.ts"],"version":3,"file":"render.js","sourceRoot":""}
package/dist/server.d.ts CHANGED
@@ -2,13 +2,13 @@ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
2
  import { selectTools, type ToolContext, type ToolGroup, type ResolvedDevtoolsOptions } from "@vymalo/opencode-devtools/lib";
3
3
  export { selectTools };
4
4
  export interface McpServerDeps {
5
- /** Inject the execution context (clock / randomness / fetch) for tests. */
6
- context?: Partial<Omit<ToolContext, "options">>;
5
+ /** Inject the execution context (clock / randomness / fetch) for tests. */
6
+ context?: Partial<Omit<ToolContext, "options">>;
7
7
  }
8
8
  /**
9
- * Build an MCP server that exposes the group-filtered devtools catalog and runs
10
- * each tool's handler locally (no bridge — these are pure compute tools).
11
- */
9
+ * Build an MCP server that exposes the group-filtered devtools catalog and runs
10
+ * each tool's handler locally (no bridge — these are pure compute tools).
11
+ */
12
12
  export declare function createMcpServer(options: ResolvedDevtoolsOptions, deps?: McpServerDeps): Server;
13
13
  /** Selected group ids from a comma-separated env string, falling back to defaults. */
14
14
  export declare function groupsFromEnv(raw: string | undefined, all: readonly ToolGroup[], fallback: readonly ToolGroup[]): ToolGroup[];
package/dist/server.js CHANGED
@@ -4,47 +4,45 @@ import { buildContext, selectTools, toJsonSchema } from "@vymalo/opencode-devtoo
4
4
  import { toMcpContent, toMcpError } from "./render.js";
5
5
  export { selectTools };
6
6
  /**
7
- * Build an MCP server that exposes the group-filtered devtools catalog and runs
8
- * each tool's handler locally (no bridge — these are pure compute tools).
9
- */
7
+ * Build an MCP server that exposes the group-filtered devtools catalog and runs
8
+ * each tool's handler locally (no bridge — these are pure compute tools).
9
+ */
10
10
  export function createMcpServer(options, deps = {}) {
11
- const specs = selectTools(options.groups);
12
- const byName = new Map(specs.map((spec) => [spec.name, spec]));
13
- const ctx = buildContext(options, deps.context);
14
- const server = new Server({ name: "opencode-devtools", version: "0.9.0" }, { capabilities: { tools: {} } });
15
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
16
- tools: specs.map((spec) => ({
17
- name: spec.name,
18
- description: spec.description,
19
- inputSchema: toJsonSchema(spec.input)
20
- }))
21
- }));
22
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
23
- const render = (r) => r;
24
- const spec = byName.get(request.params.name);
25
- if (!spec) {
26
- return render(toMcpError(new Error(`unknown tool: ${request.params.name}`)));
27
- }
28
- const args = (request.params.arguments ?? {});
29
- try {
30
- const result = await spec.handler(args, ctx);
31
- return render(toMcpContent(result));
32
- }
33
- catch (err) {
34
- return render(toMcpError(err));
35
- }
36
- });
37
- return server;
11
+ const specs = selectTools(options.groups);
12
+ const byName = new Map(specs.map((spec) => [spec.name, spec]));
13
+ const ctx = buildContext(options, deps.context);
14
+ const server = new Server({
15
+ name: "opencode-devtools",
16
+ version: "0.9.0"
17
+ }, { capabilities: { tools: {} } });
18
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: specs.map((spec) => ({
19
+ name: spec.name,
20
+ description: spec.description,
21
+ inputSchema: toJsonSchema(spec.input)
22
+ })) }));
23
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
24
+ const render = (r) => r;
25
+ const spec = byName.get(request.params.name);
26
+ if (!spec) {
27
+ return render(toMcpError(new Error(`unknown tool: ${request.params.name}`)));
28
+ }
29
+ const args = request.params.arguments ?? {};
30
+ try {
31
+ const result = await spec.handler(args, ctx);
32
+ return render(toMcpContent(result));
33
+ } catch (err) {
34
+ return render(toMcpError(err));
35
+ }
36
+ });
37
+ return server;
38
38
  }
39
39
  /** Selected group ids from a comma-separated env string, falling back to defaults. */
40
40
  export function groupsFromEnv(raw, all, fallback) {
41
- if (!raw) {
42
- return [...fallback];
43
- }
44
- const parts = raw
45
- .split(",")
46
- .map((s) => s.trim())
47
- .filter((g) => all.includes(g));
48
- return parts.length > 0 ? parts : [...fallback];
41
+ if (!raw) {
42
+ return [...fallback];
43
+ }
44
+ const parts = raw.split(",").map((s) => s.trim()).filter((g) => all.includes(g));
45
+ return parts.length > 0 ? parts : [...fallback];
49
46
  }
47
+
50
48
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EACL,qBAAqB,EAErB,sBAAsB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,YAAY,EAEZ,WAAW,EACX,YAAY,EAIb,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAsB,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,CAAC;AAOvB;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAgC,EAChC,OAAsB,EAAE;IAExB,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAEhD,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,EAC/C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,KAAK,CAAuB;SAC5D,CAAC,CAAC;KACJ,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAA2B,EAAE;QACzF,MAAM,MAAM,GAAG,CAAC,CAAgB,EAAkB,EAAE,CAAC,CAAmB,CAAC;QACzE,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,iBAAiB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/E,CAAC;QACD,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,CAA4B,CAAC;QACzE,IAAI,CAAC;YACH,MAAM,MAAM,GAAkB,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;YAC5D,OAAO,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,aAAa,CAC3B,GAAuB,EACvB,GAAyB,EACzB,QAA8B;IAE9B,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC;IACvB,CAAC;IACD,MAAM,KAAK,GAAG,GAAG;SACd,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAc,CAAC,CAAC,CAAC;IAC/D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC;AAClD,CAAC"}
1
+ {"mappings":"AAAA,SAAS,cAAc;AACvB,SACE,uBAEA,8BACK;AACP,SACE,cAEA,aACA,oBAIK;AAEP,SAA6B,cAAc,kBAAkB;AAE7D,SAAS;;;;;AAWT,OAAO,SAAS,gBACd,SACA,OAAsB,CAAC,GACf;CACR,MAAM,QAAQ,YAAY,QAAQ,MAAM;CACxC,MAAM,SAAS,IAAI,IAAI,MAAM,KAAK,SAAS,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC;CAC7D,MAAM,MAAM,aAAa,SAAS,KAAK,OAAO;CAE9C,MAAM,SAAS,IAAI,OACjB;EAAE,MAAM;EAAqB,SAAS;CAAQ,GAC9C,EAAE,cAAc,EAAE,OAAO,CAAC,EAAE,EAAE,CAChC;CAEA,OAAO,kBAAkB,wBAAwB,aAAa,EAC5D,OAAO,MAAM,KAAK,UAAU;EAC1B,MAAM,KAAK;EACX,aAAa,KAAK;EAClB,aAAa,aAAa,KAAK,KAAK;CACtC,EAAE,EACJ,EAAE;CAEF,OAAO,kBAAkB,uBAAuB,OAAO,YAAqC;EAC1F,MAAM,UAAU,MAAqC;EACrD,MAAM,OAAO,OAAO,IAAI,QAAQ,OAAO,IAAI;EAC3C,IAAI,CAAC,MAAM;GACT,OAAO,OAAO,WAAW,IAAI,MAAM,iBAAiB,QAAQ,OAAO,MAAM,CAAC,CAAC;EAC7E;EACA,MAAM,OAAQ,QAAQ,OAAO,aAAa,CAAC;EAC3C,IAAI;GACF,MAAM,SAAwB,MAAM,KAAK,QAAQ,MAAM,GAAG;GAC1D,OAAO,OAAO,aAAa,MAAM,CAAC;EACpC,SAAS,KAAK;GACZ,OAAO,OAAO,WAAW,GAAG,CAAC;EAC/B;CACF,CAAC;CAED,OAAO;AACT;;AAGA,OAAO,SAAS,cACd,KACA,KACA,UACa;CACb,IAAI,CAAC,KAAK;EACR,OAAO,CAAC,GAAG,QAAQ;CACrB;CACA,MAAM,QAAQ,IACX,MAAM,GAAG,CAAC,CACV,KAAK,MAAM,EAAE,KAAK,CAAC,CAAC,CACpB,QAAQ,MAAsB,IAAI,SAAS,CAAc,CAAC;CAC7D,OAAO,MAAM,SAAS,IAAI,QAAQ,CAAC,GAAG,QAAQ;AAChD","names":[],"sources":["../src/server.ts"],"version":3,"file":"server.js","sourceRoot":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vymalo/opencode-devtools-mcp",
3
- "version": "0.11.0",
3
+ "version": "0.14.0",
4
4
  "description": "MCP server for @vymalo/opencode-devtools — exposes the same local developer utilities (math, codec, crypto, datetime, convert, http) over the Model Context Protocol so any MCP client (Claude Code, Cursor, Cline, …) can call them. No bridge, no auth — pure deterministic compute.",
5
5
  "license": "MIT",
6
6
  "author": "vymalo contributors",
@@ -47,14 +47,14 @@
47
47
  },
48
48
  "dependencies": {
49
49
  "@modelcontextprotocol/sdk": "^1.29.0",
50
- "@vymalo/opencode-devtools": "0.11.0"
50
+ "@vymalo/opencode-devtools": "0.14.0"
51
51
  },
52
52
  "devDependencies": {
53
- "vite": "^8.0.14",
53
+ "vite": "^8.2.1",
54
54
  "vitest": "^4.1.7"
55
55
  },
56
56
  "scripts": {
57
- "build": "tsc -p tsconfig.json",
57
+ "build": "node ../../scripts/build-package.mjs",
58
58
  "lint": "biome lint .",
59
59
  "typecheck": "tsc -p tsconfig.json --noEmit",
60
60
  "test": "vitest run",