A Streamlit-based Business Intelligence agent that can answer questions and perform web searches using Tavily API and a local LLM backend
This is a Streamlit UI application, not an MCP server. No MCP protocol implementation detected. Tool definitions are embedded in Python functions without formal MCP registration, schemas, or structured metadata. The three tools lack proper input/output schemas, parameter descriptions are minimal or absent, and error handling is ad-hoc. Tool names are somewhat descriptive (buscar_en_web, invocar_agente, agente_bi_ligero) but lack verb-noun clarity. Descriptions are present but generic and under 100 chars. No security controls, no pagination, no structured output schemas. This codebase is a chatbot UI, not a production MCP tool server.
Agente ligero que responde preguntas de forma técnica y concisa, con capacidad de búsqueda web si es necesario.
Realiza una búsqueda web y devuelve un contexto resumido.
Función principal que orquesta la lógica del agente y devuelve la respuesta en streaming.
Not an MCP server. This is a Streamlit UI application with embedded Python functions, not a Model Context Protocol server. No MCP transport, no tool registration via MCP, no protocol compliance.
Input schemas are inferred, not formally defined. Tool parameters (consulta, messages, pregunta_usuario) lack JSON Schema type definitions, constraints, enums, or validation rules.
No output schemas documented. Tools return unstructured strings or generators. LLMs cannot predict response structure, making downstream tool chaining impossible. Violates pattern:response-shaper.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 29 | 2026-07-28+ | v2 |
Error handling is ad-hoc and non-actionable. Errors like 'Error en búsqueda web: {e}' or 'Error de conexión con el modelo LLM: {e}' provide no recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal.
API keys and secrets exposed in environment variables without server-side injection pattern. TAVILY_API_KEY and MODEL_URL loaded directly in app.py, risking exposure in logs or traces.