Microsoft Word

Criar, ler e manipular documentos do Microsoft Word.

Documentação

Office-Word-MCP-Server

smithery badge

Um servidor Model Context Protocol (MCP) para criar, ler e manipular documentos do Microsoft Word. Este servidor permite que assistentes de IA trabalhem com documentos do Word através de uma interface padronizada, oferecendo recursos avançados de edição de documentos.

Office Word Server MCP server

Visão Geral

O Office-Word-MCP-Server implementa o Model Context Protocol para expor operações de documentos do Word como ferramentas e recursos. Ele serve como uma ponte entre assistentes de IA e documentos do Microsoft Word, permitindo criação de documentos, adição de conteúdo, formatação e análise.

O servidor possui uma arquitetura modular que separa responsabilidades em funcionalidade principal, ferramentas e utilitários, tornando-o altamente sustentável e extensível para melhorias futuras.

Exemplo

Prompt

image

Saída

image

Recursos

Gerenciamento de Documentos

  • Criar novos documentos do Word com metadados
  • Extrair texto e analisar a estrutura do documento
  • Visualizar propriedades e estatísticas do documento
  • Listar documentos disponíveis em um diretório
  • Criar cópias de documentos existentes
  • Mesclar vários documentos em um único documento
  • Converter documentos do Word para o formato PDF

Criação de Conteúdo

  • Adicionar títulos com diferentes níveis e formatação direta (fonte, tamanho, negrito, itálico, bordas)
  • Inserir parágrafos com estilos opcionais e formatação direta (fonte, tamanho, negrito, itálico, cor)
  • Criar tabelas com dados personalizados
  • Adicionar imagens com redimensionamento proporcional
  • Inserir quebras de página
  • Inserir listas com marcadores e numeradas com formatação XML adequada
  • Adicionar notas de rodapé e notas de fim aos documentos
  • Converter notas de rodapé em notas de fim
  • Personalizar o estilo das notas de rodapé e notas de fim
  • Criar layouts de tabela profissionais para documentação técnica
  • Projetar caixas de destaque e conteúdo formatado para materiais instrucionais
  • Construir tabelas de dados estruturadas para relatórios de negócios com estilo consistente
  • Inserir conteúdo relativo a texto existente ou índices de parágrafos

Formatação de Texto Rico

  • Formatar seções específicas de texto (negrito, itálico, sublinhado)
  • Alterar a cor do texto e as propriedades da fonte
  • Aplicar estilos personalizados a elementos de texto
  • Pesquisar e substituir texto em documentos
  • Formatação individual de texto em células de tabelas
  • Múltiplas combinações de formatação para melhor apelo visual
  • Personalização de fonte com controle de família e tamanho
  • Formatação direta durante a criação de conteúdo (parágrafos e títulos)
  • Reduzir chamadas de função combinando criação de conteúdo com formatação
  • Adicionar bordas aos cabeçalhos de seção para separação visual

Formatação de Tabelas

  • Formatar tabelas com bordas e estilos
  • Criar linhas de cabeçalho com formatação distinta
  • Aplicar sombreamento de células e bordas personalizadas
  • Estruturar tabelas para melhor legibilidade
  • Sombreamento de fundo individual de células com suporte a cores
  • Cores alternadas de linhas para melhor legibilidade
  • Realce aprimorado de linhas de cabeçalho com cores personalizadas
  • Formatação de texto de células com negrito, itálico, sublinhado, cor, tamanho de fonte e família de fonte
  • Suporte abrangente a cores com cores nomeadas e códigos de cor hexadecimais
  • Gerenciamento de preenchimento de células com controle independente de todos os lados
  • Alinhamento de células (posicionamento horizontal e vertical)
  • Mesclagem de células (áreas horizontais, verticais e retangulares)
  • Gerenciamento de largura de colunas com múltiplas unidades (pontos, porcentagem, ajuste automático)
  • Recursos de ajuste automático para dimensionamento dinâmico de colunas
  • Suporte profissional a tabelas de destaque com células de ícone e conteúdo estilizado

Manipulação Avançada de Documentos

  • Excluir parágrafos
  • Inserir conteúdo relativo a texto específico ou índices de parágrafos
  • Inserir listas com marcadores e numeradas com estrutura de numeração XML adequada
  • Inserir cabeçalhos e parágrafos antes ou depois de locais de destino
  • Criar estilos de documento personalizados
  • Aplicar formatação consistente em documentos
  • Formatar intervalos específicos de texto com controle detalhado
  • Unidades de preenchimento flexíveis com suporte a pontos e medidas baseadas em porcentagem
  • Apresentação clara e legível de tabelas com alinhamento e espaçamento adequados

