Skip to main content
Glama

Github Project Manager

index.ts1.89 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 { registerResources } from '../resources/index.js'; import { registerPrompts } from '../prompts/index.js'; import { loadEnv } from '../config/env.js'; export async function startStdioServer(params: { token: string }): Promise<void> { const server = new McpServer({ name: 'mcp-fal-ai', version: '0.1.0' }); registerResources(server, params.token); registerTools(server, params.token); registerPrompts(server); const transport = new StdioServerTransport(); await server.connect(transport); } export async function startSseServer(params: { token: string; port: number }): Promise<void> { const server = new McpServer({ name: 'mcp-fal-ai', version: '0.1.0' }); registerResources(server, params.token); registerTools(server, params.token); registerPrompts(server); 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, () => {}); } export async function startServer(): Promise<void> { const env = loadEnv(); if (env.RUN_SSE) { await startSseServer({ token: env.FAL_API_KEY, port: env.PORT }); } else { await startStdioServer({ token: env.FAL_API_KEY }); } }

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