heor-agent-mcp 0.1.3 → 0.1.4

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/server.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { Server } from "@modelcontextprotocol/sdk/server/index.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
+ import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
4
5
  import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
5
6
  import { handleLiteratureSearch, literatureSearchToolSchema, } from "./tools/literatureSearch.js";
6
7
  import { handleCostEffectivenessModel, costEffectivenessModelToolSchema, } from "./tools/costEffectivenessModel.js";
@@ -9,70 +10,196 @@ import { handleKnowledgeSearch, knowledgeSearchToolSchema, } from "./tools/knowl
9
10
  import { handleKnowledgeRead, knowledgeReadToolSchema, } from "./tools/knowledgeRead.js";
10
11
  import { handleKnowledgeWrite, knowledgeWriteToolSchema, } from "./tools/knowledgeWrite.js";
11
12
  import { handleProjectCreate, projectCreateToolSchema, } from "./tools/projectCreate.js";
12
- const server = new Server({ name: "heor-agent-mcp", version: "0.1.0" }, { capabilities: { tools: {} } });
13
- server.setRequestHandler(ListToolsRequestSchema, async () => ({
14
- tools: [
15
- literatureSearchToolSchema,
16
- costEffectivenessModelToolSchema,
17
- htaDossierPrepToolSchema,
18
- knowledgeSearchToolSchema,
19
- knowledgeReadToolSchema,
20
- knowledgeWriteToolSchema,
21
- projectCreateToolSchema,
22
- ],
23
- }));
24
- server.setRequestHandler(CallToolRequestSchema, async (request) => {
25
- const { name, arguments: args } = request.params;
26
- try {
27
- let result;
28
- switch (name) {
29
- case "literature_search":
30
- result = await handleLiteratureSearch(args);
31
- break;
32
- case "cost_effectiveness_model":
33
- result = await handleCostEffectivenessModel(args);
34
- break;
35
- case "hta_dossier_prep":
36
- result = await handleHtaDossierPrep(args);
37
- break;
38
- case "knowledge_search":
39
- result = await handleKnowledgeSearch(args);
40
- break;
41
- case "knowledge_read":
42
- result = await handleKnowledgeRead(args);
43
- break;
44
- case "knowledge_write":
45
- result = await handleKnowledgeWrite(args);
46
- break;
47
- case "project_create":
48
- result = await handleProjectCreate(args);
49
- break;
50
- default:
51
- return {
52
- content: [{ type: "text", text: `Unknown tool: ${name}` }],
53
- isError: true,
54
- };
13
+ import { randomUUID } from "node:crypto";
14
+ import { createServer } from "node:http";
15
+ import { readFile } from "node:fs/promises";
16
+ import { join, dirname } from "node:path";
17
+ import { fileURLToPath } from "node:url";
18
+ function createMcpServer() {
19
+ const server = new Server({ name: "heor-agent-mcp", version: "0.1.3" }, { capabilities: { tools: {} } });
20
+ server.setRequestHandler(ListToolsRequestSchema, async () => ({
21
+ tools: [
22
+ literatureSearchToolSchema,
23
+ costEffectivenessModelToolSchema,
24
+ htaDossierPrepToolSchema,
25
+ knowledgeSearchToolSchema,
26
+ knowledgeReadToolSchema,
27
+ knowledgeWriteToolSchema,
28
+ projectCreateToolSchema,
29
+ ],
30
+ }));
31
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
32
+ const { name, arguments: args } = request.params;
33
+ try {
34
+ let result;
35
+ switch (name) {
36
+ case "literature_search":
37
+ result = await handleLiteratureSearch(args);
38
+ break;
39
+ case "cost_effectiveness_model":
40
+ result = await handleCostEffectivenessModel(args);
41
+ break;
42
+ case "hta_dossier_prep":
43
+ result = await handleHtaDossierPrep(args);
44
+ break;
45
+ case "knowledge_search":
46
+ result = await handleKnowledgeSearch(args);
47
+ break;
48
+ case "knowledge_read":
49
+ result = await handleKnowledgeRead(args);
50
+ break;
51
+ case "knowledge_write":
52
+ result = await handleKnowledgeWrite(args);
53
+ break;
54
+ case "project_create":
55
+ result = await handleProjectCreate(args);
56
+ break;
57
+ default:
58
+ return {
59
+ content: [{ type: "text", text: `Unknown tool: ${name}` }],
60
+ isError: true,
61
+ };
62
+ }
63
+ const content = typeof result.content === "string"
64
+ ? result.content
65
+ : JSON.stringify(result.content, null, 2);
66
+ return {
67
+ content: [{ type: "text", text: content }],
68
+ };
55
69
  }
56
- const content = typeof result.content === "string"
57
- ? result.content
58
- : JSON.stringify(result.content, null, 2);
59
- return {
60
- content: [{ type: "text", text: content }],
61
- };
62
- }
63
- catch (err) {
64
- const message = err instanceof Error ? err.message : String(err);
65
- return {
66
- content: [{ type: "text", text: `Error: ${message}` }],
67
- isError: true,
68
- };
69
- }
70
- });
71
- async function main() {
70
+ catch (err) {
71
+ const message = err instanceof Error ? err.message : String(err);
72
+ return {
73
+ content: [{ type: "text", text: `Error: ${message}` }],
74
+ isError: true,
75
+ };
76
+ }
77
+ });
78
+ return server;
79
+ }
80
+ // --- Stdio mode (default) ---
81
+ async function runStdio() {
82
+ const server = createMcpServer();
72
83
  const transport = new StdioServerTransport();
73
84
  await server.connect(transport);
74
85
  console.error("HEORAgent MCP server running on stdio");
75
86
  }
