MIT License
5
最近更新:5个月前

通过封装OpenMetadata的REST API实现集成,以便通过模型上下文协议(Model Context Protocol)进行标准化交互。

mcp-server-openmetadata

一个为 OpenMetadata 实现的模型上下文协议 (MCP) 服务器,实现与 MCP 客户端的无缝集成。该项目提供了通过模型上下文协议与 OpenMetadata 交互的标准化方式。

Server for OpenMetadata MCP server

关于

本项目实现了一个 Model Context Protocol 服务器,封装了 OpenMetadata 的 REST API,允许 MCP 客户端以标准化方式与 OpenMetadata 交互。

功能实现状态

功能 API 路径 状态
数据资产
列出数据库 /api/v1/databases
获取数据库 /api/v1/databases/{id}
按名称获取数据库 /api/v1/databases/name/{fqn}
导出数据库 /api/v1/databases/name/{name}/export
导入数据库 /api/v1/databases/name/{name}/import
列出表 /api/v1/tables
获取表 /api/v1/tables/{id}
按名称获取表 /api/v1/tables/name/{fqn}
创建表 /api/v1/tables
更新表 /api/v1/tables/{id}
删除表 /api/v1/tables/{id}
导出表 /api/v1/tables/name/{name}/export
导入表 /api/v1/tables/name/{name}/import
列出指标 /api/v1/metrics
获取指标 /api/v1/metrics/{id}
列出仪表板 /api/v1/dashboards
获取仪表板 /api/v1/dashboards/{id}
按名称获取仪表板 /api/v1/dashboards/name/{fqn}
列出报表 /api/v1/reports
获取报表 /api/v1/reports/{id}
列出管道 /api/v1/pipelines
获取管道 /api/v1/pipelines/{id}
按名称获取管道 /api/v1/pipelines/name/{fqn}
列出主题 /api/v1/topics
获取主题 /api/v1/topics/{id}
服务
列出数据库服务 /api/v1/services/databaseServices
获取数据库服务 /api/v1/services/databaseServices/{id}
按名称获取数据库服务 /api/v1/services/databaseServices/name/{fqn}
导出数据库服务 /api/v1/services/databaseServices/name/{name}/export
导入数据库服务 /api/v1/services/databaseServices/name/{name}/import
列出仪表板服务 /api/v1/services/dashboardServices
获取仪表板服务 /api/v1/services/dashboardServices/{id}
按名称获取仪表板服务 /api/v1/services/dashboardServices/name/{fqn}
团队与用户
列出团队 /api/v1/teams
获取团队 /api/v1/teams/{id}
按名称获取团队 /api/v1/teams/name/{fqn}
导出团队 /api/v1/teams/name/{name}/export
导入团队 /api/v1/teams/name/{name}/import
列出用户 /api/v1/users
获取用户 /api/v1/users/{id}
按名称获取用户 /api/v1/users/name/{name}
用户登录 /api/v1/users/login
用户注销 /api/v1/users/logout
用户注册 /api/v1/users/signup
更改密码 /api/v1/users/changePassword
搜索
搜索查询 /api/v1/search/query
搜索建议 /api/v1/search/suggest
搜索聚合 /api/v1/search/aggregate
字段查询 /api/v1/search/fieldQuery
获取文档 /api/v1/search/get/{index}/doc/{id}
标签与分类
列出标签 /api/v1/tags
获取标签 /api/v1/tags/{id}
按名称获取标签 /api/v1/tags/name/{fqn}
血缘
获取血缘 /api/v1/lineage/getLineage
导出血缘 /api/v1/lineage/export
按名称获取实体血缘 /api/v1/lineage/{entity}/name/{fqn}
按 ID 获取实体血缘 /api/v1/lineage/{entity}/{id}
获取血缘边 /api/v1/lineage/getLineageEdge/{fromId}/{toId}
添加/更新血缘 /api/v1/lineage
按 FQN 添加/更新血缘 /api/v1/lineage/{fromEntity}/name/{fromFQN}/{toEntity}/name/{toFQN}
按 ID 添加/更新血缘 /api/v1/lineage/{fromEntity}/{fromId}/{toEntity}/{toId}
术语表
列出术语表 /api/v1/glossaries
获取术语表 /api/v1/glossaries/{id}
按名称获取术语表 /api/v1/glossaries/name/{fqn}
导出术语表 /api/v1/glossaries/name/{name}/export
导入术语表 /api/v1/glossaries/name/{name}/import
列出术语 /api/v1/glossaryTerms
获取术语 /api/v1/glossaryTerms/{id}
按名称获取术语 /api/v1/glossaryTerms/name/{fqn}
向术语添加资产 /api/v1/glossaryTerms/{id}/assets/add
从术语移除资产 /api/v1/glossaryTerms/{id}/assets/remove
验证术语标签 /api/v1/glossaryTerms/{id}/tags/validate
使用情况
按名称获取实体使用情况 /api/v1/usage/{entity}/name/{fqn}
按 ID 获取实体使用情况 /api/v1/usage/{entity}/{id}

设置

环境变量

设置以下认证方式之一:

Token 认证 (推荐)

复制代码
OPENMETADATA_HOST=<your-openmetadata-host>
OPENMETADATA_JWT_TOKEN=<your-jwt-token>

基本认证

复制代码
OPENMETADATA_HOST=<your-openmetadata-host>
OPENMETADATA_USERNAME=<your-username>
OPENMETADATA_PASSWORD=<your-password>

与 Claude Desktop 一起使用

将以下内容添加到您的 claude_desktop_config.json 中,使用以下认证方式之一:

Token 认证 (推荐)

json 复制代码
{
  "mcpServers": {
    "mcp-server-openmetadata": {
      "command": "uvx",
      "args": ["mcp-server-openmetadata"],
      "env": {
        "OPENMETADATA_HOST": "https://your-openmetadata-host",
        "OPENMETADATA_JWT_TOKEN": "your-jwt-token"
      }
    }
  }
}

基本认证

json 复制代码
{
  "mcpServers": {
    "mcp-server-openmetadata": {
      "command": "uvx",
      "args": ["mcp-server-openmetadata"],
      "env": {
        "OPENMETADATA_HOST": "https://your-openmetadata-host",
        "OPENMETADATA_USERNAME": "your-username",
        "OPENMETADATA_PASSWORD": "your-password"
      }
    }
  }
}

替代配置使用 uv

Token 认证 (推荐)

json 复制代码
{
  "mcpServers": {
    "mcp-server-openmetadata": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-server-openmetadata",
        "run",
        "mcp-server-openmetadata"
      ],
      "env": {
        "OPENMETADATA_HOST": "https://your-openmetadata-host",
        "OPENMETADATA_JWT_TOKEN": "your-jwt-token"
      }
    }
  }
}

基本认证

json 复制代码
{
  "mcpServers": {
    "mcp-server-openmetadata": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/mcp-server-openmetadata",
        "run",
        "mcp-server-openmetadata"
      ],
      "env": {
        "OPENMETADATA_HOST": "https://your-openmetadata-host",
        "OPENMETADATA_USERNAME": "your-username",
        "OPENMETADATA_PASSWORD": "your-password"
      }
    }
  }
}

/path/to/mcp-server-openmetadata 替换为您克隆存储库的实际路径。

手动执行

您也可以手动运行服务器:

bash 复制代码
python src/server.py

选项:

  • --port: 监听 SSE 的端口 (默认: 8000)
  • --transport: 传输类型 (stdio/sse, 默认: stdio)

贡献

欢迎贡献!请随时提交 Pull Request。

许可证

MIT 许可证