GitScrum / Docs

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ónMCP ServerAplicación web GitScrum
CREATEPermitidoPermitido
READPermitidoPermitido
UPDATEPermitidoPermitido
DELETEBloqueadoPermitido

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:

  1. 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.
  2. 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.
  3. 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:

  1. En memoria en el proceso del servidor MCP
  2. 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:

PlataformaPermisos
macOS/Linux600 (solo lectura/escritura del propietario)
WindowsSolo 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 estadoSignificadoRespuesta de la IAAcción del usuario
401 UnauthorizedAutenticación requerida o token expiradoSolicita re-autenticaciónIniciar sesión de nuevo
403 ForbiddenPermisos insuficientes o restricción de planExplica la restricciónVerificar permisos de cuenta o actualizar plan
404 Not FoundEl recurso no existe o no es accesibleReporta recurso no encontradoVerificar el ID o slug del recurso
422 Validation ErrorDatos de entrada inválidos (campos faltantes, formato incorrecto)Reporta errores de campo específicosCorregir la entrada y reintentar
429 Rate LimitedDemasiadas solicitudes en ventana de tiempoReporta límite de tasa alcanzadoEsperar antes de reintentar
500 Server ErrorFallo inesperado del lado del servidorReporta un problema temporalReintentar 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:

DivulgadoProtegido
Se requiere autenticaciónDetalles del token o tiempos de expiración
Nivel de permiso o plan necesarioLógica de autorización interna
Recurso no encontradoSi el recurso alguna vez existió
Errores de validación de camposMapeos internos de campos o esquema de base de datos
Error genérico del servidorStack 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:

  1. Devuelve un error claro al asistente de IA indicando que la API no está disponible
  2. No almacena en caché datos obsoletos ni devuelve resultados desactualizados
  3. 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:

VariablePropósitoConsideración de seguridad
GITSCRUM_TOKENSobrescribir el token almacenado con un valor de token directoUsar solo en entornos CI/CD seguros. Las variables de entorno pueden ser visibles para otros procesos.
GITSCRUMAPIURLSobrescribir la URL del endpoint de la APISolo 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-server para usar siempre la última versión, que incluye parches de seguridad.
  • Cierra sesión en máquinas compartidas. Siempre ejecuta auth_logout cuando termines en una máquina a la que otros tienen acceso.
  • No configures GITSCRUM_TOKEN en 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 audit contra 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:

  1. Descripción de la vulnerabilidad
  2. Pasos para reproducir
  3. Impacto potencial
  4. 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.json tiene permisos de archivo restringidos
  • [ ] GITSCRUM_TOKEN no está configurado en perfiles de shell
  • [ ] GITSCRUMAPIURL no 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.