项目简介

'codemode-agent' 是一个多功能的工具,它既可以作为自主代理运行,也可以作为 MCP服务器 运行,为语言模型(LLM)客户端提供一个可编程的执行环境。其核心是 'execute' 工具,允许LLM以JavaScript代码的形式调用文件系统操作、运行Shell命令,并与Glootie、Playwright、Vexify等其他MCP工具进行交互,从而实现复杂的任务自动化。

主要功能点

  • 执行工具 (Execute Tool): LLM可以编写JavaScript代码来利用其功能,实现复杂的任务自动化,支持条件判断、循环等编程结构。
  • 内置功能: 包含文件读写、编辑、查找、系统命令执行(Bash, LS)、Web内容抓取与搜索等多种实用工具。
  • MCP集成: 无缝集成其他MCP服务器的工具,如Glootie(代码分析与执行)、Playwright(浏览器自动化)、Vexify(代码语义搜索),极大地扩展了LLM的能力。
  • 持久化上下文: 执行环境和MCP连接状态在多次调用之间保持持久,方便进行多步骤任务。

安装步骤

  1. 确保您已安装 Node.js 和 npm。 您可以从 Node.js 官方网站 下载并安装。
  2. 在终端中安装 'codemode-agent' 包。 您可以在任何方便的目录运行此命令,它将全局安装或在当前项目依赖中安装:
    npm install codemode-agent
    或者推荐使用 'npx' 直接运行,无需预先安装:
    npx codemode-agent --mcp
  3. 如果您需要使用 'grep' 工具,请确保您的系统已安装 'ripgrep'。 'ripgrep' 通常可以通过您的系统包管理器安装(例如,'sudo apt install ripgrep' 在Ubuntu上,'brew install ripgrep' 在macOS上)。

服务器配置

'codemode-agent' MCP服务器通过 'npx codemode-agent --mcp' 命令启动,并通过标准输入输出(Stdio)与MCP客户端通信。

您的MCP客户端(例如Claude Desktop或其他兼容的LLM客户端)通常需要以下JSON格式的配置来连接到此服务器:

{
  "servers": {
    "codemode-agent-mcp": {
      "command": "npx",
      "args": ["codemode-agent", "--mcp"],
      "description": "CodeMode Agent MCP服务器,提供一个强大的JavaScript执行环境,集成了文件操作、系统命令和多种外部MCP工具。"
    }
  }
}
  • 'codemode-agent-mcp': 这是LLM客户端用于标识和引用此MCP服务器的名称。
  • 'command': 这是启动MCP服务器的程序命令,此处为 'npx',用于运行Node.js包。
  • 'args': 这是传递给 'command' 的参数列表,'["codemode-agent", "--mcp"]' 表示运行 'codemode-agent' 包并激活其MCP服务器模式。
  • 'description': 对该MCP服务器功能的简要描述,有助于LLM客户端理解其作用。

注意: 'codemode-agent' 服务器启动后,会根据其自身目录或用户主目录下的 '.codemode.json' 文件来配置它需要连接的其他MCP服务器(例如Glootie、Playwright、Vexify)。LLM客户端只需要连接到 'codemode-agent-mcp' 这一个服务器,即可通过其 'execute' 工具间接使用所有这些集成的功能。

基本使用方法

  1. 在终端中启动CodeMode Agent MCP服务器:
    npx codemode-agent --mcp
    服务器将在后台运行,等待MCP客户端连接。
  2. 连接您的MCP客户端: 您的MCP客户端(如Claude Desktop)现在可以通过您在上述“服务器配置”中定义的配置,通过标准输入/输出(Stdio)连接到此服务器。
  3. LLM调用 'execute' 工具: 一旦连接成功,LLM客户端就可以调用服务器提供的 'execute' 工具,并在其内部的JavaScript环境中执行代码。例如,LLM可以发送一个调用 'execute' 工具的请求,其中 'code' 参数包含 JavaScript 代码,如:
    await Read('example.txt');
    await playwright.browser_navigate('https://example.com');
    await Bash('ls -la');
    'workingDirectory' 参数应设置为LLM希望执行操作的当前目录。
  4. 接收结果: 服务器将执行JavaScript代码,并将代码的输出或错误信息作为工具结果返回给LLM客户端。

信息

分类

开发者工具