使用说明
MCP服务器(语言服务器协议)
基于TypeScript的语言服务器协议实现,用于代码引用搜索,支持多种搜索策略。
特性
- 🔍 使用ripgrep快速搜索代码引用
- 🌐 易于搜索的Web界面
- 💻 用于命令行使用的终端界面
- 📊 按文件类型对结果进行分组
- 🔄 后备搜索机制
- 🔥 热重载开发支持
先决条件
在开始之前,请确保已安装以下内容:
- Node.js(v14或更高版本)
- npm(附带Node.js)
- Homebrew(适用于macOS用户)
- ripgrep(建议用于更快的搜索)
安装
1.克隆存储库
git clone <your-repository-url>
cd <repository-name>/src/mcp-server/v1
2.安装Homebrew(仅限macOS)
# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Add Homebrew to PATH (follow the instructions shown after installation)
# Usually these commands:
(echo; echo 'eval "$(/opt/homebrew/bin/brew shellenv)"') >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
# Restart your terminal or run
source ~/.zprofile
3.安装ripgrep
# macOS (using Homebrew)
brew install ripgrep
# Ubuntu/Debian
sudo apt-get update && sudo apt-get install ripgrep
# Fedora
sudo dnf install ripgrep
# Windows (using Chocolatey)
choco install ripgrep
4.安装依赖项
npm install
用法
建设项目
npm run build
启动服务器
生产模式
npm run start
开发模式(热重载)
npm run dev
访问接口
-
web界面
- 打开浏览器并导航到:
http://localhost:3000 - 输入您的搜索词和目录
- 查看按文件类型分组的结果
- 打开浏览器并导航到:
-
终端接口
- 终端界面与服务器自动启动
- 按照提示输入搜索词
- 结果将显示在终端中
搜索策略
服务器按以下顺序使用多种搜索策略:
-
ripgrep (最快)
- 使用正则表达式进行精确匹配和部分匹配
- 不包括常用目录(node_modules、.git等)
- 提供行号和上下文
-
全局正则表达式打印 (回退)
- 如果ripgrep不可用,则使用
- 功能相似,但速度较慢
-
Node.js (最终回退)
- 纯JavaScript实现
- 如果ripgrep和grep都不可用,则使用
配置
环境要求
- 服务器会自动检查所需的软件
- 如果缺少任何内容,则提供安装说明
- 验证工作目录是否正确
TypeScript配置
- 目标:ES2020
- 模块:CommonJS
- 已启用严格类型检查
- 为调试生成的源映射
故障排除
常见问题
-
目录错误
- 确保你在
src/mcp-server/v1目录 - 检查环境检查中显示的路径
- 确保你在
-
自制咖啡安装
- 如果Homebrew命令失败,请确保配置了PATH
- 检查
~/.zprofile用于Homebrew配置
-
未找到ripgrep
- 验证Homebrew是否已安装并位于PATH中
- 尝试重新安装:
brew reinstall ripgrep
-
端口已在使用中
- 服务器将自动找到可用端口
- 默认端口为3000
错误消息
如果您看到这些错误,请尝试以下操作:
-
command not found: brew- 重新安装Homebrew
- 重新配置路径
-
command not found: rg- 安装ripgrep:
brew install ripgrep - 验证PATH配置
- 安装ripgrep:
-
EADDRINUSE- 端口正在使用中
- 服务器将自动尝试其他端口
发展
可用脚本
npm run build:构建项目npm run start:以生产模式启动npm run dev:从热重新加载开始npm run clean:清洁构建输出
添加新功能
- 修改
server.ts核心功能 - 更新
index.html用于web界面更改 - 在开发模式下运行以测试更改
- 构建并重新启动以应用