Skip to main content
Glama

Firebase MCP

index.ts1.72 kB
/** * Transport Factory Module * * This module provides factory functions for creating different transport types. * It centralizes transport initialization logic and provides a consistent interface. * * @module firebase-mcp/transports */ import type { Server } from '@modelcontextprotocol/sdk/server/index.js'; import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'; import { initializeHttpTransport } from './http.js'; import { TransportType, isHttpServerRunning, type ServerConfig } from '../config.js'; import { logger } from '../utils/logger.js'; /** * Initialize transport based on configuration * @param server MCP server instance * @param config Server configuration * @returns Promise that resolves when the transport is initialized */ export async function initializeTransport(server: Server, config: ServerConfig): Promise<void> { // If we're in stdio context, check if an HTTP server is already running if ( config.transport === TransportType.STDIO && (await isHttpServerRunning(config.http.host, config.http.port)) ) { logger.error( `Cannot connect via stdio: HTTP server already running at ${config.http.host}:${config.http.port}` ); logger.error('To connect to the HTTP server, configure your client to use HTTP transport'); process.exit(1); } switch (config.transport) { case TransportType.HTTP: logger.info('Initializing HTTP transport'); await initializeHttpTransport(server, config); break; case TransportType.STDIO: default: logger.info('Initializing stdio transport'); const transport = new StdioServerTransport(); await server.connect(transport); break; } }

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/gannonh/firebase-mcp'

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