Tool: list_services
Lists SQL Connect Service instances in a given project and location.
When to use it:
- Use this tool to retrieve a list of SQL Connect Service instances within a specific project.
How to use it:
- Call
list_serviceswithprojectIdand an optionallocation. Iflocationis omitted or set to "-", it lists services across all locations. Uselist_locationsto see all supported locations. - Supports pagination with
pageSizeandpageToken. By not providingpageSize, it returns as many services as the server can pack into a single response. But you must still usepageTokento get the next page of results. - Supports filtering with
filterand ordering withorderBy. - The returned service name contains the project, location, and service name, which can be used to call other tools. Ex. with
projectId=my-project,location=us-central1, andserviceId=my-service, the returned service name would beprojects/my-project/locations/us-central1/services/my-service
JSON Example:
{
"projectId": "my-project",
"pageSize": 10
}
The following code sample shows how to use curl to call the list_services MCP tool.
| Curl Request |
|---|
curl --location 'https://firebasedataconnect.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/call", "params": { "name": "list_services", "arguments": { // provide these details according to the tool's MCP specification } }, "jsonrpc": "2.0", "id": 1 }' |
Input Schema
Request message for ListServices facade.
ListServicesRequest
| JSON representation |
|---|
{ "projectId": string, "pageSize": integer, "pageToken": string, "filter": string, "orderBy": string, // Union field |
| Fields | |
|---|---|
projectId |
Required. The project ID or number. |
pageSize |
Optional. Requested page size. Server may return fewer items than requested. |
pageToken |
Optional. A page token, received from a previous |
filter |
Optional. Filtering results. |
orderBy |
Optional. Hint for how to order the results. |
Union field
|
|
location |
Optional. The location of the services. If not specified, "-" will be used to list services across all locations. |
Output Schema
Message for response to listing Services.
ListServicesResponse
| JSON representation |
|---|
{
"services": [
{
object ( |
| Fields | |
|---|---|
services[] |
The list of Services. |
nextPageToken |
A token, which can be sent as |
unreachable[] |
Locations that could not be reached. |
Service
| JSON representation |
|---|
{ "name": string, "createTime": string, "updateTime": string, "labels": { string: string, ... }, "annotations": { string: string, ... }, "uid": string, "reconciling": boolean, "displayName": string, "source": { object ( |
| Fields | |
|---|---|
name |
Identifier. The relative resource name of the Firebase SQL Connect service, in the format: Note that the service ID is specific to Firebase SQL Connect and does not correspond to any of the instance IDs of the underlying data source connections. |
createTime |
Output only. [Output only] Create time stamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. [Output only] Update time stamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
labels |
Optional. Labels as key value pairs. An object containing a list of |
annotations |
Optional. Stores small amounts of arbitrary data. An object containing a list of |
uid |
Output only. System-assigned, unique identifier. |
reconciling |
Output only. A field that if true, indicates that the system is working update the service. |
displayName |
Optional. Mutable human-readable name. 63 character limit. |
source |
Optional. Input only. The source files for service, schemas, and connectors. |
schemas[] |
Output only. The list of schemas in this service. |
connectors[] |
Output only. The list of connectors in this service. |
etag |
Output only. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. AIP-154 |
Timestamp
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Represents seconds of UTC time since Unix epoch 1970-01-01T00:00:00Z. Must be between -62135596800 and 253402300799 inclusive (which corresponds to 0001-01-01T00:00:00Z to 9999-12-31T23:59:59Z). |
nanos |
Non-negative fractions of a second at nanosecond resolution. This field is the nanosecond portion of the duration, not an alternative to seconds. Negative second values with fractions must still have non-negative nanos values that count forward in time. Must be between 0 and 999,999,999 inclusive. |
LabelsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
AnnotationsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
Source
| JSON representation |
|---|
{
"files": [
{
object ( |
| Fields | |
|---|---|
files[] |
Required. The files that comprise the source set. |
File
| JSON representation |
|---|
{ "path": string, "content": string } |
| Fields | |
|---|---|
path |
Required. The file name including folder path, if applicable. The path should be relative to a local workspace (e.g. dataconnect/(schema|connector)/*.gql) and not an absolute path (e.g. /absolute/path/(schema|connector)/*.gql). |
content |
Required. The file's textual content. |
Schema
| JSON representation |
|---|
{ "name": string, "createTime": string, "updateTime": string, "labels": { string: string, ... }, "annotations": { string: string, ... }, "datasources": [ { object ( |
| Fields | |
|---|---|
name |
Identifier. The relative resource name of the schema, in the format: Right now, the only supported schema is "main". |
createTime |
Output only. [Output only] Create time stamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. [Output only] Update time stamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
labels |
Optional. Labels as key value pairs. An object containing a list of |
annotations |
Optional. Stores small amounts of arbitrary data. An object containing a list of |
datasources[] |
Required. The data sources linked in the schema. |
source |
Required. The source files that comprise the application schema. |
uid |
Output only. System-assigned, unique identifier. |
reconciling |
Output only. A field that if true, indicates that the system is working to compile and deploy the schema. |
displayName |
Optional. Mutable human-readable name. 63 character limit. |
etag |
Output only. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. AIP-154 |
LabelsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
AnnotationsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
Datasource
| JSON representation |
|---|
{ // Union field |
| Fields | |
|---|---|
Union field configuration. Settings and configurations of the underlying data source. configuration can be only one of the following: |
|
postgresql |
PostgreSQL configurations. |
httpGraphql |
HTTP GraphQL server webhook configurations. |
PostgreSql
| JSON representation |
|---|
{ "database": string, "ephemeral": boolean, "schema": string, // Union field |
| Fields | |
|---|---|
database |
Required. Name of the PostgreSQL database. |
ephemeral |
Output only. Ephemeral is true if this SQL Connect service is served from temporary in-memory emulation of Postgres. While Cloud SQL is being provisioned, the SQL Connect service provides the ephemeral service to help developers get started. Once the Cloud SQL is provisioned, SQL Connect service will transfer its data on a best-effort basis to the Cloud SQL instance. WARNING: Ephemeral data sources will expire after 24 hour. The data will be lost if they aren't transferred to the Cloud SQL instance. WARNING: When |
schema |
Optional. User-configured PostgreSQL schema. Defaults to "public" if not specified. |
Union field before_deploy. Configure the behavior before deploying this schema. Defaults to schema_validation=STRICT if not specified. These options allow you to control the safety checks and automatic updates performed on your PostgreSQL database schema. before_deploy can be only one of the following: |
|
schemaValidation |
Optional. Configure how much PostgreSQL schema validation to perform against the live database before deploying the FDC schema. |
schemaMigration |
Optional. Configure how to perform automatic PostgreSQL schema migration before deploying the FDC schema. This is an additive-only operation. |
Union field configuration. Settings and configurations of the underlying database. configuration can be only one of the following: |
|
unlinked |
No Postgres data source is linked. If set, don't allow |
cloudSql |
Cloud SQL configurations. |
CloudSqlInstance
| JSON representation |
|---|
{
"instance": string,
"edition": enum ( |
| Fields | |
|---|---|
instance |
Required. Name of the CloudSQL instance, in the format: |
edition |
Output only. [Output only] The Cloud SQL instance edition. |
HttpGraphql
| JSON representation |
|---|
{ "uri": string, "timeout": string } |
| Fields | |
|---|---|
uri |
Required. The endpoint of the HTTP GraphQL server. |
timeout |
Optional. Timeout duration for the HTTP request. A duration in seconds with up to nine fractional digits, ending with ' |
Duration
| JSON representation |
|---|
{ "seconds": string, "nanos": integer } |
| Fields | |
|---|---|
seconds |
Signed seconds of the span of time. Must be from -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years |
nanos |
Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 |
Connector
| JSON representation |
|---|
{ "name": string, "createTime": string, "updateTime": string, "labels": { string: string, ... }, "annotations": { string: string, ... }, "source": { object ( |
| Fields | |
|---|---|
name |
Identifier. The relative resource name of the connector, in the format: |
createTime |
Output only. [Output only] Create time stamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
updateTime |
Output only. [Output only] Update time stamp. Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: |
labels |
Optional. Labels as key value pairs. An object containing a list of |
annotations |
Optional. Stores small amounts of arbitrary data. An object containing a list of |
source |
Required. The source files that comprise the connector. |
uid |
Output only. System-assigned, unique identifier. |
reconciling |
Output only. A field that if true, indicates that the system is working to compile and deploy the connector. |
displayName |
Optional. Mutable human-readable name. 63 character limit. |
clientCache |
Optional. The client cache settings of the connector. |
etag |
Output only. This checksum is computed by the server based on the value of other fields, and may be sent on update and delete requests to ensure the client has an up-to-date value before proceeding. AIP-154 |
LabelsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
AnnotationsEntry
| JSON representation |
|---|
{ "key": string, "value": string } |
| Fields | |
|---|---|
key |
|
value |
|
ClientCache
| JSON representation |
|---|
{ "strictValidationEnabled": boolean, "entityIdIncluded": boolean } |
| Fields | |
|---|---|
strictValidationEnabled |
Optional. A field that, if true, enables stricter validation on the connector source code to make sure the operation response shapes are suitable for client-side caching. This can include additional errors and warnings. For example, using the same alias for different fields is disallowed, as it may cause conflicts or confusion with normalized caching. (This field is off by default for compatibility, but enabling it is highly recommended to catch common caching pitfalls.) |
entityIdIncluded |
Optional. A field that, if true, means that responses served by this connector will include entityIds in GraphQL response extensions. This helps the client SDK cache responses in an improved way, known as "normalized caching", if caching is enabled on the client. Each entityId is a stable key based on primary key values. Therefore, this field should only be set to true if the primary keys of accessed tables do not contain sensitive information. |
SqlSchemaValidation
Configure the level of validation to perform on the external SQL database schema against the Firebase Data Connect schema before deployment.
| Enums | |
|---|---|
SQL_SCHEMA_VALIDATION_UNSPECIFIED |
Unspecified SQL schema validation. Defaults to STRICT. |
NONE |
Skips SQL schema validation. Deployment succeeds even if the database is pending provisioning, unavailable, or incompatible. Under NONE, newly created services route requests to a temporary ephemeral database (in-memory emulation) so the API can be tested immediately. Ephemeral data expires after 24 hours unless successfully validated or migrated to a linked database. |
STRICT |
Connects to the SQL database and validates that the SQL DDL matches the FDC schema exactly. Any discrepancies (extra or missing tables/columns) result in a FAILED_PRECONDITION error with required SQL diffs. Recommended for greenfield projects to ensure full schema consistency. |
COMPATIBLE |
Connects to the SQL database and validates that it contains all the SQL resources required by the FDC schema. Succeeds even if the database contains additional tables or columns not used by FDC. Suitable when sharing a database with other tools or legacy applications. |
SqlSchemaMigration
Configure the behavior for automatic SQL schema migration.
| Enums | |
|---|---|
SQL_SCHEMA_MIGRATION_UNSPECIFIED |
Unspecified SQL schema migration. |
MIGRATE_COMPATIBLE |
Waits for the Cloud SQL instance to be provisioned and automatically creates necessary SQL resources (tables, columns, etc.) to match the desired FDC schema. This operation is strictly additive and executes as a Long-Running Operation during provisioning. Rejects migrations on a non-empty existing SQL schema. |
Edition
Cloud SQL instance edition.
| Enums | |
|---|---|
EDITION_UNSPECIFIED |
Unspecified edition. |
EDITION_ENTERPRISE |
Enterprise edition. |
EDITION_ENTERPRISE_PLUS |
Enterprise Plus edition. |
EDITION_DEVELOPER |
Developer edition (includes AI Developer edition). |
Tool Annotations
Tool annotations are sent to MCP clients to describe the basic risk of a given tool. Most clients treat these hints as untrusted, but they can be used to decide when a confirmation prompt might be sent to a user.
Along with the title string, the following boolean hints are defined as follows:
readOnlyHint: If true, the tool doesn't modify its environment. Default: false.destructiveHint: If true, then the tool can perform destructive actions. If false, then the tool can only perform additive actions. Default: true.idempotentHint: If true, then calling the tool repeatedly with the same arguments will have no additional effect on its environment. Default: false.openWorldHint: If true, then the tool can interact with an 'open world' of external entities. If false, then the tool can only interact with internal entities. For example, a web search tool would be open world, while a memory tool would not be open world.
Destructive Hint: ❌ | Idempotent Hint: ✅ | Read Only Hint: ✅ | Open World Hint: ❌