Token导航 LogoToken导航TokenDH.com
MCP osgi logo
开发工具未说明官方级别未说明来源级核验

MCP osgi

MCP Server

一个专为OSGi环境提供工具的MCP服务器,用于GitHub Copilot编码代理的仓库范围代理模式。

工具数

3

提示词数

0

GitHub Stars

0

资源数

0
JavaAI代理GitHub Copilot

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

laeubi

提供方

laeubi

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

mcp_osgi

一个专用于在OSGi环境中提供有用工具的MCP服务器

🎯 主要用例:此MCP服务器专为 GitHub复制品编码代理 在存储库范围的代理模式下。代理在GitHub Actions中运行,并通过HTTP/SSE传输连接到服务器。
📖 文档: 用MCP扩展编码代理
备注:此项目现在使用 官方MCP Java SDK (v0.14.1)而不是自制程序实现。这提供了一个标准化的、生产就绪的模型上下文协议实现,具有更好的可维护性和功能支持。

引言

什么是MCP?

模型上下文协议(MCP)是一种开放协议,可实现LLM应用程序与外部数据源和工具之间的无缝集成。MCP提供:

  • 标准化集成:将人工智能助手与各种工具和数据源连接的通用协议
  • 工具曝光:一种公开AI代理可以发现和调用的工具的方法
  • 双向通信:基于JSON-RPC 2.0的客户端-服务器通信协议
  • 丰富的功能:支持具有结构化模式的资源、提示和工具

MCP对于GitHub Copilot Coding Agents等AI工作流特别有用,这些工作流可以使用MCP服务器访问专用工具和特定领域的功能。

什么是OSGi?

OSGi(开放服务网关倡议)是一个用于开发和部署模块化软件程序和库的Java框架。主要特征包括:

  • 模块化:应用程序由可重用的包(带元数据的JAR文件)构建
  • 动态服务模型:服务可以在运行时动态安装、启动、停止、更新和卸载
  • 版本控制:具有版本范围的复杂依赖关系管理
  • 服务注册中心:用于组件之间松耦合的动态服务注册表
  • 生命周期管理:完全控制捆绑包生命周期

OSGi广泛应用于企业应用程序、IDE平台(如Eclipse)和嵌入式系统。

前期工作和用例

当前实施状态

该项目提供了一个示例MCP服务器实现,该实现通过MCP协议公开了与OSGi相关的工具,使AI代理能够与OSGi环境交互。

实施的示例工具:

  • hello_osgi -一个演示工具,显示OSGi环境下MCP服务器的基本功能
  • bundle_info -分析JAR或MANIFEST。MF文件,以确定它们是否是OSGi捆绑包并返回元数据
  • find -搜索OSGi包、捆绑包或功能,并返回下载信息

用于MCP暴露的潜在OSGi工具

以下OSGi工具和命令对于通过MCP进行人工智能辅助开发非常有价值:

捆绑包管理

  • list_bundles -列出所有已安装的捆绑包及其状态、版本和符号名称
  • bundle_info -获取特定捆绑包的详细信息
  • install_bundle -从URL或本地路径安装新捆绑包
  • start_bundle -启动特定捆绑包
  • stop_bundle -停止特定捆绑包
  • update_bundle -更新现有捆绑包
  • 卸载捆绑包 -卸载捆绑包

服务管理

  • list_services -列出所有已注册的OSGi服务
  • service_info -获取有关服务的详细信息(接口、属性、使用捆绑包)
  • 服务引用 -查找与筛选器匹配的服务引用

相关性分析

  • check_dependency -分析捆绑包依赖关系并确定缺失的需求
  • 为什么没有解决 -诊断捆绑包未解决的原因
  • 包装布线 -显示线束之间的包装接线
  • 能力要求 -分析捆绑包功能和需求

配置和管理

  • list_configurations -列出配置管理配置
  • getconfig配置 -检索特定配置
  • update_configuration -更新配置属性
  • 删除配置 -删除配置

