返回市场
快速

快速

作者:otdavies4 星标更新:2025-06-19

项目介绍

R.A.P.I.D. 快速项目情报与文档对齐

RAPID 是一个本地 MCP 服务器,旨在为任何软件项目提供强大的代码分析和搜索功能。它利用高性能的基于 Rust 的文件扫描器快速解析和分析代码,并暴露一组可以被任何符合 MCP 规范的客户端使用的工具。

此服务器非常适合需要理解代码库上下文以执行代码生成、重构和自动化文档等任务的 AI 助手和开发工具。

特性

  • 完整的项目上下文分析: 递归扫描项目目录以提取有关文件、函数和类的信息。
  • 全项目搜索: 执行快速的全项目范围内的字符串或模式搜索。
  • 多语言支持: 包含 Python、Rust、C# 和 TypeScript/JavaScript 的解析器。
  • 高性能 Rust 内核: 文件扫描和解析逻辑使用 Rust 实现,以获得最大性能和效率。
  • 可配置: 允许自定义扫描深度、文件扩展名和输出详细程度。
  • 符合 MCP 规范: 通过一组明确定义的 MCP 工具暴露其功能。

架构

该服务器由两个主要组件组成:

  1. Python MCP 服务器(server.py): 服务器的主要入口点。它处理 MCP 请求,定义可用的工具,并协调代码分析过程。
  2. Rust 文件扫描器(file_scanner/): 一个 Rust 库,负责执行文件系统扫描、解析和搜索。它通过 C FFI 层被 Python 服务器调用。

这种混合方法结合了 Python 在服务器逻辑方面的灵活性以及 Rust 在 CPU 密集型文件处理任务方面的性能优势。

工具

服务器暴露以下工具:

initialize_project_context

通过读取/创建 plan.md 来初始化项目上下文,并提供复杂度评估及与代码库交互的指导。这是在开始项目工作时应首先调用的工具。

参数:

  • path(字符串,必需):项目的绝对路径。
  • timeout(整数,可选):初始扫描的超时时间(秒)。默认值为 10。
  • debug(布尔值,可选):是否在输出中包含调试日志。默认值为 false。

输出结构(示例):

{
  "status": "success",
  "plan_md_content": "# Project Plan...",
  "project_assessment": {
    "file_count": 42,
    "complexity_level": "Small",
    "guidance": "项目较小(20-75个文件)..."
  },
  "stats": {
    "complexity_scan_duration_seconds": 0.05,
    "files_counted_for_complexity": 42
  }
}

get_full_code_context

全面扫描项目目录以提取并结构化指定文件类型的代码。生成项目内容的详细概述,包括文件结构和可选的函数/类描述。对于全面了解代码库至关重要。

参数:

  • path(字符串,必需):项目的绝对路径。
  • extensions(字符串数组,可选):要包含在扫描中的文件扩展名列表(例如,[".py", ".rs"])。
  • max_depth(整数,可选):扫描目录的最大深度。默认值为 6。
  • max_files(整数,可选):要处理的最大文件数。默认值为 1000。
  • compactness_level(整数,可选):控制输出详细程度:0(超紧凑摘要),1(紧凑,默认),2(中等详细),3(高度详细,带有完整代码片段)。
  • timeout(整数,可选):操作的超时时间(秒)。默认值为 60。
  • debug(布尔值,可选):是否在输出中包含调试日志。默认值为 false。

search

🔍 在整个项目中搜索文件 - 这是查找项目中所有文件中的任何文本、代码、函数、变量或内容的主要工具。当你需要定位特定字符串、代码模式、函数名称、变量声明、导入语句、配置值或代码库中的任何文本内容时,请使用此强大搜索工具。在更改现有代码之前理解它是必不可少的。返回精确匹配并附带有用的上下文行。

参数:

  • path(字符串,必需):项目的绝对路径。
  • search_string(字符串,必需):要搜索的字符串。
  • extensions(字符串数组,可选):要在其中搜索的文件扩展名列表。
  • max_depth(整数,可选):扫描目录的最大深度。默认值为 6。
  • max_files(整数,可选):要处理的最大文件数。默认值为 1000。
  • context_lines(整数,可选):每个匹配周围要包含的上下文行数。默认值为 2。
  • timeout(整数,可选):操作的超时时间(秒)。默认值为 60。
  • debug(布尔值,可选):是否在输出中包含调试日志。默认值为 false。

search_by_concept

🧠 AI 驱动的语义代码搜索 - 此智能工具使用机器学习嵌入来理解您自然语言查询背后的含义和意图,而不仅仅是精确的文本匹配。当您描述想要什么而不是知道确切的函数名称时,非常适合找到代码。例如:"身份验证逻辑"、"数据库连接设置"、"错误处理模式"。⚠️ 性能提示:比文本搜索慢 - 使用 AI 处理,因此在大型代码库(1000+ 文件)上需谨慎。

参数:

  • path(字符串,必需):项目的绝对路径。
  • query(字符串,必需):您正在寻找的功能或概念的自然语言描述(例如,“用户身份验证是如何处理的”)。
  • extensions(字符串数组,可选):要扫描的文件扩展名。默认为常见的代码扩展名。
  • top_n(整数,可选):要返回的顶级结果数量。默认值为 10。
  • timeout(整数,可选):操作的超时时间(秒)。默认值为 20。
  • debug(布尔值,可选):是否在输出中包含调试日志。默认值为 false。

开始使用

本指南提供了逐步说明,帮助您在本地机器上启动和运行 R.A.P.I.D. 服务器。

前提条件

在继续之前,请确保已安装以下软件:

  • Git: 用于克隆源代码。可以从 git-scm.com 下载。
  • Python (3.8+): 核心服务器是用 Python 编写的。可以从 python.org 获取。
  • Rust: 高性能文件扫描器是用 Rust 构建的。推荐的安装方法是来自 rust-lang.orgrustup

安装步骤

  1. 克隆仓库

    打开您的终端,导航到所需的目录,并克隆仓库:

    git clone https://github.com/otdavies/Rapid.git
    cd Rapid
    
  2. 设置 Python 环境

    最佳实践是使用虚拟环境以避免与其他项目的冲突。

    # 创建虚拟环境
    python -m venv venv
    
    # 激活它
    # 在 Windows 上:
    # venv\Scripts\activate
    # 在 macOS/Linux 上:
    # source venv/bin/activate
    
    # 安装依赖项
    pip install -r requirements.txt
    
  3. 构建 Rust 扫描器

    编译处理文件扫描和解析的 Rust 库。

    cd file_scanner
    cargo build --release
    cd ..
    

    完成这些步骤后,服务器就可以配置并与您的客户端一起使用了。

客户端配置

要使用此服务器,您需要将其注册到您的 MCP 符合客户端(例如,IDE 中的 AI 助手)。这通常涉及在客户端的设置文件中添加配置块。

找到您的 MCP 客户端的配置文件(通常是 settings.json 或类似文件),并在 mcpServers 对象中添加以下条目。请确保将 "your-path-here\\server.py" 替换为此项目中 server.py 文件的实际绝对路径。

"mcpServers": {
    "project-context": {
      "disabled": false,
      "timeout": 30,
      "type": "stdio",
      "command": "python",
      "args": [
        "your-path-here\\server.py"
      ],
      "env": {}
    }
}