Spanner数据库MCP服务器

MCP Server for Spanner是一个连接Google Cloud Spanner数据库并执行SQL查询的Model Context Protocol (MCP)服务器,主要用于AI助手等工具与Spanner数据库的交互。

  • by k65miyazakiy
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 k65miyazakiy/mcp-server-spanner

使用说明

用于Spanner的MCP服务器

MCP Server for Spanner 单击功能区上Google Cloud Spanner 连接到数据库SQL 执行查询Model Context Protocol (MCP) 服务器。主要AI 助手等Spanner 作为与数据库交互的工具。

机能

  • SELECT 执行查询
  • 执行“数据更新”查询
  • 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 作为服务器提供以下工具:

  1. read_query: SELECT 执行查询
  2. list_tables:获取数据库表列表
  3. describe_table:显示指定表的结构
  4. execute_ddl: DDL 执行查询
  5. execute_write:执行“更新系”查询

环境变数

|环境变量|说明|默认值| | --------------------- | ------------------------------------------- | --------------------------- | |项目ID |谷歌云项目ID |开发项目| |INSTANCE_ID| Spanner实例ID|开发实例| |DATABASE_ID| Spanner数据库ID|开发数据库| | API_ENDPOINT | Spanner API 端点(用于仿真器)spanner-emulator:9010 | | SPANNER_EMULATOR_HOST | Spanner 仿真器主机(从API_ENDPOINT自动设置)

开发人员信息

devcontainer 环境建设

本资料档案库devcontainer 中描述的场景,使用以下步骤创建明细表,以便在概念设计中分析体量的体积。 VSCode 中所述的工具,调整墙的布局和几何形状。

devcontainer 容器和Spanner 自动设置仿真器、实例和数据库。

使用检查器

从壳中执行以下命令:。

# 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

许可证

麻省理工学院