Skip to main content
Glama
server.ts1.52 kB
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { registerResources } from "./resources/index.js"; import { registerTools } from "./tools/index.js"; import { PermissionManager } from "./permissions/manager.js"; import { FirestoreClient } from "./firestore/client.js"; import { PermissionConfig } from "./permissions/types.js"; export interface ServerOptions { permissionConfig: PermissionConfig; projectId?: string; credentialPath?: string; } export async function createServer(options: ServerOptions) { // Initialize Firestore client const firestoreClient = new FirestoreClient({ projectId: options.projectId, credentialPath: options.credentialPath, }); await firestoreClient.initialize(); // Initialize permission manager const permissionManager = new PermissionManager(options.permissionConfig); // Create MCP server const server = new McpServer({ name: "firestore-mcp", version: "0.1.0", }); // Register resources and tools registerResources(server, firestoreClient, permissionManager); registerTools(server, firestoreClient, permissionManager); return server; } export async function startServer(options: ServerOptions) { const server = await createServer(options); // Connect to transport const transport = new StdioServerTransport(); await server.connect(transport); console.error("Firestore MCP server started"); return server; }

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/devlimelabs/firestore-mcp'

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