OSDU MCP服务器
一种模型上下文协议(MCP)服务器,为AI助手提供对OSDU平台功能的访问。
目的
该服务器使AI助手能够通过MCP协议与OSDU平台服务进行交互,包括搜索、数据管理和模式操作。
安装
# Clone the repository
git clone
cd osdu-mcp-server
# Install using uv (recommended)
uv sync
uv pip install -e '.[dev]'配置
要使用OSDU MCP服务器,请通过MCP客户端的配置文件进行配置:
{
"mcpServers": {
"osdu-mcp-server": {
"type": "stdio",
"command": "uv",
"args": ["run", "osdu-mcp-server"],
"env": {
"OSDU_MCP_SERVER_URL": "https://your-osdu.com",
"OSDU_MCP_SERVER_DATA_PARTITION": "your-partition",
"AZURE_CLIENT_ID": "your-client-id",
"AZURE_TENANT_ID": "your-tenant"
}
}
}
}身份验证方法
默认情况下,身份验证是通过Azure CLI处理的。您必须使用登录 az login 在运行服务器之前:
要启用服务主体身份验证,请添加可选 AZURE_CLIENT_SECRET 环境变量:。
写入操作
默认情况下,任何服务的写入操作(创建、更新)都是禁用的,您必须显式启用它们:
"env": {
"OSDU_MCP_ENABLE_WRITE_MODE": "true"
}删除操作
默认情况下,删除和清除操作是单独控制和禁用的:
"env": {
"OSDU_MCP_ENABLE_DELETE_MODE": "true"
}这种双重保护允许您启用数据创建和更新,同时严格控制破坏性操作。
日志记录配置
MCP服务器使用以下结构化JSON日志记录 ADR-016。默认情况下,由于冗长,日志记录被禁用。您可以通过设置来启用它:
"env": {
"OSDU_MCP_LOGGING_ENABLED": "true",
"OSDU_MCP_LOGGING_LEVEL": "INFO" // Optional, defaults to INFO
}有效的日志记录级别:调试、信息、警告、错误、严重
用法
健康检查
osdu:health_check这将返回OSDU平台的运行状况,检查身份验证和所有服务(存储、搜索、法律、模式、文件、工作流、权限和数据集)的可用性。
可用工具
基础
- 健康检查:检查OSDU平台连接和服务运行状况
分区服务
- partition_list:列出所有可访问的OSDU分区
- 分割集:检索特定分区的配置
- 分区_创建:创建新分区(写保护)
- 分区更新:更新分区属性(写保护)
- 分区_删除:删除分区(写保护)
权利服务
- 实体_我的:获取当前已验证用户的组
法律服务
- legaltag_list:列出所有合法标签
- legaltag_get:获取特定的法律标签
- 法律条款:获取允许的属性值
- legalta_search:使用筛选器搜索合法标签
- legalta_batch_retrieve:一次获取多个标签
- legaltag_create:创建新的合法标签(写保护)
- legaltag_update:更新合法标签(写保护)
- legalta_delete:删除合法标签(删除受保护)
架构服务
- schema_list:列出具有可选筛选的可用架构
- schema_get:按ID检索完整的架构
- schema_search:具有丰富过滤和文本搜索功能的高级模式发现
- schema_create:创建新架构(写保护)
- schema_update:更新现有架构(写保护)
高级架构搜索
这 schema_search 该工具为发现模式提供了强大的功能:
# Find all schemas containing "pressure" in their description
schema_search(text="pressure", search_in=["description"])
# Get all schemas with version 1.1.* across any authority
schema_search(version_pattern="1.1.*")
# Search for schemas with specific combinations of properties
schema_search(
filter={
"authority": ["osdu", "lab"],
"status": ["PUBLISHED"],
"scope": "SHARED"
}
)
# Include full schema content in results
schema_search(include_content=True)存储服务
- 存储_创建_更新_记录:创建或更新记录(写保护)
- 存储_记录:按ID获取记录的最新版本
- 存储_记录_版本:获取记录的特定版本
- 存储列表记录版本:列出记录的所有版本
- storage_query_records_by_ind:获取特定类型的记录ID
- 存储_蚀刻_记录:一次检索多条记录
- storage_delete_record:逻辑上删除记录(删除受保护)
- storage_purge_record:永久删除记录(删除受保护)
存储操作和保护
存储服务为不同类型的操作实施了两个级别的保护:
- 写入操作 (创建、更新):受控于
OSDU_MCP_ENABLE_WRITE_MODE=true - 删除操作 (删除、清除):受控于
OSDU_MCP_ENABLE_DELETE_MODE=true
这提供了对数据生命周期操作的精细控制,允许环境允许数据创建,同时防止删除。
高级别路线图
- 第2阶段(已完成):分割、法律和权利服务
- 第3阶段(已完成):架构服务和高级搜索功能
- 第4阶段(已完成):存储服务和数据验证
- 第5阶段(未来):高级功能和集成
文档
项目开发
这是一个人工智能开发的项目,使用人工智能编码工具来加速开发,同时努力保持高质量标准。阅读 案例研究 深入研究发现有效的方法。
