Mantis MCP Server
Un servidor MCP para integrarse con el sistema Mantis Bug Tracker.
Documentación
Servidor MCP de Mantis
El Servidor MCP de Mantis es un servicio basado en el Protocolo de Contexto de Modelos (MCP) para la integración con el sistema de seguimiento de errores Mantis. Proporciona un conjunto de herramientas que permiten a los usuarios consultar y analizar datos en el sistema Mantis a través del protocolo MCP.
Características
- Gestión de problemas
- Obtener lista de problemas (admite múltiples condiciones de filtrado)
- Consultar detalles del problema por ID
- Gestión de usuarios
- Consultar usuarios por nombre de usuario
- Obtener lista de todos los usuarios
- Gestión de proyectos
- Obtener lista de proyectos
- Análisis estadístico
- Estadísticas de problemas (admite análisis multidimensional)
- Estadísticas de asignación (analiza la asignación de problemas)
- Optimización del rendimiento
- Selección de campos (reduce la cantidad de datos devueltos)
- Procesamiento de paginación (controla la cantidad devuelta en cada solicitud)
- Compresión automática de datos (compresión automática para grandes volúmenes de datos)
- Manejo completo de errores y registro de actividad
Instalación
Instalación mediante Smithery
Para instalar automáticamente la Integración de Mantis Bug Tracker para Claude Desktop mediante Smithery:
npx -y @smithery/cli install @kfnzero/mantis-mcp-server --client claude
Instalación manual
npm install mantis-mcp-server
Configuración
- Cree el archivo
.enven el directorio raíz del proyecto:
# Mantis API 配置
MANTIS_API_URL=https://your-mantis-instance.com/api/rest
MANTIS_API_KEY=your_api_key_here
# 應用配置
NODE_ENV=development # development, production, test
LOG_LEVEL=info # error, warn, info, debug
# 快取配置
CACHE_ENABLED=true
CACHE_TTL_SECONDS=300 # 5分鐘
# 日誌配置
LOG_DIR=logs
ENABLE_FILE_LOGGING=false
Cómo obtener la clave API de MantisBT
- Inicie sesión en su cuenta de MantisBT
- Haga clic en su nombre de usuario en la esquina superior derecha y seleccione «Mi cuenta»
- Cambie a la pestaña «Tokens de API»
- Haga clic en el botón «Crear nuevo token»
- Ingrese un nombre para el token (por ejemplo: Servidor MCP)
- Copie el token de API generado y péguelo en la configuración de
MANTIS_API_KEYen el archivo.env
Configuración de MCP
Instalación global
Primero, debe instalar mantis-mcp-server globalmente:
npm install -g mantis-mcp-server
Configuración en Windows
En sistemas Windows, edite %USERPROFILE%\.cursor\mcp.json (generalmente en C:\Users\你的用戶名\.cursor\mcp.json) y agregue la siguiente configuración:
{
"mcpServers": {
"mantis-mcp-server": {
"type": "stdio",
"command": "cmd",
"args": [
"/c",
"node",
"%APPDATA%\\npm\\node_modules\\mantis-mcp-server\\dist\\index.js"
],
"env": {
"MANTIS_API_URL": "YOUR_MANTIS_API_URL",
"MANTIS_API_KEY": "YOUR_MANTIS_API_KEY",
"NODE_ENV": "production",
"LOG_LEVEL": "info"
}
}
}
}
Configuración en macOS/Linux
En sistemas macOS o Linux, edite ~/.cursor/mcp.json y agregue la siguiente configuración:
{
"mcpServers": {
"mantis-mcp-server": {
"command": "npx",
"args": [
"-y",
"mantis-mcp-server@latest",
],
"env": {
"MANTIS_API_URL": "YOUR_MANTIS_API_URL",
"MANTIS_API_KEY": "YOUR_MANTIS_API_KEY",
"NODE_ENV": "production",
"LOG_LEVEL": "info"
}
}
}
}
Nota: En macOS/Linux, usamos npx para ejecutar la versión más reciente de mantis-mcp-server, lo que garantiza que siempre se use la última versión sin necesidad de instalación global.
Descripción de variables de entorno
MANTIS_API_URL: Su URL de API de MantisMANTIS_API_KEY: Su clave de API de MantisNODE_ENV: Entorno de ejecución, se recomienda configurarlo como "production"LOG_LEVEL: Nivel de registro, valores posibles: error, warn, info, debug
Verificación de configuración
Después de completar la configuración, puede:
- Recargar Cursor MCP
- Abrir la paleta de comandos (Windows: Ctrl+Shift+P, Mac: Cmd+Shift+P)
Configuración en Cursor
- Agregue la siguiente configuración en
.vscode/mcp.json:
{
"servers": {
"mantis-mcp-server": {
"type": "stdio",
"command": "node",
"args": ["${workspaceFolder}/dist/index.js"]
}
}
}
- Agregue la siguiente configuración en
.vscode/launch.jsonpara depuración:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Debug MCP Server",
"skipFiles": ["<node_internals>/**"],
"outFiles": ["${workspaceFolder}/dist/**/*.js"],
"runtimeExecutable": "npx",
"runtimeArgs": [
"-y",
"@modelcontextprotocol/inspector",
"node",
"dist/index.js"
],
"console": "integratedTerminal",
"preLaunchTask": "npm: watch",
"serverReadyAction": {
"action": "openExternally",
"pattern": "running at (https?://\\S+)",
"uriFormat": "%s?timeout=60000"
},
"envFile": "${workspaceFolder}/.env"
}
]
}
Descripción de las herramientas de API
1. Obtener lista de problemas (get_issues)
Obtiene la lista de problemas de Mantis, que se puede filtrar según múltiples condiciones.
Parámetros:
projectId(opcional): ID del proyectostatusId(opcional): ID del estadohandlerId(opcional): ID del responsablereporterId(opcional): ID del reportadorsearch(opcional): Palabra clave de búsquedapageSize(opcional, predeterminado 20): Tamaño de páginapage(opcional, predeterminado 0): Posición inicial de paginación, comienza desde 1select(opcional): Seleccione los campos a devolver, por ejemplo: ['id', 'summary', 'description']. Se puede usar para reducir la cantidad de datos devueltos
2. Obtener detalles del problema (get_issue_by_id)
Obtiene los detalles del problema de Mantis por ID.
Parámetros:
issueId: ID del problema
3. Consultar usuario (get_user)
Consulta un usuario de Mantis por nombre de usuario.
Parámetros:
username: Nombre de usuario
4. Obtener lista de proyectos (get_projects)
Obtiene la lista de proyectos de Mantis.
Parámetros: Ninguno
5. Obtener estadísticas de problemas (get_issue_statistics)
Obtiene datos estadísticos de problemas de Mantis, analizados según diferentes dimensiones.
Parámetros:
projectId(opcional): ID del proyectogroupBy: Criterio de agrupación, valores posibles: 'status', 'priority', 'severity', 'handler', 'reporter'period(predeterminado 'all'): Rango de tiempo, valores posibles: 'all', 'today', 'week', 'month'
6. Obtener estadísticas de asignación (get_assignment_statistics)
Obtiene datos estadísticos de asignación de problemas de Mantis, analizando la asignación de problemas entre diferentes usuarios.
Parámetros:
projectId(opcional): ID del proyectoincludeUnassigned(predeterminado true): Si se incluyen problemas no asignadosstatusFilter(opcional): Filtro de estado, solo calcula problemas con un estado específico
7. Obtener todos los usuarios (get_users)
Obtiene la lista de todos los usuarios mediante un método exhaustivo.
Parámetros: Ninguno
Estructura del código
Funciones de orden superior
El servicio utiliza la función de orden superior withMantisConfigured para manejar la lógica de verificación común, garantizando:
- Verificación de la configuración de la API de Mantis
- Manejo uniforme de errores
- Formato de respuesta estandarizado
- Registro automático de actividad
Manejo de errores
El mecanismo completo de manejo de errores incluye:
- Manejo de errores de la API de Mantis (incluye códigos de estado HTTP)
- Manejo de errores generales
- Respuestas de error estructuradas
- Registro detallado de errores
Desarrollo
# 安裝依賴
npm install
# 構建
npm run build
# 開發模式(監視變更)
npm run watch
# 運行
npm start
Registro
Si el registro en archivo está habilitado (ENABLE_FILE_LOGGING=true), los archivos de registro se guardarán en:
logs/mantis-mcp-server-combined.log: Registros de todos los niveleslogs/mantis-mcp-server-error.log: Solo registros de nivel de error
El tamaño máximo de los archivos de registro es de 5 MB, con un máximo de 5 archivos históricos conservados.
Licencia
MIT
Referencias
@https://documenter.getpostman.com/view/29959/7Lt6zkP#c0c24256-341e-4649-95cb-ad7bdc179399
Publicación
npm login --registry=https://registry.npmjs.org/ npm run build npm publish --access public --registry=https://registry.npmjs.org/
Actualización de versión
npm version patch # Versión de corrección 0.0.x npm version minor # Versión menor 0.x.0 npm version major # Versión mayor x.0.0
Republicación
npm publish