诊断和故障排除

  • 诊断框架 -获取OSGi框架状态和诊断
  • 联邦首脑 -显示捆绑清单标题
  • bundle_classpath -显示捆绑包类路径条目
  • find_class -查找导出特定类/包的捆绑包

构建与开发

  • resolve_bundles -尝试解析捆绑包
  • refresh_bundles -刷新线束布线
  • validate_manifest -验证捆绑包清单文件
  • 生成清单 -从Maven/Gradle元数据生成OSGi清单

人工智能辅助开发的好处

通过MCP公开OSGi工具,AI编码代理可以:

  1. 了解OSGi应用程序:分析捆绑包结构、依赖关系和服务关系
  2. 解决问题:诊断捆绑包解析问题、缺少依赖项和配置问题
  3. 自动化任务:执行常规OSGi管理任务,如安装、启动和配置捆绑包
  4. 生成代码:使用正确的清单和元数据创建结构正确的OSGi捆绑包
  5. 提供指导:根据实际OSGi框架状态提供上下文感知建议

示例:Hello OSGi MCP服务器

此存储库包括一个基于Maven的示例MCP服务器,演示了如何:

  1. 使用设置Java MCP服务器 官方MCP Java SDK
  2. 通过MCP协议定义和公开工具
  3. 使用OSGi上下文实现工具处理程序
  4. 支持多种传输模式:stdio和HTTP以及SSE(服务器发送事件)

服务器使用官方 MCP Java SDK v0.14.1 其提供:

  • 模型上下文协议的标准化实施
  • 用于进程间通信的内置stdio传输
  • 用于基于服务器的部署的HTTP/SSE传输
  • Project Reactor的异步服务器功能
  • JSON模式验证和工具注册API

建立和运行

# Build the project
mvn clean package

服务器支持两种传输模式:

  • stdio模式 (默认):通过JSON-RPC 2.0在stdin/stdout上进行通信。可用于本地测试和开发。
  • 服务器模式:使用SSE(服务器发送事件)传输运行嵌入式HTTP服务器。 这是GitHub Copilot编码代理使用的模式。
备注GitHub Copilot Coding Agent会自动构建并启动服务器,无需手动运行。以下命令仅用于本地开发和测试。
# Run the MCP server in stdio mode (for local testing)
java -jar target/mcp-osgi-server-1.0.0-SNAPSHOT.jar

# Run the MCP server in server mode (for testing GitHub Copilot configuration locally)
java -jar target/mcp-osgi-server-1.0.0-SNAPSHOT.jar server 3000

与GitHub Copilot编码代理一起使用

此MCP服务器设计用于 GitHub复制品编码代理 在存储库范围的代理模式下,代理在GitHub Actions中运行,可以通过MCP服务器访问自定义工具。

📖 官方文件: 用MCP扩展编码代理

运作原理

  1. 导航 转到GitHub.com上的存储库
  2. 调用 从web界面访问GitHub Copilot编码代理
  3. 自动设置:代理自动:

- 运行 .github/workflows/copilot-setup-steps.yml 构建服务器的工作流 - 使用中的配置以HTTP/SSE模式启动服务器 .mcp/config.json - 通过SSE(服务器发送事件)传输连接到服务器 - 使所有注册的工具可供Copilot代理使用

配置文件

.mcp/config.json -GitHub Copilot编码代理的MCP服务器配置:

{
  "mcpServers": {
    "osgi": {
      "command": "java",
      "args": ["-jar", "/home/runner/tools/osgi_mcp/server.jar", "server", "3000"],
      "url": "http://localhost:3000/mcp/sse"
    }
  }
}

.github/workflows/copilot-setup-steps.yml -构建MCP服务器JAR并将其部署到预期位置的工作流。

⚠️ 重要:这些文件是专门为GitHub Copilot编码代理环境配置的。工作流作业和步骤名称必须符合GitHub的要求,除非明确需要,否则不应进行修改。

可用工具

服务器向Copilot代理公开以下工具:

  • hello_osgi -展示MCP服务器基本功能的演示工具
  • bundle_info -分析JAR或MANIFEST。MF文件,以确定它们是否是OSGi捆绑包
  • find -搜索OSGi包、捆绑包或功能,并返回下载信息

