mirror of
https://github.com/hoshikawa2/compass_backoffice.git
synced 2026-07-09 22:04:20 +00:00
2.1 KiB
2.1 KiB
Correção: .env original TIM + MCP Server + URLs
Problema corrigido
O pacote anterior ainda tratava o MCP Server como um backend REST genérico baseado em BACKOFFICE_MCP_REST_BASE_URL. Quando essa variável não existia, uma chamada HTTP podia ser montada com URL vazia, gerando erro como:
Request URL is missing an 'http://' or 'https://' protocol.
Além disso, o .env original do backoffice develop usa variáveis específicas:
PMID_API_HOST
SIEBEL_API_HOST
SPEECH_PREDICTION_BASE_URL
SPEECH_HISTORY_BASE_URL
TAIS_DB_DSN
TAIS_GENAI_ENDPOINT
...
Essas variáveis não devem ser substituídas por uma URL REST genérica.
Ajustes implementados
src/core/config.pyagora carrega explicitamente o.envda raiz do projeto.config/mcp_servers.yamlagora usa endpoint literal seguro:
endpoint: http://localhost:8010
Isso evita depender de expansão YAML ${VAR:default} caso o MCPToolRouter do framework não suporte esse formato.
mcp_servers/backoffice_mcp_server/settings.pyagora aceita:
- variáveis
BACKOFFICE_MCP_*, quando existirem; - variáveis originais TIM/develop, como
PMID_API_HOST,SIEBEL_API_HOST,SPEECH_*,TAIS_*.
- O default do MCP Server passou a ser:
BACKOFFICE_MCP_BACKEND_TYPE=tim_clients
BACKOFFICE_MCP_USE_MOCK=false
Assim o MCP não mascara erro usando mock quando o .env real está presente.
- As tools IMDB/PMID, Speech, TAIS, ABRT e Portabilidade passam a chamar os clients originais do projeto quando
backend_type=tim_clients.
Como testar
Suba o MCP Server:
uvicorn mcp_servers.backoffice_mcp_server.main:app --host 0.0.0.0 --port 8010 --reload
Confirme o health:
curl http://localhost:8010/health
O retorno deve indicar:
{
"use_mock": false,
"backend_type": "tim_clients",
"tim_clients_configured": true
}
Depois suba o backend principal:
uvicorn app.main:app --host 0.0.0.0 --port 9000 --reload
Teste a lista de tools via backend:
curl http://localhost:9000/debug/mcp/tools
Se o MCP estiver ativo, essa chamada deve chegar no processo da porta 8010.