Skip to main content
Glama

Github Project Manager

index.ts2.4 kB
import express from 'express'; import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { SSEServerTransport } from '@modelcontextprotocol/sdk/server/sse.js'; import { registerTools } from '../tools/index.js'; import { loadEnv } from '../config/env.js'; /** * Starts the MCP server with stdio transport * * @param {Object} params - Server parameters * @param {string} params.token - Vercel Blob read-write token * @returns {Promise<void>} */ export async function startStdioServer(params: { token: string }): Promise<void> { const server = new McpServer({ name: 'mcp-vercel-blob', version: '1.0.0', }); registerTools(server, params.token); const transport = new StdioServerTransport(); await server.connect(transport); } /** * Starts the MCP server with SSE transport * * @param {Object} params - Server parameters * @param {string} params.token - Vercel Blob read-write token * @param {number} params.port - HTTP server port * @returns {Promise<void>} */ export async function startSseServer(params: { token: string; port: number }): Promise<void> { const server = new McpServer({ name: 'mcp-vercel-blob', version: '1.0.0', }); registerTools(server, params.token); const app = express(); let transport: SSEServerTransport | null = null; app.get('/sse', async (_req, res) => { transport = new SSEServerTransport('/messages', res); await server.connect(transport); }); app.post('/messages', async (req, res) => { if (transport) { await transport.handlePostMessage(req, res); return; } res.status(400).json({ error: 'No active SSE transport' }); }); app.listen(params.port, () => { console.log(`SSE server listening on port ${params.port}`); }); } /** * Main server entry point that loads environment and starts the appropriate transport * * @returns {Promise<void>} */ export async function startServer(): Promise<void> { const env = loadEnv(); if (env.RUN_SSE) { await startSseServer({ token: env.BLOB_READ_WRITE_TOKEN, port: env.PORT, }); } else { await startStdioServer({ token: env.BLOB_READ_WRITE_TOKEN, }); } }

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/Monsoft-Solutions/model-context-protocols'

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