Acceso Externo (CLI y Clientes de IA)
Acceso Externo permite que programas de línea de comandos locales y clientes de IA compatibles con MCP gestionen scripts en ScriptCat a través de sctl.
AI client ── stdio MCP ──▶ sctl mcp ── local control API ──▶ sctl serve ── WebSocket ──▶ ScriptCat
CLI ────────────────────────────────────────────────────────▲
sctl serve es un daemon local separado que debe iniciarse explícitamente. sctl mcp y los comandos solicitantes nunca lo inician automáticamente.
sctl escucha en 127.0.0.1 por defecto. Solo escucha en otra interfaz cuando se pasa --listen-address explícitamente. ws:// no encripta el tráfico, use una dirección no predeterminada solo en una red de confianza.
1. Instalar sctl
curl -fsSL https://raw.githubusercontent.com/scriptscat/sctl/main/scripts/install.sh | sh
o Windows PowerShell:
irm https://raw.githubusercontent.com/scriptscat/sctl/main/scripts/install.ps1 | iex
sctl version
2. Iniciar el daemon y registrarse
2.1 Elegir un directorio de datos
export SCTL_DATA_DIR=/absolute/path/to/sctl-data
sctl serve
sctl status
sctl mcp
2.2 Iniciar el daemon
sctl serve
2.3 Habilitar y emparejar en ScriptCat
-
Abre Ajustes → Herramientas → Acceso Externo en ScriptCat y activa el interruptor.
-
Confirma que la dirección sctl coincide con el daemon.
-
Ejecuta en otra terminal:
sctl connect -
Ingresa el código de terminal de 8 caracteres.
-
Verifica la conexión:
sctl status
El código se ve como A1B2-C3D4, expira después de 2 minutos y funciona una vez. Nunca lo pegues en un chat de IA, issue, registro o configuración MCP.
3. Permisos y confirmación
| Capacidad | Comportamiento predeterminado |
|---|---|
| Listar scripts y leer metadatos | Devolver directamente |
| Leer o buscar fuente de script | Seguir la política de lectura de fuente |
| Instalar, editar, habilitar, deshabilitar o eliminar un script | Seguir la política de escritura |
4. Uso de línea de comandos
sctl get # Listar scripts
sctl get <uuid> # Leer metadatos
sctl get <uuid> -o source # Imprimir fuente completa
sctl get <uuid> -o source --lines 20-80
sctl grep <uuid> "fetch(" # Búsqueda literal de fuente
sctl grep <uuid> "pattern" -E # Expresión regular
sctl install <url|file>
sctl edit <uuid> --replace OLD --with NEW
sctl enable <uuid>
sctl disable <uuid>
sctl delete <uuid>
sctl status
5. Conectar un cliente de IA (MCP)
{
"mcpServers": {
"scriptcat": {
"command": "/absolute/path/to/sctl",
"env": {
"SCTL_DATA_DIR": "/absolute/path/to/sctl-data"
},
"args": ["mcp", "--name", "my-ai-client"]
}
}
}
Herramientas actuales:
| Herramienta | Propósito | Política de confirmación |
|---|---|---|
scripts_list | Resúmenes de scripts | Ninguna |
scripts_metadata_get | Metadatos de un script | Ninguna |
scripts_source_get | Leer fuente por UUID | Política de lectura de fuente |
scripts_source_grep | Buscar en fuente | Política de lectura de fuente |
scripts_install_request | Solicitar instalación | Política de escritura |
scripts_edit_request | Solicitar edición | Política de escritura |
scripts_toggle_request | Solicitar habilitar/deshabilitar | Política de escritura |
scripts_delete_request | Solicitar eliminación | Política de escritura |
6. Auditoría y revocación
sctl statusmuestra versión del daemon, conectividad y eventos de seguridad recientes.- "Detener Acceso Externo" desconecta, elimina el estado de emparejamiento y borra las permisiones de sesión.
7. Solución de problemas
El daemon no es accesible — Ejecuta sctl serve primero.
Autenticación del canal de control fallida — Confirma que serve, comandos CLI y el proceso MCP resuelven al mismo directorio de datos absoluto.
El estado dice "Conexión fallida" — Confirma que el daemon está ejecutándose y la dirección coincide.
Un comando no regresa — Verifica el navegador para una página de confirmación de escritura o divulgación de fuente.
Encontrar registros — Los registros están en <data-dir>/logs/.
| Plataforma | Directorio de registros |
|---|---|
| macOS | ~/Library/Application Support/sctl/logs/ |
| Windows | %LOCALAPPDATA%\sctl\logs\ |
| Linux | ~/.config/sctl/logs/ |