Skip to main content
Glama
README.md
# starc-mcp

Servidor **MCP** para leer y escribir proyectos de **Story Architect (STARC)**
desde cualquier agente LLM (Claude Code, Codex, Gemini/agy, Cursor, Hermes…).
El agente pide — `listar proyectos`, `leer el guion`, `escribir la escena 3`,
`estadísticas`, `fichas de personajes` — y el servidor hace el trabajo sobre tu
archivo `.starc`, sin que el agente conozca el formato interno.

> ⚠️ **No afiliado a Story Apps.** Proyecto independiente; STARC es marca de sus
> autores. Funciona sobre el formato de archivo `.starc` (SQLite + XML).

## Regla dura (por diseño)

**Este servidor NUNCA modifica la aplicación STARC.** Trabaja únicamente sobre
archivos de proyecto `.starc`. La app puede actualizarse con normalidad sin
conflicto. Probado contra **STARC 0.8.2 (macOS)**.

## Seguridad

- **Escrituras con doble confirmación**: `preview=true` informa sin tocar nada;
  escribir exige `preview=false, confirmar=true`.
- **Escritura atómica**: copia temporal → `PRAGMA integrity_check` → re-chequeo
  de lock → `os.replace`. Backup automático con microsegundos antes de cada escritura.
- **Nunca escribe con el proyecto abierto** (detecta `.lock` de STARC).
- **Sin herramientas de borrado**. Restaurar = `restaurar_snapshot` (con backup
  previo del estado actual).
- **Allowlist de rutas**: solo `.starc` dentro del directorio configurado;
  `/Applications`, `.app` y `.framework` prohibidos explícitamente.
- Logs a **stderr** (el stdio MCP se mantiene limpio).

## Herramientas

| Tool | Modo | Qué hace |
|---|---|---|
| `listar_proyectos` | lectura | `.starc` disponibles |
| `info_proyecto` | lectura | documentos y escenas |
| `leer_guion` | lectura | guion/serie a markdown, fountain o json |
| `estadisticas` | lectura | escenas, palabras, páginas, personajes, localizaciones |
| `escribir_guion` | escritura* | reemplaza el guion (fountain o json) |
| `editar_escena` | escritura* | reemplaza UNA escena por número |
| `snapshot` / `listar_snapshots` / `restaurar_snapshot` | escritura* | backups con fecha y restauración |
| `poblar_*` (personajes/localizaciones desde el guion) | escritura* | genera fichas automáticamente |

\* siempre con confirmación, backup y verificación post-escritura.

## Instalación

```bash
git clone https://github.com/Christianrhf/starc-mcp.git
cd starc-mcp
python3 -m venv .venv && .venv/bin/pip install -e .
```

Config: `STARC_PROJECTS_DIR` apunta a tu carpeta de proyectos
(por defecto `~/Documents/starc/projects`).

### Conectar un agente (ej. Claude Code)

```bash
claude mcp add --transport stdio starc \
  -- .venv/bin/python -m starc_mcp.server
```

Codex: `codex mcp add starc -- .venv/bin/python -m starc_mcp.server`
Gemini/agy y Cursor aceptan MCP por stdio con el mismo comando.

### Remoto (VPS → Mac)

El transporte MCP es stdio, no viaja por SSH solo; se enruta con pipes:

```bash
ssh usuario@mac "cd ~/starc-mcp && .venv/bin/python -m starc_mcp.server"
```

## Uso con un agente (ejemplo)

> "Lista mis proyectos. Sobre *El Inquilino*, dame las estadísticas y qué
> personajes hablan en la escena 12. Luego reescribe esa escena con más tensión
> (preview primero, y confirma antes de escribir)."

## Compatibilidad tras actualizaciones de STARC

Si STARC cambia el formato interno, el servidor fallará de forma segura
(no corrompe nada) y el test [`tests/`](tests/) alerta:
`escribir → leer → contar escenas → integrity_check` debe quedar verde.

## Fixtures

Los fixtures de `tests/fixtures/` son **sintéticos** (nunca guiones reales).
Los backups `.bak-*` están en `.gitignore`.

## Estado & roadmap

- ✅ guion y serie (texto), sinopsis/tratamiento/título (lectura), estadísticas,
  personajes/localizaciones (escribir + poblar), portada (mecanismo), backups.
- 🧪 validación visual de módulos pendiente: STARC 0.8.2 no expone los módulos
  de investigación (personajes/localizaciones/mundos) en su barra lateral;
  los datos cargan y se aceptan sin reparación.
- ⏳ fdx/PDF, diccionarios (10105), mapa mental (100003), paginación fina.

TDQS

B3.3/5.0

Scored across 13 tools

Disambiguation5/5

Each tool targets a distinct resource and action: project listing, info, backups (create/list/restore), script reading/writing/editing, statistics, synopsis/treatment writing, world creation, and cover setting. Even similar tools like info_proyecto and estadisticas are clearly differentiated by content (structure vs. stats). No two tools appear to do the same thing.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern in Spanish (listar_proyectos, escribir_guion, editar_escena, restaurar_snapshot), but a few deviate by using nouns or non-verb prefixes (snapshot, estadisticas, info_proyecto). The overall snake_case convention is consistent, so minor irregularities don't cause confusion.

Tool Count5/5

With 13 tools, the surface is well-scoped for a screenwriting assistant. Each tool covers a distinct operation, and the count falls within the ideal 3-15 range, providing comprehensive functionality without overwhelming complexity.

Completeness4/5

The tool set covers the core lifecycle: reading, writing, editing, backups/restore, plus auxiliary writing (synopsis, treatment) and project metadata (info, stats, world, cover). Missing operations like creating a new project or managing characters/locations directly are minor gaps, but agents can likely work around them given the existing depth.

Maintenance

ActivityMaintained
ResponsivenessNo issues