Seguridad
Modelo de seguridad de nivel empresarial para el GitScrum MCP Server. Sin operaciones de eliminación, comunicación solo HTTPS, limitación de tasa y autenticación OAuth 2.0.
Código Abierto — GitScrum MCP Server es código abierto bajo la licencia MIT. Disponible en npm y en GitHub. Servidor Model Context Protocol para GitScrum — Claude, GitHub Copilot, Cursor y cualquier cliente compatible con MCP tienen acceso operacional completo a tu stack de gestión de proyectos.
El GitScrum MCP Server está construido con una filosofía de diseño security-first. Cada decisión arquitectónica prioriza la seguridad de los datos, el control de acceso y la protección contra operaciones accidentales o maliciosas a través de asistentes de IA. Este documento cubre el modelo de seguridad completo.
Filosofía de diseño
Los asistentes de IA son herramientas poderosas, pero introducen una nueva categoría de riesgo: una IA puede ejecutar operaciones más rápido y a mayor escala que un humano haciendo clic en una interfaz. Una instrucción mal interpretada como "limpia las tareas antiguas" podría tener consecuencias catastróficas si la IA tiene acceso sin restricciones.
El GitScrum MCP Server aborda esto a través de defensa en profundidad — múltiples capas independientes de protección que reducen el riesgo de forma independiente. Incluso si una capa falla, las demás previenen la pérdida de datos o el acceso no autorizado.
Principios fundamentales:
- Seguro por defecto. Las operaciones que destruyen datos están bloqueadas completamente.
- Mínimo privilegio. El servidor MCP solo tiene acceso a lo que tu cuenta de GitScrum puede acceder.
- Sin secretos en tránsito. Las credenciales permanecen en el navegador; los tokens permanecen en tu máquina.
- Errores transparentes. Los fallos de seguridad producen mensajes de error claros y accionables sin exponer información interna.
Restricciones de operaciones
Solo CREATE, READ, UPDATE
El MCP Server aplica un modelo de operación estricto. Solo se permiten tres tipos de operaciones:
| Operación | MCP Server | Aplicación web GitScrum |
|---|---|---|
| CREATE | Permitido | Permitido |
| READ | Permitido | Permitido |
| UPDATE | Permitido | Permitido |
| DELETE | Bloqueado | Permitido |
Esta restricción se aplica a las 29 herramientas y a todas las más de 160 operaciones. No existe ninguna herramienta, acción o combinación de parámetros que pueda eliminar datos a través del servidor MCP.
Por qué no hay operaciones DELETE
Eliminar datos de proyecto — tareas, sprints, historias de usuario, registros de clientes — es una acción irreversible con consecuencias potencialmente severas. Cuando un asistente de IA interpreta una instrucción en lenguaje natural, siempre hay una probabilidad no nula de malinterpretación. La instrucción "elimina las tareas antiguas del backlog" podría significar archivar, mover o filtrar — no destruir permanentemente.
Al bloquear DELETE en la capa MCP, eliminamos toda una clase de riesgo:
- Malinterpretación. La IA no puede eliminar datos incluso si malinterpreta la instrucción.
- Inyección de prompts. Los prompts maliciosos no pueden activar la destrucción de datos a través de herramientas MCP.
- Errores en lote. Un bucle que procesa múltiples elementos no puede escalar a eliminación masiva.
- Alcance accidental. "Elimina la tarea de prueba" no se expandirá accidentalmente a "eliminar todas las tareas."
Las operaciones destructivas requieren la aplicación web de GitScrum, donde la interfaz requiere confirmación humana explícita con contexto visual de lo que se eliminará.
Defensa en profundidad
Las operaciones DELETE están bloqueadas en múltiples capas independientes:
- Capa MCP. No existen herramientas DELETE en el servidor MCP. El esquema de herramientas físicamente no puede expresar una operación de eliminación.
- Capa API. La API de GitScrum valida los orígenes de solicitud y bloquea solicitudes DELETE de clientes MCP, incluso si un servidor MCP modificado intentara enviarlas.
- Capa de autenticación. El control de acceso basado en roles estándar se aplica. Los usuarios de solo lectura no pueden eliminar a través de ningún canal.
Comunicación solo HTTPS
Toda la comunicación entre el servidor MCP y la API de GitScrum usa HTTPS:
- TLS 1.2 mínimo. Las conexiones que usan versiones anteriores de TLS son rechazadas.
- Validación de certificado obligatoria. El servidor valida la cadena de certificados SSL de la API. Los certificados autofirmados o inválidos son rechazados.
- Sin fallback a HTTP. El servidor no intenta conexiones HTTP sin cifrar bajo ninguna circunstancia.
Esto asegura que los datos en tránsito — tareas, detalles del proyecto, tokens de autenticación — estén cifrados entre el servidor MCP en tu máquina y la API de GitScrum en la nube.
Comunicación local
La comunicación entre el cliente de IA (Claude Desktop, VS Code, Cursor) y el servidor MCP usa stdio (entrada/salida estándar). Como ambos procesos se ejecutan en tu máquina local, esta comunicación nunca atraviesa una red. No hay superficie de ataque a nivel de red para la conexión cliente-servidor.
Seguridad de autenticación
OAuth 2.0 Device Authorization Grant
El servidor MCP se autentica mediante OAuth 2.0 Device Authorization Grant (RFC 8628). Este flujo fue elegido porque:
- Sin credenciales en el servidor MCP. Tu contraseña se ingresa solo en el navegador.
- Sin URI de redirección necesaria. Los servidores MCP se comunican via stdio, no HTTP, por lo que los flujos de redirección OAuth tradicionales no aplican.
- Aprobación visible por el usuario. Ves exactamente lo que se está autorizando en el navegador antes de aprobar.
Para un recorrido detallado del flujo de autenticación, consulta Autenticación.
Aislamiento de tokens
Los tokens de autenticación existen en exactamente dos lugares:
- En memoria en el proceso del servidor MCP
- En disco en
~/.gitscrum/auth.json
Los tokens nunca son:
- Enviados al proveedor del modelo de IA (Anthropic, OpenAI, etc.)
- Incluidos en el contexto o historial de conversación de la IA
- Registrados en consola, archivos o salidas de error
- Transmitidos a ningún servicio de terceros
El asistente de IA sabe que la autenticación fue exitosa y qué workspaces están disponibles, pero no tiene acceso al valor del token.
Permisos de almacenamiento del token
El archivo de token en ~/.gitscrum/auth.json se crea con permisos restringidos:
| Plataforma | Permisos |
|---|---|
| macOS/Linux | 600 (solo lectura/escritura del propietario) |
| Windows | Solo ACL del usuario actual |
Esto previene que otros usuarios en la misma máquina lean tus tokens de autenticación.
Limitación de tasa
Límites de tasa de la API
La API de GitScrum aplica límites de tasa para prevenir abuso y asegurar un uso justo entre todos los clientes:
- Las solicitudes que excedan el límite de tasa reciben una respuesta
429 Too Many Requests - El servidor MCP muestra los errores de límite de tasa al asistente de IA con un mensaje claro
- Los límites de tasa se restablecen automáticamente después del período de enfriamiento
Limitación de tasa de autenticación
Los endpoints de autenticación tienen limitación de tasa adicional para prevenir ataques de fuerza bruta:
- Los intentos fallidos de código de dispositivo se cuentan por cliente
- Los fallos repetidos activan un bloqueo automático con duración creciente
- La autenticación exitosa restablece el contador de fallos
Manejo de límites de tasa
Cuando se alcanza el límite de tasa, el asistente de IA recibe un error claro indicando que se alcanzó el límite. El enfoque recomendado es esperar antes de reintentar. El servidor MCP no reintenta automáticamente las solicitudes limitadas por tasa, dando al asistente de IA control total sobre la lógica de reintento.
Manejo de errores
Códigos de error estandarizados
El servidor MCP traduce las respuestas de la API en mensajes de error consistentes e informativos. Cada error incluye un código de estado, un mensaje legible por humanos y suficiente contexto para que el asistente de IA se recupere o informe al usuario.
| Código de estado | Significado | Respuesta de la IA | Acción del usuario |
|---|---|---|---|
| 401 Unauthorized | Autenticación requerida o token expirado | Solicita re-autenticación | Iniciar sesión de nuevo |
| 403 Forbidden | Permisos insuficientes o restricción de plan | Explica la restricción | Verificar permisos de cuenta o actualizar plan |
| 404 Not Found | El recurso no existe o no es accesible | Reporta recurso no encontrado | Verificar el ID o slug del recurso |
| 422 Validation Error | Datos de entrada inválidos (campos faltantes, formato incorrecto) | Reporta errores de campo específicos | Corregir la entrada y reintentar |
| 429 Rate Limited | Demasiadas solicitudes en ventana de tiempo | Reporta límite de tasa alcanzado | Esperar antes de reintentar |
| 500 Server Error | Fallo inesperado del lado del servidor | Reporta un problema temporal | Reintentar después de un momento |
Mensajes de error seguros
Los mensajes de error están diseñados para ser útiles sin exponer información sensible:
| Divulgado | Protegido |
|---|---|
| Se requiere autenticación | Detalles del token o tiempos de expiración |
| Nivel de permiso o plan necesario | Lógica de autorización interna |
| Recurso no encontrado | Si el recurso alguna vez existió |
| Errores de validación de campos | Mapeos internos de campos o esquema de base de datos |
| Error genérico del servidor | Stack traces, estado interno o detalles de infraestructura |
Degradación elegante
Cuando la API de GitScrum no está accesible (problemas de red, mantenimiento), el servidor MCP:
- Devuelve un error claro al asistente de IA indicando que la API no está disponible
- No almacena en caché datos obsoletos ni devuelve resultados desactualizados
- No reintenta automáticamente, permitiendo al usuario decidir cuándo reintentar
Esto asegura que nunca actúes sobre datos de proyecto obsoletos sin saberlo.
Sin registro de credenciales
El servidor MCP aplica reglas estrictas sobre lo que aparece en logs y salidas:
Nunca registrado:
- Contraseñas (el servidor nunca tiene acceso a ellas)
- Tokens de autenticación (acceso o renovación)
- Claves de API
- Datos personales de usuario más allá de lo que está en las respuestas de la API
Registrado para depuración (cuando el modo verbose está habilitado):
- Nombres de herramientas y acciones llamadas
- Rutas de endpoints de la API (sin headers de autenticación)
- Códigos de estado de error y mensajes
- Tiempos de solicitud/respuesta
Variables de entorno
Dos variables de entorno afectan el comportamiento de seguridad:
| Variable | Propósito | Consideración de seguridad |
|---|---|---|
GITSCRUM_TOKEN | Sobrescribir el token almacenado con un valor de token directo | Usar solo en entornos CI/CD seguros. Las variables de entorno pueden ser visibles para otros procesos. |
GITSCRUMAPIURL | Sobrescribir la URL del endpoint de la API | Solo cambiar para desarrollo. Producción debe usar el valor por defecto https://services.gitscrum.com. Cambiar esto podría dirigir los datos a un servidor no confiable. |
En uso en producción, ninguna variable debería estar configurada. La configuración predeterminada dirige todo el tráfico a la API oficial de GitScrum a través de HTTPS.
Mejores prácticas para entornos empresariales
Para desarrolladores
- Mantén actualizado el servidor MCP. Ejecuta
npx -y @gitscrum-studio/mcp-serverpara usar siempre la última versión, que incluye parches de seguridad. - Cierra sesión en máquinas compartidas. Siempre ejecuta
auth_logoutcuando termines en una máquina a la que otros tienen acceso. - No configures
GITSCRUM_TOKENen perfiles de shell. Si es necesario para automatización, usa un gestor de secretos o un entorno con alcance limitado. - Revisa las acciones de la IA. Antes de confirmar operaciones que modifiquen datos, revisa lo que propone el asistente de IA.
Para administradores de workspace
- Usa control de acceso basado en roles. Asigna roles apropiados en GitScrum. Las operaciones MCP heredan los permisos del rol del usuario.
- Monitorea el registro de auditoría. Todas las operaciones MCP se registran en el servidor en el feed de actividad de GitScrum con la identidad del usuario.
- Aplica requisitos mínimos de plan. Ciertas herramientas de Insights PRO requieren niveles de plan apropiados.
- Revisa el acceso al workspace. Audita periódicamente quién tiene acceso a los workspaces y proyectos.
Para equipos de seguridad
- El código fuente es abierto. El código fuente del servidor MCP está disponible en GitHub para revisión de seguridad.
- Sin persistencia de datos. El servidor MCP almacena solo el token de autenticación localmente. Ningún dato del proyecto se almacena en caché o se escribe en disco.
- Sin listeners de red. El servidor MCP se comunica via stdio, no sockets de red. No abre puertos ni acepta conexiones entrantes.
- Auditoría de dependencias. Ejecuta
npm auditcontra el árbol de dependencias del servidor MCP para vulnerabilidades conocidas.
Reporte de vulnerabilidades
Si descubres una vulnerabilidad de seguridad en el GitScrum MCP Server, repórtala de forma privada:
Email: security@gitscrum.com Asunto: [SECURITY] MCP Server Vulnerability
Incluye:
- Descripción de la vulnerabilidad
- Pasos para reproducir
- Impacto potencial
- Tu información de contacto
Respondemos dentro de 48 horas y trabajamos contigo para abordar el problema antes de la divulgación pública.
Checklist de seguridad
Usa este checklist para verificar que tu despliegue del servidor MCP es seguro:
- [ ] Usando la última versión de
@gitscrum-studio/mcp-server - [ ] Node.js versión 18+ (incluye parches de seguridad)
- [ ] Autenticado via flujo OAuth basado en navegador (no variable de entorno)
- [ ]
~/.gitscrum/auth.jsontiene permisos de archivo restringidos - [ ]
GITSCRUM_TOKENno está configurado en perfiles de shell - [ ]
GITSCRUMAPIURLno está configurado (usando endpoint de producción por defecto) - [ ] El registro de auditoría se revisa periódicamente en el dashboard de GitScrum
- [ ] Los roles del workspace están asignados apropiadamente
- [ ] El servidor MCP se ejecuta desde un entorno local confiable
Próximos pasos
- Autenticación: Flujo detallado de OAuth 2.0 Device Grant y gestión de tokens.
- Configuración: Configuración específica por cliente y referencia de variables de entorno.
- Inicio Rápido: Instala y autentícate en menos de 5 minutos.
- Descripción General de MCP: Referencia completa de herramientas con las 29 herramientas y más de 160 operaciones.