Radar de Riesgo de Devolución

Radar de Riesgo de Devolución

MCP server for e-commerce return risk analysis, providing tools to calculate customer risk profiles, compare segments, and identify risk factors, with memory for contextual conversations.

Category
访问服务器

README

Radar de Riesgo de Devolución — Agente MCP con memoria

Proyecto de la Clase 3 (Estrategias de Integración): evoluciona el notebook RadarRiesgoDevolucion_MCP_LangChain.ipynb (Clase 2) hacia un sistema Python reutilizable, con memoria de corto plazo y múltiples clientes (Streamlit y Claude Desktop).

Arquitectura

Streamlit / Claude Desktop
        │
        ▼
mcp_agente.py   (MCP del agente — fachada de alto nivel)
        │
        ▼
agent_core.py   (LangChain + OpenAI + memoria por session_id)
        │
        ▼
mcp_datos.py    (MCP de datos — 5 tools de riesgo de devolución)
        │
        ▼
data/ecommerce_demo.db  (SQLite)

1. Setup del entorno

cd clase3_agente_mcp_memoria
python -m venv venv
source venv/bin/activate        # En Windows: venv\Scripts\activate
pip install -r requirements.txt
cp .env.example .env

Edita .env y completa OPENAI_API_KEY (y ajusta OPENAI_MODEL si no tienes acceso a gpt-5.4-nano).

2. Construir la base de datos

El CSV ya está en data/ecommerce_orders.csv. Genera el SQLite:

python data/build_db.py

Esto crea data/ecommerce_demo.db con la tabla orders e índices.

3. Levantar el MCP de datos

python mcp_datos.py

Debe quedar escuchando en http://127.0.0.1:8000/mcp. Déjalo corriendo en esta terminal.

4. Levantar el MCP del agente (modo HTTP, para Streamlit)

En una segunda terminal (con el mismo entorno virtual activado):

export MCP_AGENT_TRANSPORT=http   # En Windows (PowerShell): $env:MCP_AGENT_TRANSPORT="http"
python mcp_agente.py

Debe quedar escuchando en http://127.0.0.1:8100/mcp.

5. Probar el núcleo del agente de forma aislada (opcional)

Antes de tocar Streamlit, puedes validar que el agente responde:

python agent_core.py

Esto ejecuta dos consultas de prueba en la misma sesión y muestra si el agente mantiene contexto entre ellas.

6. Levantar Streamlit

En una tercera terminal:

streamlit run app_streamlit.py

Se abrirá en el navegador. Prueba la demo de memoria sugerida en la guía:

  1. Pregunta: "Busca clientes Premium con alto riesgo en Fashion"
  2. Sin cambiar de sesión, pregunta: "Analiza al de mayor consumo"
  3. Haz clic en Nueva conversación y repite la segunda pregunta: el agente ya no debería poder resolver la referencia.

7. Conectar Claude Desktop (host MCP externo)

  1. Detén el proceso de mcp_agente.py en modo HTTP (Ctrl+C) — Claude Desktop necesita transporte stdio, no http.
  2. Copia config/claude_desktop_config.example.json a la ubicación de configuración de Claude Desktop (revisa la documentación de Claude Desktop para la ruta exacta según tu sistema operativo).
  3. Reemplaza la ruta del args por la ruta absoluta real de tu proyecto, y completa tu OPENAI_API_KEY.
  4. Asegúrate de que mcp_datos.py siga corriendo (Paso 3) — el agente lo necesita sin importar el cliente que lo use.
  5. Reinicia Claude Desktop. Debería descubrir la tool resolver_consulta_ecommerce.
  6. Prueba la misma pregunta usada en Streamlit y compara las respuestas.

Estructura del proyecto

clase3_agente_mcp_memoria/
├── mcp_datos.py              # servidor MCP de datos y las 5 tools SQL
├── agent_core.py             # LangChain, modelo, memoria y orquestación
├── mcp_agente.py              # servidor MCP que empaqueta la capacidad agente
├── app_streamlit.py          # cliente visual propio
├── data/
│   ├── ecommerce_orders.csv  # dataset fuente
│   ├── build_db.py           # script que genera el SQLite
│   └── ecommerce_demo.db     # (se genera al ejecutar build_db.py)
├── config/
│   └── claude_desktop_config.example.json
├── .env.example
├── requirements.txt
├── .gitignore
└── README.md

Las 5 tools del MCP de datos

Tool Qué responde
calcular_perfil_riesgo_cliente(customer_id) Historial de devolución de un cliente
comparar_cliente_vs_segmento(customer_id) Cliente vs. promedio de su segmento
identificar_factores_riesgo_categoria(product_category) Qué diferencia devueltas vs. no devueltas en una categoría
calcular_score_riesgo_orden(product_category, delivery_days, discount_percent, coupon_used) Heurística transparente de probabilidad de devolución
listar_ordenes_activas_en_riesgo(umbral_pct, limite) Órdenes Processing/Shipped a intervenir hoy

Nota metodológica: calcular_score_riesgo_orden y listar_ordenes_activas_en_riesgo usan una regla ponderada y transparente (tasa histórica de la categoría × multiplicador por días de entrega extremos), no un modelo de Machine Learning entrenado. El análisis exploratorio que fundamenta estos pesos está documentado en el notebook original de la Clase 2.

Variables de entorno relevantes

Variable Rol
OPENAI_API_KEY Credencial del modelo
OPENAI_MODEL Modelo usado por ChatOpenAI
DATA_MCP_URL Dónde vive el MCP de datos
MCP_AGENT_TRANSPORT http (Streamlit) o stdio (Claude Desktop)
MEMORY_WINDOW_MESSAGES Cuántos mensajes recientes se reenvían al modelo

Solución de problemas

  • Streamlit no puede contactar al agente: verifica que mcp_datos.py Y mcp_agente.py (en modo http) estén corriendo antes de abrir Streamlit.
  • Claude Desktop no descubre la tool: confirma que MCP_AGENT_TRANSPORT=stdio en la configuración, que la ruta del script es absoluta, y reinicia Claude Desktop por completo.
  • La memoria no se conserva entre preguntas: confirma que estás usando el mismo session_id (en Streamlit, no hagas clic en "Nueva conversación" entre preguntas relacionadas).

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选