MCP SQLite Server について
MCP SQLite Serverは、SQLiteデータベースを調べたり変更したりするMCPクライアント向けのGo製サーバーです。JSON-RPCを通じて、テーブル管理と読み書きクエリのツールを提供します。
主な機能
- 01テーブルの作成
- 02テーブルスキーマの確認
- 03テーブル一覧の取得
- 04読み取りクエリの実行
- 05書き込みクエリの実行
活用シーン
- 01テーブルとスキーマの確認
- 02SELECTクエリによるレコードの読み取り
- 03INSERT、UPDATE、DELETEによるデータ変更
MCP 対応
JSON-RPCインターフェースを通じて、SQLiteのテーブル管理およびクエリツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP SQLite Server
MCP SQLite Server は、SQLite データベースをラップする Go ベースの MCP サーバー実装です。MCP クライアント(例:Claude Desktop)が、標準化された JSON‑RPC プロトコルを介して SQLite を操作できます。
機能
- MCP への準拠: MCP 仕様に従った、ツール実行用の JSON‑RPC ベースのインターフェースを提供します。
- SQLite 操作: テーブルの作成、テーブルスキーマの説明、テーブル一覧の取得、読み取りクエリと書き込みクエリの実行などの操作をサポートします。
要件
- Docker(推奨)
ローカル開発の場合:
- Go 1.24 以降
- SQLite(データベースファイルが存在しない場合は作成されます)
- GCC と開発ツール(CGO のコンパイル用)
Docker の使用(推奨)
docker pull cnosuke/mcp-sqlite:latest
# Run with default SQLite database
docker run -i --rm cnosuke/mcp-sqlite:latest
# Run with a mounted SQLite database
docker run -i --rm -v /path/to/your/db:/app/sqlite.db cnosuke/mcp-sqlite:latest
Claude Desktop での使用(Docker)
Docker を使用して Claude Desktop と連携するには、claude_desktop_config.json ファイルにエントリーを追加します。
{
"mcpServers": {
"sqlite": {
"command": "docker",
"args": ["run", "-i", "--rm", "cnosuke/mcp-sqlite:latest"]
}
}
}
ボリュームマウントを使用して永続ストレージを設定する場合:
{
"mcpServers": {
"sqlite": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "/path/to/your/db:/app/sqlite.db", "cnosuke/mcp-sqlite:latest"]
}
}
}
ビルドと実行(Go バイナリ)
または、Go バイナリを直接ビルドして実行できます。
# Build the server
make bin/mcp-sqlite
# Run the server
./bin/mcp-sqlite server --config=config.yml
Claude Desktop での使用(Go バイナリ)
Go バイナリを使用して Claude Desktop と連携するには、claude_desktop_config.json ファイルにエントリーを追加します。
{
"mcpServers": {
"sqlite": {
"command": "./bin/mcp-sqlite",
"args": ["server", "--config", "config.yml"],
"env": {
"LOG_PATH": "",
"SQLITE_PATH": "/path/to/your/sqlite.db"
}
}
}
}
この設定により、MCP SQLite Server が Claude Desktop に登録されます。LOG_PATH を空の文字列に設定すると、サーバーは致命的なエラーのみを出力するため、標準入出力経由で送信される MCP プロトコルメッセージに、重要でないログが干渉するのを防げます。
設定
サーバーは YAML ファイル(デフォルト:config.yml)で設定します。例:
log: 'mcp-sqlite.log'
debug: false
sqlite:
path: './sqlite.db'
設定オプションは、環境変数でも指定できます。
LOG_PATH:ログファイルへのパス(空の文字列を指定すると、ファイルへのログ出力が無効になります)DEBUG:デバッグログを有効にします(true/false)SQLITE_PATH:SQLite データベースファイルへのパス
ログ
ログは、log 設定オプションまたは LOG_PATH 環境変数で指定されたファイルに出力されます。この値が空の場合、致命的なエラーのみが標準エラー出力に出力され、それ以外のログはすべて抑制されます。
重要: MCP サーバーを stdio トランスポートで使用する場合、ログを標準出力に出力してはいけません。MCP プロトコルの通信に干渉するためです。Claude Desktop で使用する場合は、LOG_PATH を空の文字列に設定することを推奨します。
Docker に関する注意: コンテナのログは通常 stdout/stderr から収集されるため、Docker イメージではデフォルトでファイルへのログ出力が無効になっています。
MCP サーバーの使用方法
MCP クライアントは JSON‑RPC リクエストを送信し、さまざまなツールを実行してサーバーとやり取りします。次の MCP ツールがサポートされています。
- create_table:
CREATE TABLE文を実行します。 - describe_table: 特定のテーブルのスキーマ詳細を取得します。
- list_tables: SQLite データベース内のすべてのテーブルの一覧を返します。
- read_query:
SELECTクエリを実行し、結果を JSON 形式で返します。 - write_query: 書き込みクエリ(
INSERT、UPDATE、DELETEなど)を実行します。
コマンドラインパラメーター
サーバーの起動時に、さまざまな設定を指定できます。
./bin/mcp-sqlite server [options]
オプション:
--config、-c:設定ファイルへのパス(デフォルト:"config.yml")。
コントリビューション
コントリビューションを歓迎します!リポジトリをフォークし、改善やバグ修正のプルリクエストを送信してください。大規模な変更の場合は、まずイシューを作成してアイデアについて話し合ってください。
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。
作者: cnosuke(x.com/cnosuke)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。