Skip to main content
Glama
mcp.ts1.67 kB
import { Router, type Request, type Response } from "express"; import type { MCP } from "../server/mcp"; export function createMCPRouter(mcp: MCP): Router { const router = Router(); router.post("/", async (req: Request, res: Response) => { try { await mcp.handleRequest(req, res, req.body); } catch (error) { const err = error as Error; console.error("MCP request error:", err); if (!res.headersSent) { res.status(500).json({ jsonrpc: "2.0", error: { code: -32603, message: "Internal server error" }, id: null, }); } } }); router.get("/", async (req: Request, res: Response) => { try { await mcp.handleRequest(req, res); } catch (error) { const err = error as Error; console.error("MCP GET error:", err); if (!res.headersSent) { res.status(500).json({ jsonrpc: "2.0", error: { code: -32603, message: "Internal server error" }, id: null, }); } } }); router.delete("/", async (req: Request, res: Response) => { try { await mcp.handleRequest(req, res); } catch (error) { const err = error as Error; console.error("MCP DELETE error:", err); if (!res.headersSent) { res.status(500).json({ jsonrpc: "2.0", error: { code: -32603, message: "Internal server error" }, id: null, }); } } }); router.get("/health", (_req: Request, res: Response) => { res.json({ status: "ok", message: "MCP server is running" }); }); router.get("/info", (_req: Request, res: Response) => { res.json({ name: "express-mcp-server", version: "1.0.0", protocolVersion: "2024-11-05", capabilities: { tools: true }, }); }); return router; }

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/hencydsouza24/mcp_demo'

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