A Model Context Protocol (MCP) server acts as a proxy between an external service that provides context, data, or capabilities to a Large Language Model (LLM) or AI application. MCP servers connect AI applications to external systems such as databases and web services, translating their responses into a format that the AI application can understand.
Server Setup
You must enable MCP servers and set up authentication before use. For more information about using Google and Google Cloud remote MCP servers, see Google Cloud MCP servers overview .
Spanner MCP Server provides tools to interact with Spanner
Server Endpoints
An MCP service endpoint is the network address and communication interface (usually a URL) of the MCP server that an AI application (the Host for the MCP client) uses to establish a secure, standardized connection. It is the point of contact for the LLM to request context, call a tool, or access a resource. Google MCP endpoints can be global or regional.
The spanner.googleapis.com MCP server has the following MCP endpoint:
- https://spanner.googleapis.com/mcp
MCP Tools
An MCP tool is a function or executable capability that an MCP server exposes to a LLM or AI application to perform an action in the real world.
The spanner.googleapis.com MCP server has the following tools:
List Spanner instances in a given project.
- Response may include next_page_token to fetch additional instances using list_instances tool with page_token set.
List instance configs in a given project.
- Response may include next_page_token to fetch additional configs using list_configs tool with page_token set.
Update a Spanner instance.
- While updating an instance always include instance name and config.
Create a session in a given database for query executions using execute_sql tool.
- Session can be reused to execute multiple concurrent operations.
Execute SQL statement using a given session.
- execute_sql tool can be used to execute DQL as well as DML statements.
- Prefer using parameterized queries over literal values.
- Use commit tool to commit result of a DML statement.
- DDL statements are only supported using update_database_schema tool.
Execute SQL query statement using a given session in a read-only transaction.
- execute_sql_readonly tool can be used to execute DQL statements.
- Prefer using parameterized queries over literal values.
- DML statements and multi read transactions are only supported via execute_sql tool.
- The transaction bit should not be set in the request and will default to single-use read-only transaction.
Commit a transaction in a given session.
- If commit is finalizing the result of a DML statement then commit request should include latest precommit_token returned by execute_sql tool.
- If response to commit includes another precommit_token then issue another commit call to finalize the transaction with the latest precommit_token.
Get status of a long-running operation.
- Long running operation may take several minutes to complete. get_operation tool can be used to poll the status of a long running operation.
Get MCP tool specifications
To get the MCP tool specifications for all tools in an MCP server, use the tools/list
method. The following example demonstrates how to use curl
to list all tools and their specifications currently available within the MCP server.
| Curl Request |
|---|
curl --location 'https://spanner.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/list", "jsonrpc": "2.0", "id": 1 }' |

