关于 DataLink
DataLink 是一款 MCP 服务,让 AI 助手访问 PostgreSQL、MySQL 和 SQLite 数据库。它提供结构查看与查询工具,并支持按连接设置只读模式及查询安全限制。
主要功能
- 01连接 PostgreSQL、MySQL 和 SQLite
- 02列出数据库与数据表
- 03查看结构、索引和键
- 04运行查询并查看执行计划
- 05按连接设置只读模式
- 06查询安全限制
适用场景
- 01检查数据库表和结构
- 02运行只读分析查询
- 03查看查询执行计划
- 04受控地修改数据
MCP 相关
DataLink 向 MCP 客户端提供数据库列表、结构检查、查询、执行和执行计划工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
mcp.json · 通用配置
启动命令
npx -y @pilat/mcp-datalink需要配置的环境变量
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本地服务需要在你的电脑上安装运行环境(如 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"
}
}
}
}
这会创建三个数据库连接:analytics(只读)、inventory 和 cache。
| 变量 | 描述 |
|---|---|
DATALINK_{NAME}_URL | 连接 URL(创建名为 {name} 的数据库) |
DATALINK_{NAME}_READONLY | 设为 true 以禁止写入 |
DATALINK_{NAME}_MAX_TIMEOUT | 查询最长超时时间,单位为 ms(限制模型请求) |
连接 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}"
}
}
}
}
这样可以重复使用现有环境变量(例如 shell 或 .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 注入)
- 每次查询仅允许一条语句(禁止串联执行)
- 禁止 DDL(不允许 DROP、ALTER、TRUNCATE)
- 可按连接启用只读模式
- 响应大小限制(默认 100 行、64KB,可通过
DATALINK_MAX_TOTAL_SIZE配置) - 查询超时:默认 30s,模型最多可请求 10min,
MAX_TIMEOUT可限制超时时间
许可证
MIT
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。