@tongateway/mcp 0.12.0 → 0.13.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 +41 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
3
|
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
+
import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
|
|
4
5
|
import { z } from 'zod';
|
|
6
|
+
import { createServer } from 'node:http';
|
|
5
7
|
import { readFileSync, writeFileSync, mkdirSync } from 'node:fs';
|
|
6
8
|
import { join } from 'node:path';
|
|
7
9
|
import { homedir } from 'node:os';
|
|
@@ -682,5 +684,42 @@ server.tool('get_agent_wallet_info', 'Get info about Agent Wallets — balance,
|
|
|
682
684
|
return { content: [{ type: 'text', text: `Error: ${e.message}` }], isError: true };
|
|
683
685
|
}
|
|
684
686
|
});
|
|
685
|
-
const
|
|
686
|
-
|
|
687
|
+
const httpPort = process.env.MCP_HTTP_PORT || (process.argv.includes('--http') ? '3100' : '');
|
|
688
|
+
if (httpPort) {
|
|
689
|
+
// HTTP transport for Smithery and remote clients
|
|
690
|
+
const httpServer = createServer(async (req, res) => {
|
|
691
|
+
// CORS
|
|
692
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
693
|
+
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS');
|
|
694
|
+
res.setHeader('Access-Control-Allow-Headers', 'Content-Type');
|
|
695
|
+
if (req.method === 'OPTIONS') {
|
|
696
|
+
res.writeHead(204);
|
|
697
|
+
res.end();
|
|
698
|
+
return;
|
|
699
|
+
}
|
|
700
|
+
// Health check
|
|
701
|
+
if (req.method === 'GET' && req.url === '/health') {
|
|
702
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
703
|
+
res.end(JSON.stringify({ ok: true, version: '0.12.0' }));
|
|
704
|
+
return;
|
|
705
|
+
}
|
|
706
|
+
// MCP endpoint
|
|
707
|
+
if (req.url === '/mcp' || req.url === '/') {
|
|
708
|
+
const transport = new StreamableHTTPServerTransport({ sessionIdGenerator: undefined });
|
|
709
|
+
res.on('close', () => { transport.close(); });
|
|
710
|
+
await server.connect(transport);
|
|
711
|
+
await transport.handleRequest(req, res);
|
|
712
|
+
return;
|
|
713
|
+
}
|
|
714
|
+
res.writeHead(404);
|
|
715
|
+
res.end('Not found');
|
|
716
|
+
});
|
|
717
|
+
httpServer.listen(Number(httpPort), () => {
|
|
718
|
+
console.error(`MCP HTTP server listening on port ${httpPort}`);
|
|
719
|
+
});
|
|
720
|
+
}
|
|
721
|
+
else {
|
|
722
|
+
// Default: stdio transport for local MCP clients
|
|
723
|
+
const transport = new StdioServerTransport();
|
|
724
|
+
await server.connect(transport);
|
|
725
|
+
}
|