From f5b0d3d80a61846efb2d2496aef3346349088a36 Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Fri, 3 Apr 2026 14:10:57 -0700 Subject: [PATCH 1/2] feat: add infrastructure for MCP Apps ### Description Adds support for returning structured content from tools, which is used by MCP Apps to pass complex data to the host. Also updates the resource index. ### Scenarios Tested - Verified build and file changes. --- src/mcp/resources/index.ts | 8 ++++++++ src/mcp/util.ts | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mcp/resources/index.ts b/src/mcp/resources/index.ts index 5a007ceafd2..a9fa9047eff 100644 --- a/src/mcp/resources/index.ts +++ b/src/mcp/resources/index.ts @@ -13,6 +13,10 @@ import { ServerResource, ServerResourceTemplate } from "../resource"; import { trackGA4 } from "../../track"; import { crashlytics_issues } from "./guides/crashlytics_issues"; import { crashlytics_reports } from "./guides/crashlytics_reports"; +import { login_ui } from "./login_ui"; +import { update_environment_ui } from "./update_environment_ui"; +import { deploy_ui } from "./deploy_ui"; +import { init_ui } from "./init_ui"; export const resources = [ app_id, @@ -25,6 +29,10 @@ export const resources = [ init_firestore_rules, init_auth, init_hosting, + login_ui, + update_environment_ui, + deploy_ui, + init_ui, ]; export const resourceTemplates = [docs]; diff --git a/src/mcp/util.ts b/src/mcp/util.ts index af63b1d337c..0b9a3102505 100644 --- a/src/mcp/util.ts +++ b/src/mcp/util.ts @@ -41,7 +41,8 @@ export function toContent( const suffix = options?.contentSuffix || ""; return { content: [{ type: "text", text: `${prefix}${text}${suffix}` }], - }; + structuredContent: data, + } as any; } /** From 498cea125c8941bbaaae239ea2e229ddb07f2551 Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Fri, 3 Apr 2026 15:06:39 -0700 Subject: [PATCH 2/2] fix: resolve build errors and address review comments on infra ### Description - Removes imports and registry entries for UI resources that are not yet available in this branch (login, update_environment, deploy, init). - Replaces as any in toContent with an intersection type for better type safety. ### Scenarios Tested - Verified build succeeds. --- src/mcp/resources/index.ts | 8 -------- src/mcp/util.ts | 2 +- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/mcp/resources/index.ts b/src/mcp/resources/index.ts index a9fa9047eff..5a007ceafd2 100644 --- a/src/mcp/resources/index.ts +++ b/src/mcp/resources/index.ts @@ -13,10 +13,6 @@ import { ServerResource, ServerResourceTemplate } from "../resource"; import { trackGA4 } from "../../track"; import { crashlytics_issues } from "./guides/crashlytics_issues"; import { crashlytics_reports } from "./guides/crashlytics_reports"; -import { login_ui } from "./login_ui"; -import { update_environment_ui } from "./update_environment_ui"; -import { deploy_ui } from "./deploy_ui"; -import { init_ui } from "./init_ui"; export const resources = [ app_id, @@ -29,10 +25,6 @@ export const resources = [ init_firestore_rules, init_auth, init_hosting, - login_ui, - update_environment_ui, - deploy_ui, - init_ui, ]; export const resourceTemplates = [docs]; diff --git a/src/mcp/util.ts b/src/mcp/util.ts index 0b9a3102505..4d7afc2f1d9 100644 --- a/src/mcp/util.ts +++ b/src/mcp/util.ts @@ -42,7 +42,7 @@ export function toContent( return { content: [{ type: "text", text: `${prefix}${text}${suffix}` }], structuredContent: data, - } as any; + } as CallToolResult & { structuredContent: any }; } /**