docx-mcp

Leia e edite documentos Word (.docx) com controle de alterações, comentários, notas de rodapé e validação estrutural. 18 ferramentas com validação de paraId em nível OOXML e auditoria de documentos.

Documentação

docx-mcp

PyPI Python License: MIT CI Coverage Sponsor SafeSkill 91/100

docx-mcp MCP server

Dê ao seu agente de IA a capacidade de criar, ler e editar documentos do Word. As edições aparecem como alterações controladas no Microsoft Word — tachado vermelho para exclusões, sublinhado verde para inserções — e após qualquer sessão de revisão, seu agente pode produzir um log de alterações pronto para e-mail listando cada inserção, exclusão e substituição. Ou compare dois arquivos separados para obter o mesmo resultado automaticamente.

Para Quem É Este Recurso

Profissionais que produzem entregáveis em Word e querem que seu agente de IA lide diretamente com o trabalho documental:

  • Jurídico — revisão de contratos com marcações de alterações, substituição em lote de cláusulas em modelos, anotações comentadas explicando cada mudança, gerenciamento de notas de rodapé
  • Segurança e Testes de Penetração — gerar relatórios de pentest a partir de achados em markdown, mesclar apêndices de múltiplos engajamentos, adicionar comentários de resumo executivo, remover marcas d'água de RASCUNHO antes da entrega
  • Consultoria — construir propostas e SOWs a partir de modelos, converter notas de reunião em entregáveis formatados, atualizar termos de pagamento em massa em conjuntos de documentos
  • Conformidade e Auditoria — validação estrutural da integridade do documento, verificação de referências cruzadas, auditorias de nível de cabeçalho, aplicação de proteção

O Que Você Pode Pedir ao Seu Agente

Revisar um contrato:

"Abra contract.docx, encontre todas as ocorrências de 'Net 30', altere para 'Net 60' e adicione um comentário em cada uma explicando que foi atualizado conforme a Emenda 3. Salve como contract_revised.docx."

Gerar um relatório a partir de markdown:

"Converta meu pentest-findings.md para um documento do Word usando o modelo de relatório do cliente. Adicione notas de rodapé para cada referência CVE."

Editar em lote uma biblioteca de modelos:

"Abra o modelo MSA, substitua 'ACME Corp' por 'GlobalTech Inc' em todo lugar, atualize a data de vigência no cabeçalho e defina a proteção do documento para somente-alterações-controladas."

Auditar um documento antes de enviar:

"Abra o entregável final, execute uma auditoria estrutural, verifique se há marcadores de RASCUNHO ou TODO, valide todas as referências cruzadas de notas de rodapé e remova quaisquer marcas d'água."

Seu agente lida com todo o fluxo de trabalho — abrir o arquivo, navegar pela estrutura, fazer edições precisas com histórico completo de revisões, validar a integridade e salvar — enquanto você se concentra no conteúdo.

Instalação

Claude Code (recomendado):

claude mcp add docx-mcp -- uvx docx-mcp-server

É só isso. Uma skill complementar é instalada automaticamente na primeira vez que o servidor inicia, ensinando ao Claude o fluxo de trabalho de edição de documentos, as armadilhas do OOXML e a lista de verificação de auditoria. Ela é atualizada automaticamente a cada upgrade.

Outras plataformas e métodos de instalação

Claude Desktop:

Adicione às suas configurações de MCP:

{
  "mcpServers": {
    "docx-mcp": {
      "command": "uvx",
      "args": ["docx-mcp-server"]
    }
  }
}

Cursor / Windsurf / VS Code:

Adicione ao seu arquivo de configuração MCP:

{
  "mcpServers": {
    "docx-mcp": {
      "command": "uvx",
      "args": ["docx-mcp-server"]
    }
  }
}

OpenClaw:

mcpServers:
  docx-mcp:
    command: uvx
    args:
      - docx-mcp-server

Com pip:

pip install docx-mcp-server

Capacidades

