Skip to main content

🏗️ Model Context Protocol (MCP) server for Sienge API integration - Brazilian construction ERP system. Connect Claude AI to Sienge with 60+ powerful tools including smart validation, error parsing, complete invoice pipeline, and advanced caching for comprehensive business management.

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-2.0.0.tar.gz (71.2 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-2.0.0-py3-none-any.whl (69.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sienge_ecbiesek_mcp-2.0.0.tar.gz
  • Upload date:
  • Size: 71.2 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-2.0.0.tar.gz
Algorithm Hash digest
SHA256 cc4ba1122a8783e2e006ee7f3db8889f0d09b295db474878ed16927efa21142c
MD5 ecd677d6727be0731981591b2581112c
BLAKE2b-256 fdfff5f438cdd66f66bbb31211b5ea7d81ae74472782a9ea2bee269475d53d65

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for sienge_ecbiesek_mcp-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d078af1714d03bc3b867abc8e40874d16b1fe448cf55e7b08eb6512d9f214b3e
MD5 ccde583cf84ca7ebd9f10b043f843940
BLAKE2b-256 8c361d14d25969278c7090b9a15b4ccb4a7dbfde44f0d7d279403ac4ae4cd88a

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