@carbonstopper/agent-mcp 0.1.3 → 0.1.5

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/AGENTS.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Purpose
4
4
 
5
- This is a stdio MCP server for Carbonstop server-side Agent usage. It wraps Java internal Agent APIs through gateway service prefixes:
5
+ This is an MCP server for Carbonstop server-side Agent usage. It supports stdio for local MCP clients and Streamable HTTP for deployed Agent services. It wraps Java internal Agent APIs through gateway service prefixes:
6
6
 
7
7
  - `/ai/agent/internal/platform/**`
8
8
  - `/footprint3/agent/internal/skills/**`
@@ -16,13 +16,20 @@ The MCP process reads:
16
16
  - `CARBONSTOP_AGENT_BASE_URL`
17
17
  - `CARBONSTOP_AGENT_INTERNAL_KEY`
18
18
  - `CARBONSTOP_TIMEOUT`
19
+ - `CARBONSTOP_MCP_TRANSPORT`
20
+ - `CARBONSTOP_MCP_HTTP_HOST`
21
+ - `CARBONSTOP_MCP_HTTP_PORT`
22
+ - `CARBONSTOP_MCP_HTTP_PATH`
23
+ - `CARBONSTOP_MCP_HTTP_TOKEN`
19
24
 
20
25
  Each tool call must include `sessionId`. The HTTP client forwards it in both `X-Agent-Session-Id` and the JSON body.
21
26
 
22
27
  ## Architecture
23
28
 
24
29
  ```text
25
- src/index.ts MCP server entry and tool registration
30
+ src/index.ts CLI entry and transport selection
31
+ src/server.ts MCP server factory and tool registration
32
+ src/http.ts Streamable HTTP transport server
26
33
  src/tools.ts Zod schemas, descriptions, route mapping, body builder
27
34
  src/client.ts HTTP client with retry and Agent internal headers
28
35
  src/config.ts environment loading
@@ -34,7 +41,7 @@ src/version.ts version info
34
41
 
35
42
  - Platform context and memory: `session_context`, `project_memory_get`, `project_memory_patch`, `project_memory_compress`
36
43
  - Product carbon skills: `modeling_preview`, `modeling_execute`, `modeling_re_modeling`, `modeling_update`, `modeling_detail`
37
- - Report skills: `report_generate`, `report_detail`
44
+ - Report skills: `report_generate`, `report_regenerate`, `report_detail`
38
45
  - Support skills: `analysis_run`, `factor_search`, `knowledge_search`
39
46
 
40
47
  Write or high-risk tools require `idempotencyKey`.
package/README.md CHANGED
@@ -15,7 +15,27 @@ npm install -g @carbonstopper/agent-mcp
15
15
  Or run directly:
16
16
 
17
17
  ```bash
