Redash查询服务器

一个用于Redash的MCP服务器,支持执行SQL查询、探索数据库架构,并以JSON或CSV格式获取结果。

  • by arkty
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 arkty/redash-mcp

使用说明

@arkty/redash mcp

MCP服务器 红灰 --执行SQL查询,探索数据库模式,并获得JSON或CSV格式的结果。

  • 特别查询 不在Redash中创建对象(没有留下痕迹)
  • SQL写保护 --破坏性操作(INSERT/UPDATE/DELETE/DROP)被阻止
  • CSV导出 --将结果保存到文件,将摘要返回给LLM
  • 模式探索 --列出表、搜索列、检查结构
  • 默认数据源 --配置一次,不指定每次查询

安装

npx -y @arkty/redash-mcp

配置

克劳德代码(.mcp.json)

{
  "mcpServers": {
    "redash": {
      "command": "npx",
      "args": ["-y", "@arkty/redash-mcp"],
      "env": {
        "REDASH_URL": "https://your-redash.example.com",
        "REDASH_API_KEY": "your-api-key",
        "REDASH_DEFAULT_DATA_SOURCE_ID": "1"
      }
    }
  }
}

环境变量

变量 必填 默认 描述
REDASH_URL 是 -- Redash实例URL
REDASH_API_KEY 是 - 用户API密钥(来自Redash配置文件设置)
REDASH_DEFAULT_DATA_SOURCE_ID 否 -- 默认数据源ID
REDASH_DEFAULT_TABLE 否 -- 默认表名(显示在工具说明中)
REDASH_TIMEOUT 否 30000 请求超时(毫秒)
REDASH_MAX_ROWS 否 500 JSON响应中的最大行数
REDASH_POLL_INTERVAL 否 1000 作业轮询间隔(毫秒)
REDASH_MAX_POLL_ATTEMPTS 否 120 超时前的最大轮询尝试次数
REDASH_OUTPUT_DIR 没有 . CSV文件输出目录
REDASH_EXTRA_HEADERS 没有 -- 额外的HTTP标头(JSON或 key=value;key2=value2)

工具

execute_adhoc_query

直接对数据源执行SQL。在Redash中没有创建查询对象。破坏性SQL已被阻止。

参数: query, data_source_id?, format? ("json" | "csv")

list_data_sources

列出所有可用的数据源,包括ID、名称和类型。

get_data_source_schema

获取数据源的完整数据库架构(所有表和列)。

参数: data_source_id

get_table_info

获取特定表的列名和类型。

参数: data_source_id, table_name

search_schema

按名称模式搜索表和列(不区分大小写)。

参数: data_source_id, search

安全

  • 破坏性SQL(INSERT、UPDATE、DELETE、DROP、ALTER、TRUNCATE、CREATE等)在MCP服务器级别被阻止。 过滤器故意简单 --它检查查询文本中是否存在关键字。这意味着它可能会产生误报(例如。, SELECT REPLACE(...) 被阻止是因为 REPLACE 是关键字)。这是一个安全网,而不是防弹解决方案。
  • 在Redash数据源配置中使用只读数据库凭据——这是真正的保护层
  • API密钥通过环境变量传递,从不硬编码

许可证

麻省理工学院