Scrivener MCP
Conecte projetos de escrita do Scrivener 3 ao Claude, ChatGPT e outros assistentes de IA. Mais de 60 ferramentas para gerenciamento de manuscritos, análise de escrita, busca semântica, memória de personagens/enredo e aprimoramento de conteúdo.
Documentação
Scrivener MCP
Conecte seus projetos Scrivener ao Claude, ChatGPT e outros assistentes de IA
Instalação · O que você pode fazer · Todas as ferramentas · Guias · Contribuindo
O Scrivener MCP permite que seu assistente de IA abra, leia, edite, analise e pesquise seus projetos Scrivener diretamente. Sem copiar e colar. Sem exportar. Diga ao seu assistente qual projeto abrir e comece a trabalhar.
Você: Abra meu romance e analise o ritmo no Capítulo 12.
Claude: Abre seu projeto .scriv, lê o Capítulo 12 e executa a análise de ritmo. A primeira metade flui bem, com parágrafos curtos e tensos. A seção do meio desacelera consideravelmente -- o monólogo interno de três páginas que começa no parágrafo 14 interrompe o ritmo que você construiu na cena de confronto. Considere reduzi-lo a um único parágrafo e mover o histórico para o Capítulo 8, onde Elena é apresentada pela primeira vez.
Funciona com Claude Desktop, Claude Code, VS Code (Copilot/Continue), Cursor e qualquer cliente compatível com MCP. Scrivener 3 no macOS, Windows e Linux. Listado no registro oficial de MCP como io.github.writerslogic/scrivener-mcp.
Instalação
Escolha o método que funciona para você. A maioria configura automaticamente o Claude Desktop na instalação. O Claude Code e outros clientes precisam de uma etapa extra -- veja Claude Code abaixo.
npm (recomendado)
npm install -g scrivener-mcp
Reinicie o Claude Desktop. Pronto.
Claude Code
Instalar o pacote npm não registra o servidor no Claude Code -- a configuração automática na instalação grava apenas a configuração do Claude Desktop. Após instalar, registre o servidor:
npx scrivener-setup
Isso detecta o Claude Code (junto com Claude Desktop e Cursor) e grava a configuração para você. Para registrar manualmente:
claude mcp add -s user scrivener -- npx scrivener-mcp
Em seguida, reinicie o Claude Code (ou execute /mcp para reconectar) e o Scrivener MCP aparecerá na lista de servidores. Remova -s user para limitá-lo ao projeto atual em vez de todos os projetos.
Smithery
npx -y @smithery/cli install scrivener-mcp --client claude
npx (sem instalação)
Use diretamente sem instalar globalmente:
npx scrivener-mcp
Ou adicione manualmente à configuração do Claude Desktop:
{
"mcpServers": {
"scrivener": {
"command": "npx",
"args": ["scrivener-mcp"]
}
}
}
GitHub
Instale diretamente do repositório (main mais recente):
npm install -g writerslogic/scrivener-mcp
Ou uma versão 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
Configuração para outros clientes MCP
Execute a configuração interativa para detectar e configurar automaticamente seu cliente:
npx scrivener-setup
Isso detecta Claude Desktop, Claude Code e Cursor e grava a configuração para você.
Para outros clientes MCP, aponte-os para npx scrivener-mcp como um servidor stdio.
Opcional: recursos com IA
Os recursos principais (gerenciamento de documentos, análise determinística, pesquisa por palavras-chave e memória do projeto) funcionam sem nenhuma chave de API. Análise com IA, geração, aprimoramento e pesquisa semântica funcionam com uma chave da Anthropic (Claude), OpenAI ou OpenRouter; quando várias estão presentes, o Claude cuida do chat e da geração (defina AI_PROVIDER=openai ou AI_PROVIDER=openrouter para substituir). O OpenRouter usa por padrão o modelo anthropic/claude-sonnet-4.6; defina OPENROUTER_MODEL para usar outro modelo do catálogo. Se o provedor ativo falhar com um erro de nível de conta (chave inválida, crédito esgotado, indisponibilidade), o servidor tenta automaticamente a solicitação no próximo provedor configurado. Quando seu cliente MCP suporta o recurso de sampling, os recursos de IA baseados em chat também podem ser executados pelo modelo do próprio cliente -- sem uma chave de API configurada separadamente. A indexação semântica e a pontuação de similaridade usam o Sistema de Memória Holográfica local em vez de uma API de embeddings externa, enquanto o pipeline atual de semantic_search usa o provedor de chat configurado para interpretar consultas e explicar resultados. O servidor descobre automaticamente as chaves em locais comuns:
- Variáveis de ambiente
ANTHROPIC_API_KEY/OPENAI_API_KEY/OPENROUTER_API_KEY ~/.env,~/.scrivener-mcp/.env~/.anthropic/key,~/.openai/key,~/.openrouter/key- Keychain do macOS (nomes de serviço
anthropic-api-key/openai-api-key/openrouter-api-key)
Para armazenar uma chave no Keychain do macOS:
security add-generic-password -s anthropic-api-key -a anthropic -w sk-ant-your-key-here
Ou exporte manualmente:
export ANTHROPIC_API_KEY="sk-ant-..." # or OPENAI_API_KEY="sk-..."
Isso permite análise de escrita com provedor, aprimoramento de conteúdo, geração, pesquisa semântica, verificação de consistência de personagens e compilação inteligente.
O que você pode fazer
Primeiro, abra um projeto. O servidor age sobre qualquer projeto
.scrivpara o qual você o apontar -- ele não tem vínculo com o aplicativo Scrivener e não consegue ver o que você tem aberto lá. Comece uma conversa com "Abra meu projeto Scrivener em~/Documents/My Novel.scriv" (ou "Descubra meus projetos Scrivener" se você não souber o caminho) e então dê seus comandos. No macOS, você também pode simplesmente dizer "Use o projeto que tenho aberto no Scrivener" -- ele detecta o projeto aberto e o abre (na primeira vez, o macOS pede que você permita controlar o Scrivener). Faça isso uma vez no início de cada conversa; os exemplos abaixo pressupõem que um projeto esteja aberto. Se o mesmo projeto também estiver aberto e não salvo no aplicativo Scrivener, salve-o ou feche-o lá primeiro para evitar gravações conflitantes.
Gerencie seu manuscrito
Abra qualquer projeto Scrivener e trabalhe com ele naturalmente. Leia capítulos, crie novas cenas, reorganize o binder, atualize sinopses -- tudo por meio de conversa.
Você: Crie uma nova cena chamada "The Reveal" após o Capítulo 5 e mova o epílogo antigo para a lixeira.
Analise sua escrita
Obtenha feedback detalhado sobre legibilidade, ritmo, estilo, qualidade do diálogo e arco emocional. Não é um conselho genérico -- é uma análise baseada na sua prosa real.
Você: Analise o Capítulo 3. O ritmo está lento demais?
Claude: A legibilidade está boa (nota Flesch-Kincaid 8,2), mas o ritmo apresenta alertas:
- 4 parágrafos consecutivos de monólogo interno (linhas 45-78) sem ação ou diálogo
- A cena tem 3.200 palavras com apenas 2 quebras de cena -- seus outros capítulos têm em média 4
- A densidade de palavras de filtro é 2x a média do seu manuscrito ("sentiu", "parecia", "notou") Sugestões específicas: ...
Aprimore sua prosa
Aplique melhorias direcionadas: elimine palavras de filtro, fortaleça verbos, varie a estrutura das frases, adicione detalhes sensoriais, converta narração em mostração, aperte o diálogo, ajuste o ritmo.
Você: Elimine as palavras de filtro no Capítulo 7 e fortaleça os verbos.
Acompanhe personagens e enredo
Armazene perfis de personagens, linhas de enredo e guias de estilo que persistem com seu projeto. A IA lembra de seus personagens entre sessões.
Você: Salve um perfil de personagem para Marcus: detetive aposentado, cínico mas justo, anda com uma claudicação de uma lesão antiga, fala em frases curtas e secas.
Mais tarde...
Você: Verifique se Marcus é consistente em todos os capítulos.
Claude: Encontrei uma inconsistência: Marcus anda "rapidamente" no Capítulo 9 (linha 34), mas a claudicação dele é mencionada nos Capítulos 2, 5 e 11. Além disso, o diálogo dele no Capítulo 4 usa frases longas e fluidas, o que contradiz a nota de "frases curtas e secas" no perfil dele.
Pesquise por significado
Encontre passagens pelo que elas significam, não apenas por correspondência de palavras-chave. "Encontre cenas em que o protagonista se sente isolado" funciona mesmo que a palavra "isolado" nunca apareça. O índice do projeto e a pontuação de similaridade são executados localmente pelo Sistema de Memória Holográfica; o pipeline de pesquisa atual também usa seu provedor de IA configurado para interpretação de consultas e explicação de resultados, portanto semantic_search requer um provedor.
Você: Encontre todas as cenas em que Elena e Marcus estão sozinhos juntos.
Acompanhe relacionamentos
Armazene e consulte relacionamentos entre personagens, locais, temas e linhas de enredo. Não é necessário Neo4j -- os relacionamentos vivem no mecanismo de memória semântica e persistem com seu projeto.
Você: Quem está conectado a Marcus? Quais linhas de enredo envolvem o farol?
Compile e exporte
Combine capítulos em um único manuscrito com formatação configurável, separadores e preservação da estrutura. Exporte o resultado inline como Markdown, HTML ou JSON, ou grave um arquivo DOCX, EPUB ou PDF em disco para submissão, e-readers ou impressão.
Todas as ferramentas
57 ferramentas organizadas por fluxo de trabalho. Para manter o uso de tokens baixo, as ferramentas são carregadas progressivamente -- ferramentas de projeto na inicialização, ferramentas de documento e pesquisa quando você abre um projeto, e o restante sob demanda (seu cliente de IA as ativa automaticamente, ou as chama diretamente e a skill proprietária é ativada em tempo real). Defina SCRIVENER_MCP_EAGER_TOOLS=1 para carregar tudo de uma vez.
Projeto -- abrir, navegar, gerenciar
| Ferramenta | O que faz |
|---|---|
open_project | Abre um projeto .scriv (aceita pastas .scriv ou arquivos .scrivx) e o torna ativo |
discover_projects | Verifica locais comuns em busca de projetos Scrivener quando você não sabe o caminho |
detect_open_project | Detecta o projeto atualmente aberto no aplicativo Scrivener (macOS) para que você não precise de um caminho |
get_structure | Navegue pela hierarquia do binder (pastas, documentos, contagens de palavras) |
refresh_project | Recarrega do disco após edições externas |
close_project | Fecha o projeto ativo e grava as alterações pendentes |
verify_project_integrity | Verificação somente leitura de problemas estruturais (UUIDs ausentes/duplicados, conteúdo ilegível) |
get_compile_settings | Lê os formatos de compilação e a taxonomia do projeto -- rótulos/status (com cores), coleções, tipos de seção |
get_manuscript_briefing | Um instantâneo de "onde estou?": palavras vs. meta (% da meta), contagens de documentos/status/rótulos, documentos mais longos/mais curtos |
list_snapshots | Lista os snapshots do Scrivener (título, data) para um documento ou para o projeto inteiro |
read_snapshot | Lê o texto de um snapshot como texto simples, com contagem de palavras |
compare_snapshot | Compara um snapshot com o documento atual (ou outro snapshot): parágrafos adicionados/removidos e variação líquida de palavras |
create_snapshot | Cria um snapshot nativo do Scrivener de um documento (restaurável pelo navegador de Snapshots do próprio Scrivener) antes de editar |
Documentos -- ler, escrever, criar, organizar
| Ferramenta | O que faz |
|---|---|
get_document_info | Metadados de um documento (título, tipo, contagem de palavras, sinopse, rótulo, status) |
read_document | Lê o conteúdo; format: "formatted" para rich text, offset/limit para paginar documentos longos |
write_document | Substitui o conteúdo de um documento (atômico, com backup pré-gravação) |
create_document | Cria um novo documento de texto ou pasta |
update_document | Altera título e/ou metadados (sinopse, notas, rótulo, status, campos personalizados) |
move_document | Reorganiza dentro do binder |
delete_document | Move para a lixeira (reversível) |
Busca -- encontre conteúdo, passagens e menções
| Ferramenta | O que faz |
|---|---|
search | Busca por palavra-chave/texto completo; field: "title" para títulos, scope: "trash" para lixeira |
semantic_search | Encontre passagens por significado usando o índice HMS local mais interpretação de consulta baseada em provedor, com pontuações de similaridade |
find_mentions | Localize cada ocorrência de um nome ou termo específico, com contexto |
list_trash | Liste documentos na lixeira |
restore_document | Restaure um documento da lixeira |
read_annotations | Leia comentários e notas de rodapé de um documento |
Análise -- qualidade, consistência, estrutura
| Ferramenta | O que faz |
|---|---|
analyze_document | Análise de escrita com IA; foque com aspects (estrutura, estilo, ritmo, temas...) |
check_consistency | Verificação de continuidade em todo o projeto; scope para enredo, personagens ou linha do tempo |
analyze_writing_style | Análise focada em estilo |
check_plot_consistency | Verificação de consistência de tramas |
suggest_improvements | Sugestões de melhoria geradas por IA |
enhance_content | Sugira uma melhoria específica para um documento |
generate_content | Gere nova prosa a partir de um prompt e contexto |
set_writing_goal | Defina uma meta de contagem de palavras (diária, semanal ou para o projeto inteiro) com uma data alvo opcional |
get_writing_goals | Liste metas com progresso -- percentual concluído, palavras restantes, status de ritmo |
set_writing_preferences | Defina preferências do autor (tom, complexidade, extensão, ponto de vista, guia de estilo) que orientam a saída da IA |
get_writing_preferences | Mostre preferências atuais além de insights de feedback e sugestões |
collect_feedback | Registre uma avaliação/comentário sobre uma operação de IA para informar esses insights |
Tipos de aprimoramento: 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 e Exportar -- monte e envie o manuscrito
| Ferramenta | O que faz |
|---|---|
compile_documents | Combine documentos; mode: "structured" compila a pasta Rascunho com a hierarquia do fichário como títulos e respeita "Incluir na Compilação" (sem IA), mode: "intelligent" para saída otimizada por IA |
export_project | Grave o manuscrito em disco -- Markdown, HTML, JSON inline, ou DOCX, EPUB, PDF como arquivo |
get_statistics | Contagens de palavras/documentos/caracteres em nível de projeto |
generate_marketing_materials | Rascunho de sinopse, carta de consulta, pitch e materiais relacionados |
Memória -- conhecimento persistente do projeto
| Ferramenta | O que faz |
|---|---|
remember | Armazene informações que persistem entre sessões com o projeto |
recall | Recupere memória armazenada anteriormente |
A memória é armazenada dentro de cada projeto .scriv e viaja com ele.
Relacionamentos -- conexões de entidades e grafo da história
| Ferramenta | O que faz |
|---|---|
add_relationship | Armazene um relacionamento entre personagens, locais, temas ou tramas |
find_relationships | Consulte entidades relacionadas a um personagem/tema/local específico |
discover_connections | Encontre entidades que co-ocorrem no manuscrito |
character_network | A rede de relacionamentos entre personagens |
get_entity_references | Trace o grafo de referências em qualquer direção: entidades que um documento menciona (por documentId), ou documentos que mencionam uma entidade (por entidade) |
find_orphaned_entities | Liste personagens/locais registrados que nenhum documento realmente menciona |
suggest_connections | Sugira entidades que um documento pode estar omitindo, inferidas a partir da co-ocorrência entre documentos |
Funciona sem Neo4j -- os relacionamentos vivem no Sistema de Memória Holográfica e estão disponíveis imediatamente. As ferramentas de referência cruzada de documentos são totalmente determinísticas (correspondência exata de palavras inteiras, sem IA) e não precisam de serviços externos; o Neo4j adiciona análise avançada de grafos quando conectado.
Trabalhos em Segundo Plano -- análise de longa duração
| Ferramenta | O que faz |
|---|---|
queue_document_analysis | Enfileire uma análise assíncrona de um documento; retorna um id de trabalho |
queue_project_analysis | Enfileire uma análise assíncrona do projeto inteiro |
get_job_status | Consulte progresso/resultados de um trabalho na fila |
cancel_job | Cancele um trabalho na fila ou em execução |
Descoberta -- explore capacidades
| Ferramenta | O que faz |
|---|---|
list_skills | Liste os grupos de ferramentas disponíveis e suas ferramentas |
use_skill | Ative um grupo de ferramentas (a maioria já vem pré-ativada por padrão) |
Guias
- Começando -- Instalação, configuração, sua primeira sessão
- Configuração do Cliente MCP -- Configuração copiar-e-colar para Claude Desktop, Claude Code, Cursor e VS Code
- Escrevendo com IA -- Fluxos de análise, estratégias de aprimoramento, gerenciamento de memória
- Solução de Problemas -- Problemas comuns e correções
- Otimização de Tokens -- Como o servidor minimiza o uso da janela de contexto
- Arquitetura -- Como o servidor funciona, estrutura de módulos, fluxo de dados
- Compatibilidade com Scrivener -- Versões suportadas do Scrivener, plataformas e cobertura de formatos
- Formato de Arquivo do Scrivener -- O formato
.scrivde engenharia reversa, o que lemos vs. inferimos, e orientações de modificação segura - Fuzzing -- Alvo Jazzer.js e detalhes de integração com OSS-Fuzz
- Contribuindo -- Configuração de desenvolvimento, convenções de código, adição de novas ferramentas
Requisitos
- Node.js 18+
- Arquivos de projeto do Scrivener 3 (.scriv)
- macOS, Windows ou Linux
- Opcional: chave de API Anthropic, OpenAI ou OpenRouter para recursos de IA baseados em provedor
- Opcional: Neo4j para persistência e consultas avançadas de grafos; as ferramentas principais de relacionamento funcionam sem ele
Desenvolvimento
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 que Este?
Vários servidores MCP para Scrivener existem. Esta comparação é baseada na documentação pública de cada projeto, pacote publicado e superfície de ferramentas anunciada em 2026-08-07. "Não" significa que o projeto não documenta essa capacidade; não afirma que a capacidade é impossível através do cliente de IA conectado.
| Recurso | scrivener-mcp | jiayun | TwelveTake | Scrivener Assistant | ricopicone | zaphodsdad |
|---|---|---|---|---|---|---|
| Ferramentas MCP públicas | 57 | 29 | 22 | 38 | 18 | 10 |
| Acesso ao manuscrito | leitura/escrita | leitura/escrita | leitura/escrita | somente leitura; escreve dados auxiliares/metadados | somente leitura por padrão; escrita opcional de conteúdo/notas/sinopse | somente leitura |
| Tratamento de RTF | leituras formatadas; escritas de trechos com preservação de fidelidade | lê/escreve conteúdo de documentos | lê/escreve conteúdo de documentos | converte RTF em texto; manuscrito somente leitura | leituras RTF-para-texto; escritas de conteúdo protegidas por snapshot | converte RTF em texto; somente leitura |
| Análise de escrita integrada | legibilidade, ritmo, estilo, emoção, crítica de IA | legibilidade, estilo, sentimento | comparação de continuidade | fluxo de revisão em cinco pontos dirigido por agente | nenhuma ferramenta de análise dedicada | nenhuma ferramenta de análise dedicada |
| Geração/aprimoramento de conteúdo | geração + 12 tipos de aprimoramento direcionados | não | não | fluxo de trabalho de agente para brainstorm/rascunho | não | não |
| Recuperação semântica local | índice HMS e busca por similaridade | não | não | não | não | não |
| Continuidade/memória do projeto | memória persistente + verificações de consistência | notas persistentes + verificações de consistência | comparação de menção/descrição | bíblia do mundo, estado da história, personagens, locais, histórico de revisão | sem memória persistente | sem memória persistente |
| Ferramentas de relacionamento | relacionamentos persistentes, redes, grafo de referências; Neo4j opcional | não | não | dados de relações editáveis por humanos | não | não |
| Otimização de tokens | carregamento progressivo de habilidades, saída compacta, leituras paginadas | sem equivalente documentado | sem equivalente documentado | sem equivalente documentado | leituras de fichário/capítulo com escopo | ferramentas de visão geral/leitura com escopo |
| Exportação/compilação | Markdown, HTML, JSON, DOCX, EPUB, PDF | compilar + exportação do rascunho inteiro | salva rascunhos de IA; nenhuma exportação de manuscrito documentada | não | não | |
| Suporte a Windows | sim | sim (binário pré-compilado) | sim | não documentado | não documentado | sim |
| Instalação | npm, Homebrew, Docker, Smithery | Cargo ou binário pré-compilado | pacote npm (descontinuado) | MCPB ou código-fonte | código-fonte / uv | código-fonte / pip install -e |
| Licença | AGPL-3.0 / licença dupla comercial | MIT | MIT | MIT | não declarada | MIT |
| Status do repositório/pacote | atividade semanal; npm 0.12.0 | atividade semanal | descontinuado e sem manutenção | atividade ocasional | atividade ocasional; sem lançamentos | atividade ocasional |
| Comunidade | ⭐ 40 · 14 forks | ⭐ 7 | repositório de código-fonte indisponível | ⭐ 1 | ⭐ 0 | ⭐ 5 · 1 fork |
Contagens e afirmações de recursos podem mudar. Siga os projetos vinculados para sua documentação mais recente; a fonte de comparação mantida é docs/comparison.yml.
Contribuindo
Aceitamos contribuições de todos os tamanhos. Consulte o rastreador de problemas para obter as etiquetas good first issue, ou veja o guia de contribuição para a configuração de desenvolvimento.
Áreas onde a ajuda é especialmente bem-vinda:
- Cobertura de testes (#18)
- Testes no Windows e tratamento de caminhos
- Testes de compatibilidade com Scrivener 2
- Melhorias na documentação (#25)
Segurança
Encontrou uma vulnerabilidade? Por favor, reporte-a de forma privada -- veja SECURITY.md.
Licença
AGPL-3.0 © WritersLogic, Inc.
Gratuito para uso pessoal e projetos de código aberto. Licença comercial disponível para integração proprietária. Veja COMMERCIAL_LICENSE.md para detalhes.