SQLite MCP Server について
SQLite MCP Serverは、MCPツールを介してAIモデルからSQLiteデータベースを操作できるサーバーです。データベース操作の実演にも使え、クエリ検証と任意の読み取り専用モードを備えています。
主な機能
- 01検証付きSQLクエリの実行
- 02テーブル一覧とスキーマ確認
- 03テーブルの行数カウント
- 04書き込み可能時のサンプルデータ挿入
- 05データベースへのフィードバック保存
- 06読み取り専用モードによる操作制限
活用シーン
- 01データベースのテーブルとスキーマの確認
- 02安全性を検証したSQLクエリの実行
- 03サンプルデータを使ったDB操作の実演
- 04書き込みを制限したデータベースアクセスの提供
MCP 対応
MCPクライアントに、SQLiteのクエリ、スキーマ確認、行数カウント、サンプルデータ、フィードバック操作のツールを公開します。読み取り専用モードではデータ変更を禁止します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SQLite MCP サーバー
SQLite データベース向けの Model Context Protocol(MCP)サーバー実装です。標準化されたツールを通じて、AI モデルが SQLite データベースを操作できます。
機能
- クエリの実行:組み込みの検証と安全性チェックを備えた SQL クエリの実行
- スキーマの検出:テーブルの一覧表示とテーブルスキーマの説明
- 行数のカウント:指定したテーブルの行数をカウント
- サンプルデータ:デモ用のサンプルデータを挿入(読み取り専用モードでない場合)
- 自動初期化:データベースが存在しない場合、製品、顧客、注文、フィードバックを含むサンプルデータベースを作成
- 読み取り専用モード:安全のため、読み取り専用操作に制限するオプション
- フィードバックの収集:ユーザーのフィードバックを収集し、データベースに保存するツール
要件
- Python 3.8+
requirements.txtに記載されている依存関係
インストール
- このリポジトリをクローンします
- 依存関係をインストールします:
pip install -r requirements.txt
- 環境変数を設定します(任意):
.env.exampleを.envにコピーします(または既存の.envファイルを使用します)- 必要に応じて設定を変更します
使用方法
サーバーの起動
python server.py
サーバーはポート 8080(または .env ファイルで指定されたポート)で起動します。
設定オプション
.env ファイルを編集してサーバーを設定します:
DB_PATH=sample.db # Path to your SQLite database file
MCP_PORT=8080 # Port to run the MCP server on
READ_ONLY=true # Set to false to allow write operations
Claude Desktop での使用
このサーバーを Claude Desktop の設定に追加します:
{
"mcpServers": {
"sqlite": {
"command": "<Path to UV>",
"args": [
"--directory",
"<Absolute Path to Project Workspace>",
"run",
"server.py"
]
}
}
}
利用可能なツール
MCP サーバーは次のツールを提供します:
- execute_query - データベースで SQL クエリを実行します
- list_tables - データベース内のすべてのテーブルを一覧表示します
- describe_table - 特定のテーブルのスキーマを取得します
- count_rows - 特定のテーブルの行数をカウントします
- insert_sample_data - サンプルデータを挿入します(読み取り専用モードでは無効)
- add_feedback - フィードバックテーブルにユーザーのフィードバックを追加します(読み取り専用モードでは無効)
サンプルデータベースのスキーマ
サンプルデータベースには、次のテーブルが含まれます:
製品テーブル
- id (INTEGER, PRIMARY KEY)
- name (TEXT, NOT NULL)
- description (TEXT)
- price (REAL, NOT NULL)
- category (TEXT)
- in_stock (BOOLEAN)
顧客テーブル
- id (INTEGER, PRIMARY KEY)
- name (TEXT, NOT NULL)
- email (TEXT, UNIQUE)
- signup_date (TEXT)
注文テーブル
- id (INTEGER, PRIMARY KEY)
- customer_id (INTEGER, FOREIGN KEY)
- order_date (TEXT)
- total_amount (REAL)
フィードバックテーブル
- id (INTEGER, PRIMARY KEY)
- user (TEXT, NOT NULL)
- email (TEXT, NOT NULL)
- feedback (TEXT, NOT NULL)
- submission_date (TEXT, DEFAULT CURRENT_TIMESTAMP)
セキュリティに関する考慮事項
- 危険な操作を防ぐため、SQL クエリを検証します
- 読み取り専用モードでは、すべてのデータ変更操作がブロックされます
- 本番環境では、読み取り専用モードでの実行を検討してください
ライセンス
MIT ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。