Skip to content

Commit 7684bc1

Browse files
committed
feat: finish upload project
1 parent 4d62054 commit 7684bc1

File tree

93 files changed

+3954
-577
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+3954
-577
lines changed

.github/workflows/ci.yml

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main, master ]
6+
pull_request:
7+
branches: [ main, master ]
8+
9+
jobs:
10+
validate:
11+
runs-on: ubuntu-latest
12+
13+
steps:
14+
- uses: actions/checkout@v3
15+
16+
- name: Set up Python
17+
uses: actions/setup-python@v4
18+
with:
19+
python-version: '3.x'
20+
21+
- name: Validate JSON files
22+
run: |
23+
# Encontra todos os .json e tenta parsear com python -m json.tool
24+
# Se falhar, o script para e o CI falha.
25+
find . -name "*.json" -not -path "./.git/*" -print0 | xargs -0 -I {} bash -c 'echo "Checking {}"; python3 -m json.tool "{}" > /dev/null'
26+
27+
- name: Check if README index is up to date
28+
run: |
29+
python3 scripts/update_readme_tree.py
30+
# Se houver mudanças (git status não vazio), significa que o autor esqueceu de rodar o script.
31+
if [[ -n $(git status --porcelain README.md) ]]; then
32+
echo "❌ README.md is out of sync with directory structure."
33+
echo "Please run 'python scripts/update_readme_tree.py' and commit the changes."
34+
git diff README.md
35+
exit 1
36+
else
37+
echo "✅ README.md is up to date."
38+
fi

