Seguridad y trabajo diario - MCP
Permisos de la clave
Cada clave MCP recibe su propio conjunto de permisos, independiente de otras claves de la misma cuenta:
| Permiso | Qué desbloquea |
|---|---|
monitoring.read | alertas y estadísticas diarias de monitorización |
projects.read | la lista de proyectos y su estado actual |
projects.write | crear y editar proyectos |
projects.delete | eliminar proyectos |
issues.read | la lista de errores - solo metadatos del grupo |
issues.details | contenido completo del error: mensaje, lugar del fallo, pila |
issues.write | cambiar el estado de un error |
issues.delete | eliminar errores |
Una herramienta para la que a la clave le falta el permiso correspondiente no aparece en la respuesta de tools/list - no es una opción oculta, es la ausencia de la herramienta desde el punto de vista de esa clave.
issues.details es la excepción
Es el único permiso desmarcado por defecto, porque expone datos más sensibles que el resto: sin él, issues.list devuelve solo los metadatos del grupo (token del proyecto, tipo, estado, número de eventos, fechas), y la herramienta issues.get ni siquiera existe para esa clave. Con él, la lista añade además el mensaje del error y el lugar del fallo, y issues.get devuelve la imagen completa de un grupo - incluida la pila de llamadas, los marcos con el fragmento de código, los datos de la petición y el historial diario. Márcalo de forma consciente, solo cuando una herramienta necesite realmente diagnosticar errores y no solo contarlos.
El alcance de una clave es la intersección con los permisos de quien la emitió
Una clave no vive por sí sola - en cada petición sus permisos guardados se cruzan con los permisos actuales de la persona que la emitió. Degradar a esa persona o desactivar su cuenta reduce o invalida la clave desde la siguiente petición, sin ninguna acción adicional. La reducción solo afecta a la lectura en memoria - la fila de la clave en la base de datos permanece intacta, así que restaurar los permisos anteriores de quien la emitió devuelve de inmediato el alcance completo de la clave.
Lo que el servidor MCP nunca devuelve
Los datos de proyecto nunca incluyen claves privadas, y los detalles de un error nunca incluyen el correo electrónico, el nombre de usuario, el identificador de usuario ni la dirección IP tomados del payload del cliente. Las cabeceras de la petición pasan por una lista de permitidas, no de prohibidas - una nueva cabecera de autenticación que un cliente empiece a enviar no se filtra solo porque nadie la haya añadido aquí todavía; el número de cabeceras omitidas viaja en la respuesta como headers_omitted. Los valores de las variables locales de los marcos de pila nunca salen, y el código fuente solo se adjunta a los marcos de la aplicación cliente.
Auditoría y límites de peticiones
Cada llamada a una herramienta queda registrada en el registro de auditoría junto con la dirección IP guardada como hash. Una petición cuya cabecera Origin apunte a un dominio ajeno termina en 403 - un navegador no tiene nada que buscar aquí, este endpoint es para clientes del lado del servidor. El límite de peticiones se aplica por el hash del token, así que un cliente sobrecargado no consume el límite de las demás claves de la cuenta.