OpenMetadata MCP
通过封装其REST API以通过模型上下文协议进行标准化交互,从而实现与OpenMetadata的集成。
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"mcp-server-openmetadata": {
"args": [
"mcp-server-openmetadata"
],
"command": "uvx",
"env": {
"OPENMETADATA_HOST": "https://your-openmetadata-host",
"OPENMETADATA_PASSWORD": "your-password",
"OPENMETADATA_USERNAME": "your-username"
}
}
}
}
该服务需要配置环境变量:OPENMETADATA_HOST、OPENMETADATA_JWT_TOKEN、OPENMETADATA_PASSWORD、OPENMETADATA_USERNAME
服务介绍
mcp-server-openmetadata
一个用于OpenMetadata的模型上下文协议(MCP)服务器实现,使MCP客户端能够无缝集成。该项目提供了一种通过模型上下文协议与OpenMetadata交互的标准方式。
关于
此项目实现了模型上下文协议服务器,该服务器封装了OpenMetadata的REST API,允许MCP客户端以标准化的方式与OpenMetadata进行交互。
功能实现状态
| Feature | API Path | Status |
|---|---|---|
| Data Assets | ||
| List Databases | /api/v1/databases |
❌ |
| Get Database | /api/v1/databases/{id} |
❌ |
| Get Database by Name | /api/v1/databases/name/{fqn} |
❌ |
| Export Database | /api/v1/databases/name/{name}/export |
❌ |
| Import Database | /api/v1/databases/name/{name}/import |
❌ |
| List Tables | /api/v1/tables |
✅ |
| Get Table | /api/v1/tables/{id} |
✅ |
| Get Table by Name | /api/v1/tables/name/{fqn} |
✅ |
| Create Table | /api/v1/tables |
✅ |
| Update Table | /api/v1/tables/{id} |
✅ |
| Delete Table | /api/v1/tables/{id} |
✅ |
| Export Table | /api/v1/tables/name/{name}/export |
❌ |
| Import Table | /api/v1/tables/name/{name}/import |
❌ |
| List Metrics | /api/v1/metrics |
❌ |
| Get Metric | /api/v1/metrics/{id} |
❌ |
| List Dashboards | /api/v1/dashboards |
❌ |
| Get Dashboard | /api/v1/dashboards/{id} |
❌ |
| Get Dashboard by Name | /api/v1/dashboards/name/{fqn} |
❌ |
| List Reports | /api/v1/reports |
❌ |
| Get Report | /api/v1/reports/{id} |
❌ |
| List Pipelines | /api/v1/pipelines |
❌ |
| Get Pipeline | /api/v1/pipelines/{id} |
❌ |
| Get Pipeline by Name | /api/v1/pipelines/name/{fqn} |
❌ |
| List Topics | /api/v1/topics |
❌ |
| Get Topic | /api/v1/topics/{id} |
❌ |
| Services | ||
| List Database Services | /api/v1/services/databaseServices |
❌ |
| Get Database Service | /api/v1/services/databaseServices/{id} |
❌ |
| Get Database Service by Name | /api/v1/services/databaseServices/name/{fqn} |
❌ |
| Export Database Service | /api/v1/services/databaseServices/name/{name}/export |
❌ |
| Import Database Service | /api/v1/services/databaseServices/name/{name}/import |
❌ |
| List Dashboard Services | /api/v1/services/dashboardServices |
❌ |
| Get Dashboard Service | /api/v1/services/dashboardServices/{id} |
❌ |
| Get Dashboard Service by Name | /api/v1/services/dashboardServices/name/{fqn} |
❌ |
| Teams & Users | ||
| List Teams | /api/v1/teams |
❌ |
| Get Team | /api/v1/teams/{id} |
❌ |
| Get Team by Name | /api/v1/teams/name/{fqn} |
❌ |
| Export Team | /api/v1/teams/name/{name}/export |
❌ |
| Import Team | /api/v1/teams/name/{name}/import |
❌ |
| List Users | /api/v1/users |
❌ |
| Get User | /api/v1/users/{id} |
❌ |
| Get User by Name | /api/v1/users/name/{name} |
❌ |
| User Login | /api/v1/users/login |
❌ |
| User Logout | /api/v1/users/logout |
❌ |
| User Signup | /api/v1/users/signup |
❌ |
| Change Password | /api/v1/users/changePassword |
❌ |
| Search | ||
| Search Query | /api/v1/search/query |
❌ |
| Search Suggest | /api/v1/search/suggest |
❌ |
| Search Aggregate | /api/v1/search/aggregate |
❌ |
| Field Query | /api/v1/search/fieldQuery |
❌ |
| Get Document | /api/v1/search/get/{index}/doc/{id} |
❌ |
| Tags & Classifications | ||
| List Tags | /api/v1/tags |
❌ |
| Get Tag | /api/v1/tags/{id} |
❌ |
| Get Tag by Name | /api/v1/tags/name/{fqn} |
❌ |
| Lineage | ||
| Get Lineage | /api/v1/lineage/getLineage |
❌ |
| Export Lineage | /api/v1/lineage/export |
❌ |
| Get Entity Lineage by Name | /api/v1/lineage/{entity}/name/{fqn} |
❌ |
| Get Entity Lineage by ID | /api/v1/lineage/{entity}/{id} |
❌ |
| Get Lineage Edge | /api/v1/lineage/getLineageEdge/{fromId}/{toId} |
❌ |
| Add/Update Lineage | /api/v1/lineage |
❌ |
| Add/Update Lineage by FQN | /api/v1/lineage/{fromEntity}/name/{fromFQN}/{toEntity}/name/{toFQN} |
❌ |
| Add/Update Lineage by ID | /api/v1/lineage/{fromEntity}/{fromId}/{toEntity}/{toId} |
❌ |
| Glossaries | ||
| List Glossaries | /api/v1/glossaries |
❌ |
| Get Glossary | /api/v1/glossaries/{id} |
❌ |
| Get Glossary by Name | /api/v1/glossaries/name/{fqn} |
❌ |
| Export Glossary | /api/v1/glossaries/name/{name}/export |
❌ |
| Import Glossary | /api/v1/glossaries/name/{name}/import |
❌ |
| List Glossary Terms | /api/v1/glossaryTerms |
❌ |
| Get Glossary Term | /api/v1/glossaryTerms/{id} |
❌ |
| Get Glossary Term by Name | /api/v1/glossaryTerms/name/{fqn} |
❌ |
| Add Assets to Term | /api/v1/glossaryTerms/{id}/assets/add |
❌ |
| Remove Assets from Term | /api/v1/glossaryTerms/{id}/assets/remove |
❌ |
| Validate Term Tags | /api/v1/glossaryTerms/{id}/tags/validate |
❌ |
| Usage | ||
| Get Entity Usage by Name | /api/v1/usage/{entity}/name/{fqn} |
❌ |
| Get Entity Usage by ID | /api/v1/usage/{entity}/{id} |
❌ |
设置
环境变量
设置以下认证方法之一:
令牌认证(推荐)
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 中添加以下内容,选择其中一种认证方法:
令牌认证(推荐)
{
"mcpServers": {
"mcp-server-openmetadata": {
"command": "uvx",
"args": ["mcp-server-openmetadata"],
"env": {
"OPENMETADATA_HOST": "https://your-openmetadata-host",
"OPENMETADATA_JWT_TOKEN": "your-jwt-token"
}
}
}
}
基本认证
{
"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 的替代配置方法:
令牌认证(推荐)
{
"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"
}
}
}
}
基本认证
{
"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 替换为你克隆仓库的实际路径。
手动执行
你也可以手动运行服务器:
python src/server.py
选项:
--port: 监听 SSE 的端口(默认:8000)--transport: 传输类型(stdio/sse,默认:stdio)
贡献
欢迎贡献!请随时提交 Pull Request。
许可证
MIT 许可证