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, operations, and Supabase database queries.

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

🗄️ Consultas Supabase

  • query_supabase_database: Executa queries no banco de dados Supabase
  • get_supabase_table_info: Obtém informações sobre tabelas disponíveis
  • search_supabase_data: Busca universal em múltiplas tabelas
  • Suporte a filtros, ordenação e busca textual/inteligente
  • Schema fixo sienge_data para organização dos dados

🔍 Busca Universal

  • search_sienge_data: Busca unificada em múltiplas entidades do Sienge
  • search_sienge_financial_data: Busca avançada em dados financeiros
  • get_sienge_data_paginated: Paginação avançada para grandes volumes
  • get_sienge_dashboard_summary: Resumo executivo 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

# Configurações do Supabase (opcional)
SUPABASE_URL=https://seu-projeto.supabase.co
SUPABASE_SERVICE_ROLE_KEY=sua_service_role_key

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
  • supabase >= 2.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.3.0 (Atual)

  • NOVO: Integração completa com Supabase
  • NOVO: 3 ferramentas de consulta ao banco de dados
  • NOVO: Busca universal em múltiplas tabelas
  • NOVO: Busca inteligente (textual + numérica)
  • NOVO: Dashboard executivo do sistema
  • NOVO: Paginação avançada para grandes volumes
  • NOVO: Busca financeira unificada
  • MELHORADO: Validação de parâmetros robusta
  • MELHORADO: Tratamento de erros aprimorado
  • MELHORADO: Documentação completa atualizada

v1.2.3

  • ✅ 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.3.0.tar.gz (47.5 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.3.0-py3-none-any.whl (45.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sienge_ecbiesek_mcp-1.3.0.tar.gz
  • Upload date:
  • Size: 47.5 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.3.0.tar.gz
Algorithm Hash digest
SHA256 f1105d4767440591408f47ea8de2c885130d4f4b67429a7b0fdd635d90bab10d
MD5 277f96752acb074681712a31a7c90ca8
BLAKE2b-256 262aa616475741ca0694bf52311f55fd2070e4e878b0686cb84bfbca6c9b869e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sienge_ecbiesek_mcp-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8ed5bf8e1d81e9643c857882c39c90dfca26e1e49fbb933af19f3e9eaf3abced
MD5 df814006343d7fdacc5b88cc6ef530f1
BLAKE2b-256 ee203a0151aaeb3922fc4b1099cf002e986b9f766244a8a8f1175d7fcdebc5ad

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