loko MCP 服务器端实现

使用说明(Markdown 格式)

  • 项目简介

    • loko 的 MCP 服务器实现为 LLM 客户端提供结构化的上下文服务,核心职责包括托管资源、注册并执行工具,以及定义与渲染提示模板。它通过 JSON-RPC 与客户端通信,使用标准输入/输出传输数据,便于将后端能力暴露给各种 LLM 客户端。
  • 主要功能点

    • MCP 协议核心能力:实现初始化握手、工具列表查询、工具调用等基础请求/响应流程。
    • 工具注册与执行:允许服务器注册多个工具,为 LLM 客户端提供可调用的外部功能。
    • JSON-RPC 通信:严格按照 MCP 的 JSON-RPC 2.0 风格处理请求并返回响应。
    • 服务器端口与输入输出:基于 stdio 实现,便于与任何客户端通过管道连接。
    • 服务器端集成能力:与 loko 的系统/组件/容器 图谱及 DIAGRAM 渲染组件协同工作,支持多工具、多系统场景。
    • 可扩展性:工具可通过注册扩展,支持后续增加新的 MCP 功能。
  • 安装步骤

    1. 获取源码并进入项目目录。
    2. 构建可执行程序,例如使用 Go 构建得到一个可执行的 MCP 服务端。
    3. 以命令行形式启动 MCP 服务器,指定所需的项目根目录等参数。
  • 服务器配置(MCP 客户端配置所需信息) 说明:MCP 客户端需要知道如何启动 MCP 服务器及连接参数,以下 JSON 配置用于描述服务器启动信息。请将 server_name、command 和 args 替换为实际环境中的可用值。

    { "server_name": "loko-mcp-server", "command": ["./loko"], "args": ["mcp", "--project", "/path/to/your/project"] }

    说明字段:

    • server_name: MCP 服务器的唯一标识名称,便于客户端日志和管理定位。
    • command: 启动 MCP 服务器的可执行文件路径或命令(不一定是 loko 的绝对路径,需根据实际部署调整)。
    • args: 启动命令的参数,包含启动子命令 "mcp" 和项目根目录等信息,确保服务器在启动时能加载正确的项目上下文。
  • 具体使用方法

    1. 使用上述配置在客户端(LLM)侧启动并保持与 MCP 服务器的连接。
    2. 客户端通过 JSON-RPC 发送以下核心请求:
      • initialize:完成握手,获取服务器能力与协议信息。
      • tools/list:获取已注册工具的清单与输入参数结构。
      • tools/call:调用具体工具,传递所需参数并获取结果。
    3. 根据返回的结果,LLM 客户端即可对后端能力进行编排,完成资源创建、查询、Diagram 更新等工作流。

服务器信息