@carbonstopper/agent-mcp 0.1.4 → 0.1.6

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,9 +2,8 @@
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
- - `/ai/agent/internal/platform/**`
8
7
  - `/footprint3/agent/internal/skills/**`
9
8
 
10
9
  ## Authentication
@@ -16,13 +15,20 @@ The MCP process reads:
16
15
  - `CARBONSTOP_AGENT_BASE_URL`
17
16
  - `CARBONSTOP_AGENT_INTERNAL_KEY`
18
17
  - `CARBONSTOP_TIMEOUT`
18
+ - `CARBONSTOP_MCP_TRANSPORT`
19
+ - `CARBONSTOP_MCP_HTTP_HOST`
20
+ - `CARBONSTOP_MCP_HTTP_PORT`
21
+ - `CARBONSTOP_MCP_HTTP_PATH`
22
+ - `CARBONSTOP_MCP_HTTP_TOKEN`
19
23
 
20
24
  Each tool call must include `sessionId`. The HTTP client forwards it in both `X-Agent-Session-Id` and the JSON body.
21
25
 
22
26
  ## Architecture
23
27
 
24
28
  ```text
25
- src/index.ts MCP server entry and tool registration
29
+ src/index.ts CLI entry and transport selection
30
+ src/server.ts MCP server factory and tool registration
31
+ src/http.ts Streamable HTTP transport server
26
32
  src/tools.ts Zod schemas, descriptions, route mapping, body builder
27
33
  src/client.ts HTTP client with retry and Agent internal headers
28
34
  src/config.ts environment loading
@@ -32,9 +38,7 @@ src/version.ts version info
32
38
 
33
39
  ## Tool Families
34
40
 
35
- - Platform context and memory: `session_context`, `project_memory_get`, `project_memory_patch`, `project_memory_compress`
36
41
  - Product carbon skills: `modeling_preview`, `modeling_execute`, `modeling_re_modeling`, `modeling_update`, `modeling_detail`
37
- - Report skills: `report_generate`, `report_detail`
38
- - Support skills: `analysis_run`, `factor_search`, `knowledge_search`
42
+ - Report skills: `report_generate`, `report_regenerate`, `report_detail`
39
43
 
40
44
  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
@@ -91,22 +145,18 @@ For local debugging against a non-default gateway, add:
91
145
 
92
146
  ## Available Tools
93
147
 
148
+ Only product carbon modeling and report tools are exposed to the Agent in this release.
149
+
94
150
  | Tool | Description |
95
151
  | --- | --- |
96
- | `session_context` | Resolve session ownership and business context. |
97
- | `project_memory_get` | Read project memory. |
98
- | `project_memory_patch` | Patch project memory. Requires `idempotencyKey`. |
99
- | `project_memory_compress` | Save compressed project memory. Requires `idempotencyKey`. |
100
152
  | `modeling_preview` | Preview product carbon AI modeling. |
101
153
  | `modeling_execute` | Create a new product carbon AI model. Requires `idempotencyKey` and `input.content`. |
102
154
  | `modeling_re_modeling` | Re-run product carbon AI modeling for an existing account. Requires `accountId` and `idempotencyKey`. |
103
155
  | `modeling_update` | Supplement or update emission sources for an existing model. Requires `accountId` and `idempotencyKey`. |
104
156
  | `modeling_detail` | Get product carbon model details. |
105
157
  | `report_generate` | Generate a product carbon report. Requires `idempotencyKey`. |
158
+ | `report_regenerate` | Regenerate an existing product carbon report. Requires `reportId` and `idempotencyKey`. |
106
159
  | `report_detail` | Get product carbon report detail and latest report URL. |
107
- | `analysis_run` | Run product carbon analysis. |
108
- | `factor_search` | Search and match carbon emission factors. |
109
- | `knowledge_search` | Search carbon knowledge. |
110
160
 
111
161
  ### Modeling Tool Selection
112
162
 
@@ -140,17 +190,10 @@ Write or high-risk tools require `idempotencyKey`, especially:
140
190
  - `modeling_re_modeling`
141
191
  - `modeling_update`
142
192
  - `report_generate`
143
- - `project_memory_patch`
144
- - `project_memory_compress`
193
+ - `report_regenerate`
145
194
 
146
195
  ## API Routes
147
196
 
148
- Platform APIs are called through the `ai` gateway prefix:
149
-
150
- ```text
151
- /ai/agent/internal/platform/**
152
- ```
153
-
154
197
  Product carbon skill APIs are called through the `footprint3` gateway prefix:
155
198
 
156
199
  ```text
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":"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"}
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
@@ -68,29 +68,6 @@ const knowledgeSearchInput = z.object({
68
68
  message: z.string().optional().describe("Supplemental knowledge search context from the user or Agent."),
69
69
  }).catchall(z.unknown());
70
70
  export const schemas = {
71
- session_context: z.object({
72
- sessionId,
73
- }),
74
- project_memory_get: z.object({
75
- sessionId,
76
- projectId: z.number().optional(),
77
- ...traceFields,
78
- input: jsonObject.optional(),
79
- }),
80
- project_memory_patch: z.object({
81
- sessionId,
82
- projectId: z.number().optional(),
83
- ...traceFields,
84
- idempotencyKey,
85
- input: jsonObject.describe("Memory patch payload"),
86
- }),
87
- project_memory_compress: z.object({
88
- sessionId,
89
- projectId: z.number().optional(),
90
- ...traceFields,
91
- idempotencyKey,
92
- input: jsonObject.describe("Compressed memory payload"),
93
- }),
94
71
  modeling_preview: z.object({
95
72
  ...commonSkillFields,
96
73
  input: modelingInput,
@@ -138,30 +115,8 @@ export const schemas = {
138
115
  reportId: z.number().describe("Report id"),
139
116
  input: jsonObject.optional(),
140
117
  }),
141
- analysis_run: z.object({
142
- ...commonSkillFields,
143
- accountId: z.number().describe("Product carbon account id"),
144
- input: analysisInput,
145
- }),
146
- factor_search: z.object({
147
- sessionId,
148
- projectId: z.number().optional(),
149
- ...traceFields,
150
- accountId: z.number().optional(),
151
- input: factorSearchInput,
152
- }),
153
- knowledge_search: z.object({
154
- sessionId,
155
- projectId: z.number().optional(),
156
- ...traceFields,
157
- input: knowledgeSearchInput,
158
- }),
159
118
  };
160
119
  export const descriptions = {
161
- session_context: "Resolve session ownership and business context for an Agent session.",
162
- project_memory_get: "Read project memory for the Agent session or project.",
163
- project_memory_patch: "Patch project memory. Requires idempotencyKey.",
164
- project_memory_compress: "Save compressed project memory. Requires idempotencyKey.",
165
120
  modeling_preview: "Preview product carbon AI modeling before user confirmation.",
166
121
  modeling_execute: "Create a new product carbon model from input.content. Use this only when the user wants a new model and no existing account should be reused. Calls /modeling/execute. Requires idempotencyKey and input.content.",
167
122
  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.",
@@ -170,31 +125,8 @@ export const descriptions = {
170
125
  report_generate: "Create a new product carbon report from an account. Requires accountId and idempotencyKey.",
171
126
  report_regenerate: "Regenerate an existing product carbon report. Requires reportId and idempotencyKey.",
172
127
  report_detail: "Get product carbon report detail and latest report URL.",
173
- analysis_run: "Run product carbon data analysis, such as hotspot analysis.",
174
- factor_search: "Search and match carbon emission factors for Agent modeling.",
175
- knowledge_search: "Search carbon knowledge for Agent answers.",
176
128
  };
177
129
  export const toolRoutes = {
178
- session_context: {
179
- method: "POST",
180
- path: apipath.SessionContext(),
181
- bodyKind: "sessionContext",
182
- },
183
- project_memory_get: {
184
- method: "POST",
185
- path: apipath.ProjectMemoryGet(),
186
- bodyKind: "agentSkill",
187
- },
188
- project_memory_patch: {
189
- method: "POST",
190
- path: apipath.ProjectMemoryPatch(),
191
- bodyKind: "agentSkill",
192
- },
193
- project_memory_compress: {
194
- method: "POST",
195
- path: apipath.ProjectMemoryCompress(),
196
- bodyKind: "agentSkill",
197
- },
198
130
  modeling_preview: {
199
131
  method: "POST",
200
132
  path: apipath.ModelingPreview(),
@@ -235,21 +167,6 @@ export const toolRoutes = {
235
167
  path: apipath.ReportDetail(),
236
168
  bodyKind: "agentSkill",
237
169
  },
238
- analysis_run: {
239
- method: "POST",
240
- path: apipath.AnalysisRun(),
241
- bodyKind: "agentSkill",
242
- },
243
- factor_search: {
244
- method: "POST",
245
- path: apipath.FactorSearch(),
246
- bodyKind: "agentSkill",
247
- },
248
- knowledge_search: {
249
- method: "POST",
250
- path: apipath.KnowledgeSearch(),
251
- bodyKind: "agentSkill",
252
- },
253
170
  };
254
171
  export function buildBody(route, args) {
255
172
  if (route.bodyKind === "sessionContext") {
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.6";
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.6";
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.4",
3
+ "version": "0.1.6",
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
  },