sync-mcp.js
Declara tus servidores MCP una sola vez y úsalos en Claude Code, Codex, Mistral Vibe y Antigravity. Sin secretos en el repo y funcionando también en Windows.
01Una fuente, cuatro agentes
.mcp.json.codex/config.toml.vibe/config.tomlEn los .toml solo reescribe un bloque marcado al final del fichero: el resto de tu configuración no se toca.
02La fuente
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp"],
"envVars": ["CONTEXT7_API_KEY"]
}
}
}
03Secretos: nunca en la fuente
Cada servidor declara en envVars solo los nombres de las variables de entorno que necesita. Cada agente las recibe a su manera:
| Agente | Cómo le llega la variable |
|---|---|
| Claude Code | env { NOMBRE: "${NOMBRE}" }: Claude la expande al arrancar. |
| Codex | env_vars = ["NOMBRE"]: Codex no hereda el entorno, hay que reenviarla. |
| Mistral Vibe | El valor se copia al generar (por eso .vibe/config.toml no se versiona). |
| Antigravity | La hereda del entorno en el que se abre. |
04El detalle de Windows
En Windows npx, npm, pnpm, yarn y uvx son ficheros .cmd que no arrancan sin shell. El script los envuelve en cmd /c automáticamente. Por eso los ficheros generados dependen de la máquina y no se versionan: añádelos a tu .gitignore.
05Cómo usarlo
Guárdalo en .agents/scripts/sync-mcp.js en la raíz de tu repo. Node puro, sin dependencias.
node .agents/scripts/sync-mcp.jsGenera la configuración de cada agente.node .agents/scripts/sync-mcp.js --checkSolo comprueba que está al día, no escribe.
Truco: añade "sync:mcp": "node .agents/scripts/sync-mcp.js" a los scripts de tu package.json.
06El código
Cargando…