Skip to main content
Glama
Firenook

Firenook

Official

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Tools act on the local Firenook emulator suite only: the project of the folder the server runs in, or, with no firebase.json there and no --project, the one running suite. Firestore values use plain JSON with {"$timestamp"}, {"$ref"}, {"$geo"} and {"$bytes"} sentinels. Tools marked destructive change or delete emulator data. Nothing is sent to any cloud service.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
firenook_statusB

The running Firenook suite: how the project was found, hub locator, hub status, the emulators listing (host and port per service) and the CLI version; with no project, the suites whose locators answer.

emulators_exportB

Export the running Firestore, Auth and Storage data to a directory outside the project (firenook emulators:export).

firestore_getA

Read one Firestore document by path (collection/document[/subcollection/document]); returns its fields as plain JSON or exists:false.

firestore_queryA

Run a structured query over one collection, or with collectionGroup over every collection with that id (Firestore runQuery): optional where filters, ordering and limit; returns matching documents as plain JSON.

firestore_countA

Count the documents of a collection, or with collectionGroup of every collection with that id, that match optional where filters (a COUNT aggregation; no documents are read back).

firestore_setA

Write a Firestore document from plain JSON: replaces it, or with merge:true updates only the given top-level fields.

firestore_deleteA

Delete a document (recursive:true also its subcollections) or a collection (its documents; recursive:true everything beneath) through the emulator delete route.

firestore_list_collectionsA

List collection ids at the database root or under a document (listCollectionIds).

auth_list_usersA

List Auth emulator accounts (accounts:batchGet) with uid, email, phone, display name, claims and provider data.

auth_get_userB

Look up one Auth account by uid, email or phone number (accounts:lookup).

auth_create_userA

Create an Auth emulator account with a synthetic email/password, phone number or display name (never real credentials).

auth_delete_userC

Delete one Auth emulator account by uid (accounts:delete).

auth_oob_codesA

The pending out-of-band codes (email verification, password reset, sign-in links) the Auth emulator holds instead of sending email.

auth_verification_codesB

The pending phone verification codes the Auth emulator holds instead of sending SMS.

auth_mint_tokenA

Mint a Firebase ID token (valid one hour) and refresh token for an existing Auth emulator user, so an agent can call a function or the REST API as that user; claims replace the custom claims for this token only.

auth_set_claimsA

Set an Auth emulator user's custom claims: replace them (as the Admin SDK's setCustomUserClaims does) or with mode merge change only the given keys (a null value removes that key).

auth_remove_claimsA

Remove the named custom claim keys from an Auth emulator user, keeping its other claims.

auth_disable_userA

Disable an Auth emulator account: its sign-ins and token refreshes fail until it is enabled again.

auth_enable_userB

Enable a disabled Auth emulator account again.

auth_revoke_tokensA

Revoke an Auth emulator user's refresh tokens (validSince moves to now), so its existing sessions must sign in again.

auth_list_tenantsB

List the Auth emulator's tenants (multi-tenancy) with their user counts and sign-in settings.

storage_listA

List Storage objects and folder prefixes under a prefix (one level, like listAll).

storage_get_metadataA

The metadata of one Storage object (content type, size, timestamps, custom metadata, download tokens) or exists:false.

storage_readA

Read a Storage object's content: text inline (text, JSON, XML, SVG...), anything else as base64; at most maxBytes are returned and truncated says whether there is more.

storage_uploadA

Upload (create or replace) a Storage object from text or base64 bytes with a content type and custom metadata, as the Admin SDK would (rules skipped; finalize triggers run).

storage_deleteA

DESTRUCTIVE: delete one Storage object, or with a path ending in / every object under that folder.

storage_copyA

Copy a Storage object (or a folder, a path ending in /) to a new path, in the same or another bucket; refuses to overwrite unless overwrite is true.

storage_moveA

Move (rename) a Storage object or a folder (a path ending in /), in the same or another bucket; refuses to overwrite unless overwrite is true.

functions_listA

The functions loaded by the running suite: name, region, generation, trigger kind, event type or schedule, and the HTTPS URL of request/callable functions.

functions_invokeA

Invoke a loaded function: an HTTPS/callable request with data, or with eventData a background event (Firestore before/after, Storage object, Pub/Sub message, Auth user, schedule, Eventarc custom event, task queue payload) shaped as the official functions shell sends it.

functions_list_callsB

Recent function calls, newest first: trigger kind and cause, outcome (succeeded, failed, timedOut, crashed...), HTTP status, duration and the first line of the error.

functions_get_callB

One function call in full: its cause, request (method, path, headers, body), response (status, body), event payload, the error with its stack trace, the call's console output and timings.

functions_replay_callA

Run a recorded function call again with the same request or event (after a fix, say) and report the new call: outcome, status, response body and its id for functions_get_call.

logs_searchA

Search the suite's log (every emulator and every function's console output) by service, level, function, call, text and time; returns the newest matching lines, oldest first.

logs_facetsA

