oslc mcp服务器
A. 模型上下文协议 (MCP)服务器,连接到任何OSLC 3.0服务器,发现其功能,并将其作为MCP工具和资源公开,用于LLM驱动的CRUD操作。
此模块是 用于第三方OSLC服务器的AAKI网桥 --当它们本身没有嵌入MCP时,将它们暴露为AI可寻址的知识库。看 AAKI框架 对于建筑背景。
问题
AI助手不能直接与OSLC服务器交互。该模块通过在启动时动态发现OSLC服务器的服务提供商、创建工厂、查询功能和资源形状,然后将它们作为任何兼容MCP的AI助手都可以调用的类型化MCP工具公开,从而弥合了这一差距。
先决条件
- v22或更高版本
- 正在运行的OSLC 3.0服务器(例如,此工作区中的OSLC服务器或mrm服务器)
构建
cd oslc-mcp-server
npm install
npm run build配置
服务器通过CLI参数或环境变量接受配置(CLI覆盖env):
| CLI参数 | 环境变量 | 描述 |
|---|---|---|
--server | OSLC_SERVER_URL | 必修的。 OSLC服务器的基本URL |
--catalog | OSLC_CATALOG_URL | 目录URL(默认为 {server}/oslc/catalog) |
--username | OSLC_USERNAME | 经过身份验证的服务器的用户名 |
| `--password | ||
| ` | OSLC_PASSWORD | 经过身份验证的服务器的密码 |
跑步
首先启动您的OSLC服务器,然后:
node dist/index.js --server http://localhost:3002 --catalog http://localhost:3002/oslc服务器使用MCP协议通过stdio进行通信。要将其与Claude Code一起使用,请将其添加到MCP服务器配置中:
{
"mcpServers": {
"oslc": {
"command": "node",
"args": ["path/to/oslc-mcp-server/dist/index.js", "--server", "http://localhost:3002", "--catalog", "http://localhost:3002/oslc"]
}
}
}它做什么
启动时,服务器:
- 连接到OSLC服务器的服务提供商目录
- 遍历所有服务提供商,收集创建工厂、查询功能和资源形状
- 从每个创建工厂和查询功能生成每种类型的MCP工具(例如。,
create_programs,query_services) - 注册通用CRUD工具(
get_resource,update_resource,delete_resource,list_resource_types,query_resources) - 将目录、词汇表和资源形状作为LLM上下文的MCP资源公开
MCP工具
每种类型的工具 (从发现中动态生成):
create_--创建该类型的资源。输入模式来源于OSLC资源形状,具有适当的类型、描述、必填字段和允许值。query_--使用查询该类型的资源oslc.where,oslc.select,以及oslc.orderBy参数。
通用工具 (始终可用):
get_resource--通过URI获取任何OSLC资源update_resource--更新现有资源的属性(使用ETag进行并发)delete_resource--按URI删除资源list_resource_types--列出所有已发现的资源类型及其工厂和属性query_resources--使用查询功能URL查询任何资源类型
MCP资源
oslc://catalog--服务提供商目录摘要(提供商、工厂、查询功能)oslc://vocabulary--资源类型及其关系oslc://shapes--每种资源类型的属性定义(名称、类型、基数)
建筑
oslc-mcp-server/src/
├── index.ts CLI entry point, arg parsing, startup orchestration
├── server.ts MCP Server setup, tool/resource registration, stdio transport
├── discovery.ts Walks OSLC catalog, collects shapes/factories/queries
├── schema.ts Converts OSLC resource shapes to JSON Schema
├── resources.ts MCP resource definitions (catalog/vocabulary/shapes)
├── types.ts Shared TypeScript interfaces
├── oslc-client.d.ts Type declarations for oslc-client
└── tools/
├── generic.ts Handlers for generic CRUD tools
└── factory.ts Generates per-type tool definitions from discovery许可证
根据Apache许可证2.0版授权。有关详细信息,请参阅工作区根许可证。
