Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Crawler Summary
MCP server for Firebase Firestore with granular permissions Firestore MCP Server A Model Context Protocol (MCP) server that provides secure, permission-controlled access to Firebase Firestore. This server allows AI assistants and other MCP clients to interact with Firestore databases through a standardized interface. Features Core Functionality - ๐ **Granular Permissions**: Control access at the collection and operation level - ๐ **Full CRUD Operations**: Create, read, upda Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Freshness
Last checked 2/22/2026
Best For
Contract is available with explicit auth and schema references.
Not Ideal For
mcp-firestore is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.
Evidence Sources Checked
editorial-content, capability-contract, runtime-metrics, public facts pack
MCP server for Firebase Firestore with granular permissions Firestore MCP Server A Model Context Protocol (MCP) server that provides secure, permission-controlled access to Firebase Firestore. This server allows AI assistants and other MCP clients to interact with Firestore databases through a standardized interface. Features Core Functionality - ๐ **Granular Permissions**: Control access at the collection and operation level - ๐ **Full CRUD Operations**: Create, read, upda
Public facts
6
Change events
1
Artifacts
0
Freshness
Feb 22, 2026
Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Trust score
Unknown
Compatibility
MCP
Freshness
Feb 22, 2026
Vendor
Devlimelabs
Artifacts
0
Benchmarks
0
Last release
0.1.0
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Setup snapshot
git clone https://github.com/devlimelabs/firestore-mcp.gitSetup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.
Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Devlimelabs
Protocol compatibility
MCP
Auth modes
mcp, api_key
Machine-readable schemas
OpenAPI or schema references published
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
bash
npm install mcp-firestore # or yarn add mcp-firestore # or pnpm add mcp-firestore
bash
git clone https://github.com/yourusername/mcp-firestore.git cd mcp-firestore pnpm install pnpm build
env
# Required FIRESTORE_PROJECT_ID=your-project-id # Optional - for authentication GOOGLE_APPLICATION_CREDENTIALS=path/to/service-account.json
json
{
"collections": [
{
"collectionId": "users",
"operations": ["read", "write", "query"]
},
{
"collectionId": "posts",
"operations": ["read", "query"]
}
],
"defaultAllow": false
}bash
# With default permissions mcp-firestore # With custom permissions file mcp-firestore --config permissions.json # With full access (development only) mcp-firestore --full-access # With read-only access to specific collections mcp-firestore --read-only --collections users,posts
json
{
"servers": {
"firestore": {
"command": "mcp-firestore",
"args": ["--config", "path/to/permissions.json"],
"env": {
"FIRESTORE_PROJECT_ID": "your-project-id"
}
}
}
}Full documentation captured from public sources, including the complete README when available.
Docs source
GITHUB MCP
Editorial quality
ready
MCP server for Firebase Firestore with granular permissions Firestore MCP Server A Model Context Protocol (MCP) server that provides secure, permission-controlled access to Firebase Firestore. This server allows AI assistants and other MCP clients to interact with Firestore databases through a standardized interface. Features Core Functionality - ๐ **Granular Permissions**: Control access at the collection and operation level - ๐ **Full CRUD Operations**: Create, read, upda
A Model Context Protocol (MCP) server that provides secure, permission-controlled access to Firebase Firestore. This server allows AI assistants and other MCP clients to interact with Firestore databases through a standardized interface.
npm install mcp-firestore
# or
yarn add mcp-firestore
# or
pnpm add mcp-firestore
git clone https://github.com/yourusername/mcp-firestore.git
cd mcp-firestore
pnpm install
pnpm build
Create a .env file with your Firestore configuration:
# Required
FIRESTORE_PROJECT_ID=your-project-id
# Optional - for authentication
GOOGLE_APPLICATION_CREDENTIALS=path/to/service-account.json
Create a permissions.json file to control access:
{
"collections": [
{
"collectionId": "users",
"operations": ["read", "write", "query"]
},
{
"collectionId": "posts",
"operations": ["read", "query"]
}
],
"defaultAllow": false
}
# With default permissions
mcp-firestore
# With custom permissions file
mcp-firestore --config permissions.json
# With full access (development only)
mcp-firestore --full-access
# With read-only access to specific collections
mcp-firestore --read-only --collections users,posts
Add to your Claude Desktop configuration:
{
"servers": {
"firestore": {
"command": "mcp-firestore",
"args": ["--config", "path/to/permissions.json"],
"env": {
"FIRESTORE_PROJECT_ID": "your-project-id"
}
}
}
}
firestore-list-collections
{}
firestore-get-collection
{
"collectionId": "users"
}
firestore-get-document
{
"collectionId": "users",
"documentId": "user123"
}
firestore-create-document
{
"collectionId": "users",
"documentId": "user123",
"data": {
"name": "John Doe",
"email": "john@example.com"
}
}
firestore-update-document
{
"collectionId": "users",
"documentId": "user123",
"data": {
"name": "Jane Doe"
}
}
firestore-delete-document
{
"collectionId": "users",
"documentId": "user123"
}
{
"collectionId": "users",
"filters": [
{
"field": "age",
"operator": ">",
"value": 18
}
],
"orderBy": {
"field": "createdAt",
"direction": "desc"
},
"limit": 10
}
firestore-list-subcollections
{
"documentPath": "users/user123"
}
firestore-get-collection-by-path
{
"collectionPath": "users/user123/orders"
}
firestore-create-document-by-path
{
"collectionPath": "users/user123/orders",
"data": {
"item": "Widget",
"quantity": 2
}
}
firestore-batch-write
{
"operations": [
{
"type": "create",
"collectionPath": "products",
"documentId": "product1",
"data": { "name": "Widget" }
},
{
"type": "update",
"documentPath": "inventory/product1",
"data": { "count": 100 }
}
]
}
firestore-batch-read
{
"documentPaths": [
"users/user1",
"users/user2",
"products/product1"
]
}
firestore-transaction
{
"reads": ["products/product1"],
"operations": [
{
"type": "update",
"documentPath": "products/product1",
"data": { "stock": 99 }
}
],
"conditionScript": "return readResults['products/product1'].data.stock > 0;"
}
firestore-increment-field
{
"documentPath": "stats/daily",
"field": "visitCount",
"incrementBy": 1
}
firestore-array-union
{
"documentPath": "users/user123",
"field": "tags",
"elements": ["premium", "verified"]
}
firestore-server-timestamp
{
"documentPath": "users/user123",
"fields": ["lastLogin", "modifiedAt"]
}
The server also provides MCP resources for direct access to Firestore data:
firestore://collections - List all collectionsfirestore://collection/{collectionId} - Access collection datafirestore://collection/{collectionId}/document/{documentId} - Access document datafirestore://path/{path} - Access any path (collections or documents)// Create a new user
await client.callTool("firestore-create-document", {
collectionId: "users",
documentId: "user123",
data: {
name: "John Doe",
email: "john@example.com",
createdAt: new Date().toISOString()
}
});
// Update user data
await client.callTool("firestore-update-document", {
collectionId: "users",
documentId: "user123",
data: {
lastLogin: new Date().toISOString()
}
});
// Query active users
await client.callTool("firestore-query-collection", {
collectionId: "users",
filters: [
{ field: "status", operator: "==", value: "active" }
],
orderBy: { field: "createdAt", direction: "desc" },
limit: 10
});
// Create an order for a user
await client.callTool("firestore-create-document-by-path", {
collectionPath: "users/user123/orders",
data: {
items: ["widget1", "widget2"],
total: 99.99,
status: "pending"
}
});
// Get all orders for a user
await client.callTool("firestore-get-collection-by-path", {
collectionPath: "users/user123/orders"
});
// Atomic updates across multiple documents
await client.callTool("firestore-batch-write", {
operations: [
{
type: "update",
documentPath: "products/widget1",
data: { stock: 95 }
},
{
type: "create",
collectionPath: "orders",
data: {
product: "widget1",
quantity: 5,
userId: "user123"
}
},
{
type: "update",
documentPath: "users/user123",
data: { orderCount: 1 }
}
]
});
// Increment a counter
await client.callTool("firestore-increment-field", {
documentPath: "stats/global",
field: "totalOrders",
incrementBy: 1
});
// Add tags without duplicates
await client.callTool("firestore-array-union", {
documentPath: "products/widget1",
field: "tags",
elements: ["bestseller", "featured"]
});
// Set server timestamp
await client.callTool("firestore-server-timestamp", {
documentPath: "logs/access",
fields: ["timestamp", "lastModified"]
});
defaultAllow: false in production environmentspnpm test
pnpm test:coverage
pnpm build
# Build image
docker build -t mcp-firestore .
# Run container
docker run -e FIRESTORE_PROJECT_ID=your-project mcp-firestore
Authentication Errors
GOOGLE_APPLICATION_CREDENTIALS points to a valid service accountPermission Denied
Connection Issues
Contributions are welcome! Please read our Contributing Guide for details.
MIT License - see LICENSE for details.
Built on the Model Context Protocol by Anthropic.
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
mcp, api_key
Streaming
No
Data region
global
Protocol support
Requires: mcp, lang:typescript
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/snapshot"
curl -s "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/contract"
curl -s "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
Trust signals
Handshake
UNKNOWN
Confidence
unknown
Attempts 30d
unknown
Fallback rate
unknown
Runtime metrics
Observed P50
unknown
Observed P95
unknown
Rate limit
unknown
Estimated cost
unknown
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
Rank
83
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
80
A Model Context Protocol (MCP) server for GitLab
Traction
No public download signal
Freshness
Updated 2d ago
Rank
74
Expose OpenAPI definition endpoints as MCP tools using the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Rank
72
An actix_web backend for the official Rust SDK for the Model Context Protocol (https://github.com/modelcontextprotocol/rust-sdk)
Traction
No public download signal
Freshness
Updated 2d ago
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"mcp",
"api_key"
],
"requires": [
"mcp",
"lang:typescript"
],
"forbidden": [],
"supportsMcp": true,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": "https://github.com/devlimelabs/firestore-mcp#input",
"outputSchemaRef": "https://github.com/devlimelabs/firestore-mcp#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:46:48.811Z",
"sourceUpdatedAt": "2026-02-24T19:46:48.811Z",
"freshnessSeconds": 4421218
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/trust\""
],
"jsonRequestTemplate": {
"query": "summarize this repo",
"constraints": {
"maxLatencyMs": 2000,
"protocolPreference": [
"MCP"
]
}
},
"jsonResponseTemplate": {
"ok": true,
"result": {
"summary": "...",
"confidence": 0.9
},
"meta": {
"source": "GITHUB_MCP",
"generatedAt": "2026-04-16T23:53:47.603Z"
}
},
"retryPolicy": {
"maxAttempts": 3,
"backoffMs": [
500,
1500,
3500
],
"retryableConditions": [
"HTTP_429",
"HTTP_503",
"NETWORK_TIMEOUT"
]
}
}Trust JSON
{
"status": "unavailable",
"handshakeStatus": "UNKNOWN",
"verificationFreshnessHours": null,
"reputationScore": null,
"p95LatencyMs": null,
"successRate30d": null,
"fallbackRate": null,
"attempts30d": null,
"trustUpdatedAt": null,
"trustConfidence": "unknown",
"sourceUpdatedAt": null,
"freshnessSeconds": null
}Capability Matrix
{
"rows": [
{
"key": "MCP",
"type": "protocol",
"support": "supported",
"confidenceSource": "contract",
"notes": "Confirmed by capability contract"
},
{
"key": "mcp",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "firestore",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "firebase",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "modelcontextprotocol",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
},
{
"key": "cli",
"type": "capability",
"support": "supported",
"confidenceSource": "profile",
"notes": "Declared in agent profile metadata"
}
],
"flattenedTokens": "protocol:MCP|supported|contract capability:mcp|supported|profile capability:firestore|supported|profile capability:firebase|supported|profile capability:modelcontextprotocol|supported|profile capability:cli|supported|profile"
}Facts JSON
[
{
"factKey": "docs_crawl",
"category": "integration",
"label": "Crawlable docs",
"value": "6 indexed pages on the official domain",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "MCP",
"href": "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:48.811Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "mcp, api_key",
"href": "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:48.811Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/devlimelabs/firestore-mcp#input",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:46:48.811Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Devlimelabs",
"href": "https://github.com/devlimelabs/firestore-mcp",
"sourceUrl": "https://github.com/devlimelabs/firestore-mcp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/mcp-devlimelabs-firestore-mcp/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
]Change Events JSON
[
{
"eventType": "docs_update",
"title": "Docs refreshed: Sign in to GitHub ยท GitHub",
"description": "Fresh crawlable documentation was indexed for the official domain.",
"href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
"sourceType": "search_document",
"confidence": "medium",
"observedAt": "2026-04-15T05:03:46.393Z",
"isPublic": true
}
]Sponsored
Ads related to mcp-firestore and adjacent AI workflows.