18
- npx @carbonstopper/agent-mcp
18
+ # stdio mode
19
+ npx @carbonstopper/agent-mcp --stdio
20
+
21
+ # Streamable HTTP mode
22
+ npx @carbonstopper/agent-mcp --http --port 3000
23
+ ```
24
+
25
+ The default transport is stdio. For deployed Agent services, start Streamable HTTP mode:
26
+
27
+ ```bash
28
+ npx @carbonstopper/agent-mcp --http --port 3000 --path /mcp
29
+ ```
30
+
31
+ After global install:
32
+
33
+ ```bash
34
+ # stdio mode
35
+ carbonstop-agent-mcp --stdio
36
+
37
+ # Streamable HTTP mode
38
+ carbonstop-agent-mcp --http --port 3000
19
39
  ```
20
40
 
21
41
  ## Quick Start
@@ -40,6 +60,40 @@ export CARBONSTOP_AGENT_BASE_URL="https://your-gateway-host"
40
60
 
41
61
  `CARBONSTOP_BASE_URL` is also accepted as a compatibility fallback.
42
62
 
63
+ ### Streamable HTTP
64
+
65
+ Use Streamable HTTP when a LangChain/LangGraph Agent should call the MCP server by URL instead of spawning a local `npx` process.
66
+
67
+ ```bash
68
+ export CARBONSTOP_AGENT_INTERNAL_KEY="your-agent-internal-key"
69
+ export CARBONSTOP_AGENT_BASE_URL="https://your-gateway-host"
70
+ export CARBONSTOP_MCP_TRANSPORT="http"
71
+ export CARBONSTOP_MCP_HTTP_HOST="0.0.0.0"
72
+ export CARBONSTOP_MCP_HTTP_PORT="3000"
73
+ export CARBONSTOP_MCP_HTTP_PATH="/mcp"
74
+ export CARBONSTOP_MCP_HTTP_TOKEN="optional-mcp-access-token"
75
+
76
+ npx @carbonstopper/agent-mcp
77
+ ```
78
+
79
+ LangChain MCP configuration:
80
+
81
+ ```python
82
+ from langchain_mcp_adapters.client import MultiServerMCPClient
83
+
84
+ client = MultiServerMCPClient({
85
+ "carbonstop-agent": {
86
+ "transport": "streamable_http",
87
+ "url": "https://your-domain.com/mcp",
88
+ "headers": {
89
+ "Authorization": "Bearer optional-mcp-access-token"
90
+ }
91
+ }
92
+ })
93
+ ```
94
+
95
+ If `CARBONSTOP_MCP_HTTP_TOKEN` is not set, the MCP HTTP endpoint does not require a token. Prefer private networking or a token for deployed services.
96
+
43
97
  ## MCP Client Config
44
98
 
45
99
  ### Claude Code / Claude Desktop
@@ -103,6 +157,7 @@ For local debugging against a non-default gateway, add:
103
157
  | `modeling_update` | Supplement or update emission sources for an existing model. Requires `accountId` and `idempotencyKey`. |
104
158
  | `modeling_detail` | Get product carbon model details. |
105
159
  | `report_generate` | Generate a product carbon report. Requires `idempotencyKey`. |
160
+ | `report_regenerate` | Regenerate an existing product carbon report. Requires `reportId` and `idempotencyKey`. |
106
161
  | `report_detail` | Get product carbon report detail and latest report URL. |
107
162
  | `analysis_run` | Run product carbon analysis. |
108
163
  | `factor_search` | Search and match carbon emission factors. |
@@ -140,6 +195,7 @@ Write or high-risk tools require `idempotencyKey`, especially:
140
195
  - `modeling_re_modeling`
141
196
  - `modeling_update`
142
197
  - `report_generate`
198
+ - `report_regenerate`
143
199
  - `project_memory_patch`
144
200
  - `project_memory_compress`
145
201
 
package/dist/client.js CHANGED
@@ -1,4 +1,5 @@
1
- const userAgent = "carbonstop-agent-mcp/0.1.0";
1
+ import { Version } from "./version.js";
2
+ const userAgent = `carbonstop-agent-mcp/${Version}`;
2
3
  const maxRetries = 3;
3
4
  const baseBackoff = 1000;
4
5
  export class Client {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,MAAM,SAAS,GAAG,4BAA4B,CAAC;AAC/C,MAAM,UAAU,GAAG,CAAC,CAAC;AACrB,MAAM,WAAW,GAAG,IAAI,CAAC;AAEzB,MAAM,OAAO,MAAM;IACT,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,KAAK,CAAC,OAAO,CACnB,MAAc,EACd,IAAY,EACZ,SAAiB,EACjB,IAAa,EACb,KAA8B;QAE9B,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,IAAI,GAAG,GAAG,GAAG,IAAI,CAAC;QAE7C,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QAC9C,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,IAAI,OAAO,GAAiB,IAAI,CAAC;QACjC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC;gBACvD,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;YACnD,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,OAAO,GAA2B;oBACtC,sBAAsB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB;oBACpD,oBAAoB,EAAE,SAAS;oBAC/B,MAAM,EAAE,kBAAkB;oBAC1B,YAAY,EAAE,SAAS;iBACxB,CAAC;gBACF,IAAI,IAAI,EAAE,CAAC;oBACT,OAAO,CAAC,cAAc,CAAC,GAAG,gCAAgC,CAAC;gBAC7D,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE;oBACrC,MAAM;oBACN,OAAO;oBACP,IAAI;oBACJ,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC;iBACxD,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;gBAE/B,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;oBAC9C,OAAO,GAAG,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC9D,SAAS;gBACX,CAAC;gBAED,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC7C,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,GAAG,CAAU,CAAC;gBACrB,SAAS;YACX,CAAC;QACH,CAAC;QAED,MAAM,IAAI,KAAK,CACb,wBAAwB,UAAU,GAAG,CAAC,aAAa,OAAO,EAAE,OAAO,EAAE,CACtE,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,SAAiB,EAAE,KAA8B;QACvE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAY,EAAE,SAAiB,EAAE,QAAkB;QAC5D,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzE,CAAC;CACF"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/http.d.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { Config } from "./config.js";
2
+ export interface HttpOptions {
3
+ host: string;
4
+ port: number;
5
+ path: string;
6
+ token?: string;
7
+ }
8
+ export declare function runHttpServer(config: Config, options: HttpOptions): Promise<void>;
package/dist/http.js ADDED
@@ -0,0 +1,106 @@
1
+ import { createServer } from "node:http";
2
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
3
+ import { createAgentMcpServer } from "./server.js";
4
+ function sendJson(res, status, value) {
5
+ if (res.headersSent)
6
+ return;
7
+ res.writeHead(status, { "Content-Type": "application/json;charset=utf-8" });
8
+ res.end(JSON.stringify(value));
9
+ }
10
+ function normalizePath(path) {
11
+ const withSlash = path.startsWith("/") ? path : `/${path}`;
12
+ return withSlash.length > 1 ? withSlash.replace(/\/+$/, "") : withSlash;
13
+ }
14
+ function setCorsHeaders(req, res) {
15
+ const origin = req.headers.origin;
16
+ res.setHeader("Access-Control-Allow-Origin", typeof origin === "string" ? origin : "*");
17
+ res.setHeader("Access-Control-Allow-Methods", "GET,POST,DELETE,OPTIONS");
18
+ res.setHeader("Access-Control-Allow-Headers", "content-type,authorization,mcp-session-id,x-mcp-token,x-carbonstop-mcp-token");
19
+ res.setHeader("Access-Control-Expose-Headers", "mcp-session-id");
20
+ }
21
+ function isAuthorized(req, token) {
22
+ if (!token)
23
+ return true;
24
+ const authHeader = req.headers.authorization;
25
+ if (typeof authHeader === "string" && authHeader === `Bearer ${token}`) {
26
+ return true;
27
+ }
28
+ const mcpToken = req.headers["x-mcp-token"];
29
+ if (typeof mcpToken === "string" && mcpToken === token) {
30
+ return true;
31
+ }
32
+ const carbonstopToken = req.headers["x-carbonstop-mcp-token"];
33
+ return typeof carbonstopToken === "string" && carbonstopToken === token;
34
+ }
35
+ export async function runHttpServer(config, options) {
36
+ const path = normalizePath(options.path);
37
+ const httpServer = createServer(async (req, res) => {
38
+ setCorsHeaders(req, res);
39
+ try {
40
+ const url = new URL(req.url || "/", `http://${req.headers.host || "localhost"}`);
41
+ const requestPath = normalizePath(url.pathname);
42
+ if (req.method === "OPTIONS") {
43
+ res.writeHead(204);
44
+ res.end();
45
+ return;
46
+ }
47
+ if (requestPath === "/healthz") {
48
+ sendJson(res, 200, {
49
+ ok: true,
50
+ name: "carbonstop-agent-mcp",
51
+ transport: "streamable_http",
52
+ });
53
+ return;
54
+ }
55
+ if (requestPath !== path) {
56
+ sendJson(res, 404, { error: "not_found" });
57
+ return;
58
+ }
59
+ if (!isAuthorized(req, options.token)) {
60
+ sendJson(res, 401, { error: "unauthorized" });
61
+ return;
62
+ }
63
+ if (!["GET", "POST", "DELETE"].includes(req.method || "")) {
64
+ res.setHeader("Allow", "GET,POST,DELETE,OPTIONS");
65
+ sendJson(res, 405, { error: "method_not_allowed" });
66
+ return;
67
+ }
68
+ const mcpServer = createAgentMcpServer(config);
69
+ const transport = new StreamableHTTPServerTransport({
70
+ sessionIdGenerator: undefined,
71
+ });
72
+ let closed = false;
73
+ const cleanup = async () => {
74
+ if (closed)
75
+ return;
76
+ closed = true;
77
+ await transport.close();
78
+ await mcpServer.close();
79
+ };
80
+ res.on("close", () => {
81
+ void cleanup();
82
+ });
83
+ await mcpServer.connect(transport);
84
+ await transport.handleRequest(req, res);
85
+ }
86
+ catch (err) {
87
+ sendJson(res, 500, {
88
+ error: err instanceof Error ? err.message : String(err),
89
+ });
90
+ }
91
+ });
92
+ await new Promise((resolve, reject) => {
93
+ httpServer.once("error", reject);
94
+ httpServer.listen(options.port, options.host, () => {
95
+ httpServer.off("error", reject);
96
+ resolve();
97
+ });
98
+ });
99
+ console.error(`[carbonstop-agent-mcp] streamable_http listening on http://${options.host}:${options.port}${path}`);
100
+ const shutdown = async () => {
101
+ httpServer.close(() => process.exit(0));
102
+ };
103
+ process.once("SIGINT", shutdown);
104
+ process.once("SIGTERM", shutdown);
105
+ }
106
+ //# 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/index.js CHANGED
@@ -1,61 +1,50 @@
1
1
  #!/usr/bin/env node
