Omen MCP 服务器端
这是一个 MCP 服务器的实现,用来向 LLM 客户端提供代码分析相关的工具与上下文信息。
-
项目简介
- Omen 是一个多语言代码分析工具,集成了一个 MCP 服务器,用以通过统一的 MCP 协议向 LLM 客户端暴露分析工具、资源访问和提示模板等能力,LLM 可以通过工具调用来获取代码分析结果、依赖关系、Prompts 等上下文信息。
- MCP 服务端通过命令启动,支持以标准输入/输出(Stdio)等传输方式与客户端通信,并实现资源管理、工具执行、Prompt 渲染等核心能力。
- 服务器端负责注册可用工具、执行分析任务、渲染提示模板,以及管理会话和能力声明。
-
主要功能点
- MCP 工具注册与执行:将 Omen 的多种分析器(如复杂度、SATD、热点、克隆、图谱等)暴露为 MCP 工具,LLM 客户端可通过 JSON-RPC 调用这些工具。
- 资源与数据访问:提供对代码库资源的统一访问能力,支持多语言解析与跨语言分析。
- Prompt 模板与上下文渲染:为 LLM 提供可自定义的 Prompt 模板,以生成符合上下文的交互。
- 多传输协议支持:服务器端实现了基于 Stdio 的通信,并在设计上支持 SSE、WebSocket 等传输方式以扩展使用场景。
- 会话与能力声明:实现对会话、能力的声明,以及对工具集的注册、查询与执行能力的管理。
- 与 Claude、Claude Code 等 LLM 的无缝集成:方便将 Omen 作为外部分析引擎接入到各类大模型工作流中。
-
安装与运行
- 依赖与构建:在有 Rust 环境的系统上,通过 Cargo 构建并安装,获取 omen-cli 二进制。
- 启动 MCP 服务器:运行 omen mcp 即可启动 MCP 服务器,在标准输入输出传输模式下与 MCP 客户端对接。
- 远程与容器化使用:仓库提供 Docker 镜像与 Homebrew/Cargo 安装方式,便于在本地或 CI/CD 中使用。
-
服务器配置(MCP 客户端需要的最小信息)
- 用于 Claude Desktop/Claude Code 等客户端的连接信息示例(JSON 结构,字段含义如下,不作为代码展示): { "name": "omen-mcp", "server": "omen", "command": "omen", "args": ["mcp"], "description": "Omen MCP 服务端,用于提供资源、工具和提示模板给 LLM 客户端调用", "transport": ["stdio"] }
- 说明:name 用于在客户端中标识该 MCP 服务器;command 指定启动 MCP 服务器的可执行文件名;args 提供启动参数(此处为 mcp,表示以 MCP 模式启动服务器)。客户端并不需要额外的服务器实现细节,只需要按照该格式配置好连接即可。
-
基本使用方法(简易示例)
- 启动服务器:在命令行执行 omen mcp,服务器以 MCP 模式启动,等待来自 LLM 客户端的请求。
- 客户端接入:在 Claude/Claude Code 等工具中添加一个 MCP 服务器条目,使用上述配置的 name、command、args 即可连接。
- 通过 MCP 调用示例(由客户端执行,服务器端响应):
- 请求类型包括读取资源、执行工具、获取 Prompt 等,服务器返回对应的 JSON-RPC 响应。
- 传输协议扩展:若客户端支持 SSE、WebSocket 等传输,服务器设计上可在未来扩展相应实现,以实现非阻塞、流式通信。
-
使用注意
- MCP 服务器作为后端分析服务,适合与 LLM 工作流对接,提供系统化的分析能力与上下文服务。
- 服务器侧会话和能力声明由实现方维护,确保工具集合和返回格式符合 MCP 规范。