MCP Server for Spanner について
MCP Server for Spanner は Spanner エミュレーターに接続し、AI アシスタントによるスキーマ確認や SQL 実行を可能にします。Spanner を扱う開発者向けで、接続先は現時点でエミュレーターのみです。
主な機能
- 01SELECT クエリの実行
- 02INSERT、UPDATE、DELETE の実行
- 03DDL ステートメントの実行
- 04データベースのテーブル一覧
- 05テーブル構造の確認
活用シーン
- 01Spanner エミュレーター内のデータを検索
- 02開発中にテーブルを確認
- 03MCP 経由でデータベース変更をテスト
MCP 対応
MCP クライアントに read_query、list_tables、describe_table、execute_ddl、execute_write の 5 つのツールを公開します。現在は Spanner エミュレーターへの接続のみをサポートします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
プロジェクトの README よりMCP Server for Spanner
MCP Server for Spanner は、Google Cloud Spanner データベースに接続し、SQL クエリを実行するための Model Context Protocol (MCP) サーバーです。主に 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 Project ID | dev-project |
| INSTANCE_ID | Spanner Instance ID | dev-instance |
| DATABASE_ID | Spanner Database ID | dev-database |
| 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
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。