tocsystems-detector-mcp
v1.0.3
Published
MCP que detecta proyectos TocSystems en rutas configurables y sincroniza el skill upconta desde un repo git privado vía SSH (sin tokens).
Maintainers
Readme
tocsystems-detector-mcp
MCP que detecta proyectos TocSystems dentro de rutas configurables y sincroniza
los skills upconta desde un repo git privado usando la auth SSH de la máquina.
Diseñado para convivir con proyectos personales sin contaminarlos: solo actúa dentro
de TOCSYSTEMS_ROOTS.
Características
- Configurable: rutas, marker, repo, ref y agentes por variables de entorno.
- SSH, sin tokens: descarga con
git+ tu llave SSH existente (no usaGITHUB_TOKEN). - Git aislado: corre con
GIT_CONFIG_GLOBAL=/dev/nullyGIT_CONFIG_SYSTEM=/dev/null; no lee ni modifica tu~/.gitconfig,~/.ssh/configni tus repos. - Detección de versión:
git ls-remote(cacheado con TTL) →NOT_INSTALLED,UP_TO_DATEoUPDATE_AVAILABLE. - Compatible con
skills: escribe.agents/skills/+skills-lock.jsoncon el mismo hash que produce el CLI, asípnpx skills listsigue reconociendo la instalación. - No toca
package.jsonde tus proyectos. - Sin symlink escape: resuelve
realpathy valida que el destino quede dentro de los roots.
Herramientas
| Tool | Qué hace |
|---|---|
| detect_project({ cwd? }) | Inspecciona si el cwd es un proyecto TocSystems. No instala. |
| skills_status({ cwd? }) | Estado vs remoto (usa cache de TOCSYSTEMS_REMOTE_TTL). No instala. |
| sync_skills({ cwd?, mode?, dryRun? }) | check (solo reporta), install (si falta), update (si hay commit nuevo), auto (instala/actualiza si no está al día). Sin mode usa TOCSYSTEMS_AUTO: con true actúa como auto, con false (default) solo reporta. dryRun:true previsualiza sin escribir. |
| sync_skills al iniciar sesión | En proyectos TocSystems (isTocSystems:true), llamar sync_skills sin mode (con TOCSYSTEMS_AUTO=true) o con mode:"auto" para auto-instalar/actualizar. |
Variables de entorno
| Variable | Default | Descripción |
|---|---|---|
| TOCSYSTEMS_ROOTS | ~/Documents/trabajo | Rutas de detección, separadas por el separador del OS (: Linux/macOS, ; Windows). |
| TOCSYSTEMS_MARKERS | upconta. | Prefijos de carpeta que marcan proyecto TocSystems (CSV). |
| TOCSYSTEMS_REPO | [email protected]:tocsystems/upconta.skills.git | Repo de skills (SSH). |
| TOCSYSTEMS_REF | main | Branch/tag/commit a instalar. |
| TOCSYSTEMS_SKILLS | * | Skills a instalar (* o CSV de nombres). |
| TOCSYSTEMS_AGENTS | opencode | Agentes destino (informativo; se instala en .agents/skills). |
| TOCSYSTEMS_SYNC | copy | copy o symlink hacia el cache. |
| TOCSYSTEMS_SSH_KEY | (vacío) | Fuerza una llave SSH (GIT_SSH_COMMAND con -i ... -o IdentitiesOnly=yes). |
| TOCSYSTEMS_AUTO | false | true = sync_skills sin mode instala/actualiza solo. Recomendado true en tu opencode.json(c) para auto-install al iniciar sesión. |
| TOCSYSTEMS_CHECK_UPDATES | true | Compara contra el remoto. |
| TOCSYSTEMS_REMOTE_TTL | 600 | Segundos de cache para ls-remote. |
| TOCSYSTEMS_TIMEOUT_MS | 120000 | Timeout de operaciones git. |
| TOCSYSTEMS_CACHE_DIR | ~/.cache/opencode/tocsystems-detector | Cache de repo/estado/log. |
| TOCSYSTEMS_LOG | <cache>/detector.log | Archivo de log (además de stderr). |
Instalación
Opencode
"tocsystems-detector": {
"type": "local",
"command": ["node", "/ruta/al/server.mjs"],
"enabled": true,
"environment": {
"TOCSYSTEMS_ROOTS": "/home/tu-usuario/trabajo"
}
}Desde el paquete publicado (npmjs)
Instalación pública, sin token:
npx -y tocsystems-detector-mcpEn opencode.json:
"tocsystems-detector": {
"type": "local",
"command": ["npx", "--yes", "[email protected]"],
"enabled": true,
"environment": {
"TOCSYSTEMS_ROOTS": "/home/tu-usuario/trabajo",
"TOCSYSTEMS_AUTO": "true"
}
}Requisitos
- Node.js >= 18
gitenPATH- Acceso SSH al repo de skills (tu llave debe estar registrada en GitHub y la cuenta en la org).
Si falta el acceso, las tools devuelven AUTH_FAILED con un mensaje claro.
Seguridad
- No usa tokens de GitHub; solo tu llave SSH.
- No modifica configuración global de git ni SSH.
- Solo escribe dentro de
TOCSYSTEMS_ROOTS(.agents/skills/) y enTOCSYSTEMS_CACHE_DIR. - Los skills se descargan en tiempo de ejecución; no van empaquetados en este paquete.
