MCP Tools Reference: firebasedataconnect.googleapis.com

Tool: get_service

Gets details of a single SQL Connect Service instance.

Retrieves the configuration and status of the managed backend component.

When to use it:

  • Use this tool to retrieve the current state, configuration, and status of a specific Service instance.

How to use it:

  • Call get_service with projectId, location, and serviceId.

JSON Example:

{
          "projectId": "my-project",
          "location": "us-central1",
          "serviceId": "my-service"
        }
        

The following code sample shows how to use curl to call the get_service 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": "get_service",
    "arguments": {
      // provide these details according to the tool's MCP specification
    }
  },
  "jsonrpc": "2.0",
  "id": 1
}'

Input Schema

Request message for GetService facade.

GetServiceRequest

JSON representation
{
  "projectId": string,
  "location": string,
  "serviceId": string
}
Fields
projectId

string

Required. The project ID or number.

location

string

Required. The location of the service.

serviceId

string

Required. Identifier. The service ID.

Output Schema

A Firebase SQL Connect service.

Service

JSON representation
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "annotations": {
    string: string,
    ...
  },
  "uid": string,
  "reconciling": boolean,
  "displayName": string,
  "source": {
    object (Source)
  },
  "schemas": [
    {
      object (Schema)
    }
  ],
  "connectors": [
    {
      object (Connector)
    }
  ],
  "etag": string
}
Fields
name

string

Identifier. The relative resource name of the Firebase SQL Connect service, in the format:

projects/{project}/locations/{location}/services/{service}

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

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

labels

map (key: string, value: string)

Optional. Labels as key value pairs.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

annotations

map (key: string, value: string)

Optional. Stores small amounts of arbitrary data.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

uid

string

Output only. System-assigned, unique identifier.

reconciling

boolean

Output only. A field that if true, indicates that the system is working update the service.

displayName

string

Optional. Mutable human-readable name. 63 character limit.

source

object (Source)

Optional. Input only. The source files for service, schemas, and connectors.

schemas[]

object (Schema)

Output only. The list of schemas in this service.

connectors[]

object (Connector)

Output only. The list of connectors in this service.

etag

string

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

string (int64 format)

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

integer

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

string

value

string

AnnotationsEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

Source

JSON representation
{
  "files": [
    {
      object (File)
    }
  ]
}
Fields
files[]

object (File)

Required. The files that comprise the source set.

File

JSON representation
{
  "path": string,
  "content": string
}
Fields
path

string

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

string

Required. The file's textual content.

Schema

JSON representation
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "annotations": {
    string: string,
    ...
  },
  "datasources": [
    {
      object (Datasource)
    }
  ],
  "source": {
    object (Source)
  },
  "uid": string,
  "reconciling": boolean,
  "displayName": string,
  "etag": string
}
Fields
name

string

Identifier. The relative resource name of the schema, in the format:

projects/{project}/locations/{location}/services/{service}/schemas/{schema}

Right now, the only supported schema is "main".

createTime

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

labels

map (key: string, value: string)

Optional. Labels as key value pairs.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

annotations

map (key: string, value: string)

Optional. Stores small amounts of arbitrary data.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

datasources[]

object (Datasource)

Required. The data sources linked in the schema.

source

object (Source)

Required. The source files that comprise the application schema.

uid

string

Output only. System-assigned, unique identifier.

reconciling

boolean

Output only. A field that if true, indicates that the system is working to compile and deploy the schema.

displayName

string

Optional. Mutable human-readable name. 63 character limit.

etag

string

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

string

value

string

AnnotationsEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

Datasource

JSON representation
{

  // Union field configuration can be only one of the following:
  "postgresql": {
    object (PostgreSql)
  },
  "httpGraphql": {
    object (HttpGraphql)
  }
  // End of list of possible types for union field configuration.
}
Fields
Union field configuration. Settings and configurations of the underlying data source. configuration can be only one of the following:
postgresql

object (PostgreSql)

PostgreSQL configurations.

httpGraphql

object (HttpGraphql)

HTTP GraphQL server webhook configurations.

PostgreSql

JSON representation
{
  "database": string,
  "ephemeral": boolean,
  "schema": string,

  // Union field before_deploy can be only one of the following:
  "schemaValidation": enum (SqlSchemaValidation),
  "schemaMigration": enum (SqlSchemaMigration)
  // End of list of possible types for union field before_deploy.

  // Union field configuration can be only one of the following:
  "unlinked": boolean,
  "cloudSql": {
    object (CloudSqlInstance)
  }
  // End of list of possible types for union field configuration.
}
Fields
database

string

Required. Name of the PostgreSQL database.

ephemeral

boolean

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 ephemeral=true, mutations to the database are not guaranteed to be durably persisted, even if an OK status code is returned. All or parts of the data may be lost or reverted to earlier versions.

schema

string

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

enum (SqlSchemaValidation)

Optional. Configure how much PostgreSQL schema validation to perform against the live database before deploying the FDC schema.

schemaMigration

enum (SqlSchemaMigration)

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
(deprecated)

boolean

No Postgres data source is linked. If set, don't allow database and schema_validation to be configured.

cloudSql

object (CloudSqlInstance)

Cloud SQL configurations.

CloudSqlInstance

JSON representation
{
  "instance": string,
  "edition": enum (Edition)
}
Fields
instance

string

Required. Name of the CloudSQL instance, in the format:

projects/{project}/locations/{location}/instances/{instance}
edition

enum (Edition)

Output only. [Output only] The Cloud SQL instance edition.

HttpGraphql

JSON representation
{
  "uri": string,
  "timeout": string
}
Fields
uri

string

Required. The endpoint of the HTTP GraphQL server.

timeout

string (Duration format)

Optional. Timeout duration for the HTTP request.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

Duration

JSON representation
{
  "seconds": string,
  "nanos": integer
}
Fields
seconds

string (int64 format)

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

integer

Signed fractions of a second at nanosecond resolution of the span of time. Durations less than one second are represented with a 0 seconds field and a positive or negative nanos field. For durations of one second or more, a non-zero value for the nanos field must be of the same sign as the seconds field. Must be from -999,999,999 to +999,999,999 inclusive.

Connector

JSON representation
{
  "name": string,
  "createTime": string,
  "updateTime": string,
  "labels": {
    string: string,
    ...
  },
  "annotations": {
    string: string,
    ...
  },
  "source": {
    object (Source)
  },
  "uid": string,
  "reconciling": boolean,
  "displayName": string,
  "clientCache": {
    object (ClientCache)
  },
  "etag": string
}
Fields
name

string

Identifier. The relative resource name of the connector, in the format:

projects/{project}/locations/{location}/services/{service}/connectors/{connector}
createTime

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

updateTime

string (Timestamp format)

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: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

labels

map (key: string, value: string)

Optional. Labels as key value pairs.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

annotations

map (key: string, value: string)

Optional. Stores small amounts of arbitrary data.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

source

object (Source)

Required. The source files that comprise the connector.

uid

string

Output only. System-assigned, unique identifier.

reconciling

boolean

Output only. A field that if true, indicates that the system is working to compile and deploy the connector.

displayName

string

Optional. Mutable human-readable name. 63 character limit.

clientCache

object (ClientCache)

Optional. The client cache settings of the connector.

etag

string

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

string

value

string

AnnotationsEntry

JSON representation
{
  "key": string,
  "value": string
}
Fields
key

string

value

string

ClientCache

JSON representation
{
  "strictValidationEnabled": boolean,
  "entityIdIncluded": boolean
}
Fields
strictValidationEnabled

boolean

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

boolean

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: ❌