概要
SQLite MCP Server (mcp-server-sqlite) は、Model Context Protocol (MCP) を通じて、AIアシスタントがSQLiteデータベースと対話するための標準化されたインターフェースを提供するサーバである。
Anthropicが開発したMCP公式リファレンス実装の1つであり、MITライセンスで公開されている。
AIアシスタントが自然言語の指示を通じてSQLiteデータベースの操作を実行できるようにする。
Claude Desktop、Claude Code、VS Code、Cursor、Windsurf等の主要なMCPクライアントに対応する。
Windows、MacOS、Linuxの主要なOSに対応する。
このサーバを使用することにより、AIアシスタントがSQLクエリの実行、テーブルの作成・管理、スキーマの確認、ビジネスインサイトの記録等を自然言語による指示で自動化できるようになる。
主な機能は以下の通りである。
| ツール名 | 説明 |
|---|---|
| クエリ実行ツール | SELECTクエリによるデータ取得、INSERT、UPDATE、DELETEによるデータ操作 |
| テーブル管理ツール | テーブルの作成、テーブル一覧の表示、スキーマ情報の確認 |
| インサイト記録機能 | 分析中に発見したビジネスインサイトを動的メモリソースに蓄積 |
動作要件
Python版の要件
Python版のSQLite MCP Serverを使用するために必要な前提条件を以下に示す。
- Python 3.10以上
- MCPサーバの実行環境として必要
- uv (Astralが提供するPythonパッケージマネージャ)
uvxコマンドを使用してMCPサーバを実行するために必要
- SQLite
- PythonにSQLiteが組み込まれているため、別途インストールは不要
Node.js版の要件
Node.js版のSQLite MCP Serverを使用するために必要な前提条件を以下に示す。
- Node.js
- MCPサーバの実行環境として必要
npxコマンド- Node.jsに同梱されている。
npxコマンドを使用して、MCPサーバを実行するために必要
インストール
uvのインストール
MCPサーバの実行に必要なuvをインストールする。
Windowsの場合
PowerShellを使用する場合は、以下に示すコマンドを実行する。
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
WinGetを使用する場合は、以下に示すコマンドを実行する。
winget install --id=astral-sh.uv -e
MacOSの場合
Homebrewを使用する場合は、以下に示すコマンドを実行する。
brew install uv
curlを使用する場合は、以下に示すコマンドを実行する。
curl -LsSf https://astral.sh/uv/install.sh | sh
Linuxの場合
curlを使用する場合は、以下に示すコマンドを実行する。
curl -LsSf https://astral.sh/uv/install.sh | sh
wgetを使用する場合は、以下に示すコマンドを実行する。
wget -qO- https://astral.sh/uv/install.sh | sh
mcp-server-sqliteのインストール
pip コマンドを実行してインストールする場合は、以下に示すコマンドを実行する。
pip install mcp-server-sqlite
uvx を使用する場合はインストール不要で、そのままサーバを実行できる。
詳細は、後述の#SQLite MCP Serverの実行セクションを参照すること。
SQLite MCP Serverの実行
インストール後、以下に示すコマンドでSQLite MCP Serverを起動できる。
uvx コマンドを実行して起動する場合 (推奨) は、以下に示すコマンドを実行する。
uvx mcp-server-sqlite --db-path /path/to/database.db
npx コマンドを実行して起動する場合は、以下に示すコマンドを実行する。
npx -y @modelcontextprotocol/server-sqlite /path/to/database.db
下表に、コマンドラインオプションを示す。
| オプション | 必須 | 説明 |
|---|---|---|
--db-path |
必須 | SQLiteデータベースファイルへのパスを指定する。 絶対パスを使用することを推奨する。 |
MCPクライアントの設定
設定ファイルの場所
各MCPクライアントの設定ファイルの場所は以下の通りである。
Claude Desktopの設定ファイルを以下に示す。
- Linux
- ~/.config/Claude/claude_desktop_config.json
- MacOS
- ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows
- %APPDATA%\Claude\claude_desktop_config.json
Claude Codeの設定ファイルを以下に示す。
- ローカルスコープ
- .mcp.json (プロジェクトルート) :
claude mcp addコマンドで生成される
- .mcp.json (プロジェクトルート) :
- ユーザスコープ
- ~/.claude.json (ホームディレクトリ)
VS Codeの設定ファイルを以下に示す。
- .vscode/mcp.json (プロジェクトルート)
Cursorの設定ファイルを以下に示す。
- グローバル設定
- ~/.cursor/mcp.json
- プロジェクト設定
- .cursor/mcp.json
Claude Desktopの設定
claude_desktop_config.json ファイルに以下に示す内容を設定する。
uvxを使用する場合{ "mcpServers": { "sqlite": { "command": "uvx", "args": ["mcp-server-sqlite", "--db-path", "/path/to/database.db"] } } }
npxを使用する場合{ "mcpServers": { "sqlite": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-sqlite", "/path/to/database.db"] } } }
設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。
Claude Codeの設定
Claude Codeでは、claude mcp add コマンドを実行して、SQLite MCP Serverを追加できる。
以下に示すコマンドでMCPサーバをClaude Codeに登録する。
claude mcp add sqlite -- uvx mcp-server-sqlite --db-path /path/to/database.db
プロジェクトスコープで設定する場合は、--scope project オプションを追加する。
設定は、.mcp.json ファイルに保存される。
claude mcp add --scope project sqlite -- uvx mcp-server-sqlite --db-path /path/to/database.db
プロジェクトの .mcp.json ファイルに設定を記述する場合は、以下に示す内容を記述する。
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/path/to/database.db"]
}
}
}
VS Code / Cursorの設定
.vscode/mcp.json または .cursor/mcp.json ファイルに以下に示す内容を設定する。
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/path/to/database.db"]
}
}
}
Windowsでの設定の注意点
Windowsでは、パスの区切り文字として2重バックスラッシュを使用する必要がある。
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "C:\\Users\\name\\database.db"]
}
}
}
npx コマンドを使用する場合は、cmd /c ラッパーが必要である。
{
"mcpServers": {
"sqlite": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@modelcontextprotocol/server-sqlite", "C:\\Users\\name\\database.db"]
}
}
}
SQLite MCP Serverの機能
SQLite MCP Serverは、クエリ実行、テーブル管理、インサイト記録の機能を6つのツールと1つのリソースで提供する。
提供ツール一覧
下表に、SQLite MCP Serverが提供する全ツールを示す。
| ツール | 説明 |
|---|---|
| read_query | SELECTクエリを実行してデータを取得する。 |
| write_query | INSERT、UPDATE、DELETEクエリを実行する。 |
| create_table | 新しいテーブルを作成する。 |
| list_tables | データベース内の全テーブル名を一覧表示する。 |
| describe_table | 指定したテーブルのスキーマ情報 (カラム名、型、制約) を表示する。 |
| append_insight | ビジネスインサイトを分析メモに追加する。 |
提供リソース
下表に、SQLite MCP Serverが提供するリソースを示す。
| リソースURI | 説明 |
|---|---|
| memo://insights | 分析中に発見したビジネスインサイトを蓄積する動的メモリソース。 append_insight ツールで追記される。 |
提供プロンプト
下表に、SQLite MCP Serverが提供するプロンプトを示す。
| プロンプト名 | パラメータ | 説明 |
|---|---|---|
| mcp-demo | topic (分析対象を指定) |
SQLiteデータベース操作のデモンストレーション用プロンプト。 |
使用例
SQLite MCP Serverの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。
テーブルの確認
データベース内のテーブルを確認する場合の操作例を以下に示す。
- データベース内の全テーブルを確認する場合
# プロンプト例 : このデータベースに含まれるすべてのテーブルを表示してください。
- テーブルのスキーマを確認する場合
# プロンプト例 : usersテーブルのカラム構成と制約を確認してください。
データのクエリ
テーブルからデータを取得する場合の操作例を以下に示す。
- 条件を指定してデータを取得する場合
# プロンプト例 : productsテーブルから価格が1000円以上の商品の名前と価格を取得してください。
- 月別集計を行う場合
# プロンプト例 : salesデータから2024年の月別売上を集計して、ビジネスインサイトメモに記録してください。
テーブルの作成
新しいテーブルを作成する場合の操作例を以下に示す。
- スキーマを指定してテーブルを作成する場合
# プロンプト例 : 以下のスキーマでusersテーブルを作成してください: id INTEGER PRIMARY KEY, name TEXT NOT NULL, email TEXT UNIQUE
その他
セキュリティ
下表に、SQLite MCP Serverのセキュリティに関する推奨事項を示す。
| 項目 | 説明 |
|---|---|
| データベースファイルの権限設定 | データベースファイルには適切なファイルパーミッションを設定すること。 例: chmod 644 database.db
|
| 絶対パスの使用 | --db-path オプションには絶対パスを使用する。相対パスや ~ (チルダ) は正しく解釈されない場合がある。 |
| 書き込み権限の考慮 | write_query および create_table ツールはデータを変更するため、 不用意なデータ変更が発生しないよう注意すること。 |
トラブルシューティング
下表に、一般的なエラーと対処法を示す。
| 問題 | 原因 | 対処法 |
|---|---|---|
| uvx または npxコマンドが見つからない | uvまたはNode.jsがインストールされていない。 またはPATHが正しく設定されていない。 |
uvまたはNode.jsを再インストールして、PATH設定を確認する。 |
| データベースファイルのパスエラーが発生する | 相対パスや ~ が使用されている。 | --db-path オプションには絶対パスを指定する。
|
| database is locked エラーが発生する | 他のプロセスが同時にデータベースへアクセスしている。 | 他のプロセスのアクセスを確認・終了する。 または、WALモードの有効化を検討する。 |
| 権限エラーが発生する | データベースファイルへの読み取り・書き込み権限がない。 | chmod 644 database.db 等でファイルの権限を設定する。
|
| ツールが表示されない | 設定ファイルのJSON構文が誤っている。 またはMCPクライアントが再起動されていない。 |
設定ファイルのJSON構文を検証して、MCPクライアントを再起動する。 |
| Windowsでパスが認識されない | パスの区切り文字が正しくない。 | Windowsでは2重バックスラッシュ (C:\\Users\\name\\database.db) を使用する。
|