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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apex_mcp_framework-1.1.1.tar.gz (9.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apex_mcp_framework-1.1.1-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file apex_mcp_framework-1.1.1.tar.gz.

File metadata

  • Download URL: apex_mcp_framework-1.1.1.tar.gz
  • Upload date:
  • Size: 9.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for apex_mcp_framework-1.1.1.tar.gz
Algorithm Hash digest
SHA256 9169da73bdf67751074edb3697551709be7d6307ae7f36b1615517c1d4254773
MD5 3ab40f6b0d2589f004cb9b9268203fe2
BLAKE2b-256 1de2a335e6fdb9d187137bfa465e15f9eede7b39003d671095282aede1b27b28

See more details on using hashes here.

File details

Details for the file apex_mcp_framework-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for apex_mcp_framework-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bae4c2a06108f6ca546db093f07b64a68ff6e00184ac8c934df52160b1e14b18
MD5 14969d6879a04cfcfcd9ed5e24919107
BLAKE2b-256 7aa06cc4290633d6a70100028c46544a39662c6f7afcd551a5059cdd45ce898d

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 Sentry Error logging StatusPage Status page