sienge-ecbiesek-mcp 1.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of sienge-ecbiesek-mcp might be problematic. Click here for more details.
- sienge_ecbiesek_mcp-1.2.0/COMO_TESTAR.md +63 -0
- sienge_ecbiesek_mcp-1.2.0/GUIA_ATUALIZACAO.md +132 -0
- sienge_ecbiesek_mcp-1.2.0/LICENSE +21 -0
- sienge_ecbiesek_mcp-1.2.0/MANIFEST.in +12 -0
- sienge_ecbiesek_mcp-1.2.0/PKG-INFO +405 -0
- sienge_ecbiesek_mcp-1.2.0/PUBLICADO_PYPI.md +100 -0
- sienge_ecbiesek_mcp-1.2.0/README.md +340 -0
- sienge_ecbiesek_mcp-1.2.0/claude_desktop_config.template.json +8 -0
- sienge_ecbiesek_mcp-1.2.0/pyproject.toml +78 -0
- sienge_ecbiesek_mcp-1.2.0/requirements.txt +13 -0
- sienge_ecbiesek_mcp-1.2.0/setup.cfg +4 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_ecbiesek_mcp.egg-info/PKG-INFO +405 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_ecbiesek_mcp.egg-info/SOURCES.txt +20 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_ecbiesek_mcp.egg-info/dependency_links.txt +1 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_ecbiesek_mcp.egg-info/entry_points.txt +2 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_ecbiesek_mcp.egg-info/requires.txt +12 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_ecbiesek_mcp.egg-info/top_level.txt +1 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_mcp/__init__.py +9 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_mcp/metadata.py +43 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_mcp/server.py +2679 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_mcp/server2.py +2679 -0
- sienge_ecbiesek_mcp-1.2.0/src/sienge_mcp/utils/logger.py +168 -0
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# 🧪 TESTE LOCAL SIENGE ECBIESEK MCP
|
|
2
|
+
|
|
3
|
+
## ✅ **COMO TESTAR LOCALMENTE (SEM PYPI)**
|
|
4
|
+
|
|
5
|
+
### **1. Configurar Claude Desktop**
|
|
6
|
+
|
|
7
|
+
Edite o arquivo: `%APPDATA%\Claude\claude_desktop_config.json`
|
|
8
|
+
|
|
9
|
+
```json
|
|
10
|
+
{
|
|
11
|
+
"mcpServers": {
|
|
12
|
+
"SiengeECBIESEK_LOCAL": {
|
|
13
|
+
"command": "C:\\Users\\Moizes\\Desktop\\SiengeMCP\\Sienge-mcp\\.venv\\Scripts\\sienge-ecbiesek-mcp.exe",
|
|
14
|
+
"env": {
|
|
15
|
+
"SIENGE_BASE_URL": "https://api.sienge.com.br",
|
|
16
|
+
"SIENGE_SUBDOMAIN": "ecbiesek",
|
|
17
|
+
"SIENGE_USERNAME": "SEU_USUARIO_REAL_AQUI",
|
|
18
|
+
"SIENGE_PASSWORD": "SUA_SENHA_REAL_AQUI"
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
### **2. Substituir Credenciais**
|
|
26
|
+
- Coloque seu usuário real do Sienge ECBIESEK
|
|
27
|
+
- Coloque sua senha real do Sienge ECBIESEK
|
|
28
|
+
|
|
29
|
+
### **3. Reiniciar Claude Desktop**
|
|
30
|
+
- Feche completamente o Claude Desktop
|
|
31
|
+
- Abra novamente
|
|
32
|
+
- O MCP deve aparecer nas ferramentas disponíveis
|
|
33
|
+
|
|
34
|
+
### **4. Testar**
|
|
35
|
+
Pergunte ao Claude:
|
|
36
|
+
- "Liste os projetos da ECBIESEK no Sienge"
|
|
37
|
+
- "Mostre as contas a pagar em aberto"
|
|
38
|
+
- "Quais colaboradores estão cadastrados?"
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## 🌐 **OPÇÕES DE DISTRIBUIÇÃO**
|
|
43
|
+
|
|
44
|
+
### **OPÇÃO A: PyPI Público**
|
|
45
|
+
```bash
|
|
46
|
+
# Criar conta em https://pypi.org
|
|
47
|
+
# Depois:
|
|
48
|
+
.\.venv\Scripts\twine.exe upload dist/sienge_ecbiesek_mcp-1.0.0-py3-none-any.whl
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### **OPÇÃO B: PyPI Privado/Interno**
|
|
52
|
+
- Configurar servidor PyPI interno da empresa
|
|
53
|
+
- Distribuir apenas internamente na ECBIESEK
|
|
54
|
+
|
|
55
|
+
### **OPÇÃO C: Distribuição Manual**
|
|
56
|
+
- Compartilhar o arquivo `.whl` internamente
|
|
57
|
+
- Equipe instala com: `pip install sienge_ecbiesek_mcp-1.0.0-py3-none-any.whl`
|
|
58
|
+
|
|
59
|
+
---
|
|
60
|
+
|
|
61
|
+
## 🎯 **RECOMENDAÇÃO IMEDIATA**
|
|
62
|
+
|
|
63
|
+
**TESTE PRIMEIRO LOCALMENTE** para verificar se funciona com suas credenciais reais do Sienge ECBIESEK antes de distribuir!
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# 🔄 GUIA DE ATUALIZAÇÃO - SIENGE ECBIESEK MCP
|
|
2
|
+
|
|
3
|
+
## 📋 **PROCESSO COMPLETO DE ATUALIZAÇÃO**
|
|
4
|
+
|
|
5
|
+
### **1. 📝 FAZER MUDANÇAS NO CÓDIGO**
|
|
6
|
+
- Editar `src/sienge_mcp/server.py` ou outros arquivos
|
|
7
|
+
- Testar localmente primeiro
|
|
8
|
+
|
|
9
|
+
### **2. 🔢 ATUALIZAR VERSÃO**
|
|
10
|
+
Editar `pyproject.toml`:
|
|
11
|
+
```toml
|
|
12
|
+
[project]
|
|
13
|
+
version = "1.0.1" # Incrementar versão
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
**Regras de Versionamento:**
|
|
17
|
+
- `1.0.1` - Correção de bugs (patch)
|
|
18
|
+
- `1.1.0` - Novas funcionalidades (minor)
|
|
19
|
+
- `2.0.0` - Mudanças que quebram compatibilidade (major)
|
|
20
|
+
|
|
21
|
+
### **3. 🏗️ REBUILD DO PACKAGE**
|
|
22
|
+
```bash
|
|
23
|
+
# Limpar build anterior
|
|
24
|
+
Remove-Item -Path "dist" -Recurse -Force -ErrorAction SilentlyContinue
|
|
25
|
+
Remove-Item -Path "build" -Recurse -Force -ErrorAction SilentlyContinue
|
|
26
|
+
|
|
27
|
+
# Build nova versão
|
|
28
|
+
.\.venv\Scripts\python.exe -m build
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### **4. 🧪 TESTAR NOVA VERSÃO**
|
|
32
|
+
```bash
|
|
33
|
+
# Instalar nova versão localmente
|
|
34
|
+
.\.venv\Scripts\python.exe -m pip install ./dist/sienge_ecbiesek_mcp-1.0.1-py3-none-any.whl --force-reinstall
|
|
35
|
+
|
|
36
|
+
# Testar comando
|
|
37
|
+
.\.venv\Scripts\sienge-ecbiesek-mcp.exe
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
### **5. 📤 PUBLICAR ATUALIZAÇÃO**
|
|
41
|
+
```bash
|
|
42
|
+
# Upload nova versão para PyPI
|
|
43
|
+
.\.venv\Scripts\twine.exe upload dist/sienge_ecbiesek_mcp-1.0.1-py3-none-any.whl
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### **6. ✅ VERIFICAR PUBLICAÇÃO**
|
|
47
|
+
- Acessar: https://pypi.org/project/sienge-ecbiesek-mcp/
|
|
48
|
+
- Confirmar nova versão disponível
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 🚀 **SCRIPT AUTOMATIZADO DE ATUALIZAÇÃO**
|
|
53
|
+
|
|
54
|
+
Crie um arquivo `atualizar.ps1`:
|
|
55
|
+
|
|
56
|
+
```powershell
|
|
57
|
+
# Atualizar versão (manual no pyproject.toml primeiro!)
|
|
58
|
+
Write-Host "=== LIMPANDO BUILD ANTERIOR ==="
|
|
59
|
+
Remove-Item -Path "dist" -Recurse -Force -ErrorAction SilentlyContinue
|
|
60
|
+
Remove-Item -Path "build" -Recurse -Force -ErrorAction SilentlyContinue
|
|
61
|
+
|
|
62
|
+
Write-Host "=== BUILDANDO NOVA VERSÃO ==="
|
|
63
|
+
.\.venv\Scripts\python.exe -m build
|
|
64
|
+
|
|
65
|
+
Write-Host "=== TESTANDO LOCALMENTE ==="
|
|
66
|
+
$wheelFile = Get-ChildItem -Path "dist\*.whl" | Select-Object -First 1
|
|
67
|
+
.\.venv\Scripts\python.exe -m pip install $wheelFile.FullName --force-reinstall
|
|
68
|
+
|
|
69
|
+
Write-Host "=== PUBLICANDO NO PYPI ==="
|
|
70
|
+
.\.venv\Scripts\twine.exe upload $wheelFile.FullName
|
|
71
|
+
|
|
72
|
+
Write-Host "=== CONCLUÍDO! ==="
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## 📋 **CHECKLIST DE ATUALIZAÇÃO**
|
|
78
|
+
|
|
79
|
+
- [ ] **Fazer mudanças** no código
|
|
80
|
+
- [ ] **Testar localmente** com credenciais reais
|
|
81
|
+
- [ ] **Atualizar versão** no `pyproject.toml`
|
|
82
|
+
- [ ] **Limpar build** anterior
|
|
83
|
+
- [ ] **Build nova versão**
|
|
84
|
+
- [ ] **Testar nova versão** localmente
|
|
85
|
+
- [ ] **Publicar no PyPI**
|
|
86
|
+
- [ ] **Verificar** no site do PyPI
|
|
87
|
+
- [ ] **Avisar equipe** sobre atualização
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## 🔄 **ATUALIZAÇÕES AUTOMÁTICAS PARA USUÁRIOS**
|
|
92
|
+
|
|
93
|
+
Como você usa `@latest` na configuração:
|
|
94
|
+
```json
|
|
95
|
+
"sienge-ecbiesek-mcp@latest"
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Os usuários **automaticamente** pegam a versão mais recente quando:
|
|
99
|
+
- Reiniciam o Claude Desktop
|
|
100
|
+
- O pipx atualiza o cache
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## ⚡ **TIPOS DE ATUALIZAÇÕES COMUNS**
|
|
105
|
+
|
|
106
|
+
### **🐛 Correção de Bug**
|
|
107
|
+
```bash
|
|
108
|
+
# 1.0.0 → 1.0.1
|
|
109
|
+
# Exemplo: Corrigir erro de autenticação
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### **✨ Nova Funcionalidade**
|
|
113
|
+
```bash
|
|
114
|
+
# 1.0.1 → 1.1.0
|
|
115
|
+
# Exemplo: Adicionar nova ferramenta do Sienge
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### **💥 Mudança Maior**
|
|
119
|
+
```bash
|
|
120
|
+
# 1.1.0 → 2.0.0
|
|
121
|
+
# Exemplo: Mudar formato de configuração
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 🎯 **DICA PRO**
|
|
127
|
+
|
|
128
|
+
**Sempre teste localmente antes de publicar!** Use o arquivo wheel local para validar mudanças com suas credenciais reais do Sienge.
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
**Quer que eu crie o script automatizado de atualização para você?** 🤔
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Sienge MCP Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
include README.md
|
|
2
|
+
include LICENSE
|
|
3
|
+
include COMO_TESTAR.md
|
|
4
|
+
include GUIA_ATUALIZACAO.md
|
|
5
|
+
include PUBLICADO_PYPI.md
|
|
6
|
+
include requirements.txt
|
|
7
|
+
include claude_desktop_config.template.json
|
|
8
|
+
recursive-include src/sienge_mcp *.py *.json *.md *.txt
|
|
9
|
+
recursive-exclude * __pycache__
|
|
10
|
+
recursive-exclude * *.py[co]
|
|
11
|
+
recursive-exclude * .DS_Store
|
|
12
|
+
recursive-exclude * Thumbs.db
|
|
@@ -0,0 +1,405 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: sienge-ecbiesek-mcp
|
|
3
|
+
Version: 1.2.0
|
|
4
|
+
Summary: 🏗️ 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.
|
|
5
|
+
Author-email: ECBIESEK <ti@ecbiesek.com>
|
|
6
|
+
License: MIT License
|
|
7
|
+
|
|
8
|
+
Copyright (c) 2025 Sienge MCP Contributors
|
|
9
|
+
|
|
10
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
11
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
12
|
+
in the Software without restriction, including without limitation the rights
|
|
13
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
14
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
15
|
+
furnished to do so, subject to the following conditions:
|
|
16
|
+
|
|
17
|
+
The above copyright notice and this permission notice shall be included in all
|
|
18
|
+
copies or substantial portions of the Software.
|
|
19
|
+
|
|
20
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
21
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
22
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
23
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
24
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
25
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
26
|
+
SOFTWARE.
|
|
27
|
+
|
|
28
|
+
Project-URL: Homepage, https://github.com/INOTECH-ecbiesek/Sienge-MCP
|
|
29
|
+
Project-URL: Documentation, https://github.com/INOTECH-ecbiesek/Sienge-MCP#readme
|
|
30
|
+
Project-URL: Repository, https://github.com/INOTECH-ecbiesek/Sienge-MCP.git
|
|
31
|
+
Project-URL: Issues, https://github.com/INOTECH-ecbiesek/Sienge-MCP/issues
|
|
32
|
+
Project-URL: Bug Reports, https://github.com/INOTECH-ecbiesek/Sienge-MCP/issues
|
|
33
|
+
Project-URL: Source Code, https://github.com/INOTECH-ecbiesek/Sienge-MCP
|
|
34
|
+
Project-URL: PyPI, https://pypi.org/project/sienge-ecbiesek-mcp/
|
|
35
|
+
Keywords: sienge,mcp,model-context-protocol,claude,api,construction,erp,brazil,ecbiesek,fastmcp,ai-integration
|
|
36
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
37
|
+
Classifier: Intended Audience :: Developers
|
|
38
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
39
|
+
Classifier: Operating System :: OS Independent
|
|
40
|
+
Classifier: Programming Language :: Python :: 3
|
|
41
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
42
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
43
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
44
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
45
|
+
Classifier: Topic :: Office/Business :: Financial
|
|
46
|
+
Classifier: Topic :: Scientific/Engineering :: Interface Engine/Protocol Translator
|
|
47
|
+
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
|
|
48
|
+
Classifier: Environment :: Console
|
|
49
|
+
Classifier: Framework :: FastAPI
|
|
50
|
+
Requires-Python: >=3.10
|
|
51
|
+
Description-Content-Type: text/markdown
|
|
52
|
+
License-File: LICENSE
|
|
53
|
+
Requires-Dist: fastmcp>=2.12.3
|
|
54
|
+
Requires-Dist: httpx>=0.25.0
|
|
55
|
+
Requires-Dist: pydantic>=2.0.0
|
|
56
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
57
|
+
Provides-Extra: dev
|
|
58
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
59
|
+
Requires-Dist: black>=23.0.0; extra == "dev"
|
|
60
|
+
Requires-Dist: flake8>=6.0.0; extra == "dev"
|
|
61
|
+
Requires-Dist: build>=0.10.0; extra == "dev"
|
|
62
|
+
Requires-Dist: twine>=4.0.0; extra == "dev"
|
|
63
|
+
Requires-Dist: toml>=0.10.2; extra == "dev"
|
|
64
|
+
Dynamic: license-file
|
|
65
|
+
|
|
66
|
+
# Sienge MCP Server
|
|
67
|
+
|
|
68
|
+
Um servidor Model Context Protocol (MCP) para integração com a API do Sienge, sistema de gestão para empresas de construção civil.
|
|
69
|
+
|
|
70
|
+
## 🚀 Funcionalidades
|
|
71
|
+
|
|
72
|
+
### 📊 Contas a Receber
|
|
73
|
+
- **get_sienge_accounts_receivable**: Lista contas a receber com filtros por período
|
|
74
|
+
- Utiliza a Bulk-data API do Sienge para consultas eficientes
|
|
75
|
+
- Suporte a filtros por data de vencimento e data de competência
|
|
76
|
+
|
|
77
|
+
### 🏢 Projetos e Empresas
|
|
78
|
+
- **get_sienge_projects**: Lista todos os projetos/empresas disponíveis
|
|
79
|
+
- Informações detalhadas incluindo ID, nome, endereço e status
|
|
80
|
+
|
|
81
|
+
### 📝 Notas Fiscais de Compra
|
|
82
|
+
- **get_sienge_purchase_invoices**: Lista todas as notas fiscais de compra
|
|
83
|
+
- **get_sienge_purchase_invoice_details**: Detalhes completos de uma nota fiscal específica
|
|
84
|
+
- **get_sienge_purchase_invoice_items**: Lista itens de uma nota fiscal
|
|
85
|
+
- **get_sienge_purchase_invoice_payments**: Lista pagamentos de uma nota fiscal
|
|
86
|
+
- **search_sienge_purchase_invoices**: Busca avançada com múltiplos filtros
|
|
87
|
+
|
|
88
|
+
### 🔍 Solicitações de Compra
|
|
89
|
+
- **get_sienge_purchase_requests**: Lista solicitações de compra do sistema
|
|
90
|
+
|
|
91
|
+
## 📦 Instalação
|
|
92
|
+
|
|
93
|
+
### Via PyPI (Recomendado)
|
|
94
|
+
```bash
|
|
95
|
+
pip install sienge-ecbiesek-mcp
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Via Código Fonte
|
|
99
|
+
```bash
|
|
100
|
+
git clone https://github.com/INOTECH-ecbiesek/Sienge-MCP.git
|
|
101
|
+
cd Sienge-MCP
|
|
102
|
+
pip install -e .
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## ⚙️ Configuração
|
|
106
|
+
|
|
107
|
+
### 1. Variáveis de Ambiente
|
|
108
|
+
Crie um arquivo `.env` no diretório do projeto com as seguintes variáveis:
|
|
109
|
+
|
|
110
|
+
```env
|
|
111
|
+
# Configurações da API do Sienge
|
|
112
|
+
SIENGE_BASE_URL=https://api.sienge.com.br
|
|
113
|
+
SIENGE_SUBDOMAIN=seu_subdominio
|
|
114
|
+
SIENGE_USERNAME=seu_usuario
|
|
115
|
+
SIENGE_PASSWORD=sua_senha
|
|
116
|
+
SIENGE_TIMEOUT=30
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 2. Configuração no Claude Desktop
|
|
120
|
+
|
|
121
|
+
#### Configuração Básica
|
|
122
|
+
Adicione ao seu arquivo de configuração do Claude Desktop (`claude_desktop_config.json`):
|
|
123
|
+
|
|
124
|
+
```json
|
|
125
|
+
{
|
|
126
|
+
"mcpServers": {
|
|
127
|
+
"sienge-mcp": {
|
|
128
|
+
"command": "python",
|
|
129
|
+
"args": ["-m", "sienge_mcp"],
|
|
130
|
+
"env": {
|
|
131
|
+
"SIENGE_BASE_URL": "https://api.sienge.com.br",
|
|
132
|
+
"SIENGE_SUBDOMAIN": "seu_subdominio",
|
|
133
|
+
"SIENGE_USERNAME": "seu_usuario",
|
|
134
|
+
"SIENGE_PASSWORD": "sua_senha",
|
|
135
|
+
"SIENGE_TIMEOUT": "30"
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
#### Configuração com Virtual Environment
|
|
143
|
+
Se você estiver usando um ambiente virtual:
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"mcpServers": {
|
|
148
|
+
"sienge-mcp": {
|
|
149
|
+
"command": "C:/caminho/para/seu/venv/Scripts/python.exe",
|
|
150
|
+
"args": ["-m", "sienge_mcp"],
|
|
151
|
+
"env": {
|
|
152
|
+
"SIENGE_BASE_URL": "https://api.sienge.com.br",
|
|
153
|
+
"SIENGE_SUBDOMAIN": "seu_subdominio",
|
|
154
|
+
"SIENGE_USERNAME": "seu_usuario",
|
|
155
|
+
"SIENGE_PASSWORD": "sua_senha",
|
|
156
|
+
"SIENGE_TIMEOUT": "30"
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## 🔐 Autenticação
|
|
164
|
+
|
|
165
|
+
### Credenciais do Sienge
|
|
166
|
+
A autenticação é feita através de **usuário e senha** do Sienge, não por token API:
|
|
167
|
+
|
|
168
|
+
1. **SIENGE_BASE_URL**: URL base da API (`https://api.sienge.com.br`)
|
|
169
|
+
2. **SIENGE_SUBDOMAIN**: Seu subdomínio no Sienge (ex: `suaempresa`)
|
|
170
|
+
3. **SIENGE_USERNAME**: Seu nome de usuário no Sienge
|
|
171
|
+
4. **SIENGE_PASSWORD**: Sua senha no Sienge
|
|
172
|
+
5. **SIENGE_TIMEOUT**: Timeout das requisições em segundos (padrão: 30)
|
|
173
|
+
|
|
174
|
+
### URLs da API
|
|
175
|
+
- **API Base**: `https://api.sienge.com.br`
|
|
176
|
+
- **Endpoints v1**: `/sienge/api/public/v1/`
|
|
177
|
+
- **Bulk-data API**: `/bulk-data/`
|
|
178
|
+
|
|
179
|
+
## 💻 Como Usar
|
|
180
|
+
|
|
181
|
+
### 1. Iniciando o Servidor
|
|
182
|
+
```bash
|
|
183
|
+
# Via módulo Python
|
|
184
|
+
python -m sienge_mcp
|
|
185
|
+
|
|
186
|
+
# Ou diretamente
|
|
187
|
+
sienge-mcp-server
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### 2. No Claude Desktop
|
|
191
|
+
Após configurar o servidor, reinicie o Claude Desktop. O servidor MCP será automaticamente carregado e as ferramentas ficarão disponíveis.
|
|
192
|
+
|
|
193
|
+
### 3. Exemplos de Uso no Claude
|
|
194
|
+
|
|
195
|
+
#### Consultar Contas a Receber
|
|
196
|
+
```
|
|
197
|
+
"Liste as contas a receber com vencimento entre 01/01/2024 e 31/01/2024"
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
#### Buscar Projetos
|
|
201
|
+
```
|
|
202
|
+
"Mostre todos os projetos disponíveis no Sienge"
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
#### Consultar Notas Fiscais
|
|
206
|
+
```
|
|
207
|
+
"Liste as notas fiscais de compra do mês atual"
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
#### Busca Avançada de Notas Fiscais
|
|
211
|
+
```
|
|
212
|
+
"Busque notas fiscais de compra com valor acima de R$ 10.000,00 emitidas em dezembro de 2023"
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
## 🛠️ Desenvolvimento
|
|
216
|
+
|
|
217
|
+
### Estrutura do Projeto
|
|
218
|
+
```
|
|
219
|
+
src/
|
|
220
|
+
├── sienge_mcp/
|
|
221
|
+
│ ├── __init__.py
|
|
222
|
+
│ ├── server.py # Servidor MCP principal
|
|
223
|
+
│ ├── services/ # Serviços de integração
|
|
224
|
+
│ ├── tools/ # Ferramentas MCP
|
|
225
|
+
│ └── utils/
|
|
226
|
+
│ └── logger.py # Sistema de logging
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### Executando em Modo de Desenvolvimento
|
|
230
|
+
```bash
|
|
231
|
+
# Clone o repositório
|
|
232
|
+
git clone https://github.com/INOTECH-ecbiesek/Sienge-MCP.git
|
|
233
|
+
cd Sienge-MCP
|
|
234
|
+
|
|
235
|
+
# Crie um ambiente virtual
|
|
236
|
+
python -m venv .venv
|
|
237
|
+
.venv\Scripts\activate # Windows
|
|
238
|
+
source .venv/bin/activate # Linux/Mac
|
|
239
|
+
|
|
240
|
+
# Instale as dependências
|
|
241
|
+
pip install -e .
|
|
242
|
+
|
|
243
|
+
# Configure as variáveis de ambiente
|
|
244
|
+
cp .env.example .env
|
|
245
|
+
# Edite o arquivo .env com suas configurações
|
|
246
|
+
|
|
247
|
+
# Execute o servidor
|
|
248
|
+
python -m sienge_mcp
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
### Testando Localmente
|
|
252
|
+
```bash
|
|
253
|
+
# Instale as dependências de teste
|
|
254
|
+
pip install pytest pytest-asyncio
|
|
255
|
+
|
|
256
|
+
# Execute os testes
|
|
257
|
+
pytest tests/
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
## 📋 Requisitos
|
|
261
|
+
|
|
262
|
+
### Dependências
|
|
263
|
+
- Python >= 3.10
|
|
264
|
+
- fastmcp >= 2.12.3
|
|
265
|
+
- httpx >= 0.25.0
|
|
266
|
+
- pydantic >= 2.0.0
|
|
267
|
+
- python-dotenv >= 1.0.0
|
|
268
|
+
|
|
269
|
+
### Compatibilidade
|
|
270
|
+
- ✅ Windows
|
|
271
|
+
- ✅ macOS
|
|
272
|
+
- ✅ Linux
|
|
273
|
+
- ✅ Claude Desktop
|
|
274
|
+
- ✅ Outros clientes MCP
|
|
275
|
+
|
|
276
|
+
## 🔧 Configurações Avançadas
|
|
277
|
+
|
|
278
|
+
### Logs e Debug
|
|
279
|
+
O servidor inclui sistema de logging configurável:
|
|
280
|
+
|
|
281
|
+
```python
|
|
282
|
+
# Nível de log via variável de ambiente
|
|
283
|
+
LOG_LEVEL=DEBUG # DEBUG, INFO, WARNING, ERROR
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
### Timeout de Requisições
|
|
287
|
+
Configure o timeout das requisições HTTP:
|
|
288
|
+
|
|
289
|
+
```python
|
|
290
|
+
# Timeout em segundos (padrão: 30s)
|
|
291
|
+
SIENGE_TIMEOUT=60
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
### Cache de Respostas
|
|
295
|
+
Para melhor performance em consultas frequentes:
|
|
296
|
+
|
|
297
|
+
```python
|
|
298
|
+
# Habilitar cache (padrão: False)
|
|
299
|
+
SIENGE_CACHE_ENABLED=true
|
|
300
|
+
SIENGE_CACHE_TTL=300 # TTL em segundos
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
## 🚨 Solução de Problemas
|
|
304
|
+
|
|
305
|
+
### Erros Comuns
|
|
306
|
+
|
|
307
|
+
#### Erro 401 - Unauthorized
|
|
308
|
+
```
|
|
309
|
+
Causa: Credenciais inválidas (usuário/senha incorretos)
|
|
310
|
+
Solução: Verifique seu usuário e senha no Sienge
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
#### Erro 404 - Not Found
|
|
314
|
+
```
|
|
315
|
+
Causa: Endpoint incorreto ou recurso não encontrado
|
|
316
|
+
Solução: Verifique as URLs base da API
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
#### Erro 429 - Rate Limited
|
|
320
|
+
```
|
|
321
|
+
Causa: Muitas requisições por minuto
|
|
322
|
+
Solução: Implemente delay entre requisições
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
#### Servidor MCP não conecta
|
|
326
|
+
```
|
|
327
|
+
1. Verifique se o Python está no PATH
|
|
328
|
+
2. Confirme se o módulo está instalado: pip show sienge-ecbiesek-mcp
|
|
329
|
+
3. Teste a execução manual: python -m sienge_mcp
|
|
330
|
+
4. Verifique os logs do Claude Desktop
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
### Debug
|
|
334
|
+
Para debugar problemas de conexão:
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
# Execute com logs detalhados
|
|
338
|
+
LOG_LEVEL=DEBUG python -m sienge_mcp
|
|
339
|
+
|
|
340
|
+
# Teste a conectividade com a API
|
|
341
|
+
# Use as credenciais do seu arquivo de configuração para testar
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
## 📚 Documentação da API
|
|
345
|
+
|
|
346
|
+
### Endpoints Utilizados
|
|
347
|
+
|
|
348
|
+
#### API Padrão (v1)
|
|
349
|
+
- `GET /enterprises` - Lista empresas/projetos
|
|
350
|
+
- `GET /purchase-requests` - Solicitações de compra
|
|
351
|
+
- `GET /purchase-invoices` - Notas fiscais de compra
|
|
352
|
+
- `GET /purchase-invoices/{id}` - Detalhes da nota fiscal
|
|
353
|
+
- `GET /purchase-invoices/{id}/items` - Itens da nota fiscal
|
|
354
|
+
- `GET /purchase-invoices/{id}/payments` - Pagamentos da nota fiscal
|
|
355
|
+
|
|
356
|
+
#### Bulk-data API
|
|
357
|
+
- `POST /income` - Contas a receber (bulk)
|
|
358
|
+
|
|
359
|
+
### Formatos de Data
|
|
360
|
+
- **ISO 8601**: `2024-01-01T00:00:00Z`
|
|
361
|
+
- **Brasileiro**: `01/01/2024`
|
|
362
|
+
- **Filtros de período**: `start_date` e `end_date`
|
|
363
|
+
|
|
364
|
+
### Códigos de Status
|
|
365
|
+
- `200` - Sucesso
|
|
366
|
+
- `400` - Requisição inválida
|
|
367
|
+
- `401` - Não autorizado
|
|
368
|
+
- `404` - Recurso não encontrado
|
|
369
|
+
- `429` - Rate limit excedido
|
|
370
|
+
- `500` - Erro interno do servidor
|
|
371
|
+
|
|
372
|
+
## 📄 Licença
|
|
373
|
+
|
|
374
|
+
Este projeto está licenciado sob a licença MIT. Veja o arquivo [LICENSE](LICENSE) para mais detalhes.
|
|
375
|
+
|
|
376
|
+
## 🤝 Contribuindo
|
|
377
|
+
|
|
378
|
+
1. Faça um fork do projeto
|
|
379
|
+
2. Crie uma branch para sua feature (`git checkout -b feature/AmazingFeature`)
|
|
380
|
+
3. Commit suas mudanças (`git commit -m 'Add some AmazingFeature'`)
|
|
381
|
+
4. Push para a branch (`git push origin feature/AmazingFeature`)
|
|
382
|
+
5. Abra um Pull Request
|
|
383
|
+
|
|
384
|
+
## 📞 Suporte
|
|
385
|
+
|
|
386
|
+
- **Issues**: [GitHub Issues](https://github.com/INOTECH-ecbiesek/Sienge-MCP/issues)
|
|
387
|
+
- **Documentação**: [Wiki do Projeto](https://github.com/INOTECH-ecbiesek/Sienge-MCP/wiki)
|
|
388
|
+
- **API Sienge**: [Documentação Oficial](https://api.sienge.com.br/docs)
|
|
389
|
+
|
|
390
|
+
## 📈 Versões
|
|
391
|
+
|
|
392
|
+
### v1.1.0 (Atual)
|
|
393
|
+
- ✅ Adicionadas 5 ferramentas para Notas Fiscais de Compra
|
|
394
|
+
- ✅ Suporte à Bulk-data API para contas a receber
|
|
395
|
+
- ✅ Correção de endpoints para projetos/empresas
|
|
396
|
+
- ✅ Melhorias na documentação e tratamento de erros
|
|
397
|
+
|
|
398
|
+
### v1.0.0
|
|
399
|
+
- ✅ Versão inicial com ferramentas básicas
|
|
400
|
+
- ✅ Integração com API padrão do Sienge
|
|
401
|
+
- ✅ Suporte a contas a receber, projetos e solicitações de compra
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
**Desenvolvido por INOTECH-ecbiesek** 🚀
|