Skip to content

Commit a3303f1

Browse files
feat: Rename experimental:mcp to mcp (#9168)
This commit renames the `experimental:mcp` command to `mcp` and adds an alias for the old name to maintain backward compatibility. All references to the old command name in the codebase have been updated. Additionally, the `isEnabled('mcp')` check has been removed, as the command is now stable. A changelog entry has been added for this change. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: Joe Hanley <[email protected]>
1 parent f204a8f commit a3303f1

File tree

11 files changed

+14
-15
lines changed

11 files changed

+14
-15
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1+
- The `experimental:mcp` command has been renamed to `mcp`. The old name is now an alias.
12
- `firebase_update_environment` MCP tool supports accepting Gemini in Firebase Terms of Service.
23
- Fixed a bug when `firebase init dataconnect` failed to create a React app when launched from VS Code extension (#9171).

scripts/mcp-tests/gemini-smoke-test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ await client.connect(
1515
new StdioClientTransport({
1616
command: "../../lib/bin/firebase.js",
1717
args: [
18-
"experimental:mcp",
18+
"mcp",
1919
"--only",
2020
"firestore,dataconnect,messaging,remoteconfig,crashlytics,auth,storage,apphosting",
2121
],

src/bin/firebase.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
// Check for older versions of Node no longer supported by the CLI.
44
import * as semver from "semver";
5-
import { isEnabled } from "../experiments";
65
const pkg = require("../../package.json");
76
const nodeVersion = process.version;
87
if (!semver.satisfies(nodeVersion, pkg.engines.node)) {
@@ -13,7 +12,7 @@ if (!semver.satisfies(nodeVersion, pkg.engines.node)) {
1312
}
1413

1514
// we short-circuit the normal process for MCP
16-
if (isEnabled("mcp") && process.argv[2] === "experimental:mcp") {
15+
if (process.argv[2] === "mcp" || process.argv[2] === "experimental:mcp") {
1716
const { mcp } = require("./mcp");
1817
mcp();
1918
} else {

src/bin/mcp.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ This is a running process of the Firebase MCP server. This command should only b
1414
"mcpServers": {
1515
"firebase": {
1616
"command": "firebase",
17-
"args": ["experimental:mcp", "--dir", "/path/to/firebase/project"]
17+
"args": ["mcp", "--dir", "/path/to/firebase/project"]
1818
}
1919
}
2020
}

src/commands/mcp.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { Command } from "../command";
22
import { requireAuth } from "../requireAuth";
33

4-
export const command = new Command("experimental:mcp")
5-
.description(
6-
"Start an MCP server with access to the current working directory's project and resources.",
7-
)
4+
export const command = new Command("mcp")
5+
.alias("experimental:mcp")
6+
.description("Run the multi-modal conversational platform (MCP) server.")
87
.before(requireAuth)
98
.action(() => {
109
throw new Error("MCP logic is implemented elsewhere, this should never be reached.");

src/init/features/aitools/claude.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export const claude: AIToolModule = {
4141
}
4242
existingConfig.mcpServers.firebase = {
4343
command: "npx",
44-
args: ["-y", "firebase-tools", "experimental:mcp", "--dir", projectPath],
44+
args: ["-y", "firebase-tools", "mcp", "--dir", projectPath],
4545
};
4646
config.writeProjectFile(MCP_CONFIG_PATH, JSON.stringify(existingConfig, null, 2));
4747
mcpUpdated = true;

src/init/features/aitools/cursor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ export const cursor: AIToolModule = {
6161
}
6262
existingMcpConfig.mcpServers.firebase = {
6363
command: "npx",
64-
args: ["-y", "firebase-tools", "experimental:mcp", "--dir", projectPath],
64+
args: ["-y", "firebase-tools", "mcp", "--dir", projectPath],
6565
};
6666
config.writeProjectFile(CURSOR_MCP_PATH, JSON.stringify(existingMcpConfig, null, 2));
6767
mcpUpdated = true;

src/mcp/CONTRIBUTING.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ and manually list and execute tools.
6767
```
6868
Transport Type: STDIO
6969
Command: firebase
70-
Arguments: experimental:mcp
70+
Arguments: mcp
7171
7272
```
7373

@@ -170,7 +170,7 @@ const tools: Record<ServerFeature, ServerTool[]> = {
170170
Run the following command to add your new tool to the list in `src/mcp/README.md`
171171

172172
```
173-
node lib/bin/firebase.js experimental:mcp --generate-tool-list
173+
node lib/bin/firebase.js mcp --generate-tool-list
174174
```
175175

176176
### Logging and terminal formatting

src/mcp/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ If you are using an MCP client that is configured with a JSON, the following exa
2222
"mcpServers": {
2323
"firebase": {
2424
"command": "npx",
25-
"args": ["-y", "firebase-tools", "experimental:mcp", "--dir", "."]
25+
"args": ["-y", "firebase-tools", "mcp", "--dir", "."]
2626
}
2727
}
2828
}

src/mcp/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ import { resources } from "./resources";
4646

4747
const SERVER_VERSION = "0.3.0";
4848

49-
const cmd = new Command("experimental:mcp");
49+
const cmd = new Command("mcp");
5050

5151
const orderedLogLevels = [
5252
"debug",

0 commit comments

Comments
 (0)