Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Manage FireCMS Cloud from an AI agent: Firestore data, collections, schemas and users.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://api.firecms.co/mcpClaude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"firecms": {
"command": "npx",
"args": [
"-y",
"@firecms/mcp-server"
]
}
}
}ターミナルでこれを実行します
claude mcp add --transport http firecms https://api.firecms.co/mcpclaude mcp add firecms -- npx -y @firecms/mcp-serverプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"firecms": {
"url": "https://api.firecms.co/mcp"
}
}
}プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"firecms": {
"command": "npx",
"args": [
"-y",
"@firecms/mcp-server"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"firecms": {
"type": "http",
"url": "https://api.firecms.co/mcp"
}
}
}プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"firecms": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@firecms/mcp-server"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://api.firecms.co/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名はドメイン firecms.co で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
どちらでも使えます。パソコンにインストールしても、クラウド版につないでもかまいません。
GitHubリポジトリの最終更新は–、最新バージョン(3.5.1)がレジストリに届いたのは37 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, debuff
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Let coding agents play, test and tune your 2D web game: live state, explained errors, replays, fuzz.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
MCP server for FireCMS Cloud. Lets AI assistants connect a Firebase project to FireCMS, infer collections from the data already in Firestore, and then manage the CMS — browse and edit data, shape collection schemas and properties, configure the project, and manage users.
Admin-only: All write operations require the authenticated user to have the
adminrole on the target project. Read operations are available to any authenticated project member. Onboarding tools run before a project exists, so they are gated by Google Cloud access instead.
The same server runs in two places:
https://api.firecms.co/mcp, for everyone. Clients sign in with OAuth in the browser; nothing to install. It holds no Google Cloud credentials, so connecting a new Firebase project is handed off to the web app. The FireCMS backend mounts it through the @firecms/mcp-server/hosted entry point.npx @firecms/mcp-server). It signs in with your Google account (firecms_login), so it can also enable APIs, create Firestore databases and connect projects end to end.In Claude (claude.ai or Claude Desktop): Settings → Connectors → Add custom connector, and paste https://api.firecms.co/mcp.
In Claude Code:
claude mcp add --transport http firecms https://api.firecms.co/mcp
Any other client that takes remote servers by URL:
{
"mcpServers": { "firecms": { "url": "https://api.firecms.co/mcp" } } }
cd packages/mcp_server && npm install && npm run build
Add to claude_desktop_config.json:
{
"mcpServers": { "firecms": { "command": "node", "args": ["/path/to/packages/mcp_server/dist/cli.js"] } } }
Or use npx (no build required):
{
"mcpServers": { "firecms": { "command": "npx", "args": ["@firecms/mcp-server"] } } }
Use firecms_login to sign in when prompted. Tokens are shared with the FireCMS CLI (~/.firecms/tokens.json).
The typical first session. Everything here is driven by the Google account you logged in with.
1. list_firebase_projects → see which projects you can connect, and what they still need
Firebase Authentication must be enabled on the project before step 5 — it is the one prerequisite with no API, so turn it on in the Firebase console. Step 5 then adds FireCMS's access rule to the project's Firestore and Storage rules; without it the CMS reports "Missing Firestore Security Rules" and opens nothing, and no tool here would notice, because they all read through the backend's service account, which bypasses security rules.
Step 6 is where an existing project becomes a working CMS: FireCMS samples the documents at each root collection, infers the property types, and uses an LLM to pick display names, a singular name, an icon and a navigation group.
| Tool | Description |
|---|---|
get_root_collections | List the Firestore root collections of a project (read live) |
list_subcollections | List the subcollections of a document, to explore nested data |
list_databases | List Firestore databases (only needed beyond (default)) |
preview_inferred_schema | Infer a schema from sampled documents without saving |
infer_collections_from_data 🔒 | Infer and save collections for chosen paths |
setup_all_collections 🔒 | Infer and save every unmapped root collection |
preview_inferred_schema is the non-destructive option: it samples up to 200 documents, infers types, enums and validation locally, and hands back a draft you can edit and then persist with save_collection_schema. It also works for subcollections and any path the bulk tools skip.
infer_collections_from_data and setup_all_collections go through the backend, which adds the LLM pass and writes the result straight into the project. Both skip paths that already map to a collection, so they are safe to re-run as the database grows.
| Tool | Description |
|---|---|
firecms_login 💻 | Sign in via browser (Google OAuth) |
firecms_logout 💻 | Sign out |
firecms_get_current_user | Show current user |
| Tool | Description |
|---|---|
list_firebase_projects 💻 | Google Cloud projects you can access, with FireCMS readiness flags |
get_project_setup_status 💻 | Detailed readiness of one project |
list_firestore_locations 💻 | Locations available for a new Firestore database |
enable_project_apis 💻 | Enable the Google Cloud APIs FireCMS requires |
enable_firestore 💻 | Create the default Firestore database (location is permanent) |
connect_project_to_firecms | Connect an existing Firebase project, and apply the security rules it needs. Hosted: returns the link to connect it in the web app |
apply_firestore_security_rules 🔒 | Add FireCMS's access rule to Firestore and Storage (idempotent) |
create_firecms_webapp 🔒 | Retry web app creation if it failed during connect |
| Tool | Description |
|---|---|
list_projects | List FireCMS Cloud projects |
get_root_collections | List Firestore root collections |
list_subcollections | List the subcollections of a document |
| Tool | Description |
|---|---|
get_project_config | Get full project config (name, colors, plan, features) |
update_project_name | Rename a project |
update_project_colors | Update primary/secondary brand colors |
update_default_locale | Change the default locale |
toggle_text_search | Enable/disable local text search |
toggle_entity_history | Enable/disable entity history tracking |
| Tool | Description |
|---|---|
list_users | List project users and roles |
add_user | Invite a user |
update_user_roles | Change user roles |
remove_user | Remove a user |
| Tool | Description |
|---|---|
list_collection_schemas | List all persisted collection schemas |
get_collection_schema | Get full schema for a collection |
save_collection_schema | Create or replace a collection schema |
update_collection_schema | Partially update a collection schema |
delete_collection_schema | Delete a collection schema (data untouched) |
save_property | Add or update a single property in a collection |
delete_property | Remove a property from a collection schema |
| Tool | Description |
|---|---|
generate_collection | AI-generate a collection schema from a prompt |
modify_collection | AI-modify an existing schema from a prompt |
| Tool | Description |
|---|---|
list_documents | Query documents (filters, ordering, pagination) |
get_document | Get a document by path |
create_document | Create a new document |
update_document | Partial update of a document |
delete_document | Delete a document |
count_documents | Count documents in a collection |
| Tool | Description |
|---|---|
export_collection | Export collection data as JSON |
import_documents 🔒 | Bulk import documents (max 500/call) |
🔒 = Admin-only operation · 💻 = local server only
Every tool declares a title and a readOnlyHint, plus a destructiveHint when it writes: false for tools that only add (create a document, invite a user), true for anything that can overwrite or delete.
| URI | Description |
|---|---|
firecms://projects/{id}/collections | Firestore root-level collections |
firecms://projects/{id}/users | Project users and roles |
firecms://projects/{id}/schemas | All collection schemas (full config tree) |
firecms://projects/{id}/config | Project configuration snapshot |
1. list_firebase_projects → pick a project that is not yet connected
1. firecms_login → authenticate
1. preview_inferred_schema → draft a schema from real documents, nothing saved
1. generate_collection → describe what you want in natural language
Nothing reads credentials from process-wide state. Every API call goes through a FireCMSSession (session.ts) — the user's email, a Firebase ID token on firecms-backend, and a Google access token when there is one — passed to createFireCMSMcpServer():
cli.ts): localSession reads the CLI's tokens file and exchanges the Google ID token for a backend token (below). The login/logout tools are registered by the CLI only.hosted.ts): the backend resolves each request's OAuth bearer token to a user and passes a session that mints that user's backend ID token. There is no Google token, so the Google Cloud tools are replaced by a connect_project_to_firecms that links to the web app. Every request gets its own server and transport (stateless Streamable HTTP), so nothing of one person's session outlives their request. hosted.ts never imports the CLI's login flow; a test walks its import graph to keep it that way.The FireCMS Cloud API expects two different tokens, and the server sends both — the same pair the web app sends:
| Header | Token | Used by |
|---|---|---|
Authorization | Firebase ID token issued by firecms-backend | endpoints gated by firebaseAuthorization() — most of the API |
x-admin-authorization | Google OAuth access token (cloud-platform scope) | endpoints gated by googleCloudAuthentication() — GCP provisioning. Local sessions only |
firecms login only produces the Google credentials. The Google ID token is not a Firebase ID token — it is issued by accounts.google.com for the Google OAuth client, so verifyIdToken() rejects it. backend-auth.ts therefore exchanges it for a real firecms-backend token through Identity Toolkit signInWithIdp, which is the headless equivalent of the web app's signInWithPopup(auth, GoogleAuthProvider). The exchanged token is cached in memory until shortly before it expires.
FireCMS Cloud reads collection configurations from the backend Firestore, at projects/{projectId}/collections/{collectionId} — see useFirestoreCollectionsConfigController in FireCMSCloudApp.tsx. That is *not* the client project's __FIRECMS/config/collections, which is the self-hosted layout and is never read by Cloud.
The backend exposes no REST endpoints for that store — the web app writes to it directly with the Firebase SDK — so backend-firestore.ts talks to the Firestore REST API w
冒頭だけを表示しています。続きはリポジトリで読めます