Skip to main content
Glama
gemini-dk

Firebase MCP Server

by gemini-dk

firestore_update_document

Modify existing document data in a Firestore collection by specifying the collection name, document ID, and updated fields.

Instructions

Update a document in a Firestore collection

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
collectionYesCollection name
idYesDocument ID
dataYesUpdated document data

Implementation Reference

  • The core handler function that updates a Firestore document using the Firebase Admin SDK, handles errors, converts timestamps, and returns a formatted response with console URL.
    export async function updateDocument(collection: string, id: 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 };
        }
        
        await db.collection(collection).doc(id).update(data);
        const projectId = getProjectId();
        convertTimestampsToISO(data);
        const consoleUrl = `https://console.firebase.google.com/project/${projectId}/firestore/data/${collection}/${id}`;
        return { content: [{ type: 'text', text: JSON.stringify({ id, url: consoleUrl, document: data }) }] };
      } catch (error) {
        return { content: [{ type: 'text', text: `Error updating document: ${(error as Error).message}` }], isError: true };
      }
    }
  • src/index.ts:141-162 (registration)
    Tool registration in the listTools response, including name, description, and input schema.
    {
      name: 'firestore_update_document',
      description: 'Update a document in a Firestore collection',
      inputSchema: {
        type: 'object',
        properties: {
          collection: {
            type: 'string',
            description: 'Collection name'
          },
          id: {
            type: 'string',
            description: 'Document ID'
          },
          data: {
            type: 'object',
            description: 'Updated document data'
          }
        },
        required: ['collection', 'id', 'data']
      }
    },
  • src/index.ts:240-241 (registration)
    Dispatch in the CallToolRequest handler switch statement that routes to the updateDocument implementation.
    case 'firestore_update_document':
      return updateDocument(args.collection as string, args.id as string, args.data as object);
  • Helper function used in updateDocument (and others) to convert Firestore Timestamp objects to ISO strings for JSON serialization.
    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