OpenAPI转Databricks应用生成工具

将OpenAPI规范直接编译为可独立运行的Databricks应用包,通过Unity Catalog连接处理认证和路由。

  • by IceRhymers
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 IceRhymers/uc-mcp-server

使用说明

uc-mcp基因

将OpenAPI规范直接编译为自包含的CLI copula应用程序 bundle-一个可运行的MCP服务器,每个API操作有一个具体的Python函数。身份验证和路由由 ConnectionUnity目录连接.

运作原理

  1. 点 uc-mcp-gen generate OpenAPI规范(本地文件或URL、YAML或JSON)
  2. 提供UC连接名称
  3. 获取一个自包含的copula应用程序包——准备好部署 databricks bundle deploy

生成的 main.py 不依赖于 uc_mcp_gen.它是一个普通的FastMCP服务器,其中每个API操作都变成一个类型 async def 工具功能,所有HTTP调用都通过您的UC连接代理。

安装

# Run without installing (recommended)
uvx uc-mcp-gen generate ...

# Or install locally for development
uv sync

用法

uc-mcp-gen generate <spec> --connection <conn-name> [--name <service-name>] [-o <output-dir>]

论据:

参数 描述
spec OpenAPI规范的路径或URL(.yaml, .yml, .json,或远程URL)
--connection 您的Rancher工作区中的UC连接名称
--name 服务名称(烤肉串案例)。如果省略,则从规范标题派生。
-o / --output 输出目录。默认为 generated_mcp_servers/<name>-app.

示例:

# From a local YAML spec
uc-mcp-gen generate openapi.yaml --connection my-slack-conn -o ./slack-app

# From a local JSON spec
uc-mcp-gen generate openapi.json --connection my-api-conn

# From a remote spec
uc-mcp-gen generate https://api.example.com/openapi.yaml --connection my-conn -o ./example-app

生成的捆绑包

<output>/
├── databricks.yml           Databricks Asset Bundle manifest
├── app.yaml                 App startup config — sets UC_CONNECTION_NAME
├── pyproject.toml           App dependencies (mcp, databricks-sdk, starlette, uvicorn)
└── src/app/
    ├── __init__.py
    └── main.py              Self-contained FastMCP server

使用以下方式部署:

cd <output>
databricks bundle deploy
databricks bundle run

认证

生成的 main.py 自动处理三种身份验证场景:

场景 机制
copula应用程序(面向用户) X-Forwarded-Access-Token 头球→ 每用户 WorkspaceClient
copula模型服务 模型服务凭据上下文
服务负责人/本地开发人员 默认值 WorkspaceClient() 从环境

所有工具调用都通过路由 client.serving_endpoints.http_request(conn=CONNECTION_NAME, ...) -您的UC连接处理下游API身份验证。

运行测试

uv run pytest -v