@everstateai/mcp 1.0.0 → 1.1.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 +23 -4
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +26 -4
package/dist/index.js
CHANGED
|
@@ -15,7 +15,9 @@ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
|
15
15
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
16
16
|
const API_BASE = process.env.EVERSTATE_API_URL || "https://www.everstate.ai";
|
|
17
17
|
const API_KEY = process.env.EVERSTATE_API_KEY;
|
|
18
|
-
const
|
|
18
|
+
const INITIAL_PROJECT_ID = process.env.EVERSTATE_PROJECT_ID;
|
|
19
|
+
// Session state - persists projectId across tool calls within this proxy instance
|
|
20
|
+
let sessionProjectId = INITIAL_PROJECT_ID;
|
|
19
21
|
if (!API_KEY) {
|
|
20
22
|
console.error("EVERSTATE_API_KEY environment variable is required");
|
|
21
23
|
process.exit(1);
|
|
@@ -46,8 +48,9 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
46
48
|
const enrichedArgs = { ...args };
|
|
47
49
|
const params = enrichedArgs.params;
|
|
48
50
|
const hasProjectIdInParams = params && typeof params === 'object' && 'projectId' in params && params.projectId;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
+
// Use session projectId (may have been set by switch_project or sync)
|
|
52
|
+
if (sessionProjectId && !enrichedArgs.projectId && !hasProjectIdInParams) {
|
|
53
|
+
enrichedArgs.projectId = sessionProjectId;
|
|
51
54
|
}
|
|
52
55
|
const res = await fetch(`${API_BASE}/mcp/execute`, {
|
|
53
56
|
method: "POST",
|
|
@@ -63,7 +66,23 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
63
66
|
isError: true,
|
|
64
67
|
};
|
|
65
68
|
}
|
|
66
|
-
|
|
69
|
+
const result = (await res.json());
|
|
70
|
+
// Update session state based on tool results
|
|
71
|
+
// switch_project and sync can set the active project
|
|
72
|
+
if (name === 'switch_project' || name === 'everstate_switch_project') {
|
|
73
|
+
// Extract projectId from result
|
|
74
|
+
const data = result.data || result.project;
|
|
75
|
+
if (data?.id) {
|
|
76
|
+
sessionProjectId = data.id;
|
|
77
|
+
console.error(`[Everstate] Session project set to: ${sessionProjectId}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
else if (name === 'sync' && enrichedArgs.projectId) {
|
|
81
|
+
// sync with explicit projectId sets the session project
|
|
82
|
+
sessionProjectId = enrichedArgs.projectId;
|
|
83
|
+
console.error(`[Everstate] Session project set to: ${sessionProjectId}`);
|
|
84
|
+
}
|
|
85
|
+
return result;
|
|
67
86
|
});
|
|
68
87
|
// Start server
|
|
69
88
|
async function main() {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA;;;;;;;;GAQG;;AAEH,wEAAmE;AACnE,wEAAiF;AACjF,iEAM4C;AAE5C,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,0BAA0B,CAAC;AAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;AAC9C,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
|
@@ -21,7 +21,10 @@ import {
|
|
|
21
21
|
|
|
22
22
|
const API_BASE = process.env.EVERSTATE_API_URL || "https://www.everstate.ai";
|
|
23
23
|
const API_KEY = process.env.EVERSTATE_API_KEY;
|
|
24
|
-
const
|
|
24
|
+
const INITIAL_PROJECT_ID = process.env.EVERSTATE_PROJECT_ID;
|
|
25
|
+
|
|
26
|
+
// Session state - persists projectId across tool calls within this proxy instance
|
|
27
|
+
let sessionProjectId = INITIAL_PROJECT_ID;
|
|
25
28
|
|
|
26
29
|
if (!API_KEY) {
|
|
27
30
|
console.error("EVERSTATE_API_KEY environment variable is required");
|
|
@@ -68,8 +71,10 @@ server.setRequestHandler(CallToolRequestSchema, async (request): Promise<CallToo
|
|
|
68
71
|
const enrichedArgs = { ...args } as Record<string, unknown>;
|
|
69
72
|
const params = enrichedArgs.params as Record<string, unknown> | undefined;
|
|
70
73
|
const hasProjectIdInParams = params && typeof params === 'object' && 'projectId' in params && params.projectId;
|
|
71
|
-
|
|
72
|
-
|
|
74
|
+
|
|
75
|
+
// Use session projectId (may have been set by switch_project or sync)
|
|
76
|
+
if (sessionProjectId && !enrichedArgs.projectId && !hasProjectIdInParams) {
|
|
77
|
+
enrichedArgs.projectId = sessionProjectId;
|
|
73
78
|
}
|
|
74
79
|
|
|
75
80
|
const res = await fetch(`${API_BASE}/mcp/execute`, {
|
|
@@ -88,7 +93,24 @@ server.setRequestHandler(CallToolRequestSchema, async (request): Promise<CallToo
|
|
|
88
93
|
};
|
|
89
94
|
}
|
|
90
95
|
|
|
91
|
-
|
|
96
|
+
const result = (await res.json()) as CallToolResult & { data?: any };
|
|
97
|
+
|
|
98
|
+
// Update session state based on tool results
|
|
99
|
+
// switch_project and sync can set the active project
|
|
100
|
+
if (name === 'switch_project' || name === 'everstate_switch_project') {
|
|
101
|
+
// Extract projectId from result
|
|
102
|
+
const data = result.data || (result as any).project;
|
|
103
|
+
if (data?.id) {
|
|
104
|
+
sessionProjectId = data.id;
|
|
105
|
+
console.error(`[Everstate] Session project set to: ${sessionProjectId}`);
|
|
106
|
+
}
|
|
107
|
+
} else if (name === 'sync' && enrichedArgs.projectId) {
|
|
108
|
+
// sync with explicit projectId sets the session project
|
|
109
|
+
sessionProjectId = enrichedArgs.projectId as string;
|
|
110
|
+
console.error(`[Everstate] Session project set to: ${sessionProjectId}`);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return result;
|
|
92
114
|
});
|
|
93
115
|
|
|
94
116
|
// Start server
|