CONTRIBUTING.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Guia de Contribuição
2+
3+
Obrigado por considerar contribuir com o **APIBrasil MCP Client**! 🎉
4+
5+
Este repositório é uma base de conhecimento comunitária para centralizar configurações e exemplos de integração da APIBrasil com o ecossistema de IA.
6+
7+
## Como Contribuir
8+
9+
### 1. Adicionando uma Nova Integração
10+
11+
Se você testou a APIBrasil em uma nova ferramenta (IDE, Chatbot, Low-Code), siga estes passos:
12+
13+
1. **Escolha a Categoria**:
14+
* `clientes-ai/` (Frontends de Chat como Claude, LibreChat)
15+
* `ide-editores/` (VS Code, JetBrains, Cursor)
16+
* `chatbots-ai/` (Builders como Typebot, Flowise)
17+
* `lowcode-automacao/` (n8n, Make, Zapier)
18+
* `programacao/` (Exemplos de código puro)
19+
20+
2. **Crie a Pasta**:
21+
Use o nome da ferramenta em *snake_case* (ex: `minha_ferramenta`).
22+
```bash
23+
mkdir ide-editores/minha_ferramenta
24+
```
25+
26+
3. **Adicione a Documentação**:
27+
Crie um arquivo `README.md` dentro da pasta. Use este template básico:
28+
```markdown
29+
# Integração com [Nome da Ferramenta]
30+
31+
Breve descrição da ferramenta.
32+
33+
## Configuração
34+
Passo a passo...
35+
36+
## Exemplo
37+
Código ou screenshot...
38+
```
39+
40+
4. **Adicione Arquivos de Configuração (Opcional)**:
41+
Se a ferramenta usa arquivos JSON/YAML de configuração, inclua um exemplo na mesma pasta (ex: `settings.json`).
42+
43+
### 2. Atualizando o Índice
44+
45+
Sempre que adicionar ou remover pastas, você **deve** rodar o script de atualização para manter o `README.md` principal sincronizado:
46+
47+
```bash
48+
python scripts/update_readme_tree.py
49+
```
50+
51+
Se você não rodar este script, o CI (Integração Contínua) falhará e seu Pull Request não será aceito.
52+
53+
### 3. Padrão de JSON
54+
55+
Se estiver adicionando arquivos `.json`:
56+
* Certifique-se de que é um JSON válido.
57+
* Não deixe vírgulas sobrando no final de listas/objetos.
58+
* Use indentação de 2 ou 4 espaços.
59+
60+
## Reportando Bugs
61+
62+
Use a aba [Issues](https://github.com/apibrasil/apibrasil-mcp-client/issues) para reportar:
63+
* Configurações que pararam de funcionar.
64+
* Erros na documentação.
65+
* Sugestões de novas ferramentas.
66+
67+
---
68+
**Dica:** Mantenha os exemplos simples e focados na conexão. Não inclua tokens reais nos seus commits!

README.md

Lines changed: 286 additions & 1 deletion
Large diffs are not rendered by default.

assets/banner.svg

Lines changed: 115 additions & 0 deletions
Loading

chatbots-ai/README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Integração com Typebot
2+
3+
O Typebot executa fluxos rápidos e stateless. O protocolo MCP (que é stateful via SSE) não é ideal para conexão direta via blocos nativos HTTP do Typebot.
4+
5+
## Como Integrar
6+
7+
### Opção 1: Via API REST Direta (Recomendado)
8+
Como este servidor MCP é um wrapper da APIBrasil, a forma mais robusta no Typebot é chamar a API direta:
9+
- Use o bloco **HTTP Request**.
10+
- URL: `https://gateway.apibrasil.io/api/v2/...`
11+
- Auth: Bearer Token.
12+
13+
### Opção 2: Via Cloud Function / Wrapper
14+
Se precisar *obrigatoriamente* passar pelo servidor MCP (ex: para aproveitar a lógica de ferramentas unificada):
15+
16+
1. Crie uma **Cloud Function** (AWS Lambda / Vercel Edge) que faz o handshake MCP.
17+
2. Chame essa função no Typebot via bloco HTTP.
18+
19+
Não é possível conectar SSE nativamente dentro do fluxo de chat padrão do Typebot.

chatbots-ai/botpress/README.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Integração com Botpress
2+
3+
## Execute Code Card
4+
5+
No Botpress Studio, adicione um card **Execute Code** no seu fluxo.
6+
7+
```javascript
8+
// Input variables
9+
const cep = workflow.cep; // Supondo que você capturou isso antes
10+
const token = env.APIBRASIL_TOKEN;
11+
const device = env.APIBRASIL_DEVICE;
12+
13+
try {
14+
const response = await axios.post(
15+
'https://gateway.apibrasil.io/api/v2/cep/cep',
16+
{ cep: cep },
17+
{
18+
headers: {
19+
'Authorization': `Bearer ${token}`,
20+
'DeviceToken': device
21+
}
22+
}
23+
);
24+
25+
// Output
26+
workflow.endereco = response.data;
27+
workflow.found = true;
28+
} catch (error) {
29+
workflow.found = false;
30+
console.log(error);
31+
}
32+
```
33+
34+
Certifique-se de configurar as variáveis de ambiente no Botpress Cloud.

chatbots-ai/dify/README.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Integração com Dify.ai
2+
3+
O Dify aceita **API Extensions** ou **Tools** customizadas via OpenAPI/Swagger.
4+
5+
## Como configurar
6+
7+
Como o MCP usa JSON-RPC sobre SSE, ele não é uma API REST padrão Swagger.
8+
9+
1. **Recomendado:** Use a funcionalidade "Code-based Tool" do Dify (se você rodar o Dify self-hosted).
10+
2. **Alternativa:** Crie um proxy simples (middleware) que converte REST (padrão Dify) para MCP.
11+
12+
### Middleware Exemplo (Python/Flask)
13+
Crie um app pequeno que recebe POST do Dify `/api/run-tool` e internamente usa o cliente MCP Python para chamar `https://mcp.apibrasil.cloud/mcp`.
14+
15+
```python
16+
# Seu Middleware
17+
@app.route('/dify-hook', methods=['POST'])
18+
async def run_tool():
19+
data = request.json
20+
# Conecta no MCP e executa
21+
# Retorna o resultado JSON pro Dify
22+
```
23+
24+
Em breve, plataformas como Dify devem suportar o protocolo MCP nativamente nas configurações de "Model Providers" ou "Tools".

chatbots-ai/flowise/README.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Integração com Flowise
2+
3+
O Flowise é uma ferramenta Low-Code para construir LLM Apps e suporta integração via **Custom Tools**.
4+
5+
## Passo a Passo
6+
7+
1. No canvas do Flowise, procure por **Tools**.
8+
2. Escolha **Custom Tool**.
9+
3. Defina o Schema da ferramenta (copie do código fonte da tool desejada, ex: `cep_lookup`).
10+
4. No campo "Javascript Function", implemente a chamada ao servidor MCP:
11+
12+
```javascript
13+
/*
14+
Para Flowise, o ideal é usar o SDK do MCP se o ambiente permitir,
15+
ou fazer a chamada HTTP POST direta se você já tiver um sessionId fixo (avançado).
16+
*/
17+
const fetch = require('node-fetch');
18+
19+
// ... lógica de chamada ...
20+
```
21+
22+
**Novidade:** O Flowise está implementando suporte nativo ao protocolo MCP. Assim que lançado, você poderá apenas:
23+
1. Arrastar um nó "MCP Client".
24+
2. Colocar a URL: `https://mcp.apibrasil.cloud/mcp`.
25+
3. Conectar ao seu Agente.

chatbots-ai/langflow/README.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# Integração com LangFlow
2+
3+
O LangFlow permite criar componentes customizados em Python.
4+
5+
## Criando um Componente MCP
6+
7+
1. Arraste um **Custom Component**.
8+
2. Edite o código Python.
9+
3. Use o código abaixo para conectar ao servidor MCP:
10+
11+
```python
12+
from langflow import CustomComponent
13+
from mcp.client.sse import sse_client
14+
import asyncio
15+
16+
class MCPToolComponent(CustomComponent):
17+
display_name = "APIBrasil MCP"
18+
description = "Executa ferramentas via MCP"
19+
20+
def build_config(self):
21+
return {
22+
"tool_name": {"display_name": "Nome da Tool", "value": "cep_lookup"},
23+
"arguments": {"display_name": "Argumentos (JSON)", "value": "{}"},
24+
}
25+
26+
def build(self, tool_name: str, arguments: dict):
27+
async def run_mcp():
28+
url = "https://mcp.apibrasil.cloud/mcp"
29+
async with sse_client(url) as client:
30+
result = await client.call_tool(tool_name, arguments)
31+
return str(result)
32+
33+
# Nota: LangFlow roda em loop assíncrono, pode precisar de ajustes
34+
return asyncio.run(run_mcp())
35+
```

0 commit comments

Comments
 (0)