FogBugz
Un servidor MCP local para interactuar con el rastreador de incidencias FogBugz a través de un LLM.
Documentación
Servidor MCP de FogBugz
Un servidor de Protocolo de Contexto de Modelo (MCP) que conecta asistentes de IA a una instancia activa de FogBugz. Busca y gestiona casos, rastrea el historial, asigna y resuelve — todo desde una conversación en lenguaje natural. Funciona con instalaciones de FogBugz locales y bajo demanda.
Características
- Buscar y listar casos usando la sintaxis de consulta de FogBugz (p. ej.
project:Website status:Active) - Leer detalles de casos incluyendo el historial completo de eventos y comentarios
- Crear y actualizar casos — establecer título, proyecto, área, hito, prioridad y comentarios
- Gestión completa del ciclo de vida — asignar, resolver, reabrir y cerrar casos
- Descubrimiento de usuarios, proyectos y áreas — listar personas, categorías, proyectos, hitos y estados
- Crear nuevos proyectos directamente desde la conversación
- Selección automática de API — detecta tu versión de FogBugz y cambia entre las API XML y JSON automáticamente
Requisitos
- FogBugz (local o bajo demanda)
- Node.js 20 o posterior
- Un token de API de FogBugz
Cómo obtener un token de API de FogBugz
Necesitas un token de API para autenticar el servidor MCP con FogBugz. Hay dos formas de obtenerlo:
Mediante la interfaz web
Ve a Cuenta y Configuración → Opciones de Usuario y haz clic en el enlace Crear Token de API.
Consulta la guía oficial: Crear Token de API usando la interfaz de FogBugz
Mediante solicitud de API
Envía la siguiente solicitud (reemplaza los marcadores de posición con tus valores):
https://[your-fogbugz-server]/api.asp?cmd=logon&email=[your-email]&password=[your-password]
La respuesta contendrá tu token de API.
Consulta la guía oficial: Obtener un Token de API usando comandos de la API de FogBugz
Configuración del Cliente de IA
MCP es un estándar abierto — este servidor funciona con cualquier cliente de IA compatible con MCP. La configuración varía según el cliente.
Claude Desktop ✓ (probado)
Instalación con un clic: Descarga el paquete .mcpb más reciente desde la página de Lanzamientos y ábrelo — Claude Desktop instalará y configurará el servidor automáticamente, solicitándote tu URL de FogBugz y tu token de API.
Configuración manual: Añade a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"fogbugz": {
"command": "npx",
"args": ["-y", "@todevs/fogbugz-mcp"],
"env": {
"FOGBUGZ_URL": "https://your-fogbugz-server.com",
"FOGBUGZ_API_KEY": "your-api-token"
}
}
}
}
Claude Code ✓ (probado)
Añade a .mcp.json en la raíz de tu proyecto:
{
"mcpServers": {
"fogbugz": {
"command": "npx",
"args": ["-y", "@todevs/fogbugz-mcp"],
"env": {
"FOGBUGZ_URL": "https://your-fogbugz-server.com",
"FOGBUGZ_API_KEY": "your-api-token"
}
}
}
}
Otros clientes compatibles con MCP
Cualquier cliente que admita servidores MCP stdio debería funcionar. Consulta la documentación de tu cliente sobre cómo registrar un servidor MCP stdio con variables de entorno. El punto de entrada del servidor es npx @todevs/fogbugz-mcp (o node /path/to/dist/index.js para una compilación local).
Herramientas
Gestión de Casos
| Herramienta | Descripción |
|---|---|
create_case | Crear un nuevo caso |
update_case | Actualizar un caso existente (título, comentario, proyecto, área, hito, prioridad) |
assign_case | Asignar un caso a un usuario |
resolve_case | Resolver (marcar como corregido/completado) un caso |
reopen_case | Reabrir un caso resuelto o cerrado |
close_case | Cerrar un caso |
Búsqueda y Visualización
| Herramienta | Descripción |
|---|---|
search_cases | Buscar usando la sintaxis de consulta de FogBugz (p. ej. project:Website status:Active) |
list_my_cases | Listar casos asignados a un usuario (por defecto, el usuario actual) |
get_case | Obtener información detallada del caso, incluido el historial completo de eventos/comentarios |
get_case_link | Obtener una URL directa a un caso |
Datos de Referencia
| Herramienta | Descripción |
|---|---|
list_people | Listar todos los usuarios con IDs, nombres y correos electrónicos |
list_categories | Listar categorías de casos (Error, Solicitud de Función, etc.) |
list_projects | Listar todos los proyectos activos con IDs y nombres |
list_milestones | Listar hitos/versiones, opcionalmente por proyecto |
list_statuses | Listar estados de casos con indicadores de resolución, opcionalmente por categoría |
view_project | Obtener información detallada del proyecto |
view_area | Obtener información detallada del área |
create_project | Crear un nuevo proyecto |
Avanzado
| Herramienta | Descripción |
|---|---|
api_request | Vía de escape genérica de la API XML para comandos no cubiertos por herramientas dedicadas. ⚠️ ADVERTENCIA: puede ejecutar cualquier comando de API que el token configurado permita, incluidas operaciones destructivas (eliminar, editar usuarios, modificación masiva). |
Ejemplos de Uso
Ejemplo 1: Encontrar errores abiertos en un proyecto
Tú: "Muéstrame todos los errores abiertos en el proyecto Website sin asignar a nadie."
Claude llama: search_cases con la consulta project:Website status:Active assignedTo:nobody category:Bug.
Resultado: Una lista de errores sin asignar con sus IDs, títulos y fechas de creación — listos para clasificar o asignar.
Ejemplo 2: Crear un caso a partir de un informe de error
Tú: "Crea un error en el proyecto Mobile titulado 'El botón de inicio de sesión no responde en iOS 17', asígnalo a alice y establece la prioridad en 2."
Claude llama: create_case con proyecto, título, asignado y prioridad establecidos en una sola llamada, luego get_case_link para devolver una URL directa.
Resultado: Nuevo caso creado. Claude confirma el número de caso y proporciona un enlace.
Ejemplo 3: Resolver un caso con un comentario de cierre
Tú: "Resuelve el caso 1042 y añade un comentario diciendo que la corrección se implementó en la v3.5.1."
Claude llama: resolve_case con el ID del caso y un comentario que describe la corrección.
Resultado: Caso resuelto. Claude confirma el cambio de estado y que el comentario se guardó.
Ejemplo 4: Revisar la carga de trabajo de tu equipo
Tú: "¿Qué casos abiertos tiene bob en este momento?"
Claude llama: list_people para encontrar el ID de usuario de Bob, luego list_my_cases filtrado a ese usuario.
Resultado: Un resumen de los casos activos de Bob agrupados por proyecto, con prioridades y fechas de vencimiento.
Ejemplo 5: Actualizar un caso después de una revisión de código
Tú: "Mueve el caso 987 al proyecto Backend, cambia el hito a v4.0 y deja un comentario diciendo que se redefinió el alcance después de la revisión de arquitectura."
Claude llama: update_case con el nuevo proyecto, hito y comentario establecidos en una sola llamada.
Resultado: Caso actualizado. Claude confirma cada cambio de campo.
Cómo Funciona
Este servidor implementa el Protocolo de Contexto de Modelo a través de stdio. El cliente de IA traduce solicitudes en lenguaje natural a consultas o llamadas de API de FogBugz, invoca la herramienta adecuada y presenta los resultados. El servidor es un proxy ligero — pasa las solicitudes directamente a tu instancia de FogBugz y devuelve la respuesta.
Detección Automática de API
Al iniciar, el servidor selecciona automáticamente el cliente de API adecuado para tu instancia de FogBugz:
- Sondea
/api.xmlpara leer el número de versión de FogBugz. - Si la versión es ≥ 9, intenta alcanzar la API JSON (
/f/api/0/jsonapi) — usaFogBugzJsonClienten caso de éxito. - Recurre a
FogBugzXmlClient(API XML a través de/api.asp) para versiones < 9 o si el punto final JSON no es accesible.
| Versión de FogBugz | API utilizada |
|---|---|
| ≥ 9 (API JSON disponible) | API JSON (/f/api/0/jsonapi) |
| < 9 o API JSON inaccesible | API XML (/api.asp) |
Nota sobre el formato de texto: Solo se admite texto sin formato en descripciones y comentarios cuando se conecta a FogBugz 8.x mediante la API XML. El HTML y Markdown se almacenan y muestran literalmente.
Referencia de Configuración
| Variable | Requerida | Descripción |
|---|---|---|
FOGBUGZ_URL | Sí | URL base de tu instancia de FogBugz (p. ej. https://company.fogbugz.com) |
FOGBUGZ_API_KEY | Sí | Token de API de FogBugz |
Instalación
Mediante npx (sin necesidad de instalación)
# Latest stable release
npx @todevs/fogbugz-mcp
# Latest dev build (pre-release)
npx @todevs/fogbugz-mcp@dev
Desde el código fuente
git clone https://github.com/todevelopers/fogbugz-mcp.git
cd fogbugz-mcp
npm install
npm run build
node dist/index.js https://your-fogbugz-server.com your-api-token
Desarrollo
npm run dev # run via ts-node (no build needed)
npm run build # compile TypeScript to dist/
npm test # run all Jest tests
Compatibilidad
- FogBugz local y bajo demanda (probado con FogBugz 8.8.53 mediante API XML)
- Node.js 20+
Política de Privacidad
Este servidor no recopila, almacena ni transmite ningún dato a ToDevelopers ni a terceros. Toda la comunicación se realiza directamente entre tu cliente de IA y tu propia instancia de FogBugz utilizando la URL y las credenciales que proporcionas. No se envían datos de uso, contenido de casos ni credenciales a ningún lugar que no sea tu servidor FogBugz configurado.
Para obtener información completa sobre privacidad, consulta la Política de Privacidad de FogBugz.
Agradecimientos
Este proyecto se basa en el trabajo original de Sarasvati Akari Lara-Almeida — gracias por los cimientos.
Licencia
MIT © Tomáš Gažovič, ToDevelopers s.r.o.