项目简介

MCP命令行工具适配器(MCP CLI Adapter)是一个基于Model Context Protocol (MCP) 构建的应用后端。它使大型语言模型(LLM)能够安全地通过标准化的MCP协议调用和执行操作系统上的命令行工具。

主要功能点

  • 灵活执行命令行命令: 允许将任何shell命令定义为可供AI调用的MCP工具,支持通过参数进行变量替换。
  • 基于配置的工具定义: 使用YAML文件定义工具,包括工具名称、描述、参数、安全约束以及输出格式。
  • 通过约束确保安全: 在命令执行前,使用表达式(CEL)验证工具参数,有效防范恶意命令注入。
  • 支持多种运行环境: 支持多种命令执行器,包括直接执行 ('exec') 和沙箱环境 ('sandbox-exec' for macOS, 'firejail' for Linux),增强安全性。
  • 健壮的错误处理: 提供详细日志和panic恢复机制。
  • 易于集成: 与任何支持MCP协议的LLM客户端(如Cursor、支持MCP的VS Code插件等)无缝集成。

安装步骤

  1. 安装Go语言环境: 确保你的系统上已安装Go语言。
  2. 运行适配器: 可以直接使用Go命令运行仓库中的代码,例如 'go run github.com/inercia/mcp-cli-adapter@latest run --config your_config.yaml',其中 'your_config.yaml' 是你创建的工具配置文件。你也可以先使用 'go build' 命令编译生成可执行文件后再运行。

服务器配置

MCP客户端(如某些AI代码编辑器)需要知道如何启动这个MCP服务器。通常,你需要在客户端的配置中添加一个MCP服务器条目,指定启动命令和参数。

配置信息通常是一个JSON结构,其中包含一个 'mcpServers' 对象。在这个对象中,你可以定义一个或多个MCP服务器,每个服务器由一个唯一的名称标识。

对于MCP命令行工具适配器,其配置条目至少应包含:

  • 一个唯一的服务器名称(例如:'my-cli-tools')。
  • 'command' 字段:指定用于启动适配器的可执行文件或脚本的路径(例如:如果使用 'go run' 方式,这里就是 'go')。
  • 'args' 字段:一个字符串数组,包含传递给 'command' 的参数。最核心的参数是 '--config' 或 '-c',后跟你的YAML配置文件路径(例如:'["run", "--config", "/path/to/your_config.yaml"]')。你还可以添加 '--logfile' 参数指定日志文件路径。

客户端会使用配置中的 'command' 和 'args' 来启动适配器,并通过标准输入/输出(stdio)进行MCP协议通信。

基本使用方法

  1. 创建工具配置文件: 按照仓库文档(如示例文件)的格式,创建一个YAML文件 ('your_config.yaml') 来定义你希望暴露给AI的命令行工具。定义工具的名称、描述、参数以及实际执行的命令模板和安全约束。
  2. 配置MCP客户端: 在你的MCP客户端应用程序中,找到MCP服务器配置选项。添加一个新的服务器条目,设置启动命令指向MCP命令行工具适配器,并指定你的 'your_config.yaml' 文件路径作为参数。
  3. 刷新客户端: 根据客户端的说明,刷新或重启应用程序,使其加载新的MCP服务器配置。
  4. 向LLM提问: 向AI提出需要使用配置的工具来回答或解决的问题。例如,如果你配置了一个检查磁盘空间的工具,你可以问AI“我的磁盘空间快满了,能帮我分析一下哪个目录占用空间最多吗?”。AI将识别并尝试调用相应的工具。

信息

分类

AI与计算