Un servidor MCP corre en tu máquina con tus permisos. Antes de instalar uno desconocido, revisa estos siete puntos.
1. Origen del código
Prefiere servidores oficiales de Anthropic o del vendor (GitHub MCP de github.com/github, Stripe MCP de github.com/stripe, etc.). Si es comunitario, lee el código —no son más de 200 líneas habitualmente— y revisa quién es el maintainer.
2. Scopes y tokens
- GitHub: usa fine-grained tokens con repos específicos, no PATs clásicos con todo el scope.
- Postgres / MySQL: conecta con usuario
readonlypor defecto. UsaSET TRANSACTION READ ONLYoSET default_transaction_read_only = on. - Slack / Notion: bot tokens limitados a canales/espacios concretos.
3. Filesystem y Shell
El error #1: dar acceso a / o a tu home completo. Limita siempre a un directorio de proyecto. Para Shell MCP, usa allow-list de comandos:
uvx mcp-shell --allow-list "ls,git,npm,node,python"
4. Sandboxing
Para servidores comunitarios o experimentales, considera correrlos en Docker:
docker run -i --rm -v $(pwd):/workspace mi-mcp:latest
Eso aísla acceso a tu sistema de archivos y red.
5. Telemetría y logs
Algunos servidores envían telemetría a sus dashboards. Revisa el README. Si te molesta, busca OPT_OUT_TELEMETRY=1 o similar.
6. Cadena de suministro
- Para paquetes npm/pip, fija versión exacta:
@modelcontextprotocol/server-filesystem@2.1.3. - Activa
npm auditopip-auditen CI si distribuyes el config. - Para Docker, usa digest pinning:
ghcr.io/github/github-mcp-server@sha256:...
7. Auditoría continua
Revisa los logs MCP regularmente. Anomalías típicas: queries fuera del esquema esperado, llamadas a APIs no autorizadas, comandos shell con rm. Plataformas como Glama publican security scores que vale la pena consultar.