@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.
Files changed (2) hide show
  1. package/dist/index.js +41 -2
  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 transport = new StdioServerTransport();
686
- await server.connect(transport);
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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tongateway/mcp",
3
- "version": "0.12.0",
3
+ "version": "0.13.0",
4
4
  "description": "MCP server for Agent Gateway — lets AI agents request TON blockchain transfers",
5
5
  "license": "MIT",
6
6
  "repository": {