DataLink について
DataLink は、AI アシスタントから PostgreSQL、MySQL、SQLite に接続する MCP サーバーです。スキーマ確認やクエリ実行のツールに加え、接続ごとの読み取り専用設定とクエリ制限を備えています。
主な機能
- 01PostgreSQL、MySQL、SQLiteへの接続
- 02データベースとテーブルの一覧表示
- 03スキーマ、インデックス、キーの確認
- 04クエリ実行と実行計画の表示
- 05接続ごとの読み取り専用モード
- 06クエリの安全制限
活用シーン
- 01データベースのテーブルとスキーマの確認
- 02読み取り専用の分析クエリ実行
- 03クエリ実行計画の確認
- 04制御されたデータ変更
MCP 対応
DataLink は、データベース一覧、スキーマ確認、クエリ、更新実行、実行計画のツールを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @pilat/mcp-datalinkDATALINK_ANALYTICS_URLシークレットDatabase connection URL. Pattern: DATALINK_<NAME>_URL where <NAME> identifies the database. Supports postgresql://, mysql://, or file path for SQLite.DATALINK_ANALYTICS_READONLYSet to 'true' for read-only access. Pattern: DATALINK_<NAME>_READONLYローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
6掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
@pilat/mcp-datalink
PostgreSQL、MySQL、SQLite 用の MCP サーバーです。Model Context Protocol を介して、AI アシスタントに安全なデータベースアクセスを提供します。
npx @pilat/mcp-datalink
Claude Desktop、Claude Code、Cursor、Cline、および MCP 対応のすべてのクライアントで動作します。
インストール
MCP クライアントの設定ファイルに追加します(下記の設定ファイルの場所を参照してください)。
{
"mcpServers": {
"datalink": {
"command": "npx",
"args": ["-y", "@pilat/mcp-datalink"],
"env": {
"DATALINK_ANALYTICS_URL": "postgresql://user:password@localhost:5432/analytics",
"DATALINK_ANALYTICS_READONLY": "true",
"DATALINK_INVENTORY_URL": "mysql://user:password@localhost:3306/inventory",
"DATALINK_CACHE_URL": "sqlite:///path/to/cache.db"
}
}
}
}
これにより、3 つのデータベース接続が作成されます。analytics(読み取り専用)、inventory、cache です。
| 変数 | 説明 |
|---|---|
DATALINK_{NAME}_URL | 接続 URL({name} という名前のデータベースを作成します) |
DATALINK_{NAME}_READONLY | 書き込みをブロックするには true に設定します |
DATALINK_{NAME}_MAX_TIMEOUT | クエリの最大タイムアウト(ミリ秒単位。モデルからのリクエストを制限します) |
接続 URL の形式:
# PostgreSQL
postgresql://user:password@localhost:5432/dbname
postgresql://user:password@localhost:5432/dbname?sslmode=require
# MySQL
mysql://user:password@localhost:3306/dbname
mysql://user:password@localhost:3306/dbname?ssl=true
# SQLite
sqlite:///path/to/database.db
sqlite:///Users/me/data/app.sqlite
sqlite://../relative/path/data.db
環境変数の置換
URL では ${VAR} 構文を使用して、他の環境変数を参照できます。
{
"mcpServers": {
"datalink": {
"command": "npx",
"args": ["-y", "@pilat/mcp-datalink"],
"env": {
"DATALINK_MAIN_URL": "${DATABASE_URL}"
}
}
}
}
これにより、既存の環境変数(シェルや .env ファイルの DATABASE_URL など)を再利用できます。
サポートされている構文:
| 構文 | 説明 |
|---|---|
${VAR} | VAR の値に展開します。未設定の場合は ${VAR} をそのまま保持します |
${VAR:-default} | VAR の値に展開します。未設定の場合は default に展開します |
例:
# Reference existing DATABASE_URL
DATALINK_MAIN_URL="${DATABASE_URL}"
# Build URL from parts
DATALINK_MAIN_URL="postgresql://${DB_USER}:${DB_PASS}@${DB_HOST}:5432/mydb"
# With default values
DATALINK_MAIN_URL="postgresql://localhost:${DB_PORT:-5432}/mydb"
設定ファイルの場所
| クライアント | 設定ファイル |
|---|---|
| Claude Code | ~/.claude.json(グローバル)または .mcp.json(プロジェクト) |
| Claude Desktop(macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop(Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Cursor | ~/.cursor/mcp.json または Settings → Features → MCP Servers |
| Cline | cline_mcp_settings.json または VS Code の設定 cline.mcpServers |
ツール
| ツール | 説明 |
|---|---|
list_databases | 設定済みのデータベース接続を一覧表示します |
list_tables | 行数とともにテーブルを一覧表示します |
describe_table | スキーマ、インデックス、外部キーを取得します |
query | SELECT クエリを実行します |
execute | INSERT/UPDATE/DELETE を実行します |
explain | クエリの実行計画を表示します |
セキュリティ
- プリペアドステートメントのみ使用します(SQL インジェクションなし)
- クエリごとに 1 つのステートメントのみ実行します(連結不可)
- DDL はブロックされます(DROP、ALTER、TRUNCATE は不可)
- 接続ごとに読み取り専用モードを設定できます
- レスポンスサイズの上限(デフォルトは 100 行、64KB。
DATALINK_MAX_TOTAL_SIZEで設定可能) - クエリのタイムアウト:デフォルトは 30 秒。モデルは最大 10 分までリクエストできますが、
MAX_TIMEOUTで上限を設定します
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。