Scrivener MCP
Conecta proyectos de escritura de Scrivener 3 con Claude, ChatGPT y otros asistentes de IA. Más de 60 herramientas para gestión de manuscritos, análisis de escritura, búsqueda semántica, memoria de personajes/trama y mejora de contenido.
Documentación
Scrivener MCP
Conecta tus proyectos de Scrivener a Claude, ChatGPT y otros asistentes de IA
Instalación · Qué puedes hacer · Todas las herramientas · Guías · Contribuciones
Scrivener MCP permite que tu asistente de IA abra, lea, edite, analice y busque en tus proyectos de Scrivener directamente. Sin copiar y pegar. Sin exportar. Dile a tu asistente qué proyecto abrir y empieza a trabajar.
Tú: Abre mi novela y analiza el ritmo en el Capítulo 12.
Claude: Abre tu proyecto .scriv, lee el Capítulo 12 y ejecuta el análisis de ritmo. La primera mitad avanza bien con párrafos cortos y tensos. La sección central se ralentiza considerablemente: el monólogo interno de tres páginas que comienza en el párrafo 14 frena el impulso que construiste en la escena de confrontación. Considera reducirlo a un solo párrafo y mover el trasfondo al Capítulo 8, donde se presenta a Elena por primera vez.
Funciona con Claude Desktop, Claude Code, VS Code (Copilot/Continue), Cursor y cualquier cliente compatible con MCP. Scrivener 3 en macOS, Windows y Linux. Listado en el registro oficial de MCP como io.github.writerslogic/scrivener-mcp.
Instalación
Elige el método que mejor te funcione. La mayoría configuran automáticamente Claude Desktop durante la instalación. Claude Code y otros clientes necesitan un paso adicional: consulta Claude Code más abajo.
npm (recomendado)
npm install -g scrivener-mcp
Reinicia Claude Desktop. Listo.
Claude Code
Instalar el paquete npm no registra el servidor en Claude Code: la configuración automática durante la instalación solo escribe la configuración de Claude Desktop. Después de instalar, registra el servidor:
npx scrivener-setup
Esto detecta Claude Code (junto con Claude Desktop y Cursor) y escribe la configuración por ti. Para registrarlo manualmente:
claude mcp add -s user scrivener -- npx scrivener-mcp
Luego reinicia Claude Code (o ejecuta /mcp para reconectar) y Scrivener MCP aparecerá en la lista de servidores. Añade -s user para limitarlo al proyecto actual en lugar de a todos los proyectos.
Smithery
npx -y @smithery/cli install scrivener-mcp --client claude
npx (sin instalación)
Úsalo directamente sin instalación global:
npx scrivener-mcp
O añádelo manualmente a la configuración de Claude Desktop:
{
"mcpServers": {
"scrivener": {
"command": "npx",
"args": ["scrivener-mcp"]
}
}
}
GitHub
Instala directamente desde el repositorio (última versión de main):
npm install -g writerslogic/scrivener-mcp
O una versión específica:
npm install -g writerslogic/scrivener-mcp#v0.12.0
Homebrew (macOS)
brew install writerslogic/tap/scrivener-mcp
Docker
docker build -t scrivener-mcp https://github.com/writerslogic/scrivener-mcp.git
docker run -i --rm -v /path/to/your/projects:/projects scrivener-mcp
Configuración para otros clientes MCP
Ejecuta la configuración interactiva para detectar y configurar automáticamente tu cliente:
npx scrivener-setup
Esto detecta Claude Desktop, Claude Code y Cursor, y escribe la configuración por ti.
Para otros clientes MCP, apúntalos a npx scrivener-mcp como servidor stdio.
Opcional: funciones impulsadas por IA
Las funciones principales (gestión de documentos, análisis determinista, búsqueda por palabras clave y memoria del proyecto) funcionan sin ninguna clave de API. El análisis impulsado por IA, la generación, la mejora y la búsqueda semántica funcionan con una clave de Anthropic (Claude), OpenAI u OpenRouter; cuando hay varias presentes, Claude se encarga del chat y la generación (establece AI_PROVIDER=openai o AI_PROVIDER=openrouter para anular). OpenRouter usa por defecto el modelo anthropic/claude-sonnet-4.6; establece OPENROUTER_MODEL para usar otro modelo de su catálogo. Si el proveedor activo falla con un error a nivel de cuenta (clave no válida, crédito agotado, interrupción), el servidor reintenta automáticamente la solicitud con el siguiente proveedor configurado. Cuando tu cliente MCP admite la capacidad de muestreo, las funciones de IA basadas en chat también pueden ejecutarse a través del modelo propio del cliente, sin necesidad de una clave de API configurada por separado. La indexación semántica y la puntuación de similitud utilizan el Sistema de Memoria Holográfica local en lugar de una API de incrustación externa, mientras que el pipeline actual de semantic_search utiliza el proveedor de chat configurado para interpretar consultas y explicar resultados. El servidor descubre automáticamente las claves en ubicaciones comunes:
- Variables de entorno
ANTHROPIC_API_KEY/OPENAI_API_KEY/OPENROUTER_API_KEY ~/.env,~/.scrivener-mcp/.env~/.anthropic/key,~/.openai/key,~/.openrouter/key- Llavero de macOS (nombres de servicio
anthropic-api-key/openai-api-key/openrouter-api-key)
Para guardar una clave en el Llavero de macOS:
security add-generic-password -s anthropic-api-key -a anthropic -w sk-ant-your-key-here
O expórtala manualmente:
export ANTHROPIC_API_KEY="sk-ant-..." # or OPENAI_API_KEY="sk-..."
Esto habilita el análisis de escritura respaldado por proveedor, la mejora de contenido, la generación, la búsqueda semántica, la verificación de consistencia de personajes y la compilación inteligente.
Qué puedes hacer
Primero, abre un proyecto. El servidor actúa sobre el proyecto
.scrival que lo apuntes: no tiene vínculo con la aplicación Scrivener y no puede ver lo que tienes abierto allí. Comienza una conversación con "Abre mi proyecto de Scrivener en~/Documents/My Novel.scriv" (o "Descubre mis proyectos de Scrivener" si no conoces la ruta) y luego da tus comandos. En macOS también puedes decir "Usa el proyecto que tengo abierto en Scrivener": detecta el proyecto abierto y lo abre (la primera vez, macOS te pedirá permiso para controlar Scrivener). Haz esto una vez al inicio de cada conversación; los ejemplos a continuación asumen que hay un proyecto abierto. Si el mismo proyecto también está abierto y sin guardar en la aplicación Scrivener, guárdalo o ciérralo allí primero para evitar escrituras conflictivas.
Gestiona tu manuscrito
Abre cualquier proyecto de Scrivener y trabaja con él de forma natural. Lee capítulos, crea nuevas escenas, reorganiza el binder, actualiza sinopsis: todo mediante conversación.
Tú: Crea una nueva escena llamada "La revelación" después del Capítulo 5 y mueve el epílogo antiguo a la papelera.
Analiza tu escritura
Obtén comentarios detallados sobre legibilidad, ritmo, estilo, calidad del diálogo y arco emocional. No son consejos genéricos: análisis fundamentado en tu prosa real.
Tú: Analiza el Capítulo 3. ¿El ritmo es demasiado lento?
Claude: La legibilidad es buena (grado Flesch-Kincaid 8.2), pero el ritmo presenta señales:
- 4 párrafos consecutivos de monólogo interno (líneas 45-78) sin acción ni diálogo
- La escena tiene 3,200 palabras con solo 2 cortes de escena: tus otros capítulos promedian 4
- La densidad de palabras filtro es 2 veces el promedio de tu manuscrito ("sentía", "parecía", "notaba") Sugerencias específicas: ...
Mejora tu prosa
Aplica mejoras específicas: elimina palabras filtro, fortalece verbos, varía la estructura de las oraciones, añade detalles sensoriales, convierte mostrar en contar, ajusta el diálogo, equilibra el ritmo.
Tú: Elimina las palabras filtro del Capítulo 7 y fortalece los verbos.
Da seguimiento a personajes y trama
Guarda perfiles de personajes, hilos argumentales y guías de estilo que persisten con tu proyecto. La IA recuerda a tus personajes entre sesiones.
Tú: Guarda un perfil de personaje para Marcus: detective retirado, cínico pero justo, camina con una cojera por una lesión antigua, habla con frases cortas.
Más tarde...
Tú: Verifica si Marcus es consistente en todos los capítulos.
Claude: Encontré una inconsistencia: Marcus camina "enérgicamente" en el Capítulo 9 (línea 34), pero su cojera se menciona en los Capítulos 2, 5 y 11. Además, su diálogo en el Capítulo 4 usa oraciones largas y fluidas, lo que contradice la nota de "frases cortas" en su perfil.
Busca por significado
Encuentra pasajes por su contenido, no solo por coincidencia de palabras clave. "Encuentra escenas donde el protagonista se siente aislado" funciona incluso si la palabra "aislado" nunca aparece. El índice del proyecto y la puntuación de similitud se ejecutan localmente mediante el Sistema de Memoria Holográfica; el pipeline de búsqueda actual también usa tu proveedor de IA configurado para la interpretación de consultas y las explicaciones de resultados, por lo que semantic_search requiere un proveedor.
Tú: Encuentra todas las escenas donde Elena y Marcus están solos juntos.
Da seguimiento a relaciones
Guarda y consulta relaciones entre personajes, lugares, temas e hilos argumentales. No se necesita Neo4j: las relaciones viven en el motor de memoria semántica y persisten con tu proyecto.
Tú: ¿Quién está conectado con Marcus? ¿Qué hilos argumentales involucran el faro?
Compila y exporta
Combina capítulos en un solo manuscrito con formato configurable, separadores y preservación de la estructura. Exporta el resultado en línea como Markdown, HTML o JSON, o escribe un archivo DOCX, EPUB o PDF en disco para envío, lectores electrónicos o impresión.
Todas las herramientas
57 herramientas organizadas por flujo de trabajo. Para mantener bajo el uso de tokens, las herramientas se cargan progresivamente: herramientas de proyecto al inicio, herramientas de documentos y búsqueda cuando abres un proyecto, y el resto bajo demanda (tu cliente de IA las activa automáticamente, o las llama directamente y la habilidad correspondiente se activa sobre la marcha). Establece SCRIVENER_MCP_EAGER_TOOLS=1 para cargar todo de una vez.
Proyecto -- abrir, explorar, gestionar
| Herramienta | Qué hace |
|---|---|
open_project | Abre un proyecto .scriv (acepta carpetas .scriv o archivos .scrivx) y lo activa |
discover_projects | Escanea ubicaciones comunes en busca de proyectos de Scrivener cuando no conoces la ruta |
detect_open_project | Detecta el proyecto actualmente abierto en la aplicación Scrivener (macOS) para que no necesites una ruta |
get_structure | Explora la jerarquía del binder (carpetas, documentos, recuentos de palabras) |
refresh_project | Recarga desde el disco después de ediciones externas |
close_project | Cierra el proyecto activo y vacía los cambios pendientes |
verify_project_integrity | Escaneo de solo lectura para problemas estructurales (UUID faltantes o duplicados, contenido ilegible) |
get_compile_settings | Lee los formatos de compilación y la taxonomía del proyecto: etiquetas/estados (con colores), colecciones, tipos de sección |
get_manuscript_briefing | Una instantánea de "¿dónde estoy?": palabras vs. objetivo (% de la meta), recuentos de documentos/estados/etiquetas, documentos más largos/cortos |
list_snapshots | Lista las instantáneas de Scrivener (título, fecha) para un documento o todo el proyecto |
read_snapshot | Lee el texto de una instantánea como texto plano, con recuento de palabras |
compare_snapshot | Compara una instantánea con el documento actual (u otra instantánea): párrafos añadidos/eliminados y cambio neto de palabras |
create_snapshot | Toma una instantánea nativa de Scrivener de un documento (restaurable desde el navegador de instantáneas de Scrivener) antes de editar |
Documentos -- leer, escribir, crear, organizar
| Herramienta | Qué hace |
|---|---|
get_document_info | Metadatos de un documento (título, tipo, recuento de palabras, sinopsis, etiqueta, estado) |
read_document | Lee contenido; format: "formatted" para texto enriquecido, offset/limit para paginar documentos largos |
write_document | Reemplaza el contenido de un documento (atómico, con copia de seguridad previa a la escritura) |
create_document | Crea un nuevo documento de texto o carpeta |
update_document | Cambia el título y/o los metadatos (sinopsis, notas, etiqueta, estado, campos personalizados) |
move_document | Reorganiza dentro del binder |
delete_document | Mueve a la papelera (reversible) |
Búsqueda -- encontrar contenido, pasajes y menciones
| Herramienta | Qué hace |
|---|---|
search | Búsqueda por palabras clave/texto completo; field: "title" para títulos, scope: "trash" para la papelera |
semantic_search | Encontrar pasajes por significado usando el índice HMS local más la interpretación de consultas respaldada por proveedor, con puntuaciones de similitud |
find_mentions | Localizar cada aparición de un nombre o término específico, con contexto |
list_trash | Listar documentos en la papelera |
restore_document | Restaurar un documento desde la papelera |
read_annotations | Leer los comentarios y notas al pie de un documento |
Análisis -- calidad, coherencia, estructura
| Herramienta | Qué hace |
|---|---|
analyze_document | Análisis de escritura con IA; enfocar con aspects (estructura, estilo, ritmo, temas...) |
check_consistency | Verificación de continuidad en todo el proyecto; scope para trama, personajes o línea temporal |
analyze_writing_style | Análisis centrado en el estilo |
check_plot_consistency | Verificación de coherencia de los hilos argumentales |
suggest_improvements | Sugerencias de mejora generadas por IA |
enhance_content | Sugerir una mejora específica para un documento |
generate_content | Generar nueva prosa a partir de un prompt y contexto |
set_writing_goal | Establecer un objetivo de recuento de palabras (diario, semanal o para todo el proyecto) con una fecha objetivo opcional |
get_writing_goals | Listar objetivos con progreso -- porcentaje completado, palabras restantes, estado de avance |
set_writing_preferences | Establecer preferencias del autor (tono, complejidad, extensión, punto de vista, guía de estilo) que orientan la salida de la IA |
get_writing_preferences | Mostrar preferencias actuales más información y sugerencias de retroalimentación |
collect_feedback | Registrar una calificación/comentario sobre una operación de IA para informar esas percepciones |
Tipos de mejora: eliminate-filter-words, strengthen-verbs, vary-sentences, add-sensory-details, show-dont-tell, improve-flow, enhance-descriptions, strengthen-dialogue, fix-pacing, expand, condense, rewrite
Compilar y Exportar -- ensamblar y enviar el manuscrito
| Herramienta | Qué hace |
|---|---|
compile_documents | Combinar documentos; mode: "structured" compila la carpeta Borrador con la jerarquía del binder como encabezados y respeta "Incluir en Compilación" (sin IA), mode: "intelligent" para salida optimizada por IA |
export_project | Escribir el manuscrito en disco -- Markdown, HTML, JSON en línea, o DOCX, EPUB, PDF como archivo |
get_statistics | Recuentos de palabras/documentos/caracteres a nivel de proyecto |
generate_marketing_materials | Redactar sinopsis, carta de presentación, pitch y materiales relacionados |
Memoria -- conocimiento persistente del proyecto
| Herramienta | Qué hace |
|---|---|
remember | Almacenar información que persiste entre sesiones con el proyecto |
recall | Recuperar memoria previamente almacenada |
La memoria se guarda dentro de cada proyecto .scriv y viaja con él.
Relaciones -- conexiones de entidades y grafo de la historia
| Herramienta | Qué hace |
|---|---|
add_relationship | Almacenar una relación entre personajes, lugares, temas o hilos argumentales |
find_relationships | Consultar entidades relacionadas con un personaje/tema/lugar dado |
discover_connections | Encontrar entidades que coaparecen en todo el manuscrito |
character_network | La red de relaciones entre personajes |
get_entity_references | Trazar el grafo de referencias en cualquier dirección: entidades que un documento menciona (por documentId), o documentos que mencionan una entidad (por entidad) |
find_orphaned_entities | Listar personajes/lugares registrados que ningún documento menciona realmente |
suggest_connections | Sugerir entidades que un documento podría estar omitiendo, inferidas por coaparición entre documentos |
Funciona sin Neo4j -- las relaciones viven en el Sistema de Memoria Holográfica y están disponibles de inmediato. Las herramientas de referencias cruzadas de documentos son totalmente deterministas (coincidencia exacta de palabras completas, sin IA) y no necesitan servicios externos; Neo4j añade análisis de grafos avanzado cuando está conectado.
Trabajos en Segundo Plano -- análisis de larga duración
| Herramienta | Qué hace |
|---|---|
queue_document_analysis | Poner en cola un análisis asíncrono de un documento; devuelve un id de trabajo |
queue_project_analysis | Poner en cola un análisis asíncrono de todo el proyecto |
get_job_status | Consultar el progreso/resultados de un trabajo en cola |
cancel_job | Cancelar un trabajo en cola o en ejecución |
Descubrimiento -- explorar capacidades
| Herramienta | Qué hace |
|---|---|
list_skills | Listar los grupos de herramientas disponibles y sus herramientas |
use_skill | Activar un grupo de herramientas (la mayoría están preactivados por defecto) |
Guías
- Primeros pasos -- Instalación, configuración, tu primera sesión
- Configuración del cliente MCP -- Configuración de copiar y pegar para Claude Desktop, Claude Code, Cursor y VS Code
- Escribir con IA -- Flujos de trabajo de análisis, estrategias de mejora, gestión de memoria
- Solución de problemas -- Problemas comunes y soluciones
- Optimización de tokens -- Cómo el servidor minimiza el uso de la ventana de contexto
- Arquitectura -- Cómo funciona el servidor, estructura de módulos, flujo de datos
- Compatibilidad con Scrivener -- Versiones de Scrivener compatibles, plataformas y cobertura de formatos
- Formato de archivo Scrivener -- El formato
.scrivde ingeniería inversa, qué leemos vs. inferimos, y guía de modificación segura - Fuzzing -- Objetivo de Jazzer.js y detalles de integración con OSS-Fuzz
- Contribuir -- Configuración de desarrollo, convenciones de código, añadir nuevas herramientas
Requisitos
- Node.js 18+
- Archivos de proyecto de Scrivener 3 (.scriv)
- macOS, Windows o Linux
- Opcional: clave API de Anthropic, OpenAI u OpenRouter para funciones de IA respaldadas por proveedor
- Opcional: Neo4j para persistencia y consultas de grafos avanzadas; las herramientas de relaciones principales funcionan sin él
Desarrollo
git clone https://github.com/writerslogic/scrivener-mcp.git
cd scrivener-mcp
npm install
npm run dev # Development mode with hot reload
npm run build # Compile TypeScript
npm test # Run tests
npm run typecheck # Type checking only
¿Por qué este?
Existen varios servidores MCP de Scrivener. Esta comparación se basa en la documentación pública de cada proyecto, el paquete publicado y la superficie de herramientas anunciada a fecha de 2026-08-07. "No" significa que el proyecto no documenta esa capacidad; no afirma que la capacidad sea imposible a través del cliente de IA conectado.
| Característica | scrivener-mcp | jiayun | TwelveTake | Scrivener Assistant | ricopicone | zaphodsdad |
|---|---|---|---|---|---|---|
| Herramientas MCP públicas | 57 | 29 | 22 | 38 | 18 | 10 |
| Acceso al manuscrito | lectura/escritura | lectura/escritura | lectura/escritura | solo lectura; escribe datos auxiliares/metadatos | solo lectura por defecto; escritura optativa de contenido/notas/sinopsis | solo lectura |
| Manejo de RTF | lecturas formateadas; escrituras de tramos que preservan fidelidad | lee/escribe contenido del documento | lee/escribe contenido del documento | convierte RTF a texto; manuscrito solo lectura | lecturas RTF a texto; escrituras de contenido protegidas por instantánea | convierte RTF a texto; solo lectura |
| Análisis de escritura integrado | legibilidad, ritmo, estilo, emoción, crítica de IA | legibilidad, estilo, sentimiento | comparación de continuidad | flujo de revisión de cinco puntos impulsado por agente | sin herramienta de análisis dedicada | sin herramienta de análisis dedicada |
| Generación/mejora de contenido | generación + 12 tipos de mejora específicos | no | no | flujo de trabajo de agente para lluvia de ideas/borrador | no | no |
| Recuperación semántica local | índice HMS y búsqueda de similitud | no | no | no | no | no |
| Memoria de continuidad/proyecto | memoria persistente + verificaciones de coherencia | notas persistentes + verificaciones de coherencia | comparación de menciones/descripciones | biblia del mundo, estado de la historia, personajes, lugares, historial de revisiones | sin memoria persistente | sin memoria persistente |
| Herramientas de relaciones | relaciones persistentes, redes, grafo de referencias; Neo4j opcional | no | no | datos de relaciones editables por humanos | no | no |
| Optimización de tokens | carga progresiva de habilidades, salida compacta, lecturas paginadas | sin equivalente documentado | sin equivalente documentado | sin equivalente documentado | lecturas de binder/capítulos acotadas | herramientas de visión general/lectura acotadas |
| Exportación/compilación | Markdown, HTML, JSON, DOCX, EPUB, PDF | compilar + exportación del borrador completo | guarda borradores de IA; sin exportación de manuscrito documentada | no | no | |
| Soporte de Windows | sí | sí (binario precompilado) | sí | no documentado | no documentado | sí |
| Instalación | npm, Homebrew, Docker, Smithery | Cargo o binario precompilado | paquete npm (obsoleto) | MCPB o fuente | fuente / uv | fuente / pip install -e |
| Licencia | AGPL-3.0 / licencia dual comercial | MIT | MIT | MIT | no declarada | MIT |
| Estado del repositorio/paquete | actividad semanal; npm 0.12.0 | actividad semanal | descontinuado y sin mantenimiento | actividad ocasional | actividad ocasional; sin versiones | actividad ocasional |
| Comunidad | ⭐ 40 · 14 forks | ⭐ 7 | repositorio fuente no disponible | ⭐ 1 | ⭐ 0 | ⭐ 5 · 1 fork |
Los recuentos y las afirmaciones de características pueden cambiar. Sigue los proyectos enlazados para su documentación más reciente; la fuente de comparación mantenida es docs/comparison.yml.
Contribuir
Agradecemos contribuciones de todos los tamaños. Consulta el rastreador de problemas para las etiquetas good first issue, o consulta la guía de contribución para la configuración de desarrollo.
Áreas donde la ayuda es especialmente bienvenida:
- Cobertura de pruebas (#18)
- Pruebas en Windows y manejo de rutas
- Pruebas de compatibilidad con Scrivener 2
- Mejoras de documentación (#25)
Seguridad
¿Encontraste una vulnerabilidad? Por favor, repórtala de forma privada -- consulta SECURITY.md.
Licencia
AGPL-3.0 © WritersLogic, Inc.
Gratis para uso personal y proyectos de código abierto. Licencia comercial disponible para integración propietaria. Consulta COMMERCIAL_LICENSE.md para más detalles.