Proteção de Documentos

  • Adicionar proteção por senha aos documentos
  • Implementar edição restrita com seções editáveis
  • Adicionar assinaturas digitais aos documentos
  • Verificar autenticidade e integridade do documento

Extração de Comentários

  • Extrair todos os comentários de um documento
  • Filtrar comentários por autor
  • Obter comentários para parágrafos específicos
  • Acessar metadados de comentários (autor, data, texto)

Instalação

Instalando via Smithery

Para instalar o Office Word Document Server para Claude Desktop automaticamente via Smithery:

npx -y @smithery/cli install @GongRzhe/Office-Word-MCP-Server --client claude

Pré-requisitos

  • Python 3.8 ou superior
  • Gerenciador de pacotes pip

Instalação Básica

# Clone the repository
git clone https://github.com/GongRzhe/Office-Word-MCP-Server.git
cd Office-Word-MCP-Server

# Install dependencies
pip install -r requirements.txt

Usando o Script de Configuração

Alternativamente, você pode usar o script de configuração fornecido, que lida com:

  • Verificação de pré-requisitos
  • Configuração de um ambiente virtual
  • Instalação de dependências
  • Geração de configuração MCP
python setup_mcp.py

Uso com Claude for Desktop

Configuração

Método 1: Após Instalação Local

  1. Após a instalação, adicione o servidor ao seu arquivo de configuração do Claude for Desktop:
{
  "mcpServers": {
    "word-document-server": {
      "command": "python",
      "args": ["/path/to/word_mcp_server.py"]
    }
  }
}

Método 2: Sem Instalação (Usando uvx)

  1. Você também pode configurar o Claude for Desktop para usar o servidor sem instalação local usando o gerenciador de pacotes uvx:
{
  "mcpServers": {
    "word-document-server": {
      "command": "uvx",
      "args": ["--from", "office-word-mcp-server", "word_mcp_server"]
    }
  }
}
  1. Locais do arquivo de configuração:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Reinicie o Claude for Desktop para carregar a configuração.

Exemplos de Operações

Após a configuração, você pode pedir ao Claude para realizar operações como:

  • "Criar um novo documento chamado 'report.docx' com uma página de título"
  • "Adicionar um título e três parágrafos ao meu documento"
  • "Adicionar meu nome em Helvetica 36pt em negrito no topo do documento"
  • "Adicionar um título de seção 'Summary' em Helvetica 14pt em negrito com borda inferior"
  • "Adicionar um parágrafo em Times New Roman 14pt com texto azul em itálico"
  • "Inserir uma lista com marcadores após o parágrafo que contém 'Introduction'"
  • "Inserir uma lista numerada com itens: 'First step', 'Second step', 'Third step'"
  • "Adicionar marcadores após o título 'Summary'"
  • "Inserir uma tabela 4x4 com dados de vendas"
  • "Formatar a palavra 'important' no parágrafo 2 para ficar em negrito e vermelho"
  • "Pesquisar e substituir todas as ocorrências de 'old term' por 'new term'"
  • "Criar um estilo personalizado para títulos de seção"
  • "Aplicar formatação à tabela do meu documento"
  • "Extrair todos os comentários do meu documento"
  • "Mostrar todos os comentários de John Doe"
  • "Obter comentários do parágrafo 3"
  • "Deixar o texto na célula (1,2) da tabela em negrito e azul com fonte 14pt"
  • "Adicionar 10 pontos de preenchimento a todos os lados das células de cabeçalho"
  • "Criar uma tabela de destaque com ícone de marca de verificação azul e texto branco"
  • "Definir a largura da primeira coluna para 50 pontos e ajustar automaticamente as colunas restantes"
  • "Aplicar cores alternadas de linhas para tornar a tabela mais legível"

Referência da API

Criação de Documentos e Propriedades

create_document(filename, title=None, author=None)
get_document_info(filename)
get_document_text(filename)
get_document_outline(filename)
list_available_documents(directory=".")
copy_document(source_filename, destination_filename=None)
convert_to_pdf(filename, output_filename=None)

Adição de Conteúdo

add_heading(filename, text, level=1, font_name=None, font_size=None,
            bold=None, italic=None, border_bottom=False)
add_paragraph(filename, text, style=None, font_name=None, font_size=None,
              bold=None, italic=None, color=None)
add_table(filename, rows, cols, data=None)
add_picture(filename, image_path, width=None)
add_page_break(filename)

Manipulação Avançada de Conteúdo

# Insert content relative to existing text or paragraph index
insert_header_near_text(filename, target_text=None, header_title=None,
                       position='after', header_style='Heading 1',
                       target_paragraph_index=None)

insert_line_or_paragraph_near_text(filename, target_text=None, line_text=None,
                                   position='after', line_style=None,
                                   target_paragraph_index=None)

