关于 redash-mcp
redash-mcp 是一个本地 MCP 服务,让 AI 客户端操作 Redash。它结合 SQL 安全检查与 BIRD 查询引导,并提供查询、图表、仪表板和警报管理工具。
主要功能
- 01带安全检查运行 SQL
- 02通过 BIRD 引导生成 SQL
- 03管理已保存的查询和结果
- 04创建图表和仪表板组件
- 05管理警报
适用场景
- 01用自然语言探索 Redash 数据
- 02创建图表并添加到仪表板
- 03为指标阈值设置警报
MCP 相关
向 MCP 客户端提供 25 个工具,用于查询 Redash 数据,以及管理已保存的查询、可视化、仪表板和警报。服务在本地运行,并直接连接 Redash API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y redash-mcpREDASH_URLYour Redash instance URL (e.g. https://redash.example.com)REDASH_API_KEY密钥Your Redash user API key (found in Settings > Account)REDASH_SAFETY_MODESQL safety mode: 'strict' blocks risky queries, 'warn' (default) returns warnings, 'off' disables guards (not recommended).REDASH_SAFETY_DISABLE_PIISet to 'true' to disable the PII column guard. Not recommended.REDASH_SAFETY_DISABLE_COSTSet to 'true' to disable the query cost guard. Not recommended.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
24收录的工具列表 · 更新于 5 天前
此工具无需参数。
详细介绍
redash-mcp
将 Redash 连接到 Claude、Cursor、Gemini CLI、Codex 和任何 MCP 客户端的 MCP 服务——通过自然语言查询数据、构建图表和仪表盘,并运行 SQL。
安装 · 工具 · 环境变量 · 示例 · 故障排除 · 隐私
3.5 版本更新内容
create_visualization— 为已保存的查询创建折线图 / 柱状图 / 面积图 / 饼图 / 散点图或计数器。如果查询已运行,会根据其最新结果检查列名,因此输入错误会返回错误,而不是生成空图表。- 仪表盘自动布局 —
add_widget会将新小组件放在现有小组件下方;半宽小组件会并排放置(之前它们都会重叠在左上角)。
完整历史记录:版本发布
为什么选择 redash-mcp?
专为让大模型安全地访问生产数据而构建:
- 🛡️ SQL 安全防护 — 阻止
DROP/TRUNCATE/ALTER,以及不带WHERE的DELETE/UPDATE;支持strict/warn/off模式、PII 检测和自动添加LIMIT。 - 🧠 BIRD 智能查询 — 分析问题、自动选择表,并引导生成 SQL(BIRD text-to-SQL)。可选 Claude Haiku 备用方案。
- 📊 端到端 — 查询、保存、图表、仪表盘和警报——共 25 个工具。
- ⚡ 一条命令即可设置 —
npx redash-mcp setup可配置 Claude Desktop / Claude Code / Cursor / Gemini CLI / Codex CLI。 - 🔒 完全本地运行 — 直接连接到你的 Redash。API 密钥和结果绝不会离开你的设备。
安装
要求: Node.js 20+ 和 Redash API 密钥(Redash → Profile → Edit Profile → API Key)。
npx redash-mcp setup
向导可配置 Claude Desktop、Claude Code、Cursor、Gemini CLI 和 Codex CLI 的任意组合。
也可以一次性安装 Node.js、Claude Desktop 和 MCP 配置:
curl -fsSL https://raw.githubusercontent.com/seob717/redash-mcp/main/install.sh | bash
手动设置
- Claude Desktop —
~/Library/Application Support/Claude/claude_desktop_config.json - Cursor —
~/.cursor/mcp.json(如果文件不存在,请创建)
{
"mcpServers": {
"redash-mcp": {
"command": "npx",
"args": ["-y", "redash-mcp"],
"env": {
"REDASH_URL": "https://your-redash-instance.com",
"REDASH_API_KEY": "your_api_key_here"
}
}
}
}
保存后,完全退出并重启 Claude Desktop。
Claude Code
claude mcp add --scope user redash-mcp \
-e REDASH_URL=https://your-redash-instance.com \
-e REDASH_API_KEY=your_api_key_here \
-- npx -y redash-mcp
Gemini CLI
gemini mcp add -s user \
-e REDASH_URL=https://your-redash-instance.com \
-e REDASH_API_KEY=your_api_key_here \
redash-mcp npx -y redash-mcp
Codex CLI
codex mcp add redash-mcp \
--env REDASH_URL=https://your-redash-instance.com \
--env REDASH_API_KEY=your_api_key_here \
-- npx -y redash-mcp
| 类别 | 工具 |
|---|---|
| 数据源与架构 | list_data_sources、list_tables、get_table_columns |
| 查询 | run_query — 执行 SQL 并返回结果 |
| 已保存的查询 | list_queries、get_query、get_query_result(带参数值)、create_query、update_query、fork_query、archive_query |
| 图表 | create_visualization — 折线图 / 柱状图 / 面积图 / 饼图 / 散点图 / 计数器 |
| 仪表板 | list_dashboards、get_dashboard、create_dashboard、add_widget(自动布局) |
| 警报 | list_alerts、get_alert、create_alert |
| Smart Query(BIRD) | smart_query、get_bird_config、evaluate_queries、submit_query_feedback、manage_few_shot_examples、manage_keyword_map |
SQL 安全防护
适用于通过 run_query 执行的临时 SQL。通过 get_query_result 执行的已保存查询不会经过检查,因此请为 Redash 数据源提供只读数据库账户。
- 始终禁止(除非
REDASH_SAFETY_MODE=off):DROP、TRUNCATE、ALTER TABLE、GRANT/REVOKE、不带WHERE的DELETE/UPDATE - 发出警告(
warn)/禁止(strict):SELECT *、不带WHERE或LIMIT的查询、访问 PII 列 - 自动添加 LIMIT:当设置了
REDASH_AUTO_LIMIT时,追加LIMIT N
详情请参阅:docs/sql-safety-guard.md。查询结果也会缓存在内存中(见下方的 REDASH_MCP_CACHE_*)。
环境变量
| 变量 | 默认值 | 说明 |
|---|---|---|
REDASH_URL | 必填 | Redash 实例 URL(例如 https://redash.example.com) |
REDASH_API_KEY | 必填 | Redash 用户 API 密钥 |
REDASH_SAFETY_MODE | warn | SQL 安全级别:off / warn / strict |
REDASH_SAFETY_DISABLE_PII | false | 禁用 PII 检测 |
REDASH_SAFETY_DISABLE_COST | false | 禁用成本警告 |
REDASH_AUTO_LIMIT | 0 | 为未设置 LIMIT 的查询自动追加 LIMIT N(0 = 关闭) |
REDASH_DEFAULT_MAX_AGE | 0 | Redash 缓存 TTL,单位为秒 |
REDASH_MCP_CACHE_TTL | 300 | MCP 查询缓存 TTL,单位为秒(0 = 关闭) |
REDASH_MCP_CACHE_MAX_MB | 50 | MCP 查询缓存的最大内存,单位为 MB |
REDASH_MCP_CONFIG_DIR | ~/.redash-mcp | BIRD 少样本示例、反馈、评估和关键词映射数据的存放位置 |
REDASH_BIRD_ENABLED | true | 设为 false 可禁用 BIRD 智能查询工具 |
REDASH_HTTP_TIMEOUT_SECS | 30 | 每次向 Redash API 发起请求的 HTTP 超时时间 |
ANTHROPIC_API_KEY | — | 启用 Claude Haiku 回退方案,为 smart_query 选择表格 |
使用示例
只需用自然语言提问:
- “本月有多少新用户注册?” →
smart_query选择表格 →run_query - “上周新用户中有多少比例进行了购买?” →
smart_query指引 JOIN →run_query - “当每日注册人数低于 100 时创建警报” →
create_alert
构建仪表板:“保存一条月收入查询,将其制作为折线图,并放到新的 Revenue 仪表板上。”
create_query— 保存“月收入”get_query_result— 运行一次,以便检查图表列create_visualization—type: "line"、x_column: "month"、y_columns: ["revenue"]create_dashboard— 创建“Revenue”add_widget— 放置图表;更多小组件会堆叠在下方或并排放置
故障排查
| 症状 | 解决方法 |
|---|---|
npx 未找到(macOS 图形界面应用) | 运行 which npx,并将完整路径用作 command |
| “身份验证失败” | 检查 REDASH_API_KEY——它必须是用户 API 密钥 |
| “无法连接到 Redash 服务” | 检查 REDASH_URL(包含 https://、不含 /api 的基础 URL)以及网络/VPN |
| “查询超时” | 简化查询,或为 run_query / get_query_result 传入更大的 timeout_secs;如果 API 响应较慢,则调高 REDASH_HTTP_TIMEOUT_SECS |
| 查询被安全防护机制拦截 | 添加 WHERE/LIMIT;在 strict 模式下,将 REDASH_SAFETY_MODE=warn 设为改为接收警告 |
| 未显示工具 | 修改配置后,完全重启客户端 |
开发
npm install
npm run dev # run from source (tsx)
npm test # vitest
npm run build # typecheck + bundle to dist/
隐私政策
redash-mcp 是一个本地 MCP 服务,可直接与您的 Redash 实例通信,不涉及任何中间服务。
| 项目 | 说明 |
|---|---|
| Redash API 密钥 | 仅作为本地环境变量(REDASH_API_KEY)存储,绝不会对外传输。 |
| 查询内容和结果 | 仅通过 MCP 协议发送给本地 MCP 客户端。 |
| BIRD SQL 设置 | 仅存储在本地文件(~/.redash-mcp/)中:少样本示例、关键词映射和反馈。 |
| LLM 回退 | 仅当设置了 ANTHROPIC_API_KEY 时,smart_query 才会将表名、列名和问题文本发送到 Anthropic API。查询结果和行数据绝不会被传输。 |
我们不会向第三方出售或共享用户数据。
保留期限: 配置文件会保留在 ~/.redash-mcp/ 中,直到您将其删除;查询缓存存储在内存中,并在关闭时清除;架构缓存存储在内存中,TTL 为 10 分钟。
联系方式: 可通过 GitHub Issues 提交咨询和安全报告。
免责声明
redash-mcp 是一项非官方的社区构建集成,与 Redash 无关,也未获得其认可或赞助。“Redash”是其各自所有者的商标,在此仅用于说明兼容性。本项目仅通过 Redash 的公共 REST API 与其通信。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。