Skip to content

Commit 7d3da30

Browse files
committed
Presets: add Firebase MCP and Google Firebase/Firestore REST catalogs
1 parent c11bef2 commit 7d3da30

6 files changed

Lines changed: 58 additions & 0 deletions

File tree

.changeset/firebase-presets.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
"@executor-js/plugin-mcp": patch
3+
"@executor-js/plugin-openapi": patch
4+
---
5+
6+
**Firebase joins the well-known integration catalogs**
7+
8+
The MCP plugin's preset catalog now includes the Firebase CLI's MCP server
9+
(`npx -y firebase-tools@latest mcp`, local stdio) for project management, Auth
10+
users, Firestore, security rules, Cloud Messaging, and deploys. The OpenAPI
11+
plugin's Google catalog additionally includes Firebase Management
12+
(`firebase.googleapis.com/v1beta1`) and Cloud Firestore
13+
(`firestore.googleapis.com/v1`) as OAuth presets, covering projects, apps,
14+
hosting, extensions, documents, collections, queries, and indexes.

packages/plugins/mcp/src/sdk/presets.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,14 @@ export const mcpPresets: readonly McpPreset[] = [
151151
command: "npx",
152152
args: ["-y", "chrome-devtools-mcp@latest"],
153153
},
154+
{
155+
id: "firebase",
156+
name: "Firebase",
157+
summary: "Manage projects, Auth, Firestore, rules, and deploys via the Firebase CLI.",
158+
icon: "https://integrations.sh/logo/firebase.google.com",
159+
featured: true,
160+
transport: "stdio",
161+
command: "npx",
162+
args: ["-y", "firebase-tools@latest", "mcp"],
163+
},
154164
];

packages/plugins/openapi/src/providers/google/__snapshots__/presets.test.ts.snap

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,5 +90,13 @@ exports[`classifies every Google service for bundle OAuth UX 1`] = `
9090
"id": "google-cloud-resource-manager",
9191
"oauthAudience": "advanced-user",
9292
},
93+
{
94+
"id": "google-firebase",
95+
"oauthAudience": "advanced-user",
96+
},
97+
{
98+
"id": "google-firestore",
99+
"oauthAudience": "advanced-user",
100+
},
93101
]
94102
`;

packages/plugins/openapi/src/providers/google/presets.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,8 @@ const FROZEN_GOOGLE_SLUGS = [
199199
"google_apps_script",
200200
"google_bigquery",
201201
"google_cloud_resource_manager",
202+
"google_firebase",
203+
"google_firestore",
202204
] as const;
203205

204206
it("keeps Select all limited to Google services that can use normal user OAuth", () => {

packages/plugins/openapi/src/providers/google/presets.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,22 @@ export const googleOpenApiPresets: readonly GoogleOpenApiPreset[] = [
232232
icon: "https://fonts.gstatic.com/s/i/productlogos/google_cloud/v6/192px.svg",
233233
oauthAudience: "advanced-user",
234234
},
235+
{
236+
id: "google-firebase",
237+
name: "Firebase Management",
238+
summary: "Firebase projects, apps, hosting, extensions, and configuration.",
239+
url: gd("firebase", "v1beta1"),
240+
icon: "https://fonts.gstatic.com/s/i/productlogos/firebase/v7/192px.svg",
241+
oauthAudience: "advanced-user",
242+
},
243+
{
244+
id: "google-firestore",
245+
name: "Cloud Firestore",
246+
summary: "Documents, collections, queries, and indexes.",
247+
url: gd("firestore", "v1"),
248+
icon: "https://fonts.gstatic.com/s/i/productlogos/google_cloud/v6/192px.svg",
249+
oauthAudience: "advanced-user",
250+
},
235251
];
236252

237253
export const googleStandardUserOAuthPresets = googleOpenApiPresets.filter(
@@ -315,6 +331,10 @@ const GOOGLE_HEALTH_CHECKS: Readonly<Record<string, HealthCheckSpec>> = {
315331
operation: "cloudresourcemanager.projects.search",
316332
args: { pageSize: 1 },
317333
},
334+
"google-firebase": {
335+
operation: "firebase.projects.list",
336+
args: { pageSize: 1 },
337+
},
318338
};
319339

320340
/** Complete Google OAuth scope set requested by a catalog preset, including

packages/plugins/openapi/src/providers/google/service-policy.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ export const googleOAuthConsentScopes: Readonly<Record<string, readonly string[]
105105
],
106106
"google-bigquery": [auth("bigquery")],
107107
"google-cloud-resource-manager": [auth("cloud-platform")],
108+
"google-firebase": [auth("firebase")],
109+
"google-firestore": [auth("datastore")],
108110
};
109111

110112
export const googleOAuthConsentScopesForPreset = (presetId: string): readonly string[] =>
@@ -237,6 +239,8 @@ const GOOGLE_DISCOVERY_POLICIES: Readonly<Record<string, GoogleDiscoveryServiceP
237239
}),
238240
"bigquery/v2": policy("google-bigquery"),
239241
"cloudresourcemanager/v3": policy("google-cloud-resource-manager"),
242+
"firebase/v1beta1": policy("google-firebase"),
243+
"firestore/v1": policy("google-firestore"),
240244
};
241245

242246
export const googleDiscoveryPolicyFor = (

0 commit comments

Comments
 (0)