sqlite-readonly-mcp
sqlite-readonly-mcp
リモートLinux上で動作する 読み取り専用SQLite Model Context Protocol サーバーです。Streamable HTTP(/mcp)を使用し、Bearer Token で認証を行い、クエリ結果を JSONテキスト で返します。Nginx(HTTPS) の背後に配置し、アップストリームはローカルホストのみをリッスンするように設計されています。
機能
ツール
sqlite_query:単一のSELECT/WITH/EXPLAINを実行し、{ rows, rowCount }のJSONを返します。ツール
list_tables:システムテーブル以外のテーブル名を表示します。SQLite:
better-sqlite3の readonly + fileMustExist を使用。アプリケーション層で単一ステートメントとクエリプレフィックスを制限します。GET /health:ループバックアクセス専用のヘルスチェック用エンドポイント(src/server.tsを参照)。トランスポート:Streamable HTTP(
/mcp)およびレガシーな SSE(GET /sse、POST /messages)に対応しており、必要に応じてCursorがフォールバック可能です。
Related MCP server: PostgreSQL MCP Server
環境変数
変数 | 必須 | 説明 |
| はい | データベースファイルの絶対パス |
| はい | 静的Bearerトークン( |
| いいえ | デフォルト |
| いいえ | デフォルト |
| いいえ | カンマ区切りの許可された |
| いいえ | 1回のクエリあたりの最大行数。デフォルト |
ローカルでのビルドと実行
npm install
npm run build
export SQLITE_PATH=/path/to/db.sqlite
export BEARER_TOKEN='your-secret-token'
export ALLOWED_HOSTS='127.0.0.1,localhost'
node dist/server.js開発・デバッグ:npm run dev
Nginx と systemd
deploy/nginx.example.conf、deploy/sqlite-readonly-mcp.service、deploy/sqlite-readonly-mcp.env.example を参照してください。
ポイント:Authorization、Accept、Content-Type、mcp-session-id をアップストリームに渡すこと。SSE/チャンクレスポンスに対しては proxy_buffering をオフにしてください。例には Streamable HTTPの /mcp と併せて、SSEの /sse、/messages(レガシーフォールバック)のリバースプロキシ設定が含まれています。
rootユーザーでの実行(推奨例)
SQLiteファイルおよび親ディレクトリ の読み取り権限設定を簡略化するため、例では root でサービスを起動します(systemdユニット内で User= / Group= を設定しない場合、デフォルトでrootになります)。
コードとビルド成果物を
/opt/sqlite-readonly-mcpなどに配置し、npm ci --omit=devおよびnpm run buildを実行します。環境ファイルをコピーして変数を入力します:
sudo cp deploy/sqlite-readonly-mcp.env.example /etc/sqlite-readonly-mcp.env
sudo chmod 600 /etc/sqlite-readonly-mcp.envユニットをインストールして有効化します(必要に応じて
WorkingDirectoryやExecStart内のnodeの絶対パスを修正してください):
sudo cp deploy/sqlite-readonly-mcp.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now sqlite-readonly-mcp
sudo systemctl status sqlite-readonly-mcp以前に User=mcp を手動で追加していた場合は、その行を削除してから daemon-reload と restart を行ってください。
セキュリティ上の注意:rootプロセスが侵害された場合の影響が大きいため、必ず HTTPS、Bearer、ローカルホストリッスン + Nginx、ファイアウォール を組み合わせて使用してください。最小権限が必要な場合は、専用ユーザーに戻し、データファイルとパスの権限を個別に設定してください。
手動検証(curl)
MCPはクライアントが application/json と text/event-stream の両方を受け入れることを要求します:
curl -sS -D - \
-H "Authorization: Bearer $BEARER_TOKEN" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"curl","version":"1.0"}}}' \
"https://mcp.example.com/mcp"不正なトークンの場合は 401 が返されるはずです。
Cursorクライアント
CursorのMCP設定で、このリモートサービスに対して HTTPS URL(例:https://mcp.example.com/mcp)を設定します。Bearer トークンが必要な場合、現在のCursorのバージョンがリモートMCPに対する カスタムヘッダー の設定をサポートしているか確認してください。サポートされていない場合は、ローカルに固定の Authorization を付与するゲートウェイを一段階追加する必要があります(方案のリスク説明を参照)。
運用
詳細は docs/RUNBOOK.md を参照してください。
ライセンス
MIT(@modelcontextprotocol/sdk に準拠。各依存関係のライセンスに従います)。
This server cannot be deployed
Maintenance
Related MCP Connectors
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Text-to-SQL MCP server: read-only queries on PostgreSQL, MySQL and SQL Server with your real schema
Read-only MCP server for ClassQuill, a tutoring-business-management platform.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA lightweight MCP server that provides read-only access to SQLite databases, allowing users to execute SELECT queries, list tables, and describe table schemas.1MIT
- AlicenseNot gradedqualityDmaintenanceA production-ready MCP server that enables safe, read-only SQL SELECT queries against PostgreSQL databases with built-in security validation. It features connection pooling, automatic row limits, and structured logging to ensure secure and reliable database interactions.13 npmISC
- AlicenseNot gradedqualityFmaintenanceRead-only MCP server for SQL databases (SQL Server, Postgres, SQLite) with multi-server support and three-layer safety using AST validation and linting.MIT
- FlicenseNot gradedqualityDmaintenanceCustom MCP server connected to a read-only SQLite database, exposing a schema resource and a query tool for safe data retrieval.-