Orm15/mcp-server-demo-ERPNEXT
If you are the rightful owner of mcp-server-demo-ERPNEXT and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
This project demonstrates an MCP server for a chatbot integrated with ERPNext, showcasing how to expose Python functions as tools for intelligent assistants.
add
Add two numbers
Proyecto MCP Server Demo
Colaborador Axel Cuadros
Este proyecto es un ejemplo de servidor MCP para chatbot integrado con ERPNEXT(Para este proyecto ya se considera que tienes acceso a la ERP)
Configuraciones
Dirigete a la pagina principal haciendo uso de la ip obtenido de la VM con ifconfig
Dirigete a settings
Dezplazate hacia abajo, genera y copia la API key y API secret
Guarda las credenciales
Descarga o clona el repositorio
Instalación de python
Este documento explica cómo instalar Python entorno Windows usando winget
.
Requisitos Previos
- Windows 10 o superior
- Tener habilitado el administrador de paquetes
winget
Paso 1: Instalar Python
Abre una terminal de Windows (PowerShell o CMD) como administrador y ejecuta:
winget install Python.Python.3
## Instalación de dependencias con uv en Windows
1. Abre PowerShell.
2. Instala pipx si no lo tienes:
```powershell
pip install pipx
-
Instala uv usando pipx:
pipx install uv
O directamente con pip:
pip install uv
-
Verifica la instalación:
uv --version
-
Crea un entorno virtual con uv:
uv venv .venv
-
Activa el entorno virtual:
.venv\Scripts\Activate.ps1
-
Instala las dependencias del proyecto:
uv pip install -r requirements.txt
-
Si tienes problemas con la instalaciónde uv prueba como administrador:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
Configura tus variables de entorno
Crea un archivo llamado .env
en la raíz del proyecto con el siguiente contenido (reemplaza los valores según tu ERPNext):
URL_ERPNext=http://192.168.52.128/
API_KEY=tu_api_key
API_SECRET=tu_api_secret
Asegúrate de que estos datos coincidan con los que obtuviste en la configuración de tu ERPNext.
Este repositorio contiene:
- Código fuente del servidor
- Imágenes y diagramas
Para más información, revisa la documentación en la carpeta Docs/
.
¿Cómo funciona la herramienta para asignar profesor a una orden de venta?
La función asignar_profesor_a_orden_venta
permite asignar un profesor (que debe existir previamente como "Sales Person" en ERPNext) a una orden de venta específica.
¿Qué hace?
- Recibe el ID de la orden de venta (
sales_order_id
) y el nombre del profesor (profesor
). - Actualiza el campo
sales_team
de la orden de venta en ERPNext, asignando el profesor con el 100% de participación. - Devuelve el resultado de la operación e imprime un mensaje indicando si la actualización fue exitosa o si hubo un error.
Ejemplo de uso:
asignar_profesor_a_orden_venta("SO-0001", "Juan Perez")
Esto asignará a "Juan Perez" como responsable de la orden de venta con ID "SO-0001".
Nota: El profesor debe existir previamente como "Sales Person" en ERPNext para que la asignación funcione correctamente.
¿Qué es MCP y cómo funciona en este proyecto?
MCP (Model Context Protocol) es un protocolo y framework que permite exponer funciones de Python como herramientas accesibles para asistentes inteligentes, chatbots o integraciones externas. En este proyecto, se utiliza la clase FastMCP
para registrar y exponer funciones que interactúan con ERPNext.
- Cada función decorada con
@mcp.tool()
se convierte en una herramienta disponible para el asistente o para ser llamada desde otros sistemas. - MCP gestiona la comunicación, el registro y la ejecución de estas funciones de manera estructurada y segura.
- El servidor MCP puede ejecutarse en diferentes modos de transporte (por ejemplo,
stdio
, HTTP, etc.), facilitando la integración con otros servicios o interfaces conversacionales.
Ejemplo básico:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Demo1")
@mcp.tool()
def mi_funcion(param):
# lógica aquí
return resultado
Esto permite que mi_funcion
sea llamada desde un asistente o interfaz conectada al servidor MCP.
Para el uso en local con Github local debes usar el archivo mcp.json
Agrega la ruta del archivo main.py en tu equipo y luego selecciona restart o start
Luego da click en el simbolo de herramienta en el chat de Github copilot
Luego verás si tus herramientas estan disponibles
Running the standalone MCP development tools
To run the mcp command with uv:
uv run mcp
Quickstart
Let's create a simple MCP server that exposes a calculator tool and some data:
# server.py
from mcp.server.fastmcp import FastMCP
# Create an MCP server
mcp = FastMCP("Demo")
# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
"""Add two numbers"""
return a + b
# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
"""Get a personalized greeting"""
return f"Hello, {name}!"
You can install this server in Claude Desktop and interact with it right away by running:
mcp install server.py
Alternatively, you can test it with the MCP Inspector:
mcp dev server.py
Prueba
Luego de las configuraciones modifica tus funciones para mayor precisión, puedes probar el servidor desde el chat de Github copilot con este ejemplo:
Puedes validar la creación en Customer
BONUS - usando Claude desktop
You can install this server in Claude Desktop and interact with it right away by running:
mcp install server.py
Abre claude
Verifica que las herramientas estén presentes
Prueba creando un alumno
Te aparecerá una ventana emergente, autotiza el mcp
Luego revisa la salida y el ERP
ERPNEXT