项目简介

'mcp-files' 是一个基于 Model Context Protocol (MCP) 实现的服务器,旨在为AI智能体提供强大的代码库交互能力。它允许AI智能体以高精度查找、编辑代码中的符号(如函数、类),导入模块信息,执行搜索替换,插入文本,甚至发送操作系统通知。这使得AI在代码审查、重构和问题修复方面具备“外科手术般”的精确操作能力。

主要功能点

  • 代码符号查找 ('read_symbol'): 根据符号名称(支持通配符)在指定文件或整个代码库中查找并提取代码块。可选择优化输出,去除注释和标准化缩进,以节省AI处理的上下文空间。
  • 代码精确编辑 ('insert_text'): 在文件的精确行号范围内插入或替换文本。结合符号查找功能,AI可以先找到目标代码,再进行精准修改。
  • 智能搜索替换 ('search_replace'): 在文件中执行搜索和替换操作,支持智能空白处理和多匹配项管理,确保替换的准确性。
  • 模块信息导入 ('import_symbol'): 导入并检查JavaScript/TypeScript模块及其属性,帮助AI理解代码的结构和依赖。
  • 操作系统通知 ('os_notification'): 允许AI向用户发送桌面通知,用于提示任务完成或重要信息。

安装步骤

'mcp-files' 是一个Node.js应用程序,可以通过 'npx' 或 Docker 运行。

  1. 确保Node.js环境: 您的系统需要安装Node.js版本20或更高。
  2. 配置MCP客户端: 将以下配置添加到您的MCP客户端配置文件中。
    • 对于Cursor: 添加到 '~/.cursor/mcp.json'
    • 对于Claude Desktop: 添加到 '~/.config/claude_desktop_config.json'

服务器配置

以下是常见的MCP客户端配置示例,请根据您的需求选择一种方式。

  • 通过NPX运行 (推荐):

    {
      "mcpServers": {
        "mcp-files": {
          "command": "npx",
          "args": ["-y", "mcp-files"]
        }
      }
    }

    说明: 这种方式会自动下载并运行 'mcp-files' 包作为MCP服务器。

  • 通过Docker运行:

    {
      "mcpServers": {
        "mcp-files": {
          "command": "docker",
          "args": [
            "run",
            "--rm",
            "-i",
            "flesler/mcp-files"
          ]
        }
      }
    }

    说明: 此配置通过Docker容器运行 'mcp-files' 服务器。它会自动拉取并运行最新镜像。

  • 通过HTTP传输运行: 首先,在您的终端中手动启动服务器: 'TRANSPORT=http PORT=3000 npx mcp-files' 然后,在您的MCP客户端配置中添加:

    {
      "mcpServers": {
        "mcp-files": {
          "type": "streamableHttp",
          "url": "http://localhost:3000/mcp"
        }
      }
    }

    说明: 这种方式通过HTTP协议进行通信,适合需要网络访问的场景。请确保服务器已在指定端口启动。

基本使用方法

'mcp-files' 服务器启动后,您的MCP客户端(如Cursor或Claude Desktop)会自动发现并可以使用其提供的工具。您可以通过在AI智能体对话中直接调用这些工具来完成代码操作。例如:

  • 查找 'generateApiKey' 函数: 'read_symbol({symbols: ["generateApiKey"]})'
  • 在 'src/auth/tokens.ts' 文件的45-52行替换代码: 'insert_text(file: "src/auth/tokens.ts", from_line: 45, to_line: 52, text: "improved implementation")'
  • 发送通知: 'os_notification({message: "任务完成", title: "代码更新"})'

信息

分类

开发者工具