Token导航 LogoToken导航TokenDH.com
Data Dan MCP logo
数据服务stdio官方级别未说明来源级核验

Data Dan MCP

MCP Server

datadan

DataDan是一款为Claude Code提供权限管理的PostgreSQL MCP工具,允许用户为数据库、模式和表设置范围权限,防止AI代理操作越界。

工具数

10

提示词数

0

GitHub Stars

0

资源数

0
安全权限管理PostgreSQLClaude数据库工具Claude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

CourtimusPrime

提供方

CourtimusPrime

最后核验

2026/5/17 20:21

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx datadan init

详细介绍

数据Dan

一个极简主义的PostgreSQL MCP,为Claude Code提供对数据库的权限绑定访问。

  • 问题:人工智能代理因意外删除数据库而臭名昭著,因为没有任何声明来防止会话过度或冲动行事。
  • 解决方案:DataDan允许您为数据库、模式和表授予作用域权限。

快速开始

添加一个 .env 将PostgreSQL连接字符串添加到项目中,然后将DataDan添加到 .mcp.json:

{
  "mcpServers": {
    "datadan": {
      "command": "npx",
      "args": ["-y", "datadan", "start"]
    }
  }
}

就是这样。在第一次运行时,DataDan会自动发现您的数据库,创建 datadan.config.yaml 使用只读访问权限,并一次性启动MCP服务器。重新启动Claude Code,它就可以读取您的数据库。

在任何项目中使用

选项A:每个项目(默认)

添加 .mcp.json 将上面的条目添加到每个项目目录中。首先 start,DataDan扫描 .env,创建 datadan.config.yaml,并注册自己。

要手动重新初始化,请执行以下操作:

npx datadan init

选项B:全局配置,从任何地方指向

在任何地方创建一个配置文件:

name: my-databases
default-permission: read
hot-reload: true

databases:
  - name: production
    connection_string: ${DATABASE_URL}
  - name: analytics
    connection_string: ${ANALYTICS_DB_URL}

然后在任何项目的 .mcp.json:

{
  "mcpServers": {
    "datadan": {
      "command": "npx",
      "args": ["datadan", "start", "--config", "/path/to/datadan.config.yaml"]
    }
  }
}

或设置 DATADAN_CONFIG env-var指向您的配置。

选项C:用户级MCP配置

增添 ~/.claude/settings.json 使DataDan在每个项目中都可用:

{
  "mcpServers": {
    "datadan": {
      "command": "npx",
      "args": ["datadan", "start", "--config", "/home/you/datadan.config.yaml"]
    }
  }
}

配置

datadan.config.yaml 控制克劳德可以做什么:

name: my-project
default-permission: read
hot-reload: true

databases:
  - name: main
    connection_string: ${DATABASE_URL}
    # permission: write          # override default for this database

    # schemas:
    #   - name: public
    #     permission: write       # override for this schema
    #     tables:
    #       - name: users
    #         permission: none    # block access to this table

权限

权限级联: default-permission -> database -> schema -> table.最具体的优先权获胜。

级别克劳德能做什么
none完全无法访问
readSELECT,描述表格
write读取+插入,更新
delete写入+删除
yolodelete+CREATE、ALTER、DROP、TRUNCATE

环境变量

连接字符串支持 ${ENV_VAR} 语法。DataDan加载 .env 与配置文件位于同一目录。Shell/CI变量优先。

热重新加载

随着 hot-reload: true,DataDan在每次调用工具之前都会重新读取配置。在会话过程中更改权限,而不重新启动。

工具

连接后,Claude Code将获得以下工具:

工具权限描述
list_databasesany列出所有可访问的数据库
list_schemasany列出数据库中的架构
list_tablesany列出架构中的表
describe_tableread显示列、类型、键和约束
queryread运行SELECT语句
executewrite运行INSERT/UPDATE语句
deletedelete运行delete语句
run_migrationyolo运行DDL(CREATE、ALTER、DROP、TRUNCATE)
dbmlread将数据库结构导出为DBML文件
register-在运行时添加新的数据库连接

试运行

在不启动服务器的情况下预览已解析的权限:

npx datadan start --dry-run
 Database | Schema | Table    | Permission
----------+--------+----------+-----------
 main     | public | users    | read
 main     | public | posts    | write
 main     | public | secrets  | none

安全

DataDan在应用程序层强制执行权限——它解析每个SQL语句,从配置中解析表级权限,并阻止超过授予级别的语句。它还写了一个 CLAUDE.md 告诉Claude Code永远不要直接连接到PostgreSQL的指令。

这本身是不够的。 Claude Code有一个Bash工具,可以读取您的 .env确定或错误的模型可以通过运行以下命令完全绕过DataDan psql $DATABASE_URL 或者编写一个直接连接的脚本。

使用受限的PostgreSQL用户

唯一不能绕过的强制是PostgreSQL级别的权限。你的 DATABASE_URL 应指向具有与DataDan配置匹配的授权的用户:

-- For read-only access
CREATE USER datadan_readonly WITH PASSWORD 'yourpassword';
GRANT CONNECT ON DATABASE yourdb TO datadan_readonly;
GRANT USAGE ON SCHEMA public TO datadan_readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO datadan_readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO datadan_readonly;

如果DataDan的配置为 read,DB用户应该只具有 SELECT。即使一个模型绕过DataDan并直接连接,它也会碰到同一堵墙。

将配置保存在项目目录之外

随着 hot-reload: true,DataDan重新阅读 datadan.config.yaml 在每次工具调用之前。如果文件可由Claude Code写入,则模型可以在会话中升级自己的权限。

将配置文件移出项目,并通过以下方式指向它 DATADAN_CONFIG:

# In your shell or CI env
export DATADAN_CONFIG=/etc/datadan/myproject.yaml

或使用 --config 在你的 .mcp.json:

{
  "mcpServers": {
    "datadan": {
      "command": "npx",
      "args": ["datadan", "start", "--config", "/home/you/datadan.config.yaml"]
    }
  }
}

纵深防御

它阻止了什么
受限数据库用户通过Bash/psql/scripts直接绕过
DataDan权限门通过MCP工具意外超范围访问
配置项目目录外通过热重新加载进行会话中期自升级
CLAUDE.md 指令使用错误访问路径的行为良好的模型

DataDan作为最低权限DB用户之上的正确路径护栏最为有效,而不是作为独立的安全边界。

架构同步

DataDan在启动时自动发现新的模式和表,并在使用过程中定期发现。如果将表添加到数据库中,它会自动出现在配置中,继承最近的权限级别。

目录标签

目录标签

安全权限管理PostgreSQLClaude数据库工具TypeScript本地部署AI安全ClaudeCode

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

datadan

工具数量(toolCount,工具数)

10

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP