Skip to main content
Glama

SSE MCP Server

by KelvinQiu802
index.ts1.5 kB
import express from "express"; import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js' import { z } from "zod"; const app = express(); const server = new McpServer({ name: "hackernews-server", version: "1.0.0" }); server.tool( "get-hackernews-top-stories", "Get the stories from Hacker News", { type: z.enum(['topstories', 'newstories', 'beststories']), amount: z.number().min(1).max(500).default(10) }, async (params) => { const response = await fetch(`https://hacker-news.firebaseio.com/v0/${params.type}.json`); const ids = await response.json(); const stories = await Promise.all(ids.slice(0, params.amount).map(async (id: number) => { const storyResponse = await fetch(`https://hacker-news.firebaseio.com/v0/item/${id}.json`); return storyResponse.json(); })); return { content: stories.map((story) => ({ type: "text", text: JSON.stringify(story) })) }; } ) let transport: SSEServerTransport | null = null; app.get("/sse", (req, res) => { transport = new SSEServerTransport("/messages", res); server.connect(transport); }); app.post("/messages", (req, res) => { if (transport) { transport.handlePostMessage(req, res); } }); app.listen(3000, () => { console.log("Server is running on port 3000"); });

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/KelvinQiu802/mcp-sse'

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