Excel
Manipulação do Excel incluindo leitura/escrita de dados, gerenciamento de planilhas, formatação, gráficos e tabela dinâmica
Documentação
Um servidor Model Context Protocol que permite a assistentes de IA criar, ler e editar pastas de trabalho do Excel. Não requer instalação do Microsoft Excel.
- Ler e escrever células, fórmulas e datas, com paginação para planilhas grandes e busca
- Formatar fontes, preenchimentos, bordas, formatos de número, larguras de colunas e painéis congelados
- Estruturar planilhas, linhas e colunas, células mescladas, tabelas, gráficos e tabelas de resumo
- Regras: formatação condicional e validação de dados (listas suspensas, limites numéricos)
- Macros: ler o código VBA em arquivos
.xlsm, módulo por módulo (somente leitura, nunca executa) - Seguro por design: confinamento opcional de pastas, verificação de segurança de fórmulas, modo somente leitura, HTTP somente em localhost por padrão e salvamentos atômicos que nunca deixam um arquivo pela metade
Funciona com arquivos .xlsx, .xlsm (macros são preservadas), .xltx e .xltm.
Início rápido
Você precisa de uv. Cada cliente executa o
servidor com uvx excel-mcp-server stdio; substitua /path/to/workbooks pela pasta que o
servidor pode usar.
Claude Desktop (Chat): baixe excel-mcp-server-<version>.mcpb do
último lançamento e abra-o.
O Claude pergunta qual pasta o servidor pode usar.
Claude Code (a CLI e a aba Code no Claude Desktop):
claude mcp add excel --scope user -- uvx excel-mcp-server stdio --allow-dir /path/to/workbooks
Cursor (~/.cursor/mcp.json) e a maioria dos clientes que usam uma configuração mcpServers:
{
"mcpServers": {
"excel": {
"command": "uvx",
"args": ["excel-mcp-server", "stdio", "--allow-dir", "/path/to/workbooks"]
}
}
}
VS Code com GitHub Copilot (.vscode/mcp.json, observe a chave servers):
{
"servers": {
"excel": {
"type": "stdio",
"command": "uvx",
"args": ["excel-mcp-server", "stdio", "--allow-dir", "${workspaceFolder}"]
}
}
}
OpenAI Codex, Gemini CLI, Devin Desktop e Claude Desktop sem o pacote
OpenAI Codex (CLI, extensão de IDE e aplicativo):
codex mcp add excel -- uvx excel-mcp-server stdio --allow-dir /path/to/workbooks
Gemini CLI:
gemini mcp add -s user excel uvx excel-mcp-server stdio --allow-dir /path/to/workbooks
Devin Desktop:
devin mcp add -s user excel -- uvx excel-mcp-server stdio --allow-dir /path/to/workbooks
Claude Desktop, configuração manual: abra Configurações, Desenvolvedor, Editar Config, adicione o JSON mcpServers
acima em claude_desktop_config.json e reinicie o Claude.
Aplicativos de desktop frequentemente não encontram uvx, porque não veem o PATH do seu shell (comum
no macOS). Use o caminho completo, que which uvx imprime.
Escolhendo quais arquivos ele pode usar
Com --allow-dir DIR, o servidor só abre pastas de trabalho dentro de DIR (subpastas incluídas)
e caminhos relativos como reports/q1.xlsx começam lá. Repita a flag para permitir várias
pastas, ou defina EXCEL_FILES_PATH (separe pastas com : no macOS/Linux e ; no
Windows).
Sem --allow-dir, qualquer caminho absoluto para um arquivo Excel funciona. Em todos os modos, o servidor
apenas toca em arquivos Excel e nunca sobrescreve silenciosamente uma pasta de trabalho existente.
Uso remoto (Streamable HTTP)
uvx excel-mcp-server streamable-http --allow-dir /srv/workbooks
Os clientes se conectam a http://127.0.0.1:8017/mcp. As pastas de trabalho ficam na pasta --allow-dir
(padrão ./excel_files), e export_workbook / import_workbook movem arquivos entre o
servidor e o cliente.
O servidor escuta apenas em localhost. Para aceitar outras máquinas, defina um token e um host:
EXCEL_MCP_AUTH_TOKEN=change-me uvx excel-mcp-server streamable-http --host 0.0.0.0
Os clientes então enviam Authorization: Bearer change-me. Coloque um proxy reverso com terminação TLS na
frente dele para uso em redes.
Docker
docker build -t excel-mcp-server .
docker run -p 8017:8017 -v "$PWD/workbooks:/data" -e EXCEL_MCP_AUTH_TOKEN=change-me excel-mcp-server
Configuração
| Flag | Variável de ambiente | Padrão | Significado |
|---|---|---|---|
--allow-dir DIR | EXCEL_FILES_PATH | nenhum (stdio), ./excel_files (HTTP) | Pastas onde as pastas de trabalho devem estar |
--read-only | EXCEL_MCP_READ_ONLY=1 | desligado | Oferecer apenas ferramentas que não alteram arquivos |
--max-file-mb N | 100 | Maior pasta de trabalho que o servidor abre | |
--log-level LEVEL | WARNING | Registro em stderr | |
--host HOST | EXCEL_MCP_HOST | 127.0.0.1 | Endereço de escuta HTTP |
--port PORT | EXCEL_MCP_PORT | 8017 | Porta HTTP |
EXCEL_MCP_AUTH_TOKEN | nenhum | Token Bearer exigido em solicitações HTTP | |
--allow-unauthenticated | desligado | Permitir um --host não local sem token |
Ferramentas
| Área | Ferramentas |
|---|---|
| Pastas de trabalho | create_workbook, describe_workbook, list_workbooks, export_workbook, import_workbook |
| Planilhas | describe_sheet, create_sheet, rename_sheet, copy_sheet, delete_sheet, insert_rows_or_columns, delete_rows_or_columns |
| Células | read_range, write_range, clear_range, copy_range, find_cells |
| Formatação | format_range, merge_cells, set_sheet_layout, add_conditional_format, add_data_validation |
| Objetos | create_table, create_chart, create_summary_table |
| Macros | read_vba |
Cada parâmetro está documentado em TOOLS.md.
Segurança
- Fórmulas são analisadas antes de serem escritas. Funções que acessam a rede, outros
programas ou informações do host (
WEBSERVICE,HYPERLINK,IMAGE,RTD,CALL,INFO,INDIRECT, Google SheetsIMPORTXMLe outras), links DDE e referências a outras pastas de trabalho são rejeitadas. - Caminhos são resolvidos, incluindo symlinks, antes de serem verificados contra as pastas permitidas.
- Uma única chamada processa no máximo 100.000 células, e leituras grandes são retornadas em páginas.
- O conteúdo das células são dados de arquivos. O servidor informa ao modelo para não seguir instruções encontradas neles, mas revise o que um assistente faz com pastas de trabalho de fontes não confiáveis.
Por favor, relate vulnerabilidades de forma privada; veja SECURITY.md.
Limitações
- Fórmulas são armazenadas, não calculadas.
read_rangeno modovaluesretorna os resultados que o Excel salvou por último, então fórmulas escritas por este servidor são lidas como vazias até que o arquivo seja aberto e salvo no Excel ou LibreOffice. - Arquivos legados
.xlse.csvnão são suportados. create_summary_tableescreve um resumo estático; openpyxl não pode criar Tabelas Dinâmicas reais.- Inserir ou excluir linhas e colunas não atualiza fórmulas, gráficos ou tabelas que referenciam as células movidas.
- Recursos de pastas de trabalho que o openpyxl não entende, como formas, segmentações de dados e alguns
objetos incorporados, podem ser perdidos quando uma pasta de trabalho é editada. Imagens, gráficos, tabelas e
macros em arquivos
.xlsmsão mantidos.
Atualizando da versão 0.x
A versão 1.0 renomeia e redesenha as ferramentas, remove o transporte SSE e exige Python 3.11 ou mais recente. O changelog mapeia cada ferramenta antiga para sua substituta.
Contribuindo
Contribuições são bem-vindas. Veja CONTRIBUTING.md.
Histórico de estrelas
Licença
MIT. Veja LICENSE.