diff --git a/CHANGELOG.md b/CHANGELOG.md index bc28d5dc4e5..bdd4918509c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,4 @@ +- Fixed MCP server writing `firebase-debug.log` to the user's project directory; logs now go to `~/.firebase/firebase-debug.log` instead. (#9982) - Added `*_EMULATOR_VERSION` env variables to allow overriding specific versions of downloadable emulators - Updated the functions.config deprecation notice from March 2026 to March 2027 (#9941) - Detects when App Hosting fails to deploy, returning an error. (#8866) diff --git a/src/bin/mcp.ts b/src/bin/mcp.ts index ff48e8cea31..ca10a698986 100644 --- a/src/bin/mcp.ts +++ b/src/bin/mcp.ts @@ -1,6 +1,8 @@ #!/usr/bin/env node -import { resolve } from "path"; +import { resolve, join } from "path"; +import { mkdir } from "fs/promises"; +import { homedir } from "os"; import { parseArgs } from "util"; import { useFileLogger } from "../logger"; import { FirebaseMcpServer } from "../mcp/index"; @@ -84,7 +86,11 @@ export async function mcp(): Promise { if (earlyExit) return; setFirebaseMcp(true); - useFileLogger(); + // Write debug logs to ~/.firebase/ to avoid polluting the user's project directory. + // See: https://github.com/firebase/firebase-tools/issues/9982 + const mcpLogDir = join(homedir(), ".firebase"); + await mkdir(mcpLogDir, { recursive: true }); + useFileLogger(join(mcpLogDir, "firebase-debug.log")); const activeFeatures = (values.only || "") .split(",") .map((f) => f.trim())