螳螂mcp
MCP(模型上下文协议)服务器 MantisBT 使用CRUD操作和 语义搜索 (RAG)讨论问题和注意事项。
启用自然语言查询,如 *“我和客户Y讨论过X吗?”* 跨大型MantisBT数据库(10000多期)。
特性
- 8个CRUD工具 --列出/获取/创建/更新问题,添加注释,列出项目和用户
- 3个语义搜索工具 --跨所有问题和笔记的自然语言搜索,具有增量同步功能
- 本地嵌入 -使用Transformers.js完全离线运行(没有用于搜索的外部API调用)
- 多语言 --用途
paraphrase-multilingual-MiniLM-L12-v2型号(IT/EN/DE/FR/ES/…) - 增量同步 --仅在初始同步后处理新的/更新的/删除的问题
快速开始
1.安装
git clone git@github.com:f-liva/mantis-mcp.git
cd mantis-mcp
npm install
npm run build2.设置(自动)
运行交互式设置脚本——它检测您的平台(WSL、Windows、macOS、Linux),询问您的MantisBT凭据,测试连接,并自动配置所有内容:
./setup.sh setup这将:
- 提示输入您的MantisBT API URL和令牌
- 测试API连接
- 配置 克劳德桌面版 (
claude_desktop_config.json) - 配置 克劳德代码 (
.mcp.json) - 创建
.env文件
您也可以直接传递参数:
./setup.sh setup -u "https://mantis.example.com/api/rest" -k "your-api-token"或者只配置一个目标:
./setup.sh setup -t desktop # only Claude Desktop
./setup.sh setup -t cli # only Claude Code
./setup.sh setup -t both # both (default)3.手动配置(可选)
如果您更喜欢手动配置:
克劳德桌面版
编辑您的 claude_desktop_config.json:
- 视窗:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/claude/claude_desktop_config.json
Windows(不带WSL):
{
"mcpServers": {
"mantis": {
"command": "node",
"args": ["C:\\Users\\YOURUSERNAME\\mantis-mcp\\dist\\index.js"],
"env": {
"MANTIS_API_URL": "https://mantis.example.com/api/rest",
"MANTIS_API_KEY": "your-api-token"
}
}
}
}带WSL的Windows:
{
"mcpServers": {
"mantis": {
"command": "wsl",
"args": ["bash", "-c", "cd /home/YOURUSERNAME/mantis-mcp && node dist/index.js"],
"env": {
"MANTIS_API_URL": "https://mantis.example.com/api/rest",
"MANTIS_API_KEY": "your-api-token"
}
}
}
}macOS/Linux:
{
"mcpServers": {
"mantis": {
"command": "node",
"args": ["/absolute/path/to/mantis-mcp/dist/index.js"],
"env": {
"MANTIS_API_URL": "https://mantis.example.com/api/rest",
"MANTIS_API_KEY": "your-api-token"
}
}
}
}克劳德代码(CLI)
创建一个 .mcp.json 在任何项目目录中:
{
"mcpServers": {
"mantis": {
"command": "node",
"args": ["/absolute/path/to/mantis-mcp/dist/index.js"],
"env": {
"MANTIS_API_URL": "https://mantis.example.com/api/rest",
"MANTIS_API_KEY": "your-api-token"
}
}
}
}配置
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
MANTIS_API_URL | 是 | - | MantisBT REST API基本URL |
MANTIS_API_KEY | 是 | - | neneneba API令牌(来自MantisBT→ 我的账户→ API令牌) |
DB_PATH | 没有 | ./mantis-mcp.db | SQLite数据库文件路径 |
EMBEDDING_MODEL | 没有 | Xenova/paraphrase-multilingual-MiniLM-L12-v2 | 用于嵌入的拥抱人脸模型 |
SYNC_BATCH_SIZE | 没有 | 50 | 同步期间每批提取的问题 |
SYNC_ON_STARTUP | 没有 | false | 服务器启动时自动同步 |
LOG_LEVEL | 没有 | info | error / warn / info / debug |
工具参考
CRUD工具(8)
| 工具 | 说明 | 关键参数 |
|---|---|---|
get_issues | 列出过滤器的问题 | page, page_size, project_id, filter_id |
get_issue_by_id | 获取完整的问题详细信息 | id |
create_issue | 创建新问题 | summary, description, project_id, category, priority |
update_issue | 更新现有问题 | id, summary, description, status, handler |
add_issue_note | 添加注释/评论 | issue_id, text, view_state |
get_projects | 列出所有项目 | -- |
get_user | 按用户名查找用户 | username |
get_users_by_project_id | 列出项目成员 | project_id |
语义搜索工具(3)
| 工具 | 说明 | 关键参数 |
|---|---|---|
search | 跨索引问题/注释的自然语言搜索 | query, limit |
sync_index | 将MantisBT数据同步到矢量索引中 | project_id (可选) |
sync_status | 检查索引状态和计数 | -- |
搜索工作流
- 第一次:呼叫
sync_index填充矢量数据库(对于大型数据库可能需要几分钟) - 搜索:使用
search对于自然语言查询,结果包括相似性得分 - 保持更新:呼叫
sync_index定期执行增量同步(仅更改问题)
建筑
Claude Desktop / Claude Code
│
│ stdio (JSON-RPC)
▼
mantis-mcp server
│
├── CRUD tools ──────► MantisBT REST API
│
└── Search tools
├── sync ──────► MantisBT REST API → Embeddings → SQLite + sqlite-vec
└── search ────► Embeddings → sqlite-vec KNN → Ranked results- 嵌入:使用Transformers.js在本地生成(首次使用时下载约80MB模型)
- 矢量存储器:SQLite具有SQLite-vec扩展,用于快速余弦相似性搜索
- 同步:比较
updated_at时间戳用于检测更改,然后仅重新嵌入已修改的问题
许可证
麻省理工学院
