Skip to main content
Glama
mcpServer.ts1.45 kB
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js'; import { isInitializeRequest } from '@modelcontextprotocol/sdk/types.js'; import { config } from '@/config'; import { SessionManager } from '@/services/sessionManager'; import { registerTools } from '@/tools'; export class McpServerService { private sessionManager: SessionManager; constructor() { this.sessionManager = new SessionManager(); } // 创建新的MCP服务器实例 async createServer(transport: StreamableHTTPServerTransport): Promise<void> { const server = new McpServer({ name: config.name, version: config.version, }); // 注册所有工具 registerTools(server); // 连接到传输层 await server.connect(transport); } // 处理初始化请求 async handleInitialization( transport: StreamableHTTPServerTransport, sessionId: string, ): Promise<void> { // 设置传输层关闭回调 transport.onclose = () => { this.sessionManager.removeSession(sessionId); }; // 创建并连接服务器 await this.createServer(transport); } // 获取会话管理器 getSessionManager(): SessionManager { return this.sessionManager; } // 验证初始化请求 static isValidInitializationRequest(body: any): boolean { return isInitializeRequest(body); } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chendaleiQ/mcp-iot'

If you have feedback or need assistance with the MCP directory API, please join our Discord server