使用说明
_CHMCP服务器
生产准备就绪 模型上下文协议(MCP) 该服务器向MCP兼容的代理和工具公开了ConnectionREST功能。版本 0.4.4 引入了结构化响应、资源缓存、支持重试的网络和端到端弹性改进。
目录
关键能力
- 结构化MCP响应 -每个工具返回一个
CallToolResult其中包含人类可读的摘要content以及机器可读的有效载荷structuredContent符合工具的outputSchema. - 资源缓存 -大型笔记本电脑/工作区导出被缓存一次,并返回为
resource_link具有URI的内容块,例如resource://databricks/exports/{id}(为方便起见,也反映在元数据中)。 - 进度和指标 -长时间运行的操作流MCP进度通知和跟踪每个工具的成功/错误/超时/取消指标。
- 弹性网络 -共享HTTP客户端注入请求ID,强制超时,并以指数回退重试可重试的copula响应(408/429/5xx)。
- 异步运行时 -基于
mcp.server.FastMCP通过集中式JSON日志记录和并发保护,实现可预测的stdio行为。
建筑亮点
databricks_mcp/server/databricks_mcp_server.py-具有工具注册、进度处理、指标和资源缓存的FastMCP服务器。databricks_mcp/core/utils.py-带有相关ID、重试次数和错误映射的HTTP实用程序DatabricksAPIError.databricks_mcp/core/logging_utils.py-stderr/文件输出的JSON日志配置。databricks_mcp/core/models.py-Pydantic模型(例如。,ClusterConfig)由工具模式使用。- 测试
tests/mockJanceAPI,用于验证编排、结构化响应和模式元数据,而无需shell脚本。
有关数据流和设计决策的深入介绍,请参阅 建筑.md.
安装
先决条件
- Python 3.10+
uv用于依赖关系管理和发布
快速安装(推荐)
使用下面的深度链接向Cursor注册服务器-它解析为 uvx databricks-mcp-server@latest 并自动获取未来的更新。
cursor://anysphere.cursor-deeplink/mcp/install?name=databricks-mcp&config=eyJjb21tYW5kIjoidXZ4IiwiYXJncyI6WyJkYXRhYnJpY2tzLW1jcC1zZXJ2ZXIiXSwiZW52Ijp7IkRBVEFCUklDS1NfSE9TVCI6IiR7REFUQUJSSUNLU19IT1NUfSIsIkRBVEFCUklDS1NfVE9LRU4iOiIke0RBVEFCUklDS1NfVE9LRU59IiwiREFUQUJSSUNLU19XQVJFSE9VU0VfSUQiOiIke0RBVEFCUklDS1NfV0FSRUhPVVNFX0lEfSJ9fQ==
手动安装
# Clone and enter the repository
git clone https://github.com/markov-kernel/databricks-mcp.git
cd databricks-mcp
# Create an isolated environment (optional but recommended)
uv venv
source .venv/bin/activate # Linux/Mac
# .\.venv\Scripts\activate # Windows PowerShell
# Install package and development dependencies
uv pip install -e .
uv pip install -e ".[dev]"
配置
设置以下环境变量(或填充 .env 从 .env.example).
export DATABRICKS_HOST="https://your-workspace.databricks.com"
export DATABRICKS_TOKEN="dapiXXXXXXXXXXXXXXXX"
export DATABRICKS_WAREHOUSE_ID="sql_warehouse_12345" # optional default
export TOOL_TIMEOUT_SECONDS=300
export MAX_CONCURRENT_REQUESTS=8
export HTTP_TIMEOUT_SECONDS=60
export API_MAX_RETRIES=3
export API_RETRY_BACKOFF_SECONDS=0.5
运行服务器
uvx databricks-mcp-server@latest
提示:追加
--refresh(例如。,uvx databricks-mcp-server@latest --refresh)强制uv在发布后解析最新的PyPI版本。日志以JSON行的形式发送到stderr并持久化到databricks_mcp.log在工作目录中。
要调整日志记录,请执行以下操作:
uvx databricks-mcp-server@latest -- --log-level DEBUG
与MCP客户端集成
食品法典委员会CLI(STDIO)
注册服务器并通过CLI注入凭据:
codex mcp add databricks --env DATABRICKS_HOST="https://your-workspace.databricks.com" --env DATABRICKS_TOKEN="dapi_XXXXXXXXXXXXXXXX" --env DATABRICKS_WAREHOUSE_ID="sql_warehouse_12345" -- uvx databricks-mcp-server@latest
# Add --refresh immediately after a publish to invalidate the uv cache
或编辑 ~/.codex/config.toml:
[mcp_servers.databricks]
command = "uvx"
args = ["databricks-mcp-server@latest"]
env = {
DATABRICKS_HOST = "https://your-workspace.databricks.com",
DATABRICKS_TOKEN = "dapi_XXXXXXXXXXXXXXXX",
DATABRICKS_WAREHOUSE_ID = "sql_warehouse_12345"
}
startup_timeout_sec = 15
tool_timeout_sec = 300
计划HTTP部署?Codex还支持
url = "https://…"加bearer_token_env_var = "DATABRICKS_TOKEN"或codex mcp login(与experimental_use_rmcp_client = true).
光标
{
"mcpServers": {
"databricks-mcp-local": {
"command": "uvx",
"args": ["databricks-mcp-server@latest"],
"env": {
"DATABRICKS_HOST": "https://your-workspace.databricks.com",
"DATABRICKS_TOKEN": "dapiXXXXXXXXXXXXXXXX",
"DATABRICKS_WAREHOUSE_ID": "sql_warehouse_12345",
"RUNNING_VIA_CURSOR_MCP": "true"
}
}
}
}
保存后重新启动Cursor,并将工具调用为 databricks-mcp-local:<tool>.
Claude CLI
claude mcp add databricks-mcp-local -s user -e DATABRICKS_HOST="https://your-workspace.databricks.com" -e DATABRICKS_TOKEN="dapiXXXXXXXXXXXXXXXX" -e DATABRICKS_WAREHOUSE_ID="sql_warehouse_12345" -- uvx databricks-mcp-server@latest
使用工具响应
structuredContent 携带机器可读的有效载荷。大型文物作为 resource_link 使用URI的内容块,如 resource://databricks/exports/{id} 并且可以通过MCP资源API来获取。
result = await session.call_tool("list_clusters", {})
summary = next((block.text for block in result.content if getattr(block, "type", "") == "text"), "")
clusters = (result.structuredContent or {}).get("clusters", [])
resource_links = [block for block in result.content if isinstance(block, dict) and block.get("type") == "resource_link"]
进度通知遵循MCP的进度令牌机制;Codex在工具运行时在UI中显示这些消息。
示例-SQL查询
result = await session.call_tool("execute_sql", {"statement": "SELECT * FROM samples LIMIT 10"})
print(result.content[0].text)
rows = (result.structuredContent or {}).get("result", [])
示例-工作区文件导出
result = await session.call_tool("get_workspace_file_content", {
"path": "/Users/user@domain.com/report.ipynb",
"format": "SOURCE"
})
resource_link = next((block for block in result.content if isinstance(block, dict) and block.get("type") == "resource_link"), None)
if resource_link:
contents = await session.read_resource(resource_link["uri"])
可用工具
| 类别 | 工具 | 描述 |
|---|---|---|
| 集群 | list_clusters, create_cluster, terminate_cluster, get_cluster, start_cluster, resize_cluster, restart_cluster |
管理交互式集群 |
| 工作机会 | list_jobs, create_job, delete_job, run_job, run_notebook, sync_repo_and_run_notebook, get_run_status, list_job_runs, cancel_run |
管理计划和临时作业 |
| 工作区 | list_notebooks, export_notebook, import_notebook, delete_workspace_object, get_workspace_file_content, get_workspace_file_info |
检查和管理工作空间资产 |
| DBFS | list_files, dbfs_put, dbfs_delete |
探索DBFS并管理文件 |
| SQL | execute_sql |
提交带有可选的SQL语句 warehouse_id, catalog, schema_name |
| 图书馆 | install_library, uninstall_library, list_cluster_libraries |
管理集群库 |
回购协议 create_repo, update_repo, list_repos, pull_repo |
管理copula存储库 | |
| Unity目录 | list_catalogs, create_catalog, list_schemas, create_schema, list_tables, create_table, get_table_lineage |
Unity目录操作 |
开发工作流程
uv run black databricks_mcp tests
uv run pylint databricks_mcp tests
uv run pytest
uv build
uv publish --token "$PYPI_TOKEN"
测试
uv run pytest
Pytest套件模拟了copula API,提供确定性结构化输出和转录测试。
发布生成
确保 PYPI_TOKEN 可用(通过 .env 在发布之前:
uv build
uv publish --token "$PYPI_TOKEN"
支持与联系
许可证
根据MIT许可证发布。看 许可证.
