使用说明

项目简介

Ummon 是一个代码知识图谱构建和查询工具,它可以分析多种编程语言的代码库,构建代码实体和关系构成的知识图谱,并提供强大的查询能力。通过集成的 Model Context Protocol (MCP) 服务器,Ummon 能够作为后端服务为 AI 助手提供代码上下文信息和工具调用能力,从而增强 AI 在代码理解和辅助编程方面的表现。

主要功能点

  • 代码知识图谱构建: 索引代码库,创建代码的语义表示,识别代码实体(函数、类、模块等)及其相互关系。
  • 高级查询系统: 支持结构化查询语言和自然语言查询,可以灵活检索代码实体和关系。
  • 领域模型提取: 利用 LLM 识别代码库中的业务实体和概念,桥接技术实现和业务理解。
  • MCP 服务器: 内置 MCP 服务器,为 AI 助手提供标准化的代码知识图谱访问接口,支持工具调用和上下文信息检索。
  • 多种语言支持: 支持 Rust, Python, JavaScript, Java 等多种编程语言。

安装步骤

  1. 安装 Ummon: 确保已安装 Rust 和 Cargo 环境。在终端中运行以下命令安装 Ummon:
    cargo install ummon

服务器配置

MCP 服务器配置('server_config.json' 示例,无需用户手动创建,仅为 MCP 客户端配置参考):

{
  "serverName": "Ummon MCP Server",
  "command": "ummon",
  "args": ["serve"],
  "transport": "stdio",
  "description": "Ummon MCP 服务器,通过标准输入/输出进行通信。"
}

配置说明:

  • 'serverName': MCP 服务器的名称,可以自定义。
  • 'command': 启动 MCP 服务器的命令,这里是 'ummon'。
  • 'args': 启动命令的参数,使用 'serve' 参数启动 MCP 服务器。
  • 'transport': 指定通信协议为 'stdio' (标准输入/输出),Ummon MCP 服务器支持 stdio, SSE, WebSocket 等多种协议,这里使用 stdio。
  • 'description': 对该服务器配置的描述信息。

MCP 客户端配置:

MCP 客户端需要配置上述 'server_config.json' 文件,以连接到 Ummon MCP 服务器。具体的配置方法请参考 MCP 客户端(如 MCP Inspector)的文档。客户端通常需要指定服务器的启动命令 ('command' 和 'args') 以及通信协议 ('transport')。

基本使用方法

  1. 索引代码库: 使用 'ummon index' 命令索引您的代码库,例如:

    ummon index /path/to/your/codebase

    这将分析指定路径下的代码,并构建知识图谱存储在本地数据库 'ummon.db' 中。

  2. 启动 MCP 服务器: 运行 'ummon serve' 命令启动 MCP 服务器:

    ummon serve

    服务器默认使用标准输入/输出 (stdio) 进行通信,可以与 MCP 客户端(如 MCP Inspector)连接。

  3. 使用 MCP 客户端连接: 使用 MCP 客户端工具(例如 MCP Inspector)连接到 Ummon MCP 服务器。在 MCP Inspector 中,配置服务器启动命令为 'ummon serve',并选择 'stdio' 传输协议。

  4. AI 助手交互: 连接成功后,AI 助手可以通过 MCP 协议与 Ummon 服务器交互,利用 'search_code', 'get_entity', 'debug_graph' 等工具查询代码知识图谱,从而理解代码结构和功能。

注意事项

  • Ummon 项目尚处于早期开发阶段,API 和功能可能不稳定。
  • 首次使用 'ummon index' 命令会创建 'ummon.db' 数据库文件。
  • 运行 'ummon serve' 后,服务器在前台运行,需要保持终端窗口开启。

信息

分类

开发者工具