MCP Server para API V2 do TOTVS Moda — integre Claude e outros clientes MCP ao seu ERP de moda brasileiro
Project description
TOTVS Moda MCP Server
MCP Server para a API V2 do TOTVS Moda. Projeto pessoal, não oficial, feito por um usuário do sistema que resolveu aprender a programar pra facilitar a própria vida.
Se te servir, ótimo. Se achou bug, abre issue. Se quer contribuir, PR é bem-vindo.
Por que existe
Sou usuário do TOTVS Moda desde o final de 2021. Tive dificuldade pra entender o sistema no começo, depois descobri as APIs, estudei por conta, e comecei a escrever scripts Python pra acelerar tarefas repetitivas no trabalho — consultas, exportações, atualizações em lote. Economizou muito tempo.
Quando os LLMs avançaram e a Anthropic lançou o MCP (Model Context Protocol — padrão pra conectar IA a sistemas externos), pensei: dava pra conectar com TOTVS Moda.
Fui procurar se já existia. Não existia — nem oficial, nem de parceiros, nem da comunidade. Então fiz.
O projeto não é oficial da TOTVS. Não tem time por trás. Sou só eu, trabalhando na hora que dá. Uso em produção no meu próprio trabalho, e vou corrigindo o que quebra. Compartilho porque outras empresas que usam TOTVS Moda provavelmente têm a mesma dor.
O que dá pra fazer
Com o MCP conectado ao Claude (ou qualquer cliente MCP — Claude Desktop, Claude Code, VS Code Copilot, Cursor), você pergunta em linguagem natural e ele consulta ou age no TOTVS.
Exemplos de perguntas que funcionam hoje:
- "Quais pedidos de venda foram criados hoje?"
- "Qual o faturamento da semana passada por filial?"
- "Me mostra as estatísticas de compra do cliente 38181"
- "Quais produtos estão com saldo abaixo de 10?"
- "Quais os 10 clientes que mais compraram este mês?"
- "Atualiza o preço do produto X para R$ 89,90 na tabela de preço 2"
- "Me dá os documentos em aberto no contas a receber com vencimento até sexta"
Cobertura atual: 18 módulos da API V2, mais de 75 tools.
- Pedidos de venda: consulta, criação B2C, cancelamento, alteração de itens, transporte, observações
- Produtos: busca, preços, custos, saldos, referências, cores, grades, lotes
- Clientes: PF/PJ, representantes, bônus, estatísticas, mensagens
- Financeiro: contas a receber e a pagar com cobertura 100% do swagger
- Fiscal: NF-e, XML, DANFE, centros de custo
- Logística, vouchers, imagens, pacotes de dados, ordens de produção, ordens de compra
- Analytics (se sua empresa tem o módulo contratado): movimentação fiscal, painel financeiro, painel de vendedor
Requisitos
- Python 3.11 ou superior
- Uma instância do TOTVS Moda V2 com API ativada
- Credenciais de integração (client_id, client_secret, usuário, senha)
- Um cliente MCP (Claude Desktop, Claude Code, VS Code Copilot Chat em modo Agent, Cursor, etc.)
Instalação
pip install totvs-moda-mcp
Configuração
Exemplo de configuração para VS Code Copilot Chat (mcp.json):
{
"servers": {
"totvs-moda": {
"command": "python",
"args": ["-m", "totvs_moda_mcp"],
"env": {
"TOTVS_BASE_URL": "https://seu-servidor-totvs:9443",
"TOTVS_CLIENT_ID": "seu_client_id",
"TOTVS_CLIENT_SECRET": "seu_secret",
"TOTVS_USERNAME": "seu_usuario",
"TOTVS_PASSWORD": "sua_senha",
"TOTVS_BRANCH_CODES": "1"
}
}
}
}
Para Claude Desktop, a estrutura é igual, só muda a chave raiz para mcpServers em vez de servers.
Variáveis de ambiente
Obrigatórias:
| Variável | Descrição |
|---|---|
TOTVS_BASE_URL |
URL base da sua API TOTVS (ex: https://www30.suaempresa.com.br:9443) |
TOTVS_CLIENT_ID |
Client ID da integração |
TOTVS_CLIENT_SECRET |
Client secret |
TOTVS_USERNAME |
Usuário de integração no TOTVS |
TOTVS_PASSWORD |
Senha do usuário |
Recomendadas:
| Variável | Padrão | Descrição |
|---|---|---|
TOTVS_BRANCH_CODES |
— | Filial padrão (ex: 1 ou 1,2,5). Se não setar, toda chamada com filial vai exigir o código explícito |
Opcionais:
| Variável | Padrão | Descrição |
|---|---|---|
TOTVS_TIMEOUT |
30 |
Timeout em segundos por chamada |
TOTVS_MAX_RETRIES |
3 |
Tentativas em erros 5xx e rede |
TOTVS_TLS_VERIFY |
true |
Verificação TLS (só mude se seu servidor usa certificado auto-assinado) |
TOTVS_ENABLE_ANALYTICS |
true |
Desabilita o módulo Analytics se sua empresa não contrata |
Segurança das credenciais
Não comite o mcp.json com credenciais reais. Uma opção segura é referenciar variáveis de ambiente do sistema operacional:
"env": {
"TOTVS_PASSWORD": "${env:TOTVS_PASSWORD}"
}
Limitações conhecidas
Esse projeto é limitado pelo que a API V2 do TOTVS Moda expõe.
Como funciona por dentro
Em linhas gerais:
- Autenticação OAuth2 ROPC contra
/api/totvsmoda/authorization/v2/token, com refresh automático quando o token expira - Retry automático em 401 reativo (token invalidado antes da hora pelo servidor) e em 5xx com backoff exponencial
- Cada módulo da API tem um arquivo em
tools/que expõe os endpoints como métodos async server.pyregistra as tools MCP, mapeia argumentos pros métodos, e retorna JSON pro clientecontext_cache.pycarrega dados de referência no startup (filiais, operações, tabelas de preço) pra evitar chamadas repetidastools/_defaults.pypreenche automaticamentebranchCodeda variável de ambiente quando o LLM esquece de passar — reduz drasticamente os erros 400 em loop
Se você quiser entender a arquitetura em mais detalhe, dê uma olhada no server.py e no totvs_client.py. O código é comentado em português.
Testes
O projeto tem testes automatizados cobrindo as tools, o client HTTP, e os utilitários de injeção de default e filtragem de campos.
pip install -r tests/requirements-test.txt
PYTHONPATH=. pytest tests/ -v
Contribuindo
Se você usa TOTVS Moda e quer ajudar:
-
Bug ou endpoint que não funciona? Me envie mensagem descrevendo o que você tentou e o que aconteceu.
-
Quer mandar código? PRs são bem-vindos. O projeto tem teste automatizado — se você adicionar um endpoint novo, adicione um teste junto (tem exemplos em
tests/).
Licença
MIT. Usa à vontade. Se quiser dar crédito, ótimo, mas não é obrigatório.
Contato
LinkedIn — se quiser conversar sobre TOTVS, integração com IA, ou só falar que o projeto te ajudou.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file totvs_moda_mcp-2.6.0.tar.gz.
File metadata
- Download URL: totvs_moda_mcp-2.6.0.tar.gz
- Upload date:
- Size: 49.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5b19c1dd461b038a81103323b6b02b7c0f767b85dc577843690639ecad2f3a66
|
|
| MD5 |
1a094c80e5ab9e5bfadd7c82be1f0f8c
|
|
| BLAKE2b-256 |
71e6c6120566d09585e71944acc4efa1daa7236200e414e1ba6b1f346a9cc4ad
|
File details
Details for the file totvs_moda_mcp-2.6.0-py3-none-any.whl.
File metadata
- Download URL: totvs_moda_mcp-2.6.0-py3-none-any.whl
- Upload date:
- Size: 73.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a2bcd842b05ea84975fdc3b840b43c78feb608cf72fa0a5bdc18f2823c1091d
|
|
| MD5 |
ad4a41ade5c296e838a6232fc42a210a
|
|
| BLAKE2b-256 |
4a8db07091aa8c5fa749f1dd9bad934e4b9f6814c60484208193cf833a8fc486
|