Skip to main content

🏗️ 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:

  1. SIENGE_BASE_URL: URL base da API (https://api.sienge.com.br)
  2. SIENGE_SUBDOMAIN: Seu subdomínio no Sienge (ex: suaempresa)
  3. SIENGE_USERNAME: Seu nome de usuário no Sienge
  4. SIENGE_PASSWORD: Sua senha no Sienge
  5. 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/projetos
  • GET /purchase-requests - Solicitações de compra
  • GET /purchase-invoices - Notas fiscais de compra
  • GET /purchase-invoices/{id} - Detalhes da nota fiscal
  • GET /purchase-invoices/{id}/items - Itens da nota fiscal
  • GET /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_date e end_date

Códigos de Status

  • 200 - Sucesso
  • 400 - Requisição inválida
  • 401 - Não autorizado
  • 404 - Recurso não encontrado
  • 429 - Rate limit excedido
  • 500 - Erro interno do servidor

📄 Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.

🤝 Contribuindo

  1. Faça um fork do projeto
  2. Crie uma branch para sua feature (git checkout -b feature/AmazingFeature)
  3. Commit suas mudanças (git commit -m 'Add some AmazingFeature')
  4. Push para a branch (git push origin feature/AmazingFeature)
  5. Abra um Pull Request

📞 Suporte

📈 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sienge_ecbiesek_mcp-1.2.0.tar.gz (47.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sienge_ecbiesek_mcp-1.2.0-py3-none-any.whl (45.1 kB view details)

Uploaded Python 3

File details

Details for the file sienge_ecbiesek_mcp-1.2.0.tar.gz.

File metadata

  • Download URL: sienge_ecbiesek_mcp-1.2.0.tar.gz
  • Upload date:
  • Size: 47.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.0

File hashes

Hashes for sienge_ecbiesek_mcp-1.2.0.tar.gz
Algorithm Hash digest
SHA256 8ac1be965211772b4d9bdd693d586607963f2bbfbb74fdfaf9bdda4055f404bd
MD5 308458090d8d66f2c8525f74558eb46d
BLAKE2b-256 1ded8e9ba64a1714d2288806416657da9e3ffa4c399ec518917e19039b46c903

See more details on using hashes here.

File details

Details for the file sienge_ecbiesek_mcp-1.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for sienge_ecbiesek_mcp-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b959b2051fa946616c04fe2cfc8ba7f406545e01dc0ac47efe4ccc05993e3875
MD5 f4ef4045097a6be8ac95c2238b32477f
BLAKE2b-256 504e415ca3c4eb9edef33bd5fe3894ea332de1d357719d8b5ba4f1a97a435e92

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page