🏗️ Model Context Protocol (MCP) server for Sienge API integration - Brazilian construction ERP system. Connect Claude AI to Sienge with 50+ powerful tools for comprehensive business management including financials, projects, and operations.
Project description
Sienge MCP Server
Um servidor Model Context Protocol (MCP) para integração com a API do Sienge, sistema de gestão para empresas de construção civil.
🚀 Funcionalidades
📊 Contas a Receber
- get_sienge_accounts_receivable: Lista contas a receber com filtros por período
- Utiliza a Bulk-data API do Sienge para consultas eficientes
- Suporte a filtros por data de vencimento e data de competência
🏢 Projetos e Empresas
- get_sienge_projects: Lista todos os projetos/empresas disponíveis
- Informações detalhadas incluindo ID, nome, endereço e status
📝 Notas Fiscais de Compra
- get_sienge_purchase_invoices: Lista todas as notas fiscais de compra
- get_sienge_purchase_invoice_details: Detalhes completos de uma nota fiscal específica
- get_sienge_purchase_invoice_items: Lista itens de uma nota fiscal
- get_sienge_purchase_invoice_payments: Lista pagamentos de uma nota fiscal
- search_sienge_purchase_invoices: Busca avançada com múltiplos filtros
🔍 Solicitações de Compra
- get_sienge_purchase_requests: Lista solicitações de compra do sistema
📦 Instalação
Via PyPI (Recomendado)
pip install sienge-ecbiesek-mcp
Via Código Fonte
git clone https://github.com/INOTECH-ecbiesek/Sienge-MCP.git
cd Sienge-MCP
pip install -e .
⚙️ Configuração
1. Variáveis de Ambiente
Crie um arquivo .env no diretório do projeto com as seguintes variáveis:
# Configurações da API do Sienge
SIENGE_BASE_URL=https://api.sienge.com.br
SIENGE_SUBDOMAIN=seu_subdominio
SIENGE_USERNAME=seu_usuario
SIENGE_PASSWORD=sua_senha
SIENGE_TIMEOUT=30
2. Configuração no Claude Desktop
Configuração Básica
Adicione ao seu arquivo de configuração do Claude Desktop (claude_desktop_config.json):
{
"mcpServers": {
"sienge-mcp": {
"command": "python",
"args": ["-m", "sienge_mcp"],
"env": {
"SIENGE_BASE_URL": "https://api.sienge.com.br",
"SIENGE_SUBDOMAIN": "seu_subdominio",
"SIENGE_USERNAME": "seu_usuario",
"SIENGE_PASSWORD": "sua_senha",
"SIENGE_TIMEOUT": "30"
}
}
}
}
Configuração com Virtual Environment
Se você estiver usando um ambiente virtual:
{
"mcpServers": {
"sienge-mcp": {
"command": "C:/caminho/para/seu/venv/Scripts/python.exe",
"args": ["-m", "sienge_mcp"],
"env": {
"SIENGE_BASE_URL": "https://api.sienge.com.br",
"SIENGE_SUBDOMAIN": "seu_subdominio",
"SIENGE_USERNAME": "seu_usuario",
"SIENGE_PASSWORD": "sua_senha",
"SIENGE_TIMEOUT": "30"
}
}
}
}
🔐 Autenticação
Credenciais do Sienge
A autenticação é feita através de usuário e senha do Sienge, não por token API:
- SIENGE_BASE_URL: URL base da API (
https://api.sienge.com.br) - SIENGE_SUBDOMAIN: Seu subdomínio no Sienge (ex:
suaempresa) - SIENGE_USERNAME: Seu nome de usuário no Sienge
- SIENGE_PASSWORD: Sua senha no Sienge
- SIENGE_TIMEOUT: Timeout das requisições em segundos (padrão: 30)
URLs da API
- API Base:
https://api.sienge.com.br - Endpoints v1:
/sienge/api/public/v1/ - Bulk-data API:
/bulk-data/
💻 Como Usar
1. Iniciando o Servidor
# Via módulo Python
python -m sienge_mcp
# Ou diretamente
sienge-mcp-server
2. No Claude Desktop
Após configurar o servidor, reinicie o Claude Desktop. O servidor MCP será automaticamente carregado e as ferramentas ficarão disponíveis.
3. Exemplos de Uso no Claude
Consultar Contas a Receber
"Liste as contas a receber com vencimento entre 01/01/2024 e 31/01/2024"
Buscar Projetos
"Mostre todos os projetos disponíveis no Sienge"
Consultar Notas Fiscais
"Liste as notas fiscais de compra do mês atual"
Busca Avançada de Notas Fiscais
"Busque notas fiscais de compra com valor acima de R$ 10.000,00 emitidas em dezembro de 2023"
🛠️ Desenvolvimento
Estrutura do Projeto
src/
├── sienge_mcp/
│ ├── __init__.py
│ ├── server.py # Servidor MCP principal
│ ├── services/ # Serviços de integração
│ ├── tools/ # Ferramentas MCP
│ └── utils/
│ └── logger.py # Sistema de logging
Executando em Modo de Desenvolvimento
# Clone o repositório
git clone https://github.com/INOTECH-ecbiesek/Sienge-MCP.git
cd Sienge-MCP
# Crie um ambiente virtual
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # Linux/Mac
# Instale as dependências
pip install -e .
# Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env com suas configurações
# Execute o servidor
python -m sienge_mcp
Testando Localmente
# Instale as dependências de teste
pip install pytest pytest-asyncio
# Execute os testes
pytest tests/
📋 Requisitos
Dependências
- Python >= 3.10
- fastmcp >= 2.12.3
- httpx >= 0.25.0
- pydantic >= 2.0.0
- python-dotenv >= 1.0.0
Compatibilidade
- ✅ Windows
- ✅ macOS
- ✅ Linux
- ✅ Claude Desktop
- ✅ Outros clientes MCP
🔧 Configurações Avançadas
Logs e Debug
O servidor inclui sistema de logging configurável:
# Nível de log via variável de ambiente
LOG_LEVEL=DEBUG # DEBUG, INFO, WARNING, ERROR
Timeout de Requisições
Configure o timeout das requisições HTTP:
# Timeout em segundos (padrão: 30s)
SIENGE_TIMEOUT=60
Cache de Respostas
Para melhor performance em consultas frequentes:
# Habilitar cache (padrão: False)
SIENGE_CACHE_ENABLED=true
SIENGE_CACHE_TTL=300 # TTL em segundos
🚨 Solução de Problemas
Erros Comuns
Erro 401 - Unauthorized
Causa: Credenciais inválidas (usuário/senha incorretos)
Solução: Verifique seu usuário e senha no Sienge
Erro 404 - Not Found
Causa: Endpoint incorreto ou recurso não encontrado
Solução: Verifique as URLs base da API
Erro 429 - Rate Limited
Causa: Muitas requisições por minuto
Solução: Implemente delay entre requisições
Servidor MCP não conecta
1. Verifique se o Python está no PATH
2. Confirme se o módulo está instalado: pip show sienge-ecbiesek-mcp
3. Teste a execução manual: python -m sienge_mcp
4. Verifique os logs do Claude Desktop
Debug
Para debugar problemas de conexão:
# Execute com logs detalhados
LOG_LEVEL=DEBUG python -m sienge_mcp
# Teste a conectividade com a API
# Use as credenciais do seu arquivo de configuração para testar
📚 Documentação da API
Endpoints Utilizados
API Padrão (v1)
GET /enterprises- Lista empresas/projetosGET /purchase-requests- Solicitações de compraGET /purchase-invoices- Notas fiscais de compraGET /purchase-invoices/{id}- Detalhes da nota fiscalGET /purchase-invoices/{id}/items- Itens da nota fiscalGET /purchase-invoices/{id}/payments- Pagamentos da nota fiscal
Bulk-data API
POST /income- Contas a receber (bulk)
Formatos de Data
- ISO 8601:
2024-01-01T00:00:00Z - Brasileiro:
01/01/2024 - Filtros de período:
start_dateeend_date
Códigos de Status
200- Sucesso400- Requisição inválida401- Não autorizado404- Recurso não encontrado429- Rate limit excedido500- Erro interno do servidor
📄 Licença
Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.
🤝 Contribuindo
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
📞 Suporte
- Issues: GitHub Issues
- Documentação: Wiki do Projeto
- API Sienge: Documentação Oficial
📈 Versões
v1.1.0 (Atual)
- ✅ Adicionadas 5 ferramentas para Notas Fiscais de Compra
- ✅ Suporte à Bulk-data API para contas a receber
- ✅ Correção de endpoints para projetos/empresas
- ✅ Melhorias na documentação e tratamento de erros
v1.0.0
- ✅ Versão inicial com ferramentas básicas
- ✅ Integração com API padrão do Sienge
- ✅ Suporte a contas a receber, projetos e solicitações de compra
Desenvolvido por INOTECH-ecbiesek 🚀
Project details
Release history Release notifications | RSS feed
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 sienge_ecbiesek_mcp-1.2.2.tar.gz.
File metadata
- Download URL: sienge_ecbiesek_mcp-1.2.2.tar.gz
- Upload date:
- Size: 46.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f14dd8b79a771d65c8d107c4f6f6dff3afca751c4c0a125cca49a06ee9179d3
|
|
| MD5 |
a67ae4ffe117eab0a28c5b6d87180e8d
|
|
| BLAKE2b-256 |
57836e5701c4c8d2720bb94baccf8c680c157f2c1cb07e9245b96bf00678d5bd
|
File details
Details for the file sienge_ecbiesek_mcp-1.2.2-py3-none-any.whl.
File metadata
- Download URL: sienge_ecbiesek_mcp-1.2.2-py3-none-any.whl
- Upload date:
- Size: 45.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ba4a4cc7ce876dd7bf023f9691f8b96183a8966adeb47a839466c160502a1d55
|
|
| MD5 |
48d9186584b104da3fad78d942cd67ca
|
|
| BLAKE2b-256 |
39ee38166aad29be98f529812d15a53c299e0086e483d60f427274d43e91067d
|