التثبيت
أضف هذا إلى إعدادات MCP في عميلك (Claude Desktop: claude_desktop_config.json، وCursor: .cursor/mcp.json، ويستخدم VS Code وغيره الصيغة نفسها «mcpServers»).
@pilat/mcp-datalinkclaude mcp add datalink -e 'DATALINK_ANALYTICS_URL=<your datalink_analytics_url>' -e 'DATALINK_ANALYTICS_READONLY=<DATALINK_ANALYTICS_READONLY>' -- npx -y @pilat/mcp-datalink@1.2.4
{
"mcpServers": {
"datalink": {
"command": "npx",
"args": [
"-y",
"@pilat/mcp-datalink@1.2.4"
],
"env": {
"DATALINK_ANALYTICS_URL": "<your datalink_analytics_url>",
"DATALINK_ANALYTICS_READONLY": "<DATALINK_ANALYTICS_READONLY>"
}
}
}
}
متغيرات البيئة
DATALINK_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
التوثيق
مأخوذ من ملف README للمشروع على GitHub ويُحدَّث أسبوعيًا. تفتح الروابط على GitHub.
@pilat/mcp-datalink
MCP server for PostgreSQL, MySQL, and SQLite. Gives AI assistants secure database access via Model Context Protocol.
npx @pilat/mcp-datalink
Works with Claude Desktop, Claude Code, Cursor, Cline, and any MCP-compatible client.
Installation
Add to your MCP client config file (see config locations below):
{
"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"
}
}
}
}
This creates three database connections: analytics (read-only), inventory, and cache.
| Variable | Description |
|---|---|
DATALINK_{NAME}_URL | Connection URL (creates database named {name}) |
DATALINK_{NAME}_READONLY | Set to true to block writes |
DATALINK_{NAME}_MAX_TIMEOUT | Max query timeout in ms (caps model requests) |
Connection URL formats:
# 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
Environment Variable Substitution
URLs support ${VAR} syntax to reference other environment variables:
{
"mcpServers": {
"datalink": {
"command": "npx",
"args": ["-y", "@pilat/mcp-datalink"],
"env": {
"DATALINK_MAIN_URL": "${DATABASE_URL}"
}
}
}
}
This allows reusing existing environment variables (like DATABASE_URL from your shell or .env file).
Supported syntax:
| Syntax | Description |
|---|---|
${VAR} | Expands to value of VAR, or keeps ${VAR} if unset |
${VAR:-default} | Expands to value of VAR, or default if unset |
Examples:
# 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"
Config File Locations
| Client | Config file |
|---|---|
| Claude Code | ~/.claude.json (global) or .mcp.json (project) |
| Claude Desktop (macOS) | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Desktop (Windows) | %APPDATA%\Claude\claude_desktop_config.json |
| Cursor | ~/.cursor/mcp.json or Settings → Features → MCP Servers |
| Cline | cline_mcp_settings.json or VS Code settings cline.mcpServers |
Tools
| Tool | Description |
|---|---|
list_databases | List configured database connections |
list_tables | List tables with row counts |
describe_table | Get schema, indexes, foreign keys |
query | Run SELECT queries |
execute | Run INSERT/UPDATE/DELETE |
explain | Show query execution plans |
Security
- Prepared statements only (no SQL injection)
- Single statement per query (no chaining)
- DDL blocked (no DROP, ALTER, TRUNCATE)
- Readonly mode per connection
- Response size limit (100 rows, 64KB default, configurable via
DATALINK_MAX_TOTAL_SIZE) - Query timeout: 30s default, model can request up to 10min,
MAX_TIMEOUTcaps it
License
MIT
الأسئلة الشائعة
ما هو DataLink؟
MCP server for secure database access (PostgreSQL, MySQL, SQLite)
كيف أثبّت DataLink؟
يعمل على جهازك. في Claude Code: claude mcp add datalink -e 'DATALINK_ANALYTICS_URL=<your datalink_analytics_url>' -e 'DATALINK_ANALYTICS_READONLY=<DATALINK_ANALYTICS_READONLY>' -- npx -y @pilat/mcp-datalink@1.2.4. وفي العملاء الآخرين، الصق إعداد JSON من هذه الصفحة في إعدادات MCP الخاصة بهم.
هل يحتاج DataLink إلى مفتاح API؟
نعم. يتطلب DATALINK_ANALYTICS_URL، وتضبطها في إعداداته.
هل DataLink مفتوح المصدر؟
نعم. شيفرته متاحة على GitHub بترخيص MIT.
من يصون DataLink؟
ينشره pilat. يدرجه AI.tn لكنه لا يصونه ولا يوصي به.
من سجل MCP الرسمي. الإدراج ليس توصية: راجع شيفرة الخادم وصلاحياته قبل منحه الوصول إلى بياناتك.