该项目实现了一个模型上下文协议(MCP)服务器,该服务器公开了Databricks Genie API的功能作为工具。它允许您通过标准化接口将Databricks的无代码AI/BI助手功能与其他应用程序集成,从而能够对您的Databricks数据进行强大的自然语言查询。
对于详细的解释和示例用例,请参阅附带的博客文章。
克隆存储库(如果尚未执行)
# 如果需要添加克隆命令
导航到服务器目录
cd genie_api
安装依赖项
pip install -r requirements.txt
配置认证
设置Databricks SDK连接到您的工作区所需的环境变量。在本目录(genie_api/)中创建一个.env文件或全局设置它们:
# --- .env 文件内容 ---
# 对于PAT认证(推荐用于开发)
# DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
# DATABRICKs_TOKEN=your-personal-access-token
# 或者使用服务主体进行OAuth(推荐用于生产)
DATABRICKS_HOST=https://your-workspace.cloud.databricks.com
DATABRICKS_CLIENT_ID=your-client-id
DATABRICKS_CLIENT_SECRET=your-client-secret
# --- 结束 .env 文件内容 ---
确保将.env文件添加到您的.gitignore中!
本地运行服务器
python server.py
服务器将启动并通过标准输入/输出(stdio)监听连接。
此MCP服务器旨在与MCP客户端(如Claude Desktop)一起使用。按照以下步骤进行连接:
安装Claude Desktop: 从官方网站下载并安装。
配置Claude Desktop:
claude_desktop_config.json文件中的mcpServers对象中添加以下条目,并根据需要调整路径:{
"mcpServers": {
"databricks-genie": {
"command": "python", // 或者python3,或者Python可执行文件的完整绝对路径
"args": [
"/full/absolute/path/to/your/project/genie_api/server.py"
],
"workingDirectory": "/full/absolute/path/to/your/project/genie_api/"
}
// ... 可能还有其他服务器 ...
}
}
server.py和genie_api目录的完整绝对路径。command。workingDirectory确保服务器可以找到auth.py和您的.env文件。重启Claude Desktop: 关闭并重新打开应用程序。
验证: 单击聊天输入中的锤子图标(工具)。您应该看到列出的databricks-genie工具(例如,start_conversation,create_message)。
现在您可以向Claude提问,如“我们上个月的DBU消耗是多少?”或“谁昨天访问了PII表?”,它将使用您本地服务器提供的工具来回答。
有关配置Claude Desktop的更多详细信息,请参阅Claude Desktop用户快速入门指南。
start_conversation:在一个Genie空间开始一个新的对话。create_message:在一个现有对话中创建一条新消息。get_message:从对话中检索一条消息。get_message_attachment_query_result:从消息附件中获取SQL查询结果。execute_message_attachment_query:执行消息查询附件的SQL。get_space:获取关于Genie空间的详细信息。generate_download_full_query_result:启动完整的查询结果下载。poll_message_until_complete:轮询消息直到其达到终端状态。.env文件或环境变量)以及Databricks中的所需权限。claude_desktop_config.json中的绝对路径正确。command指向有效的Python解释器。~/Library/Logs/Claude/或%APPDATA%\Claude\logs)。查找mcp.log和mcp-server-databricks-genie.log。genie_api目录下运行python server.py以检查错误。.env)或安全凭证存储。确保.env在您的.gitignore中。生产中使用服务主体进行OAuth。欢迎贡献!请打开一个问题或提交一个拉取请求。
本软件由Databricks, Inc.提供特定许可。请参阅LICENSE文件以了解完全支配您使用此软件的条款和条件。