R.A.P.I.D.项目情报和文件的快速对齐
RAPID是一个本地MCP服务器,旨在为任何软件项目提供强大的代码分析和搜索功能。它利用高性能的基于Rust的文件扫描程序快速解析和分析代码,提供了一组可供任何符合MCP的客户端使用的工具。
该服务器非常适合需要了解代码库上下文以执行代码生成、重构和自动化文档等任务的AI助手和开发工具。
特性
- 完整的项目背景分析: 递归扫描项目目录以提取有关文件、函数和类的信息。
- 项目范围搜索: 对特定字符串或模式执行快速的项目范围搜索。
- 多语言支持: 包括Python、Rust、C#和Types/JavaScript的解析器。
- 高性能Rust核心: 文件扫描和解析逻辑在Rust中实现,以获得最大的性能和效率。
- 可配置: 允许自定义扫描深度、文件扩展名和输出详细程度。
- 符合MCP标准: 通过一组定义良好的MCP工具公开其功能。
建筑
服务器由两个主要组件组成:
- Python MCP服务器(
server.py): 服务器的主要入口点。它处理MCP请求,定义可用工具,并编排代码分析过程。 - Rust文件扫描程序(
file_scanner/): 一个执行文件系统扫描、解析和搜索等繁重任务的Rust库。Python服务器通过C FFI层调用它。
这种混合方法将Python在服务器逻辑方面的灵活性与Rust在CPU密集型文件处理任务方面的性能相结合。
工具
服务器公开了以下工具:
initialize_project_context
通过读取/创建初始化项目上下文 plan.md 并提供复杂性评估以及与代码库交互的指导。这应该是开始项目工作时调用的第一个工具。
论据:
path(string,必填):项目目录的绝对路径。timeout(整数,可选):初始扫描的超时时间(秒)。默认值为10。debug(布尔值,可选):是否在输出中包含调试日志。默认为false。
输出结构(示例):
{
"status": "success",
"plan_md_content": "# Project Plan...",
"project_assessment": {
"file_count": 42,
"complexity_level": "Small",
"guidance": "Project is small (20-75 files)..."
},
"stats": {
"complexity_scan_duration_seconds": 0.05,
"files_counted_for_complexity": 42
}
}get_full_code_context
全面扫描项目目录,从指定的文件类型中提取代码并构建代码结构。生成项目内容的详细概述,包括文件结构和可选的函数/类描述。对于全面理解代码库至关重要。
论据:
path(string,必填):项目目录的绝对路径。extensions(字符串数组,可选):扫描中要包含的文件扩展名列表(例如。,[".py", ".rs"]).max_depth(整数,可选):扫描目录的最大深度。默认值为6。max_files(整数,可选):要处理的最大文件数。默认值为1000。compactness_level(整数,可选):控制输出详细程度:0(超紧凑摘要),1(紧凑,默认),2(中等细节),3(高度详细,包含完整代码片段)。timeout(整数,可选):操作的超时时间(秒)。默认值为60。debug(布尔值,可选):是否在输出中包含调试日志。默认为false。
search
🔍 在整个项目中搜索文件 -这是在项目中的所有文件中查找任何文本、代码、函数、变量或内容的主要工具。每当您需要查找代码库中任何位置的特定字符串、代码模式、函数名、变量声明、导入语句、配置值或任何文本内容时,请使用此强大的搜索功能。在进行更改之前理解现有代码至关重要。返回与周围有用上下文行的精确匹配。
论据:
path(string,必填):项目目录的绝对路径。search_string(string,必填):要搜索的字符串。extensions(字符串数组,可选):要搜索的文件扩展名列表。max_depth(整数,可选):扫描目录的最大深度。默认值为6。max_files(整数,可选):要处理的最大文件数。默认值为1000。context_lines(整数,可选):每个匹配项周围要包含的上下文行数。默认值为2。timeout(整数,可选):操作的超时时间(秒)。默认值为60。debug(布尔值,可选):是否在输出中包含调试日志。默认为false。
search_by_concept
🧠 人工智能语义代码搜索 -这个智能工具使用机器学习嵌入来理解自然语言查询背后的含义和意图,而不仅仅是精确的文本匹配。非常适合在描述所需内容时查找代码,而无需知道确切的函数名。示例:“身份验证逻辑”、“数据库连接设置”、“错误处理模式”。 ⚠️ 性能说明:比文本搜索慢-使用人工智能处理,因此要注意大型代码库(1000多个文件)。
论据:
path(string,必填):项目目录的绝对路径。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构建的。建议的安装方法是
rustup从 rust-lang.org.
安装步骤
- 克隆存储库
打开终端,导航到所需的目录,然后克隆存储库:
git clone https://github.com/otdavies/Rapid.git
cd Rapid- 设置Python环境
最好的做法是使用虚拟环境来避免与其他项目发生冲突。
# Create a virtual environment
python -m venv venv
# Activate it
# On Windows:
# venv\Scripts\activate
# On macOS/Linux:
# source venv/bin/activate
# Install dependencies
pip install -r requirements.txt- 构建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": {}
}
}