87
+ // --- HTTP mode (--http flag or MCP_HTTP_PORT env) ---
88
+ async function runHttp(port) {
89
+ const sessions = {};
90
+ const __dirname = dirname(fileURLToPath(import.meta.url));
91
+ const httpServer = createServer(async (req, res) => {
92
+ // CORS headers
93
+ res.setHeader("Access-Control-Allow-Origin", "*");
94
+ res.setHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, OPTIONS");
95
+ res.setHeader("Access-Control-Allow-Headers", "Content-Type, mcp-session-id");
96
+ res.setHeader("Access-Control-Expose-Headers", "mcp-session-id");
97
+ if (req.method === "OPTIONS") {
98
+ res.writeHead(204);
99
+ res.end();
100
+ return;
101
+ }
102
+ // Serve server-card.json for Smithery discovery
103
+ if (req.method === "GET" &&
104
+ req.url === "/.well-known/mcp/server-card.json") {
105
+ try {
106
+ const cardPath = join(__dirname, "..", ".well-known", "mcp", "server-card.json");
107
+ const card = await readFile(cardPath, "utf-8");
108
+ res.writeHead(200, { "Content-Type": "application/json" });
109
+ res.end(card);
110
+ }
111
+ catch {
112
+ res.writeHead(404);
113
+ res.end("Not found");
114
+ }
115
+ return;
116
+ }
117
+ // Health check
118
+ if (req.method === "GET" && req.url === "/health") {
119
+ res.writeHead(200, { "Content-Type": "application/json" });
120
+ res.end(JSON.stringify({ status: "ok", server: "heor-agent-mcp", version: "0.1.3" }));
121
+ return;
122
+ }
123
+ // MCP endpoint
124
+ if (req.url === "/mcp") {
125
+ const sessionId = req.headers["mcp-session-id"];
126
+ if (req.method === "POST") {
127
+ // Parse body
128
+ const chunks = [];
129
+ for await (const chunk of req) {
130
+ chunks.push(typeof chunk === "string" ? Buffer.from(chunk) : chunk);
131
+ }
132
+ const body = JSON.parse(Buffer.concat(chunks).toString());
133
+ let transport;
134
+ if (sessionId && sessions[sessionId]) {
135
+ transport = sessions[sessionId];
136
+ }
137
+ else if (!sessionId && body?.method === "initialize") {
138
+ // New session
139
+ const server = createMcpServer();
140
+ transport = new StreamableHTTPServerTransport({
141
+ sessionIdGenerator: () => randomUUID(),
142
+ onsessioninitialized: (id) => {
143
+ sessions[id] = transport;
144
+ },
145
+ });
146
+ transport.onclose = () => {
147
+ const id = Object.entries(sessions).find(([, t]) => t === transport)?.[0];
148
+ if (id)
149
+ delete sessions[id];
150
+ };
151
+ await server.connect(transport);
152
+ }
153
+ else {
154
+ res.writeHead(400, { "Content-Type": "application/json" });
155
+ res.end(JSON.stringify({ error: "Invalid or missing session" }));
156
+ return;
157
+ }
158
+ await transport.handleRequest(req, res, body);
159
+ return;
160
+ }
161
+ if (req.method === "GET") {
162
+ if (!sessionId || !sessions[sessionId]) {
163
+ res.writeHead(400, { "Content-Type": "application/json" });
164
+ res.end(JSON.stringify({ error: "Invalid session" }));
165
+ return;
166
+ }
167
+ await sessions[sessionId].handleRequest(req, res);
168
+ return;
169
+ }
170
+ if (req.method === "DELETE") {
171
+ if (sessionId && sessions[sessionId]) {
172
+ await sessions[sessionId].close();
173
+ delete sessions[sessionId];
174
+ }
175
+ res.writeHead(200);
176
+ res.end();
177
+ return;
178
+ }
179
+ }
180
+ res.writeHead(404);
181
+ res.end("Not found");
182
+ });
183
+ httpServer.listen(port, "0.0.0.0", () => {
184
+ console.error(`HEORAgent MCP server running on HTTP port ${port}`);
185
+ console.error(` MCP endpoint: http://localhost:${port}/mcp`);
186
+ console.error(` Health check: http://localhost:${port}/health`);
187
+ console.error(` Server card: http://localhost:${port}/.well-known/mcp/server-card.json`);
188
+ });
189
+ }
190
+ // --- Entrypoint ---
191
+ async function main() {
192
+ const args = process.argv.slice(2);
193
+ const httpFlag = args.includes("--http");
194
+ const portEnv = process.env.MCP_HTTP_PORT;
195
+ if (httpFlag || portEnv) {
196
+ const port = parseInt(portEnv || "8787", 10);
197
+ await runHttp(port);
198
+ }
199
+ else {
200
+ await runStdio();
201
+ }
202
+ }
76
203
  main().catch((err) => {
77
204
  console.error("Fatal error:", err);
78
205
  process.exit(1);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "heor-agent-mcp",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "license": "MIT",
5
5
  "author": "mnaumov",
6
6
  "engines": {
@@ -58,9 +58,11 @@
58
58
  "dependencies": {
59
59
  "@modelcontextprotocol/sdk": "^1.0.0",
60
60
  "docx": "^9.6.1",
61
+ "express": "^5.2.1",
61
62
  "zod": "^3.22.4"
62
63
  },
63
64
  "devDependencies": {
65
+ "@types/express": "^5.0.6",
64
66
  "@types/jest": "^29.5.11",
65
67
  "@types/node": "^20.11.0",
66
68
  "jest": "^29.7.0",