项目简介

Ready-to-Release (r2r) 是一个旨在通过“一切即代码”理念,将各种系统操作和数据能力标准化并暴露给大型语言模型(LLM)客户端的平台。它基于Model Context Protocol (MCP) 构建,包含多个Go语言实现的后端服务器,分别专注于不同领域的自动化和信息管理。这些服务器是整个r2r生态的核心组件,为LLM应用提供上下文感知和功能调用能力。

主要功能点

  • PowerShell自动化: 提供接口,允许LLM客户端执行PowerShell命令,并查询可用的PowerShell模块,从而实现对Windows环境、云资源等进行精细化的自动化操作。
  • GitHub管理: 集成GitHub CLI功能,使LLM能够查看仓库详情、创建和管理Issue、列出Pull Request及CI/CD工作流运行状态,极大提升LLM在代码协作和项目管理方面的效率。
  • 文档智能检索与管理: 实现对MkDocs文档站点的访问和操作,LLM可以搜索文档内容、获取特定页面、列出所有文档页面,甚至可以触发文档站点的构建和开发服务器的启动/停止,为LLM提供强大的知识库交互能力。
  • 架构可视化与维护 (Structurizr): 提供工具让LLM能够以代码形式(Structurizr DSL)创建和更新软件架构图。例如,可以添加新的容器、定义元素之间的关系等,帮助LLM更好地理解、设计和文档化系统架构。
  • 标准化通信协议: 所有服务器均采用JSON-RPC协议进行通信,确保与各类兼容MCP协议的LLM客户端进行高效、安全的数据交换和功能调用。
  • 会话管理与能力声明: 每个MCP服务器实例都能够管理与客户端的交互会话,并向客户端声明其所提供的具体工具集和操作能力,使得LLM能够智能地选择和使用合适的功能。

安装步骤

本仓库包含了多个独立的Go语言MCP服务器实现。以下将以GitHub MCP服务器为例,演示其编译和运行准备工作。其他服务器的安装步骤类似。

  1. 安装Go语言: 请确保您的系统已安装Go语言(推荐版本1.18或更高)。您可以访问 Go官方网站 获取详细的安装指南。

  2. 克隆仓库: 使用Git将 'eac' 仓库克隆到您的本地机器。

    git clone https://github.com/ready-to-release/eac.git
    cd eac
  3. 编译MCP服务器: 进入您想要编译的MCP服务器对应的源代码目录,并执行编译命令。 例如,要编译GitHub MCP服务器:

    cd src/mcp/github
    go build -o mcp-server-github main.go

    执行成功后,您将在 'src/mcp/github' 目录下找到一个名为 'mcp-server-github' (在Windows系统上可能是 'mcp-server-github.exe') 的可执行文件。

    其他MCP服务器的编译方法:

    • PowerShell MCP服务器:
      cd src/mcp/pwsh
      go build -o mcp-server-pwsh main.go
    • Structurizr MCP服务器:
      cd src/mcp/structurizr
      go build -o mcp-server-structurizr main.go
    • Docs (MkDocs) MCP服务器:
      cd src/mcp/docs
      go build -o mcp-server-docs main.go

服务器配置

MCP服务器旨在由MCP客户端(例如VSCode扩展、LLM代理或自动化工具)自动启动和连接。MCP客户端需要知道如何启动这些服务器。以下是针对每个MCP服务器的JSON配置示例,这些信息将由MCP客户端使用,您无需手动运行或修改这些Go代码。

1. PowerShell MCP服务器

  • 用途: 提供LLM执行PowerShell命令的能力。
  • 客户端配置信息示例:
    {
      "name": "PowerShell MCP Server",
      "server_name": "mcp-server-pwsh",
      "command": "/absolute/path/to/eac/src/mcp/pwsh/mcp-server-pwsh",
      "args": []
    }
    • 'name': 此服务器在客户端界面显示的名称。
    • 'server_name': MCP协议中用于唯一标识此服务器的名称,LLM客户端会用此名称来请求其能力。
    • 'command': 'mcp-server-pwsh' 可执行文件的绝对路径。请将'/absolute/path/to/eac/'替换为您的实际仓库根目录路径。
    • 'args': 启动服务器时无需传递任何额外参数。

2. GitHub MCP服务器

  • 用途: 允许LLM通过GitHub CLI与GitHub平台进行交互。
  • 客户端配置信息示例:
    {
      "name": "GitHub MCP Server",
      "server_name": "mcp-server-github",
      "command": "/absolute/path/to/eac/src/mcp/github/mcp-server-github",
      "args": []
    }
    • 'name': 服务器的显示名称。
    • 'server_name': MCP协议中用于唯一标识此服务器的名称。
    • 'command': 'mcp-server-github' 可执行文件的绝对路径
    • 'args': 启动服务器时无需传递任何额外参数。

3. Structurizr MCP服务器

  • 用途: 赋能LLM以代码形式管理软件架构文档。
  • 客户端配置信息示例:
    {
      "name": "Structurizr MCP Server",
      "server_name": "structurizr",
      "command": "/absolute/path/to/eac/src/mcp/structurizr/mcp-server-structurizr",
      "args": []
    }
    • 'name': 服务器的显示名称。
    • 'server_name': MCP协议中用于唯一标识此服务器的名称。
    • 'command': 'mcp-server-structurizr' 可执行文件的绝对路径
    • 'args': 启动服务器时无需传递任何额外参数。

4. Docs (MkDocs) MCP服务器

  • 用途: 允许LLM访问和管理MkDocs文档内容。
  • 客户端配置信息示例:
    {
      "name": "Docs MCP Server",
      "server_name": "mcp-server-docs",
      "command": "/absolute/path/to/eac/src/mcp/docs/mcp-server-docs",
      "args": []
    }
    • 'name': 服务器的显示名称。
    • 'server_name': MCP协议中用于唯一标识此服务器的名称。
    • 'command': 'mcp-server-docs' 可执行文件的绝对路径
    • 'args': 启动服务器时无需传递任何额外参数。

基本使用方法

这些MCP服务器是为LLM客户端设计的后端服务,通常不会直接供终端用户手动操作。它们通过标准化的JSON-RPC接口,将复杂的操作(如调用PowerShell、GitHub CLI命令,或读写文件)封装成LLM可理解和调用的“工具”。

  1. 自动化启动: 当一个LLM应用(例如,一个智能代理)需要执行特定任务时,它会识别出所需功能由哪个MCP服务器提供,然后根据上述配置自动启动相应的服务器进程。
  2. 上下文与功能交互: 客户端通过标准输入/输出(Stdio)通道与MCP服务器建立连接。客户端可以发送请求以列出服务器提供的所有工具,然后调用特定的工具来执行任务,例如让GitHub MCP服务器创建一个新的Issue。
  3. 结果返回与LLM决策: 服务器执行工具操作并将结果(通常是文本或结构化数据)返回给客户端。LLM客户端会解析这些结果,并根据LLM自身的逻辑进行下一步的决策或生成回复。
  4. 无感集成: 对于最终用户而言,与MCP服务器的交互是透明的,所有操作都仿佛是LLM直接完成的,极大地简化了LLM应用与外部系统集成的复杂性。

信息

分类

开发者工具