关于 MCP Server for Spanner
MCP Server for Spanner 连接 Spanner 模拟器,让 AI 助手检查架构并执行 SQL,适用于使用 Spanner 的开发者;目前仅支持连接模拟器。
主要功能
- 01执行 SELECT 查询
- 02执行 INSERT、UPDATE 和 DELETE
- 03执行 DDL 语句
- 04列出数据库表
- 05查看表结构
适用场景
- 01查询 Spanner 模拟器中的数据
- 02开发时检查数据表
- 03通过 MCP 测试数据库变更
MCP 相关
该服务向 MCP 客户端提供五种工具:read_query、list_tables、describe_table、execute_ddl 和 execute_write。目前仅支持连接 Spanner 模拟器。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Server for Spanner
MCP Server for Spanner 是一个 Model Context Protocol (MCP) 服务,用于连接 Google Cloud Spanner 数据库并执行 SQL 查询。它主要作为 AI 助手等与 Spanner 数据库交互的工具。
功能
- 执行 SELECT 查询
- 执行数据更新(INSERT、UPDATE、DELETE)查询
- 执行 DDL(CREATE TABLE、ALTER TABLE 等)查询
- 获取表列表
- 显示表结构详情
安装
前提条件
- Node.js 22 或更高版本
- 可使用 Spanner 模拟器或 devcontainer 的环境
设置
# リポジトリのクローン
git clone <repository-url>
cd mcp-server-spanner
# 依存関係のインストール
npm install
# TypeScriptのビルド
npm run build
注:目前,此工具仅支持连接 Spanner 模拟器。
使用方法
按照 MCP 服务的一般启动方法操作。 这里列出具体的使用示例,包括在 Claude Desktop 中使用,以及使用开发用 MCP Inspector 的方法。
在 Claude Desktop 中配置(Mac/Linux)
请参照 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 构建环境
本仓库支持使用 devcontainer 进行开发。 在 VSCode 中克隆本仓库后,请在容器中打开。
devcontainer 会自动设置容器、Spanner 模拟器、实例和数据库。
使用 Inspector
在 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
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。