mcpField
M
MCP SQLite Server

MCP SQLite Server

ローカル
github.com/cnosukeデータベース081 週間前に更新

MCP SQLite Server について

MCP SQLite Serverは、SQLiteデータベースを調べたり変更したりするMCPクライアント向けのGo製サーバーです。JSON-RPCを通じて、テーブル管理と読み書きクエリのツールを提供します。

主な機能

  1. 01テーブルの作成
  2. 02テーブルスキーマの確認
  3. 03テーブル一覧の取得
  4. 04読み取りクエリの実行
  5. 05書き込みクエリの実行

活用シーン

  1. 01テーブルとスキーマの確認
  2. 02SELECTクエリによるレコードの読み取り
  3. 03INSERT、UPDATE、DELETEによるデータ変更

MCP 対応

JSON-RPCインターフェースを通じて、SQLiteのテーブル管理およびクエリツールをMCPクライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sqlite-cnosuke": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"pull"
]
}
}
}
起動コマンドdocker run -i --rm pull

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocipull

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

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)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。