From c546ac11f40087a0fb3a10a76513fc822afd0d60 Mon Sep 17 00:00:00 2001 From: Charlotte Liang Date: Wed, 19 Nov 2025 13:03:15 -0800 Subject: [PATCH 1/5] working progress of mcp server registry --- src/mcp/server.json | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 src/mcp/server.json diff --git a/src/mcp/server.json b/src/mcp/server.json new file mode 100644 index 00000000000..d627021c19f --- /dev/null +++ b/src/mcp/server.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", + "name": "io.github.firebase/mcp", + "description": "A MCP server that provides AI development tools the ability to work with Firebase in your app.", + "repository": { + "url": "https://github.com/firebase/firebase-tools", + "source": "github", + "subfolder": "src/mcp" + }, + "version": "1.0.0", + "packages": [ + { + "registryType": "npm", + "identifier": "@firebase/mcp", + "version": "1.0.0", + "transport": { + "type": "stdio" + } + } + ] +} From 1ca17ef0172533855af31fc7ab8eb00f076d8cdc Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Wed, 19 Nov 2025 13:47:10 -0800 Subject: [PATCH 2/5] Adding mcpName to package.json --- package.json | 1 + src/mcp/server.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c36fc1175ba..225bf4c4ce5 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "version": "14.25.1", "description": "Command-Line Interface for Firebase", "main": "./lib/index.js", + "mcpName": "io.github.firebase/firebase-mcp", "bin": { "firebase": "./lib/bin/firebase.js" }, diff --git a/src/mcp/server.json b/src/mcp/server.json index d627021c19f..40ab361d38e 100644 --- a/src/mcp/server.json +++ b/src/mcp/server.json @@ -1,6 +1,6 @@ { "$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", - "name": "io.github.firebase/mcp", + "name": "io.github.firebase/firebase-mcp", "description": "A MCP server that provides AI development tools the ability to work with Firebase in your app.", "repository": { "url": "https://github.com/firebase/firebase-tools", From e6527a0433d518475d3a3135b1d99e8dab1391a8 Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Wed, 19 Nov 2025 14:04:02 -0800 Subject: [PATCH 3/5] Use our actual package name --- src/mcp/server.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mcp/server.json b/src/mcp/server.json index 40ab361d38e..6182fee3b2c 100644 --- a/src/mcp/server.json +++ b/src/mcp/server.json @@ -7,12 +7,12 @@ "source": "github", "subfolder": "src/mcp" }, - "version": "1.0.0", + "version": "0.3.0", "packages": [ { "registryType": "npm", - "identifier": "@firebase/mcp", - "version": "1.0.0", + "identifier": "firebase-tools", + "version": "14.25.1", "transport": { "type": "stdio" } From 9c1f105de435013997bde6dedd9f500b78d629f1 Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Wed, 19 Nov 2025 14:26:00 -0800 Subject: [PATCH 4/5] Provide the right command --- src/mcp/server.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mcp/server.json b/src/mcp/server.json index 6182fee3b2c..394803e0bf9 100644 --- a/src/mcp/server.json +++ b/src/mcp/server.json @@ -12,6 +12,8 @@ { "registryType": "npm", "identifier": "firebase-tools", + "runtimeHint": "npx", + "runtimeArguments": [{"type": "positional", "value": "mcp"}], "version": "14.25.1", "transport": { "type": "stdio" From 70627494a4bfce6aac0d3af37a9c40848faa1fdb Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Wed, 19 Nov 2025 16:00:49 -0800 Subject: [PATCH 5/5] Updating publish script to bump version in server.json too --- scripts/publish.sh | 5 +++++ scripts/update-server-json-version.sh | 24 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 scripts/update-server-json-version.sh diff --git a/scripts/publish.sh b/scripts/publish.sh index 54575e83428..4a38c2b82ee 100755 --- a/scripts/publish.sh +++ b/scripts/publish.sh @@ -120,6 +120,11 @@ if [[ $VERSION != "preview" ]]; then npm --prefix ./scripts/publish/firebase-docker-image install echo "Updated package-lock.json for Docker image." + + echo "Updating server.json for MCP registry..." + . ./scripts/update-server.sh $NEW_VERSION + echo "Updated server.json for MCP registry." + echo "Cleaning up release notes..." rm CHANGELOG.md touch CHANGELOG.md diff --git a/scripts/update-server-json-version.sh b/scripts/update-server-json-version.sh new file mode 100644 index 00000000000..ae6ba6df2f2 --- /dev/null +++ b/scripts/update-server-json-version.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -e + +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi + +NEW_VERSION=$1 +SERVER_JSON_PATH="src/mcp/server.json" + +awk -v new_version="$NEW_VERSION" ' + BEGIN { in_packages = 0 } + /packages/ { in_packages = 1 } + in_packages && /"version":/ { + sub(/"version": ".*"/, "\"version\": \"" new_version "\"") + } + { print } +' "$SERVER_JSON_PATH" > tmp.json && mv tmp.json "$SERVER_JSON_PATH" + + +echo "Successfully updated firebase-tools version to $NEW_VERSION in $SERVER_JSON_PATH" +