Acemcp Node.js 实现
MCP 服务器,用于代码库索引和语义搜索 - Node.js 实现
📖 简介
Acemcp 是一个 MCP (Model Context Protocol) 服务器,提供代码库索引和语义搜索功能。此 Node.js 实现与 Python 版本完全兼容,共享相同的配置文件和数据格式。
主要特性
✅ 完整的 MCP 服务器功能 - 实现
search_context工具✅ 增量索引 - 仅索引新文件或修改的文件
✅ 文件分割 - 大文件自动分割为多个块
✅ .gitignore 支持 - 自动排除 .gitignore 中的文件
✅ 多编码支持 - 支持 UTF-8, GBK, GB2312, Latin-1
✅ 批量上传 - 支持批量上传和自动重试
✅ Web 管理界面 - 配置管理、实时日志、工具调试
✅ 数据兼容 - 与 Python 版本共享数据格式
✅ WSL 路径支持 - 完全支持 Windows Subsystem for Linux 路径
📦 安装
前置要求
Node.js >= 18.0.0
npm 或其他包管理器
安装步骤
🚀 使用
配置
首次运行时,程序会在 ~/.acemcp/ 目录下创建配置文件:
启动 MCP 服务器
WSL 路径支持
Ace-Mcp-Node 完全支持 Windows Subsystem for Linux (WSL) 路径格式:
路径类型 | 示例 | 说明 |
Windows 本地 |
| 自动转换为
|
WSL 内部 |
| 保持不变(仅 WSL 环境) |
WSL 访问 Windows |
| Windows 环境自动转为
⭐ |
Windows 访问 WSL |
| 自动转换为
|
使用示例:
注意:
路径将自动规范化为统一格式(使用正斜杠)
末尾斜杠会被自动移除
遇到路径问题请参考 路径故障排查指南
在 MCP 客户端中配置
在你的 MCP 客户端配置文件中添加:
WSL 环境配置示例:
或使用 Web 管理界面:
🔧 工具说明
search_context
搜索项目代码库中与查询相关的代码片段。
参数:
project_root_path(string, 必需): 项目根目录的绝对路径,使用正斜杠/作为路径分隔符示例:
C:/Users/username/projects/myproject
query(string, 必需): 自然语言搜索查询示例:
"logging configuration setup","user authentication login"
功能:
自动对项目进行增量索引
执行语义搜索
返回格式化的代码片段,包含文件路径和行号
使用示例:
🌐 Web 管理界面
启动 Web 界面:
Web 界面功能
服务器状态 - 查看运行状态和已索引项目数量
配置管理 - 在线编辑和保存配置
实时日志 - 通过 WebSocket 查看实时日志
工具调试 - 调试 MCP 工具调用
双语支持 - 支持中文和英文界面
📁 项目结构
🔄 与 Python 版本的兼容性
Node.js 实现与 Python 版本完全兼容:
共享配置文件 - 使用相同的
~/.acemcp/settings.toml共享数据格式 - 使用相同的
~/.acemcp/data/projects.json相同的 API 接口 - 调用相同的索引和搜索 API
相同的哈希算法 - 使用相同的 SHA-256 计算 blob_name
可以在 Python 和 Node.js 版本之间无缝切换。
🛠 开发
开发模式
脚本说明
npm run build- 编译 TypeScript 到 dist/npm run dev- 开发模式(使用 tsx watch)npm start- 运行编译后的代码npm start:web- 启动带 Web 界面的服务器
📝 日志
日志文件位置:~/.acemcp/log/acemcp.log
自动日志轮转(单文件最大 5MB)
保留最近 10 个日志文件
控制台输出 INFO 级别及以上
文件输出 DEBUG 级别及以上
🐛 故障排除
路径问题
如果遇到 "Project root path does not exist" 错误:
检查路径末尾是否有斜杠 - 路径末尾不应包含
/或\(v0.1.5+ 自动移除)验证路径存在 - 使用
ls(Unix) 或dir(Windows) 检查使用绝对路径 - 避免使用相对路径
参考文档 - 查看 路径故障排查指南
相关文档:
WSL 路径支持指南 - WSL 环境专用指南
路径故障排查指南 - 详细的路径问题诊断
编码问题
如果遇到文件编码错误,程序会自动尝试多种编码(UTF-8, GBK, GB2312, Latin-1)。
连接问题
检查 BASE_URL 和 TOKEN 配置是否正确:
Web 界面无法访问
确保指定的端口未被占用:
📄 许可证
ISC License
🤝 贡献
欢迎贡献!请随时提交 Pull Request。
local-only server
The server can only run on the client's local machine because it depends on local resources.
Tools
Provides code repository indexing and semantic search capabilities, allowing natural language queries to find relevant code snippets with automatic incremental indexing and multi-language support.