apex-mcp-framework
Framework MCP reutilizável que conecta um ERP a agentes Model Context Protocol via stdio (Python, SDK oficial mcp 1.x). Expõe capacidades de negócio — classificação de CNAEs, revisão jurídica de contratos, obrigações fiscais, financeiro, marketing com publicação real em Facebook/Instagram, WhatsApp e relatórios — como ferramentas MCP autenticadas.
Projeto derivado do Apex ERP Contábil. Este repositório é o home público do servidor MCP — a publicação nos registries (Smithery, Glama, mcp.so, registry oficial) aponta para cá.
✨ O que é um "framework" aqui?
Você não edita o núcleo do servidor para mudar comportamento. A estrutura é modular:
apex-mcp-framework/
├── pyproject.toml # empacotamento (pip install -e .)
├── requirements.txt # mcp>=1.0.0,<2.0.0 (API 1.x do SDK)
├── server.json # metadados p/ registries MCP
├── src/apex_mcp/
│ ├── __main__.py # python -m apex_mcp
│ ├── server.py # servidor MCP (stdio) — raramente mexe
│ ├── config.py # config via env (ERP_BASE, credenciais)
│ ├── http_client.py # cliente HTTP com auth Bearer + refresh automático
│ └── tools.py # ⭐ catálogo de ferramentas — É AQUI QUE VOCÊ ADICIONA
└── examples/
└── mcp_client.py # cliente MCP de exemplo
Para adicionar uma ferramenta nova, edite apenas src/apex_mcp/tools.py:
# 1) acrescente o Tool (o agente vê nome + descrição + schema)
Tool(name="minha_ferramenta", description="O que ela faz",
inputSchema={"type": "object", "properties": {"campo": {"type": "string"}}, "required": ["campo"]}),
# 2) acrescente a rota (método, path na API do ERP)
"minha_ferramenta": ("POST", "/api/meu-modulo/acao", None),
Pronto — o servidor expõe automaticamente. Nenhum outro arquivo muda.
🚀 Instalação e execução
git clone https://github.com/ogconstrutorasp/apex-mcp-framework.git
cd apex-mcp-framework
pip install -r requirements.txt # ou: pip install -e .
python -m apex_mcp # inicia o servidor (stdio)
Configuração (variáveis de ambiente):
| Variável | Descrição | Padrão |
|---|---|---|
ERP_BASE |
URL base da API do ERP | http://localhost:3001 (produção: https://apex-contabil.vercel.app) |
SUPABASE_URL |
URL do Supabase (login da conta de serviço) | https://vebileaugzzrgnhgmvmr.supabase.co |
SUPABASE_ANON_KEY |
chave anon do Supabase | <anon-key> |
ERP_MCP_EMAIL / ERP_MCP_PASSWORD |
conta de serviço — o framework autentica com Bearer em todas as chamadas e renova o token sozinho | vazio (modo sem auth, avisa) |
API key por tenant (
x-api-key): consulte o painel do ERP (Fase 5 — máquina-a-máquina).
🔌 Conectar em um cliente MCP
Claude Desktop / qualquer cliente MCP:
{
"mcpServers": {
"apex-contabil": {
"command": "python",
"args": ["-m", "apex_mcp"]
}
}
}
🧰 Ferramentas (13)
classificar_cnae · revisar_contrato · consultar_saldo_cliente · consultar_cronograma_obrigacoes · gerar_post_marketing · publicar_post_agora · analytics_marketing · criar_campanha_meta · gerar_criativos_multiplataforma · enviar_whatsapp · alertas_pendentes · gerar_relatorio · enviar_notificacao
🧪 Testar localmente
python examples/mcp_client.py
# Handshake OK — 13 ferramentas:
# - classificar_cnae: ...
# ...
🌐 Catálogo público
- Metadados para registro:
server.json - Catálogo do ERP:
https://apex-contabil.vercel.app/api/mcp/catalogo - Guia de publicação nos registries: veja
docs/PUBLICAR-MCP-REGISTRIES.mdno repo do ERP.
🔒 Segurança
- O framework só expõe ferramentas do próprio ERP via API autenticada (Bearer de conta de serviço ou
x-api-keypor tenant) — nunca shell/arquivos arbitrários. - Credenciais vêm somente de variáveis de ambiente; nada é commitado.
- O SDK está fixado em
mcp<2porque o servidor usa a API 1.x (Server.list_tools/call_tool), removida no 2.x.
📄 Licença
MIT — veja LICENSE.
Release files for apex-mcp-framework 1.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| apex_mcp_framework-1.1.1.tar.gz | 9.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| apex_mcp_framework-1.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 18.9 kB
Release files / apex_mcp_framework-1.1.1.tar.gz
| Download URL | apex_mcp_framework-1.1.1.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9169da73bdf67751074edb3697551709be7d6307ae7f36b1615517c1d4254773
|
|
BLAKE2b-256 checksum How to use checksums |
1de2a335e6fdb9d187137bfa465e15f9eede7b39003d671095282aede1b27b28
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|
Release files / apex_mcp_framework-1.1.1-py3-none-any.whl
| Download URL | apex_mcp_framework-1.1.1-py3-none-any.whl |
|---|---|
| Size | 9.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bae4c2a06108f6ca546db093f07b64a68ff6e00184ac8c934df52160b1e14b18
|
|
BLAKE2b-256 checksum How to use checksums |
7aa06cc4290633d6a70100028c46544a39662c6f7afcd551a5059cdd45ce898d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.14.6
|