关于 Dremio Python MCP
Dremio Python MCP 为 MCP 客户端提供访问 Dremio 数据库的标准接口,适用于需要浏览数据目录或执行查询的用户。它支持只读 SQL 查询,并公开目录、模式、表和表结构信息。
主要功能
- 01列出目录、模式和表
- 02读取表结构信息
- 03执行 SQL 并返回结构化结果
- 04限制为只读查询
- 05支持 TLS 与用户名密码或令牌认证
适用场景
- 01浏览 Dremio 数据目录
- 02检查表字段与模式
- 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
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。