Count the log lines matching a filter by level, service, function, codebase, extension instance and kind, to see where errors and warnings come from before reading them.

rules_getB

The Security Rules in force: the Firestore rules of a database and the Storage rules of a bucket (source, whether they are enforced, the file and its problems).

rules_evaluateA

Ask the rules in force (or a draft) whether a request would be allowed: get, list, create, update or delete on a Firestore path or Storage object as a given user or unauthenticated; returns the verdict, the rule line that decided it and each evaluated expression's value. Nothing is written.

rules_list_denialsA

Recent requests the Security Rules denied (app clients only; admin and owner requests skip the rules), newest last; with explain, the rule lines that denied each one.

pubsub_publishB

Publish a message to a Pub/Sub emulator topic: string data as given, other JSON as its text (base64-encoded on the wire), plus attributes.

pubsub_list_topicsB

The Pub/Sub emulator's topics with their published counts, subscriptions and the functions they trigger (schedule topics included).

pubsub_list_subscriptionsA

Every Pub/Sub subscription (of every topic, and detached ones) with its delivery type, filter, dead-letter topic and backlog.

pubsub_peekA

Peek at a subscription's backlog in delivery order without pulling, leasing or acking anything: each message's state, attempts, attributes and data.

tasks_statsB

Queue statistics of the Cloud Tasks emulator (queueStats).

tasks_listA

The Cloud Tasks queues (with their pending and running counts) and the tasks waiting in them; with queue, only that queue's tasks, optionally in one state.

tasks_runA

Dispatch one waiting Cloud Tasks task now instead of at its schedule time (it is sent on the next tick).

schedules_listB

The scheduled functions (onSchedule, pubsub.schedule): expression, time zone, next runs, paused state and the latest runs with their delivery.

schedules_runB

Run a scheduled function now: publish one tick to its schedule topic, as Cloud Scheduler would, and report the run.

eventarc_publishB

Publish a custom CloudEvent to an Eventarc channel (default the project's Firebase channel), as getEventarc().channel().publish() does, and report which functions received it and how each call ended.

eventarc_list_eventsA

The Eventarc events the suite received, newest first (custom events, replays and the Firebase services' own), with how many functions matched, received or failed each.

eventarc_get_eventA

One Eventarc event with its attributes, data and every function delivery (outcome, duration, invocation id for functions_get_call).

eventarc_replay_eventA

Deliver a received Eventarc event again to the functions it matches (a new event, origin replay) and report the new deliveries.

extensions_listC

The Firebase Extensions instances the suite runs: reference and version, state (running, loading, failed) with the load error, and their function count.

extensions_reloadA

Reload one Extensions instance (re-read its .env parameters and source, restart its functions) and report its state and functions afterwards.

emulators_clearA

DESTRUCTIVE: delete all data of the chosen services (every Firestore document, every Auth user and tenant, every Storage object, every Pub/Sub topic, subscription, schema and message, every Cloud Tasks task and its history). Clearing more than one service needs confirmProject set to the project id.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.4/5.0

Scored across 54 tools

Disambiguation4/5

Tools are grouped by service prefix (firestore_, auth_, storage_, pubsub_, tasks_, schedules_, eventarc_, functions_, rules_, logs_, extensions_, emulators_) and each action within a group is distinct (get vs query vs count, copy vs move, list vs get_call). A few pairs could still be confused at a glance: auth_mint_token vs auth_set_claims (token-only claims vs stored custom claims), pubsub_peek vs pubsub_list_subscriptions (both expose backlog), and firestore_delete vs emulators_clear (scoped vs global destructive wipe). These are resolved by the descriptions, so ambiguity is minor rather than systemic.

Naming Consistency4/5

Names follow a predictable service_verb_noun snake_case pattern (firestore_get, auth_list_users, storage_upload, functions_replay_call), which makes the set easy to scan and predict. A handful of deviations drop the verb (auth_oob_codes, auth_verification_codes, tasks_stats) and a few are noun-first (firestore_list_collections, functions_list_calls), but the service prefix keeps everything readable.

Tool Count3/5

54 tools is heavy by any standard, though the surface genuinely spans a dozen Firebase sub-domains (Firestore, Auth, Storage, Pub/Sub, Tasks, Schedules, Eventarc, Functions, Rules, Logs, Extensions, Emulators), averaging ~4-5 tools each. Per-domain scope is tight, but the overall count makes discovery and selection cost high for an agent. It sits at the borderline of 'large but justified' rather than clearly well-scoped.

Completeness4/5

Coverage is unusually deep: full CRUD for Firestore documents, Auth users, Storage objects, plus inspection/replay for functions, Eventarc events, scheduled runs, rules evaluation and logs. Notable gaps remain: no user profile update (email/password/display name), no Pub/Sub topic/subscription creation or message pull/ack, no rules deployment (rules_get is read-only), and no emulator start/stop/import to pair with emulators_export and emulators_clear. Most gaps are workaroundable but some block common emulator-management workflows.

Maintenance

ActivityActive
ResponsivenessNo recent community issues