Skip to main content

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.md no 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-key por tenant) — nunca shell/arquivos arbitrários.
  • Credenciais vêm somente de variáveis de ambiente; nada é commitado.
  • O SDK está fixado em mcp<2 porque 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)

Source distribution for apex-mcp-framework 1.1.1
File Size Uploaded
apex_mcp_framework-1.1.1.tar.gz 9.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for apex-mcp-framework 1.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

1.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page