CapacidadeO que seu agente pode fazer
Criar documentosComeçar em branco, a partir de um modelo .dotx ou de markdown — cabeçalhos, tabelas, listas, imagens, notas de rodapé, blocos de código, tipografia inteligente
Controlar alteraçõesInserir, excluir e substituir texto como revisões controladas — inserções sublinhadas, exclusões com tachado vermelho. Passe tracked=False para qualquer ferramenta de edição para gravar a alteração diretamente, sem marcação de revisão. Aceitar ou rejeitar alterações por autor.
Log de alteraçõesApós editar com alterações controladas, chame generate_change_summary para obter um .txt numerado listando cada inserção, exclusão e substituição. Ou use diff_to_text para comparar dois arquivos separados e obter o mesmo resultado automaticamente — útil para versões de documentos que você não editou.
ComentáriosAdicionar comentários ancorados a parágrafos específicos, responder a threads de comentários
Localizar e substituirBuscar por texto ou regex no corpo, notas de rodapé e comentários — e então fazer edições direcionadas
TabelasCriar tabelas, modificar células, adicionar ou excluir linhas — tudo com rastreamento de revisões
Notas de rodapé e notas de fimAdicionar, listar e validar referências cruzadas
FormataçãoNegrito, itálico, sublinhado, cor — com rastreamento de revisões para que alterações de formatação fiquem visíveis
Cabeçalhos e rodapésLer e editar conteúdo de cabeçalhos/rodapés com alterações controladas
ImagensListar imagens incorporadas, inserir novas com dimensões especificadas
Seções e layoutQuebras de página, quebras de seção, tamanho de página, orientação, margens
Referências cruzadasHiperlinks internos entre parágrafos com marcadores
Mesclagem de documentosCombinar conteúdo de vários arquivos DOCX
ProteçãoBloquear documentos para somente-alterações-controladas, somente-leitura ou somente-comentários com senhas
Auditoria estruturalValidar notas de rodapé, cabeçalhos, marcadores, imagens e consistência interna antes da entrega
Remoção de marca d'águaDetectar e remover marcas d'água de RASCUNHO dos cabeçalhos
Limpeza de PII (experimental)Detectar nomes, e-mails, telefones, SSNs e mais usando Presidio + spaCy NER. Produz verdadeira redação em XML — o texto original é permanentemente excluído, substituído por um retângulo preto sólido. Não é para uso em produção — veja limitações.

Exemplo: Revisão de Contrato com Marcações

1. open_document("services-agreement.docx")
2. get_headings()                              → see document structure
3. search_text("30 days")                      → find the payment clause
4. delete_text(para_id, "30 days")             → tracked deletion  (red strikethrough)
5. insert_text(para_id, "60 days")             → tracked insertion (green underline)
6. add_comment(para_id, "Extended per client request — see Amendment 3")
7. audit_document()                            → verify structural integrity
8. save_document("services-agreement_redlined.docx")

Abra a saída no Word e você verá exatamente o que um revisor humano produziria — marcas de revisão, comentários na margem, estrutura de documento limpa.

Exemplo: Log de Alterações Após uma Sessão de Revisão

1. open_document("contract.docx")
2. replace_text(para_id, "30 days", "60 days")           → tracked revision (del + ins)
3. add_comment(para_id, "Extended per Amendment 3")
4. save_document("contract_redlined.docx")
5. generate_change_summary("contract_changes.txt")

A saída de .txt fica assim:

1. REPLACEMENT by Claude on 2026-05-25
   Deleted:  "30 days"
   Inserted: "60 days"

Cole em um e-mail, em uma descrição de PR ou em uma nota de passagem de bastão.

Exemplo: Comparar Duas Versões Separadas de Documento

Nenhuma sessão de edição necessária — aponte para quaisquer dois arquivos:

1. diff_to_text("proposal_v1.docx", "proposal_v2.docx")

Retorna dois arquivos:

  • proposal_v1_diff.docx — abra no Word para ver as alterações controladas inline
  • proposal_v1_diff.txt — resumo em texto simples, pronto para colar em qualquer lugar

