mcpField
D
Dremio Python MCP

Dremio Python MCP

本地服务
github.com/ucesys数据库180 周前更新

关于 Dremio Python MCP

Dremio Python MCP 为 MCP 客户端提供访问 Dremio 数据库的标准接口,适用于需要浏览数据目录或执行查询的用户。它支持只读 SQL 查询,并公开目录、模式、表和表结构信息。

主要功能

  1. 01列出目录、模式和表
  2. 02读取表结构信息
  3. 03执行 SQL 并返回结构化结果
  4. 04限制为只读查询
  5. 05支持 TLS 与用户名密码或令牌认证

适用场景

  1. 01浏览 Dremio 数据目录
  2. 02检查表字段与模式
  3. 03执行只读 SQL 查询并查看结果

MCP 相关

该 MCP 服务向客户端公开 Dremio 数据资源,以及目录、模式、表查询和 SQL 执行工具。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Dremio 模型上下文协议(MCP)

本项目为 Dremio 实现了一个模型上下文协议(MCP)服务。它提供了一种通过 MCP 与 Dremio 数据库交互的标准化方式。

功能

资源

通过 资源 暴露 Dremio 数据:

  • dremio://catalogs - 列出所有目录
  • dremio://schemas/{catalog} - 列出目录中的所有架构
  • dremio://tables/{catalog}/{schema} - 列出架构中的所有表
  • dremio://schema/{table_name} - 获取表的架构信息
工具
  • list_catalogs

    • 列出 Dremio 中所有可用目录
    • 用法:list_catalogs()
  • list_schemas

    • 列出指定目录中的所有架构
    • 用法:list_schemas("catalog_name")
  • list_tables

    • 列出指定架构中的所有表
    • 用法:list_tables("catalog_name", "schema_name")
  • execute_sql

    • 对 Dremio 执行 SQL 查询
    • 以包含元数据的结构化格式返回结果
    • 用法:execute_sql("SELECT * FROM catalog.schema.table LIMIT 10")

要求

  • Python 3.10+
  • Dremio 实例(Cloud 或 Software)
  • 支持 Flight 的 PyArrow

安装

使用 pip
pip install -e .
使用 uv(推荐)
# Install uv if you don't have it
curl -sSf https://astral.sh/uv/install.sh | bash

# Install the package
uv pip install -e .

配置

在根目录中创建 config.yaml 文件,并添加以下配置:

# Dremio connection settings
dremio:
  # Connection type: 'software' for Dremio Software or 'cloud' for Dremio Cloud
  type: software

  # Dremio Software connection details
  software:
    hostname: localhost
    port: 32010
    username: your_username
    password: your_password
    use_ssl: false

# Query settings
query:
  # Maximum number of rows to return in a query result
  max_rows: 10000
  # Maximum number of columns to return in schema request
  max_columns: 1000
  # Timeout in seconds for query execution
  timeout: 300
环境变量

你也可以使用环境变量配置服务:

DREMIO_HOSTNAME=localhost
DREMIO_PORT=32010
DREMIO_USERNAME=your_username
DREMIO_PASSWORD=your_password
DREMIO_USE_SSL=false

对于 Dremio Cloud:

DREMIO_TYPE=cloud
DREMIO_ENDPOINT=data.dremio.cloud
DREMIO_PAT_TOKEN=your_personal_access_token

用法

运行服务
# If installed from package
mcp-dremio-server

# Or run directly
python run_mcp_server.py
与 Claude 或其他 MCP 客户端集成

将以下配置添加到 MCP 客户端设置中:

MacOS
// ~/Library/Application\ Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "dremio_service": {
      "command": "/Users/USERNAME/.local/bin/uv",
      "args": [
                "--directory",
                "/Users/USERNAME/PycharmProjects/dremio-python-mcp",
                "run",
                "run_mcp_server.py"
            ]
    }
  }
}
Windows
// %APPDATA%/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "dremio-mcp": {
      "command": "mcp-dremio-server",
      "args": []
    }
  }
}

用法示例

列出目录和架构
// List all catalogs
list_catalogs()

// List schemas in a catalog
list_schemas("my_catalog")

// List tables in a schema
list_tables("my_catalog", "my_schema")
执行 SQL 查询
// Execute a query
results = execute_sql("SELECT * FROM my_catalog.my_schema.my_table LIMIT 10")

安全功能

  • SQL 验证:阻止执行非只读查询
  • 输入验证:防止通过表名/架构名进行 SQL 注入
  • TLS 支持:与 Dremio 安全通信
  • 身份验证:支持用户名/密码和令牌身份验证

调试

由于 MCP 服务通过 stdio 运行,调试可能颇具挑战。为获得最佳调试体验,请使用 MCP Inspector:

npx @modelcontextprotocol/inspector mcp-dremio-server

启动后,Inspector 会显示一个 URL,你可以在浏览器中访问该 URL 开始调试。

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

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

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