mcpField
S
SQLite MCP Server

SQLite MCP Server

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

SQLite MCP Server について

SQLite MCP Serverは、stdioまたはStreamable HTTPを通じてMCPクライアントにSQLite操作を提供します。テーブル管理、スキーマリソース、業務上の洞察の記録に加え、SQL入力を検証します。

主な機能

  1. 01読み取り・書き込みクエリの実行
  2. 02テーブルの作成、削除、確認
  3. 03リソースとしてデータベーススキーマを公開
  4. 04業務上の洞察を記録
  5. 05stdioとStreamable HTTPに対応
  6. 06SQLを検証し複数文の注入を防止

活用シーン

  1. 01MCP経由でSQLiteを照会、更新
  2. 02テーブル、列、インデックス、外部キーを確認
  3. 03リモートクライアントからDBサービスへ接続
  4. 04分析で得た業務上の洞察を蓄積

MCP 対応

MCPを通じてSQLクエリやテーブル管理のツールと、データベーススキーマおよび洞察メモのリソースを公開します。stdioとStreamable HTTPに対応します。

設定

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

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

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

パッケージ
ocibuild

ツール

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

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

詳細

SQLite MCP サーバー

CI License: ISC smithery badge

SQLite データベース操作を提供する Model Context Protocol(MCP)サーバーです。stdio(Claude Desktop、Cursor など向け)とStreamable HTTP(リモートクライアント向け)の両方のトランスポートに対応しています。

機能

  • インメモリまたはファイルベースの SQLite データベース
  • デュアルトランスポート:stdio と Streamable HTTP
  • 入力検証とインジェクション防止を備えた SQL 操作
  • テーブル管理(CREATE、DROP、LIST、DESCRIBE)
  • データベーススキーマを MCP リソースとして公開
  • ビジネスインサイトのメモを記録
  • Docker に対応

クイックスタート

Stdio(Claude Desktop、Cursor など)
npm install && npm run build
node build/index.js

Claude Desktop の設定(claude_desktop_config.json)に追加します:

{
  "mcpServers": {
    "sqlite": {
      "command": "node",
      "args": ["/path/to/sqlite-mcp-server/build/index.js"]
    }
  }
}

ファイルベースのデータベースを使用する場合:

{
  "mcpServers": {
    "sqlite": {
      "command": "node",
      "args": ["/path/to/sqlite-mcp-server/build/index.js", "/path/to/database.db"]
    }
  }
}
Streamable HTTP(リモートクライアント)
node build/index.js --http

サーバーは MCP Streamable HTTP 仕様に準拠した単一のエンドポイント http://localhost:3000/mcp を公開します。デフォルトでは 127.0.0.1 にバインドします。別のホストまたはコンテナから接続するには、HOST=0.0.0.0 を設定します。ただし、先にセキュリティのセクションをお読みください。HTTP トランスポートには認証がありません。

Docker
docker build -t sqlite-mcp-server .
docker run -d -p 3000:3000 -e HOST=0.0.0.0 --name sqlite-mcp sqlite-mcp-server

公開ポート経由でサーバーに到達できるようにするには、HOST=0.0.0.0 が必要です。ホストから localhost:3000 経由で接続する場合は、そのまま動作します。ほかのホスト名で接続するには、そのホストを MCP_ALLOWED_HOSTS に追加してください。

設定

オプション説明デフォルト
--httpstdio の代わりに Streamable HTTP トランスポートを使用stdio
最初のフラグ以外の引数SQLite データベースファイルのパス:memory:
SQLITE_DB_PATHデータベースのパス(環境変数による代替設定):memory:
PORTHTTP サーバーのポート(HTTP モードのみ)3000
HOSTHTTP モードでバインドするインターフェース。localhost 以外に公開するには 0.0.0.0 を使用127.0.0.1
MCP_ALLOWED_HOSTSDNS リバインディング対策のための、カンマ区切りの Host ヘッダー許可リストlocalhost:$PORT,127.0.0.1:$PORT
MCP_AUTH_TOKENすべての /mcp リクエストで必要なベアラートークン(HTTP モード)。未設定の場合、認証は無効(none)

例:

# In-memory database on stdio
node build/index.js

# File-based database on stdio
node build/index.js ./data.db

# HTTP mode with custom port
PORT=8080 node build/index.js --http ./data.db

# Using environment variable
SQLITE_DB_PATH=./data.db node build/index.js --http

使用可能なツール

ツール説明
read_querySELECT、WITH(CTE)、または EXPLAIN クエリを実行
write_queryINSERT、UPDATE、DELETE、または REPLACE クエリを実行
create_tableCREATE TABLE ステートメントで新しいテーブルを作成
drop_tableテーブルを削除(元に戻せません)
list_tablesユーザーが作成したすべてのテーブルを一覧表示
describe_tableテーブルスキーマ(列、インデックス、外部キー)を取得
append_insightメモリソースにビジネスインサイトを追加

リソース

URI説明
sqlite://{db}/schemaすべてのテーブルの完全なスキーマ(CREATE ステートメント)
memo://insights分析から蓄積されたビジネスインサイト

プロンプト

名前説明
mcp-demoガイド付きチュートリアル:テーブルを作成し、サンプルデータを挿入して、指定されたトピックのクエリを実行

リモート接続

Streamable HTTP

MCP 互換クライアントを http://your-host:3000/mcp に接続します。サーバーは次に対応しています:

  • POST /mcp — MCP メッセージを送信(初期化時にセッションを作成)
  • GET /mcp — セッション再開用の SSE ストリーム
  • DELETE /mcp — セッションを終了
  • GET /health — ヘルスチェックエンドポイント

セッションは Mcp-Session-Id ヘッダーで管理されます。

認証

MCP_AUTH_TOKEN を設定すると、すべての /mcp リクエストでベアラートークンが必須になります(/health は認証なしでアクセスできます)。

MCP_AUTH_TOKEN=$(openssl rand -hex 32) HOST=0.0.0.0 node build/index.js --http

クライアントは Authorization: Bearer <token> を送信します。MCP_AUTH_TOKEN が設定されていない場合、認証は無効です。localhost のみでバインドする場合は問題ありませんが、認証なしでサーバーを公開しないでください。

セキュリティ

  • クエリの検証:各ツールは、意図された種類の SQL ステートメントのみを受け付けます
  • 複数ステートメントのインジェクションをブロック:複数のステートメントを連結したものは拒否されます。チェックの前に文字列リテラルとコメントを除去します
  • テーブル名は ^[a-zA-Z_][a-zA-Z0-9_]*$ に照らして検証されます
  • 外部キーはデフォルトで有効です
  • HTTP トランスポートはデフォルトで 127.0.0.1 にバインドされ、DNS リバインディング保護が適用されます(MCP_ALLOWED_HOSTS)
  • MCP_AUTH_TOKEN による HTTP トランスポートの任意のベアラートークン認証(タイミングセーフな検証)

HTTP トランスポートを localhost の範囲を超えて公開する前に、MCP_AUTH_TOKEN を設定してください。 本番環境では、TLS を終端するリバースプロキシも前段に配置してください。セキュリティモデルの全容と脆弱性の報告方法については、SECURITY.md を参照してください。

開発

npm install
npm run build
npm test           # build + run the validator test suite
npm start          # stdio mode
npm run start:http # HTTP mode

ライセンス

ISC

コメント

MCP は初めてですか?

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

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