Exemplo: Relatório de Pentest a partir de Markdown

1. create_from_markdown("pentest-report.docx",
       md_path="findings.md",
       template_path="client-template.dotx")
2. audit_document()                            → verify integrity
3. save_document()                             → ready for delivery

Seus achados em markdown — cabeçalhos, tabelas de hosts afetados, blocos de código com saída de prova de conceito, classificações de severidade — tornam-se um documento Word formatado que corresponde ao modelo do cliente. A tipografia inteligente é aplicada automaticamente (aspas curvas, travessões, reticências adequadas).

Limpeza de PII (Experimental)

Este recurso é experimental e NÃO é adequado para uso em produção nem como controle exclusivo para documentos privilegiados, regulamentados ou legalmente sensíveis.

scrub_pii usa o Microsoft Presidio com um modelo NER spaCy (en_core_web_lg, ~560 MB, baixado na primeira chamada) para detectar e redigir permanentemente informações pessoais. Os trechos redigidos são substituídos por retângulos DrawingML pretos sólidos — o texto original é excluído do XML, não apenas ocultado.

O que detecta de forma confiável (via correspondência de regex/padrões, alta confiança):

  • Endereços de e-mail, números de telefone, números de cartão de crédito, SSNs, IBANs, endereços IP, números de passaporte dos EUA

O que detecta estatisticamente (via NER, terá falhas):

  • Nomes de pessoas, nomes de organizações, locais, datas

Lacunas conhecidas do NER — estes serão perdidos:

  • Nomes em CAIXA ALTA (comuns em livros-razão, cabeçalhos de tabelas, designações de partes legais)
  • Nomes de token único sem contexto circundante
  • Nomes não ingleses (padrões de nomes árabes, CJK e africanos têm baixa recuperação neste modelo em inglês)
  • Nomes embutidos em texto jurídico padrão (Lender: Jane Doe, Authorized Signatory: John Smith)

Fluxo de trabalho recomendado:

1. open_document("sensitive.docx")
2. scrub_pii(dry_run=True)             → review detected entities — check for misses
3. scrub_pii("sensitive_redacted.docx") → produce redacted copy
4. open the output in Word and verify manually before sharing

Sempre trate a saída como uma primeira passagem que requer revisão humana, não como uma redação finalizada.

Como Funciona

Um arquivo .docx é um arquivo ZIP de arquivos XML. Este servidor descompacta o arquivo, edita o XML diretamente e o recompacta. É isso que lhe dá a capacidade de produzir alterações controladas reais, comentários e notas de rodapé — coisas que bibliotecas de documentos de nível superior não conseguem fazer.

Cada edição é validada contra a especificação OOXML antes de salvar, detectando problemas como notas de rodapé órfãs, IDs internos duplicados e referências cruzadas quebradas que, de outra forma, fariam o Word "reparar" (e reescrever silenciosamente) seu documento.

Inventário completo de ferramentas (mais de 200 ferramentas)

Ciclo de Vida do Documento

FerramentaDescrição
open_documentAbrir um arquivo .docx para leitura e edição
create_documentCriar um novo .docx em branco (ou a partir de um modelo .dotx)
create_from_markdownCriar um .docx a partir de Markdown no estilo GitHub
close_documentFechar o documento atual e limpar
get_document_infoObter estatísticas gerais (parágrafos, cabeçalhos, notas de rodapé, comentários)
save_documentSalvar alterações de volta em .docx (pode sobrescrever ou salvar em novo caminho)

Leitura

FerramentaDescrição
get_headingsObter estrutura de cabeçalhos com níveis e texto
search_textBuscar no corpo, notas de rodapé e comentários (texto ou regex)
get_paragraphObter texto completo e estilo de um parágrafo

Controle de Alterações

