SQLite MCP Server について
SQLite MCP Serverは、MCPクライアント経由でSQLiteデータベースにアクセスするPython製MCPサーバーです。読み取り専用SQLに加え、スキーマリソースと分析用プロンプトテンプレートを提供します。
主な機能
- 01テーブルスキーマをリソースとして公開
- 02読み取り専用SQLクエリの実行
- 03SELECT文のみ許可
- 04データ分析用プロンプトテンプレート
- 05STDIOによる通信
活用シーン
- 01SQLiteデータベースのデータ検索
- 02一部または全テーブルのスキーマ確認
- 03テーブル分析用プロンプトの生成
- 04SQLクエリの内容説明
MCP 対応
SQLiteのスキーマをリソース、読み取り専用クエリをツール、分析用テンプレートをプロンプトとして公開します。MCPクライアントとはSTDIOで通信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SQLite MCP Server
このリポジトリには、スタートアップの資金調達データを含む SQLite データベースに接続する、Python で記述された MCP(Model Context Protocol)サーバーが含まれています。このサーバーはテーブルスキーマをリソースとして公開し、読み取り専用の SQL クエリツールを提供するとともに、一般的なデータ分析タスク向けのプロンプトテンプレートを用意しています。MCP クライアントや言語モデル(LLM)との連携を想定しており、STDIO プロトコルで通信します。
目次
概要
この MCP サーバーは MCP Python SDK(CLI extras を含む)を使用して、次の機能を持つサーバーを実装します。
- SQLite データベースに接続します(例:スタートアップの資金調達情報を含むデータベース)。
- テーブルスキーマを MCP リソースとして公開します。
- 読み取り専用の SQL クエリを実行するツールを提供します。
- 言語モデルによるデータ分析の知見生成を支援するプロンプトテンプレートを用意します。
- **STDIO プロトコルで通信します。**標準入力から JSON-RPC メッセージを読み取り、標準出力に応答を書き込みます。
機能
-
リソース
schema://sqlite/{table}:指定したテーブルの SQL スキーマを返します。schema://sqlite/all:すべてのテーブルスキーマをマッピングした JSON を返します。
-
ツール
sql_query:読み取り専用の SQL クエリを実行します。許可されるのはSELECT文のみです。
-
プロンプト
analyze_table_prompt:指定したテーブルの分析プロンプトを生成します。describe_query_prompt:SQL クエリを説明するプロンプトを生成します。
-
STDIO プロトコル
stdinから読み取り、応答をstdoutに書き込むため、簡単に連携できます。
-
ログ記録
- Python の
loggingモジュールを使用して、動作の追跡やエラーのデバッグを行います。
- Python の
セットアップとインストール
サンプル SQLite データベースの作成
次のスクリプトを create_db.py として保存します。
<same as earlier>
次のコマンドで実行します。
python create_db.py
仮想環境の作成
python -m venv venv
環境を有効化します。
-
macOS/Linux:
source venv/bin/activate -
Windows:
venv\Scripts\activate
依存関係をインストールします。
pip install "mcp[cli]"
MCP サーバーの実行
- サーバーコードを
sqlite_mcp_server.pyとして保存します。 - サーバーを実行します。
python sqlite_mcp_server.py
任意(uv を使用する場合):
uv run sqlite_mcp_server.py
Claude Desktop へのインストール
次の内容を install_to_claude.py として保存して実行します。
python install_to_claude.py
次の内容で Claude Desktop の設定を更新します。
{
"mcpServers": {
"sqlite_mcp_server": {
"command": "python",
"args": ["-u", "/absolute/path/to/sqlite_mcp_server.py"]
}
}
}
その後、Claude Desktop を再起動します。
使い方
- リソースにアクセス:
schema://sqlite/all、schema://sqlite/startups - ツールを呼び出す:
SELECT * FROM startups WHERE funding_amount > 10000000; - プロンプトを使用する:SQL を生成したり、クエリを説明したりします。
テスト
テストスクリプトを実行します。
python sqlite_mcp_client_tests.py sqlite_mcp_server.py
このスクリプトでは、次の項目をテストします。
- リソースの一覧表示
- スキーマの取得
- 有効なクエリと無効なクエリ
- プロンプトテンプレート
ログ記録
ログ設定を変更します。
logging.basicConfig(
filename='mcp_server.log',
level=logging.DEBUG,
format="[%(asctime)s] %(levelname)s - %(message)s",
datefmt="%Y-%m-%d %H:%M:%S"
)
ログはデフォルトで stderr に出力されます。
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。LICENSE ファイルを参照してください。
補足事項
- インストールや設定のスクリプト内のパスは、必要に応じて調整してください。
- サーバーを実行する前に、SQLite データベースが作成されていることを確認してください。
- MCP Inspector または Claude Desktop と連携します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。