项目简介

Simply CLI 是一个集成了多种Model Context Protocol (MCP) 服务器的Monorepo项目。它的核心目标是为大型语言模型(LLM)客户端提供标准化的上下文信息和功能。通过将不同领域的系统能力(如Git操作、PowerShell脚本执行、GitHub API交互以及文档检索与管理)封装为LLM可调用的工具,该项目极大地扩展了LLM在开发和运维场景中的应用潜力。

主要功能点

  • VSCode 集成服务: 提供与VSCode开发环境的深度集成。它能够获取Git仓库状态和文件变更,并利用AI(通过Claude Code CLI的多代理协作)自动生成、审查、批准和总结Git提交消息。
  • PowerShell 执行服务: 允许LLM执行任意PowerShell命令和脚本,并列出可用的PowerShell模块。这为LLM提供了强大的系统级自动化和数据访问能力。
  • GitHub CLI 交互服务: 封装了GitHub命令行工具('gh')的功能,使LLM能够查询仓库详情、创建GitHub议题、列出拉取请求和工作流运行等,实现与GitHub平台的自动化交互。
  • 文档管理服务: 专门用于管理和访问项目中的MkDocs文档。LLM可以利用该服务搜索文档内容、获取特定页面、列举所有文档页面,甚至触发文档的构建、启动和停止预览服务。

安装步骤

  1. 克隆仓库: 首先,将项目仓库克隆到本地:

    git clone https://github.com/simply-cli/cli.git
    cd cli
  2. 准备开发环境:

    • 安装Go语言环境: 确保您的系统已安装Go语言(版本 1.18 或更高)。这是所有MCP服务器的开发语言。
    • 安装Docker和Docker Compose: 文档MCP服务器的'build-docs'和'serve-docs'功能需要Docker Compose环境来构建和运行MkDocs容器。
    • 安装GitHub CLI (gh): GitHub MCP服务器依赖'gh'命令行工具来与GitHub API交互。请从GitHub官方网站安装并配置'gh'。
    • 安装Claude CLI (claude): VSCode MCP服务器中的AI提交消息生成功能依赖于'claude'命令行工具。
  3. 构建MCP服务器: 每个MCP服务器都是一个独立的Go程序。您需要进入每个服务器的源代码目录,并使用Go工具链进行编译:

    • 例如,要构建VSCode MCP服务器: 进入 'src/mcp/vscode' 目录,然后运行Go命令生成可执行文件。对 'src/mcp/pwsh', 'src/mcp/github', 'src/mcp/docs' 目录下的其他服务器重复此过程。

服务器配置

MCP客户端需要配置相应的启动信息才能与这些MCP服务器建立连接。以下是每个服务器的典型配置要素:

  • VSCode MCP 服务器:

    • '服务器名称': 'mcp-server-vscode'
    • '启动命令': 'go' (或其编译后的可执行文件,如 './mcp-server-vscode')
    • '启动参数': 'run', '.' (如果使用'go run .'方式启动)
    • '工作目录': '<项目根目录>/src/mcp/vscode' (这是服务器程序实际运行的目录)
  • PowerShell MCP 服务器:

    • '服务器名称': 'mcp-server-pwsh'
    • '启动命令': 'go' (或其编译后的可执行文件,如 './mcp-server-pwsh')
    • '启动参数': 'run', '.'
    • '工作目录': '<项目根目录>/src/mcp/pwsh'
  • GitHub CLI MCP 服务器:

    • '服务器名称': 'mcp-server-github'
    • '启动命令': 'go' (或其编译后的可执行文件,如 './mcp-server-github')
    • '启动参数': 'run', '.'
    • '工作目录': '<项目根目录>/src/mcp/github'
  • 文档 MCP 服务器:

    • '服务器名称': 'mcp-server-docs'
    • '启动命令': 'go' (或其编译后的可执行文件,如 './mcp-server-docs')
    • '启动参数': 'run', '.'
    • '工作目录': '<项目根目录>/src/mcp/docs'

MCP客户端会利用这些配置信息来构建命令行,并通过标准输入/输出来与服务器进行JSON-RPC通信。

基本使用方法

这些MCP服务器主要作为LLM应用的后端服务,通常不会直接由用户通过命令行手动启动和交互。它们的使用流程如下:

  1. 客户端启动: 一个集成了MCP客户端的应用(例如一个VSCode扩展、一个LLM代理框架或一个自动化脚本)会根据其内部配置,启动相应的MCP服务器。例如,当VSCode扩展需要生成提交消息时,它会启动'mcp-server-vscode'。
  2. JSON-RPC通信: MCP客户端通过标准输入向启动的MCP服务器发送JSON-RPC请求。这些请求可以是:
    • 'initialize': 用于初始化连接和获取服务器能力。
    • 'tools/list': 获取服务器支持的所有工具列表及其详细描述。
    • 'tools/call': 调用特定的工具,并传递所需的参数。例如,调用'mcp-server-vscode'的'execute-agent'工具来生成提交消息。
  3. 服务器处理: MCP服务器接收到请求后,会执行相应的逻辑。这可能包括:
    • 调用本地的CLI工具(如'git'、'claude'、'pwsh'、'gh'、'docker-compose')。
    • 读取文件或环境变量。
    • 执行复杂的多步骤代理工作流。
    • 通过JSON-RPC通知发送进度信息(例如,'mcp-server-vscode'在生成提交消息时会发送'$/progress'通知)。
  4. 结果返回: 服务器将执行结果以JSON-RPC响应的形式通过标准输出返回给MCP客户端。
  5. 客户端消费: 客户端接收响应,解析结果,并根据业务逻辑进行后续处理(例如,将生成的提交消息填充到UI界面,或将GitHub操作的结果显示给用户)。

信息

分类

开发者工具