FerramentaDescrição
insert_textInserir texto como revisão controlada (sublinhado no Word) — ou diretamente com tracked=False
delete_textMarcar texto como excluído (tachado vermelho no Word) — ou remover diretamente com tracked=False
replace_textSubstituir texto como um par del+ins controlado — ou diretamente com tracked=False
modify_cellModificar uma célula de tabela — controlado por padrão, tracked=False para gravações diretas
edit_header_footerEditar texto de cabeçalho/rodapé — controlado por padrão, tracked=False para gravações diretas
set_formattingAplicar negrito/itálico/sublinhado/cor com marcação de alteração controlada
set_track_changesAtivar ou desativar o sinalizador integrado de gravação de alterações do Word
get_tracked_changesListar todas as alterações controladas pendentes (autor, data, tipo, texto)
accept_changesAceitar alterações controladas, opcionalmente filtradas por autor
reject_changesRejeitar alterações controladas, opcionalmente filtradas por autor

Log de Alterações

FerramentaDescrição
generate_change_summaryExportar todas as alterações controladas no documento aberto como um arquivo .txt numerado — inserções, exclusões e pares del+ins adjacentes agrupados como substituições
compare_documentsComparar dois arquivos DOCX e produzir um DOCX com alterações controladas (aberto no Word)
diff_to_textComparar dois arquivos DOCX e produzir tanto um DOCX com alterações controladas quanto um resumo .txt em texto simples

Tabelas

FerramentaDescrição
get_tablesObter todas as tabelas com contagens de linhas/colunas e conteúdo das células
add_tableInserir uma nova tabela após um parágrafo
modify_cellModificar uma célula de tabela com alterações controladas
add_table_rowAdicionar uma linha a uma tabela
delete_table_rowExcluir uma linha de tabela com alterações controladas

Listas

FerramentaDescrição
add_listAplicar formatação de lista com marcadores ou numerada a parágrafos

Comentários

FerramentaDescrição
get_commentsListar todos os comentários com ID, autor, data e texto
add_commentAdicionar um comentário ancorado a um parágrafo
reply_to_commentResponder a um comentário existente (em thread)

Notas de Rodapé e Notas de Fim

FerramentaDescrição
get_footnotesListar todas as notas de rodapé com ID e texto
add_footnoteAdicionar uma nota de rodapé com referência sobrescrita
validate_footnotesValidar referências cruzadas de notas de rodapé
get_endnotesListar todas as notas de fim com ID e texto
add_endnoteAdicionar uma nota de fim com referência sobrescrita
validate_endnotesValidar referências cruzadas de notas de fim

Cabeçalhos, Rodapés e Estilos

FerramentaDescrição
get_headers_footersObter todos os cabeçalhos e rodapés com conteúdo de texto
edit_header_footerEditar texto de cabeçalho/rodapé com alterações controladas
get_stylesObter todos os estilos definidos

Propriedades e Imagens

FerramentaDescrição
get_propertiesObter propriedades principais do documento (título, criador, datas)
set_propertiesDefinir propriedades principais do documento
get_imagesObter todas as imagens incorporadas com dimensões
insert_imageInserir uma imagem após um parágrafo

Seções e Referências Cruzadas

FerramentaDescrição
add_page_breakInserir uma quebra de página após um parágrafo
add_section_breakAdicionar uma quebra de seção (nextPage, continuous, evenPage, oddPage)
set_section_propertiesDefinir tamanho da página, orientação e margens
add_cross_referenceAdicionar um link de referência cruzada entre parágrafos

Proteção e Mesclagem

FerramentaDescrição
set_document_protectionDefinir proteção do documento com senha opcional
merge_documentsMesclar conteúdo de outro DOCX

Validação e Auditoria

FerramentaDescrição
validate_paraidsVerificar exclusividade de IDs internos em todas as partes do documento
remove_watermarkRemover marcas d'água VML dos cabeçalhos do documento
audit_documentAuditoria estrutural abrangente

Requisitos

  • Python 3.10+
  • Funciona em macOS, Linux e Windows

Política de Privacidade · Termos de Serviço · © 2026 Security Ronin Ltd