Mantis MCP Server

Un servidor MCP para integrarse con el sistema Mantis Bug Tracker.

Documentación

Servidor MCP de Mantis

smithery badge

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.

Mantis Server MCP server

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

  1. Cree el archivo .env en 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

  1. Inicie sesión en su cuenta de MantisBT
  2. Haga clic en su nombre de usuario en la esquina superior derecha y seleccione «Mi cuenta»
  3. Cambie a la pestaña «Tokens de API»
  4. Haga clic en el botón «Crear nuevo token»
  5. Ingrese un nombre para el token (por ejemplo: Servidor MCP)
  6. Copie el token de API generado y péguelo en la configuración de MANTIS_API_KEY en 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 Mantis
  • MANTIS_API_KEY: Su clave de API de Mantis
  • NODE_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:

  1. Recargar Cursor MCP
  2. Abrir la paleta de comandos (Windows: Ctrl+Shift+P, Mac: Cmd+Shift+P)

Configuración en Cursor

  1. Agregue la siguiente configuración en .vscode/mcp.json:
{
  "servers": {
    "mantis-mcp-server": {
      "type": "stdio",
      "command": "node",
      "args": ["${workspaceFolder}/dist/index.js"]
    }
  }
}
  1. Agregue la siguiente configuración en .vscode/launch.json para 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 proyecto
  • statusId (opcional): ID del estado
  • handlerId (opcional): ID del responsable
  • reporterId (opcional): ID del reportador
  • search (opcional): Palabra clave de búsqueda
  • pageSize (opcional, predeterminado 20): Tamaño de página
  • page (opcional, predeterminado 0): Posición inicial de paginación, comienza desde 1
  • select (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 proyecto
  • groupBy: 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 proyecto
  • includeUnassigned (predeterminado true): Si se incluyen problemas no asignados
  • statusFilter (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 niveles
  • logs/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