Skip to main content
Glama
gemini-dk

Firebase MCP Server

by gemini-dk

firestore_add_document

Add a document to a Firestore collection by specifying the collection name and document data. This tool enables structured data storage in Firebase's NoSQL database.

Instructions

Add a document to a Firestore collection

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
collectionYesCollection name
dataYesDocument data

Implementation Reference

  • Executes the firestore_add_document tool: adds a document to Firestore collection and returns ID, console URL, and processed data.
    export async function addDocument(collection: string, data: any) {
      try {
        if (!db) {
          return { content: [{ type: 'text', text: 'Firebase is not initialized. SERVICE_ACCOUNT_KEY_PATH environment variable is required.' }], isError: true };
        }
        
        const docRef = await db.collection(collection).add(data);
        const projectId = getProjectId();
        convertTimestampsToISO(data);
        const consoleUrl = `https://console.firebase.google.com/project/${projectId}/firestore/data/${collection}/${docRef.id}`;
        return { content: [{ type: 'text', text: JSON.stringify({ id: docRef.id, url: consoleUrl, document: data }) }] };
      } catch (error) {
        return { content: [{ type: 'text', text: `Error adding document: ${(error as Error).message}` }], isError: true };
      }
    }
  • Input schema for firestore_add_document tool defining collection and data parameters.
    inputSchema: {
      type: 'object',
      properties: {
        collection: {
          type: 'string',
          description: 'Collection name'
        },
        data: {
          type: 'object',
          description: 'Document data'
        }
      },
      required: ['collection', 'data']
    }
  • src/index.ts:37-54 (registration)
    Registration of firestore_add_document tool in ListToolsRequestSchema handler.
    {
      name: 'firestore_add_document',
      description: 'Add a document to a Firestore collection',
      inputSchema: {
        type: 'object',
        properties: {
          collection: {
            type: 'string',
            description: 'Collection name'
          },
          data: {
            type: 'object',
            description: 'Document data'
          }
        },
        required: ['collection', 'data']
      }
    },
  • src/index.ts:229-230 (registration)
    Dispatch to handler in CallToolRequestSchema switch statement.
    case 'firestore_add_document':
      return addDocument(args.collection as string, args.data as object);
  • Helper utility to convert Firestore Timestamps to ISO strings, used in addDocument.
    function convertTimestampsToISO(data: any) {
      for (const key in data) {
        if (data[key] instanceof Timestamp) {
          data[key] = data[key].toDate().toISOString();
        }
      }
      return data;
    }

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/gemini-dk/mcp-server-firebase'

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