# Insert bulleted or numbered lists with proper XML formatting
insert_numbered_list_near_text(filename, target_text=None, list_items=None,
                              position='after', target_paragraph_index=None,
                              bullet_type='bullet')
# bullet_type options:
#   'bullet' - Creates bulleted list with bullets (•)
#   'number' - Creates numbered list (1, 2, 3, ...)

Extração de Conteúdo

get_document_text(filename)
get_paragraph_text_from_document(filename, paragraph_index)
find_text_in_document(filename, text_to_find, match_case=True, whole_word=False)

Formatação de Texto

format_text(filename, paragraph_index, start_pos, end_pos, bold=None,
            italic=None, underline=None, color=None, font_size=None, font_name=None)
search_and_replace(filename, find_text, replace_text)
delete_paragraph(filename, paragraph_index)
create_custom_style(filename, style_name, bold=None, italic=None,
                    font_size=None, font_name=None, color=None, base_style=None)

Formatação de Tabelas

format_table(filename, table_index, has_header_row=None,
             border_style=None, shading=None)
set_table_cell_shading(filename, table_index, row_index, col_index, 
                      fill_color, pattern="clear")
apply_table_alternating_rows(filename, table_index, 
                            color1="FFFFFF", color2="F2F2F2")
highlight_table_header(filename, table_index, 
                      header_color="4472C4", text_color="FFFFFF")

# Cell merging tools
merge_table_cells(filename, table_index, start_row, start_col, end_row, end_col)
merge_table_cells_horizontal(filename, table_index, row_index, start_col, end_col)
merge_table_cells_vertical(filename, table_index, col_index, start_row, end_row)

# Cell alignment tools
set_table_cell_alignment(filename, table_index, row_index, col_index,
                        horizontal="left", vertical="top")
set_table_alignment_all(filename, table_index, 
                       horizontal="left", vertical="top")

# Cell text formatting tools
format_table_cell_text(filename, table_index, row_index, col_index,
                      text_content=None, bold=None, italic=None, underline=None,
                      color=None, font_size=None, font_name=None)

# Cell padding tools
set_table_cell_padding(filename, table_index, row_index, col_index,
                      top=None, bottom=None, left=None, right=None, unit="points")

# Column width management
set_table_column_width(filename, table_index, col_index, width, width_type="points")
set_table_column_widths(filename, table_index, widths, width_type="points")
set_table_width(filename, table_index, width, width_type="points")
auto_fit_table_columns(filename, table_index)

Extração de Comentários

get_all_comments(filename)
get_comments_by_author(filename, author)
get_comments_for_paragraph(filename, paragraph_index)

Solução de Problemas

Problemas Comuns

  1. Estilos ausentes

    • Alguns documentos podem não ter os estilos necessários para operações de títulos e tabelas
    • O servidor tentará criar estilos ausentes ou usar formatação direta
    • Para melhores resultados, use modelos com estilos padrão do Word
  2. Problemas de permissão

    • Garanta que o servidor tenha permissão de leitura/gravação nos caminhos dos documentos
    • Use a função copy_document para criar cópias editáveis de documentos bloqueados
    • Verifique a propriedade e as permissões dos arquivos se as operações falharem
  3. Problemas de inserção de imagens

    • Use caminhos absolutos para arquivos de imagem
    • Verifique a compatibilidade do formato da imagem (JPEG, PNG recomendados)
    • Verifique o tamanho e as permissões do arquivo de imagem
  4. Problemas de formatação de tabelas

    • Erros de índice de célula: Garanta que os índices de linha e coluna estejam dentro dos limites da tabela (indexação baseada em 0)
    • Problemas de formato de cor: Use cores hexadecimais sem o prefixo '#' (por exemplo, "FF0000" para vermelho) ou nomes de cores padrão
    • Confusão de unidades de preenchimento: Especifique "points" ou "percent" explicitamente ao definir o preenchimento de células
    • Conflitos de largura de coluna: O ajuste automático pode substituir as configurações manuais de largura de coluna
    • Persistência da formatação de texto: Aplique a formatação de texto das células após definir o conteúdo da célula para obter melhores resultados

Depuração

Ative o registro detalhado definindo a variável de ambiente:

export MCP_DEBUG=1  # Linux/macOS
set MCP_DEBUG=1     # Windows

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

  1. Faça um fork do repositório
  2. Crie sua branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add some amazing feature')
  4. Envie para a branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Agradecimentos


Nota: Este servidor interage com arquivos de documentos no seu sistema. Sempre verifique se as operações solicitadas são apropriadas antes de confirmá-las no Claude for Desktop ou em outros clientes MCP.