适用于Spanner的模型上下文协议服务器(MCP Server for Spanner)是一个支持Model Context Protocol(MCP)的服务器,它能够连接到Google Cloud Spanner数据库并执行SQL查询。该服务器主要用于实现AI助手等工具与Spanner数据库之间的交互,为数据操作提供了便利。
MCP Server for Spanner 可帮助你轻松连接 Google Cloud Spanner 数据库并执行各类 SQL 查询。以下将为你详细介绍其安装和使用方法。
# 克隆仓库
git clone
cd mcp-server-spanner
# 安装依赖项
npm install
# 使用 TypeScript 进行构建
npm run build
⚠️ 重要提示
目前,此工具仅支持连接到 Spanner 模拟器。
MCP 服务器的启动方式与一般情况相同。以下具体说明了在 Claude Desktop 中的设置方法以及使用开发用 MCP Inspector 的方法。
从 Claude Desktop 设置 中,编辑与连接 Spanner 模拟器相关的部分,并添加以下内容:
"spanner": {
"command": "bash",
"args": [
"YOUR_LOCAL_REPOSITORY_ROOT/bin/mcp-server-spanner",
"--project-id=YOUR_PROJECT_ID",
"--instance-id=YOUR_INSTANCE_ID",
"--database-id=YOUR_DATABASE_ID",
"--api-endpoint=localhost:9010"
],
}
然后重新启动 Claude Desktop。
MCP 服务器提供以下工具:
read_query
:执行 SELECT 查询list_tables
:获取数据库中的表列表describe_table
:显示指定表的结构execute_ddl
:执行 DDL 查询execute_write
:执行更新操作(INSERT, UPDATE, DELETE)属性 | 详情 |
---|---|
PROJECT_ID | Google Cloud 项目 ID,默认值为 dev-project |
INSTANCE_ID | Spanner 实例 ID,默认值为 dev-instance |
DATABASE_ID | Spanner 数据库 ID,默认值为 dev-database |
API_ENDPOINT | Spanner API 端点(用于模拟器),默认值为 spanner-emulator:9010 |
SPANNER_EMULATOR_HOST | Spanner 模拟器的主机,默认从 API_ENDPOINT 自动设置 |
本仓库支持在 devcontainer 环境中开发。请使用 VSCode 克隆此仓库后,在其中打开容器。devcontainer 容器会自动配置 Spanner 模拟器、实例和数据库。
在 shell 中运行以下命令:
# 以 MCP 协议格式启动服务器
npm run inspect
可以通过环境变量指定连接到 Spanner 模拟器的信息:
# 环境变量设置示例
export PROJECT_ID=your-project-id
export INSTANCE_ID=your-instance-id
export DATABASE_ID=your-database-id
export API_ENDPOINT=localhost:9010
npm run inspect
请参考项目仓库中的许可证文件。