有关配置的更多详细信息,请参阅 .mcp/README.md.

______________________________________________________________________

本地开发和测试

虽然此服务器主要是为GitHub Copilot Coding Agent设计的,但您也可以在本地运行它进行开发和测试。

在本地运行服务器

# Build the project
mvn clean package

# Run in stdio mode (default - for command-line testing)
java -jar target/mcp-osgi-server-1.0.0-SNAPSHOT.jar

# Run in server mode (HTTP/SSE - for testing the GitHub Copilot configuration locally)
java -jar target/mcp-osgi-server-1.0.0-SNAPSHOT.jar server 3000

使用stdio模式进行测试

在stdio模式下,服务器通过JSON-RPC 2.0通过stdin/stdout进行通信:

# Start the server and pipe a test request
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","clientInfo":{"name":"test","version":"1.0"}}}' | java -jar target/mcp-osgi-server-1.0.0-SNAPSHOT.jar

使用服务器模式(HTTP/SSE)进行测试

在服务器模式下,服务器运行一个具有SSE传输的HTTP服务器:

# Start the server
java -jar target/mcp-osgi-server-1.0.0-SNAPSHOT.jar server 3000

# In another terminal, test the SSE endpoint
curl http://localhost:3000/mcp/sse
备注:stdio模式对于本地测试和开发很有用,但是 它没有被使用 GitHub Copilot编码代理。GitHub代理仅使用中配置的HTTP/SSE服务器模式 .mcp/config.json.

项目结构

mcp_osgi/
├── .github/
│   ├── workflows/
│   │   ├── pr-verification.yml              # CI workflow for PR verification
│   │   └── copilot-setup-steps.yml          # Setup steps for Copilot Coding Agent
│   └── copilot-instructions.md              # GitHub Copilot instructions
├── src/
│   ├── main/
│   │   └── java/
│   │       └── io/github/laeubi/mcp/osgi/
│   │           └── OsgiMcpServer.java       # Main MCP server implementation
│   └── test/
│       └── java/
│           └── io/github/laeubi/mcp/osgi/
│               ├── OsgiMcpServerTest.java          # Tests for stdio mode
│               └── OsgiMcpServerModeTest.java      # Tests for server mode
├── pom.xml                                  # Maven build configuration
├── local-development-config-example.json    # Example config for local stdio testing (NOT for GitHub Copilot)
├── .gitignore                               # Git ignore patterns
├── README.md                                # This file
└── LICENSE                                  # Eclipse Public License 2.0

关键文件

  • OsgiMcpServer.java:使用官方MCP Java SDK的主要MCP服务器实现,该SDK公开了OSGi工具(hello_osgi, bundle_info, find)
  • pom.xml文件:Maven配置,带有MCP Java SDK(v0.14.1)和SLF4J(日志)的依赖关系
  • 本地开发配置example.json:本地测试的stdio配置示例(不适用于GitHub Copilot)
  • 复印机设置步骤.yml:用于在Copilot Coding Agent中设置环境的GitHub操作工作流

实现细节

服务器实现利用了官方的MCP Java SDK:

  1. 传输层:用途 StdioServerTransportProvider 用于基于stdio的通信
  2. 服务器类型:内置 McpServer.async() 用于非阻塞异步操作
  3. 工具注册:使用SDK注册工具 toolCall() 具有正确模式定义的方法
  4. JSON处理:使用SDK内置的Jackson集成进行JSON序列化
  5. 响应式流:工具处理程序返回 Mono 用于反应性加工

贡献

欢迎投稿!请随时通过以下方式提交拉取请求:

  • 用于MCP暴露的其他OSGi工具
  • 对现有工具的改进
  • 文档增强
  • 错误修复

许可证

此项目在Eclipse Public License 2.0下获得许可-请参阅 许可证 文件以获取详细信息。

目录标签

目录标签

JavaAI代理GitHub CopilotOSGi工具本地部署MCP服务器GitHubCopilot编码代理AI辅助开发

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

3

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP