mcpField
D
DataLink

DataLink

本地服务
github.com/pilat数据库52 周前更新

关于 DataLink

DataLink 是一款 MCP 服务,让 AI 助手访问 PostgreSQL、MySQL 和 SQLite 数据库。它提供结构查看与查询工具,并支持按连接设置只读模式及查询安全限制。

主要功能

  1. 01连接 PostgreSQL、MySQL 和 SQLite
  2. 02列出数据库与数据表
  3. 03查看结构、索引和键
  4. 04运行查询并查看执行计划
  5. 05按连接设置只读模式
  6. 06查询安全限制

适用场景

  1. 01检查数据库表和结构
  2. 02运行只读分析查询
  3. 03查看查询执行计划
  4. 04受控地修改数据

MCP 相关

DataLink 向 MCP 客户端提供数据库列表、结构检查、查询、执行和执行计划工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"pilat-mcp-datalink": {
"command": "npx",
"args": [
"-y",
"@pilat/mcp-datalink"
],
"env": {
"DATALINK_ANALYTICS_URL": "<DATALINK_ANALYTICS_URL>",
"DATALINK_ANALYTICS_READONLY": "<DATALINK_ANALYTICS_READONLY>"
}
}
}
}
启动命令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+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@pilat/mcp-datalink1.2.4

工具

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
Clinecline_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

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。