2
- import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
2
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
3
  import { load } from "./config.js";
5
- import { Client } from "./client.js";
6
- import { schemas, descriptions, toolRoutes, buildBody, getSessionId } from "./tools.js";
7
- import { Version } from "./version.js";
4
+ import { runHttpServer } from "./http.js";
5
+ import { assertConfig, createAgentMcpServer } from "./server.js";
8
6
  const config = load();
9
- if (!config.baseURL) {
10
- console.error("[carbonstop-agent-mcp] CARBONSTOP_AGENT_BASE_URL is required");
11
- process.exit(2);
12
- }
13
- if (!config.agentInternalKey) {
14
- console.error("[carbonstop-agent-mcp] CARBONSTOP_AGENT_INTERNAL_KEY is required");
15
- process.exit(2);
16
- }
17
- const server = new McpServer({
18
- name: "carbonstop-agent-mcp",
19
- version: Version,
20
- });
21
- const client = new Client(config);
22
- function textContent(text) {
23
- return { content: [{ type: "text", text }] };
7
+ function readArg(name) {
8
+ const prefix = `${name}=`;
9
+ const inline = process.argv.find((arg) => arg.startsWith(prefix));
10
+ if (inline)
11
+ return inline.slice(prefix.length);
12
+ const index = process.argv.indexOf(name);
13
+ if (index >= 0 && process.argv[index + 1])
14
+ return process.argv[index + 1];
15
+ return undefined;
24
16
  }
25
- function errorContent(text) {
26
- return { content: [{ type: "text", text }], isError: true };
17
+ function hasFlag(name) {
18
+ return process.argv.includes(name);
27
19
  }
28
- for (const [name, schema] of Object.entries(schemas)) {
29
- if (!schema)
30
- continue;
31
- server.registerTool(name, {
32
- description: descriptions[name] || "",
33
- inputSchema: schema,
34
- }, async (args) => {
35
- const route = toolRoutes[name];
36
- if (!route) {
37
- return errorContent(`Unknown tool: ${name}`);
20
+ try {
21
+ assertConfig(config);
22
+ const transportMode = hasFlag("--http") ? "http" :
23
+ hasFlag("--stdio") ? "stdio" :
24
+ readArg("--transport") ||
25
+ process.env.CARBONSTOP_MCP_TRANSPORT ||
26
+ "stdio";
27
+ if (["http", "streamable_http", "streamable-http"].includes(transportMode)) {
28
+ const port = Number.parseInt(readArg("--port") || process.env.CARBONSTOP_MCP_HTTP_PORT || "3000", 10);
29
+ const host = readArg("--host") || process.env.CARBONSTOP_MCP_HTTP_HOST || "0.0.0.0";
30
+ const path = readArg("--path") || process.env.CARBONSTOP_MCP_HTTP_PATH || "/mcp";
31
+ const token = process.env.CARBONSTOP_MCP_HTTP_TOKEN || undefined;
32
+ if (!Number.isFinite(port) || port <= 0) {
33
+ throw new Error("HTTP port must be a positive number");
38
34
  }
39
- try {
40
- const sessionId = getSessionId(args);
41
- const body = buildBody(route, args);
42
- const result = await client.post(route.path, sessionId, body);
43
- if (result.status < 200 || result.status >= 300) {
44
- return errorContent(`HTTP ${result.status}\n${result.body}`);
45
- }
46
- try {
47
- const parsed = JSON.parse(result.body);
48
- return textContent(JSON.stringify(parsed, null, 2));
49
- }
50
- catch {
51
- return textContent(result.body);
52
- }
53
- }
54
- catch (err) {
55
- return errorContent(`Error: ${err instanceof Error ? err.message : String(err)}`);
56
- }
57
- });
35
+ await runHttpServer(config, { host, port, path, token });
36
+ }
37
+ else if (transportMode === "stdio") {
38
+ const server = createAgentMcpServer(config);
39
+ const transport = new StdioServerTransport();
40
+ await server.connect(transport);
41
+ }
42
+ else {
43
+ throw new Error(`Unsupported transport: ${transportMode}`);
44
+ }
45
+ }
46
+ catch (err) {
47
+ console.error(`[carbonstop-agent-mcp] ${err instanceof Error ? err.message : String(err)}`);
48
+ process.exit(2);
58
49
  }
59
- const transport = new StdioServerTransport();
60
- await server.connect(transport);
61
50
  //# 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":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { Config } from "./config.js";
3
+ export declare function assertConfig(config: Config): void;
4
+ export declare function createAgentMcpServer(config: Config): McpServer;
package/dist/server.js ADDED
@@ -0,0 +1,58 @@
1
+ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ import { Client } from "./client.js";
3
+ import { schemas, descriptions, toolRoutes, buildBody, getSessionId } from "./tools.js";
4
+ import { Version } from "./version.js";
5
+ export function assertConfig(config) {
6
+ if (!config.baseURL) {
7
+ throw new Error("CARBONSTOP_AGENT_BASE_URL is required");
8
+ }
9
+ if (!config.agentInternalKey) {
10
+ throw new Error("CARBONSTOP_AGENT_INTERNAL_KEY is required");
11
+ }
12
+ }
13
+ function textContent(text) {
14
+ return { content: [{ type: "text", text }] };
15
+ }
16
+ function errorContent(text) {
17
+ return { content: [{ type: "text", text }], isError: true };
18
+ }
19
+ export function createAgentMcpServer(config) {
20
+ const server = new McpServer({
21
+ name: "carbonstop-agent-mcp",
22
+ version: Version,
23
+ });
24
+ const client = new Client(config);
25
+ for (const [name, schema] of Object.entries(schemas)) {
26
+ if (!schema)
27
+ continue;
28
+ server.registerTool(name, {
29
+ description: descriptions[name] || "",
30
+ inputSchema: schema,
31
+ }, async (args) => {
32
+ const route = toolRoutes[name];
33
+ if (!route) {
34
+ return errorContent(`Unknown tool: ${name}`);
35
+ }
36
+ try {
37
+ const sessionId = getSessionId(args);
38
+ const body = buildBody(route, args);
39
+ const result = await client.post(route.path, sessionId, body);
40
+ if (result.status < 200 || result.status >= 300) {
41
+ return errorContent(`HTTP ${result.status}\n${result.body}`);
42
+ }
43
+ try {
44
+ const parsed = JSON.parse(result.body);
45
+ return textContent(JSON.stringify(parsed, null, 2));
46
+ }
47
+ catch {
48
+ return textContent(result.body);
49
+ }
50
+ }
51
+ catch (err) {
52
+ return errorContent(`Error: ${err instanceof Error ? err.message : String(err)}`);
53
+ }
54
+ });
55
+ }
56
+ return server;
57
+ }
58
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/tools.js CHANGED
@@ -45,7 +45,7 @@ const reModelingInput = modelingInput.extend({
45
45
  });
46
46
  const modelUpdateInput = z.object({
47
47
  accountId: z.number().optional().describe("Product carbon account id. Top-level accountId is preferred."),
48
- userContent: z.string().optional().describe("Natural language instruction for supplementing emission sources, for example adding a material, energy, packaging, or transport source."),
48
+ content: z.string().optional().describe("Natural language instruction for supplementing emission sources, for example adding a material, energy, packaging, or transport source."),
49
49
  message: z.string().optional().describe("Supplemental emission source information from the user or Agent."),
50
50
  }).catchall(z.unknown());
51
51
  const reportGenerateInput = z.object({
@@ -121,6 +121,13 @@ export const schemas = {
121
121
  }),
122
122
  report_generate: z.object({
123
123
  ...commonSkillFields,
124
+ accountId: z.number().describe("Product carbon account id"),
125
+ idempotencyKey,
126
+ input: reportGenerateInput.optional(),
127
+ }),
128
+ report_regenerate: z.object({
129
+ ...commonSkillFields,
130
+ reportId: z.number().describe("Existing report id to regenerate"),
124
131
  idempotencyKey,
125
132
  input: reportGenerateInput.optional(),
126
133
  }),
@@ -160,7 +167,8 @@ export const descriptions = {
160
167
  modeling_re_modeling: "Re-model an existing product carbon account from updated context. Use this when the user wants to redo or recalculate the whole model for an existing account. Calls /modeling/reModeling. Requires accountId and idempotencyKey.",
161
168
  modeling_update: "Supplement emission sources on an existing product carbon account. Use this when the user wants to add or adjust materials, energy, packaging, transport, or other emission sources without recreating the whole model. Calls /modeling/update. Requires accountId and idempotencyKey.",
162
169
  modeling_detail: "Get product carbon model details for an account.",
163
- report_generate: "Generate a product carbon report. Requires idempotencyKey.",
170
+ report_generate: "Create a new product carbon report from an account. Requires accountId and idempotencyKey.",
171
+ report_regenerate: "Regenerate an existing product carbon report. Requires reportId and idempotencyKey.",
164
172
  report_detail: "Get product carbon report detail and latest report URL.",
165
173
  analysis_run: "Run product carbon data analysis, such as hotspot analysis.",
166
174
  factor_search: "Search and match carbon emission factors for Agent modeling.",
@@ -217,6 +225,11 @@ export const toolRoutes = {
217
225
  path: apipath.ReportGenerate(),
218
226
  bodyKind: "agentSkill",
219
227
  },
228
+ report_regenerate: {
229
+ method: "POST",
230
+ path: apipath.ReportGenerate(),
231
+ bodyKind: "agentSkill",
232
+ },
220
233
  report_detail: {
221
234
  method: "POST",
222
235
  path: apipath.ReportDetail(),
package/dist/tools.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export declare function getBaseURL(): string;
2
- export declare const Version = "0.1.0";
2
+ export declare const Version = "0.1.5";
3
3
  export declare const Commit = "none";
4
4
  export declare const BuildTime = "unknown";
package/dist/version.js CHANGED
@@ -13,7 +13,7 @@ export function getBaseURL() {
13
13
  return "";
14
14
  }
15
15
  }
16
- export const Version = "0.1.0";
16
+ export const Version = "0.1.5";
17
17
  export const Commit = "none";
18
18
  export const BuildTime = "unknown";
19
19
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@carbonstopper/agent-mcp",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "MCP server for Carbonstop Agent internal skill APIs",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -24,6 +24,7 @@
24
24
  "prebuild": "node scripts/build.cjs",
25
25
  "build": "tsc",
26
26
  "start": "node dist/index.js",
27
+ "start:http": "node dist/index.js --http",
27
28
  "dev": "tsx src/index.ts",
28
29
  "prepublishOnly": "npm run build"
29
30
  },