Mini-ERP MCP
Mini-ERP MCP — proyecto de aprendizaje
Servidor de Model Context Protocol (MCP) construido sobre un dominio de ERP simulado (productos, clientes, ventas), para entender de punta a punta cómo un modelo de lenguaje puede descubrir y usar herramientas y datos externos de forma estandarizada, en vez de mediante integraciones a medida por cada proveedor de LLM.
Contexto: este es un proyecto personal de exploración técnica, no un producto en producción ni un desarrollo para cliente. El dominio de ERP es deliberadamente mínimo (un archivo JSON como "base de datos") — el objetivo no es la lógica de negocio, sino comprender el protocolo.
Qué hace
Simula el flujo de un mensaje entrante (por ejemplo, de WhatsApp) que llega a un sistema tipo ERP. El sistema arma el contexto relevante para el modelo, le ofrece un conjunto de herramientas, y el modelo decide de forma autónoma qué acción tomar para responder — incluyendo una acción con efecto real (registrar una venta), que requiere confirmación humana antes de ejecutarse.
Related MCP server: OdooSurface MCP
Conceptos que este proyecto pone en práctica
MCP define tres primitivas, y este proyecto usa las tres con un criterio de diseño explícito para cada una:
Elemento | Tipo | Por qué |
| Resource | Dato estable; lo decide inyectar el host de entrada, sin que el modelo lo pida. |
| Resource (URI con parámetro) | El host ya conoce el ID de quien escribe (vendría del webhook); arma la URI y la inyecta. |
| Tool | El modelo decide, en medio de la conversación, si la necesita. |
| Tool destructiva | Acción con efecto real; requiere confirmación humana antes de ejecutarse. |
| Prompt | Plantilla reutilizable para una tarea recurrente. |
La distinción central que este proyecto permite comprobar en la práctica: con una tool, el host le cede al modelo la decisión de invocarla; con un resource, el host retiene esa decisión para sí.
Arquitectura
┌───────────────────────┐ stdio ┌───────────────────────┐
│ Host (host_demo.py) │◄────────►│ Servidor MCP │
│ - Arma el contexto │ │ (server.py, FastMCP) │
│ - Ofrece tools al LLM │ │ - Resources │
│ - Ejecuta el loop de │ │ - Tools │──► data/erp.json
│ tool-calling │ │ - Prompts │
│ - Pide confirmación │ └───────────────────────┘
│ humana en acciones │
│ destructivas │
└──────────┬────────────────┘
│ API compatible OpenAI (router de HF) o API de Anthropic
▼
┌─────────────┐
│ LLM │
└─────────────┘host_demo.py cumple, en este proyecto, tanto el rol de host como de
client MCP (en una integración real, el cliente MCP suele ser un módulo
dentro del host, no una pieza aparte).
Stack
mcp[cli](FastMCP) — SDK oficial de Python para servidores MCP.Hugging Face Inference Providers — modelos open source, vía el router compatible con la API de OpenAI (
openaiSDK apuntando ahttps://router.huggingface.co/v1).Anthropic SDK — soporte alternativo, mantenido en paralelo para comparar el mismo servidor MCP funcionando con dos proveedores distintos.
MCP Inspector — herramienta de desarrollo para probar el servidor sin necesidad de un cliente real.
Cómo correrlo en local
cp .env.example .env # completar HF_TOKEN (y opcionalmente ANTHROPIC_API_KEY)
uv syncProbar el servidor de forma aislada (sin LLM)
uv run mcp dev server.pyAbre el MCP Inspector en el navegador, donde se pueden invocar las tools y leer los resources manualmente.
Correr el flujo completo (host + LLM real)
uv run host_demo.pyPor defecto usa Hugging Face (procesar_mensaje_huggingface). El código
para usar Anthropic (procesar_mensaje) queda disponible en el mismo
archivo, comentado en el bloque if __name__ == "__main__":.
Variables de entorno
HF_TOKEN=tu_token_de_huggingface
HF_MODEL=openai/gpt-oss-120b
# Opcional, si se quiere probar con Anthropic en vez de Hugging Face
ANTHROPIC_API_KEY=tu_api_key_de_anthropicQué aprendí construyendo esto
El mecanismo real de descubrimiento e invocación de herramientas en MCP: el modelo nunca habla directo con el servidor MCP, es el host quien media cada
list_tools()/call_tool()/read_resource().La diferencia entre function calling nativo de cada proveedor de LLM (formatos distintos entre Anthropic y APIs compatibles con OpenAI) y cómo MCP estandariza la exposición de herramientas sin depender de esos formatos particulares.
Que no todos los modelos servidos por un proveedor de inferencia soportan tool-calling de forma confiable, y cómo verificarlo antes de integrar.
Dónde vive la responsabilidad del control humano sobre acciones con efecto (no es algo que el protocolo resuelva automáticamente, es una decisión de diseño del host).
Portabilidad real: el mismo
server.py, sin modificaciones, funciona igual con dos proveedores de LLM distintos.
Estado del proyecto
Proyecto de aprendizaje, completo y funcional para el alcance definido.
Pendiente como posible extensión futura: conectar el mismo servidor a
Claude Desktop para comprobar la portabilidad contra un cliente real (no
solo el script host_demo.py).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables interaction with Odoo ERP systems through 17+ business tools covering sales, purchasing, inventory, and accounting operations. Supports both Claude Desktop integration and web deployment with dual transport modes.MIT
- AlicenseAqualityCmaintenanceEnables AI agents to interact with Odoo ERP as the authenticated user, with tools for discovery, planning, and mutations bounded by user permissions.34672MIT
- FlicenseNot gradedqualityCmaintenanceEnables LLM agents to interact with Odoo 17 ERP via external API, providing tools for inventory management, sales order processing, and customer management through natural language.

ERPipeofficial
AlicenseNot gradedqualityBmaintenanceEnables AI agents to interact with Odoo ERP through natural language, providing tools and prompts for data operations and record management.MIT
Related MCP Connectors
Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.
SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.
Gateway between LLM agents and world data through eight tools and a bundled endpoint catalog.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/davidsandez/mcp-erp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server