MCP服务器演示

一个与ERPNEXT集成的MCP服务器演示项目,用于将Python函数作为工具暴露给智能助手或聊天机器人。

  • by Orm15
  • Python
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 Orm15/mcp-server-demo-ERPNEXT

使用说明

MCP服务器演示项目

合作者Axel干部

该项目是与ERPNEXT集成的Chatbot MCP服务器的一个例子(对于该项目,您已经被认为可以访问ERP)

设置

使用从带有IFConfig的VM获得的IP前往主页

指定设置

DezPlazate向下,生成并复制API密钥和API机密

保存凭据

下载或克隆存储库

Python 安装

本文档解释如何使用 winget.

先决条件

  • Windows 10高级版
  • 启用包管理器 winget

步骤 1: 安装 Python

以管理员身份打开Windows终端(PowerShell或CMD),并运行:

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
  1. 使用PIPX安装紫外线:

    pipx install uv
    

    或直接与PIP:

    pip install uv
    
  2. 验证安装:

    uv --version
    
  3. 使用UV创建虚拟环境:

    uv venv .venv
    
  4. 激活虚拟环境:

    .venv\Scripts\Activate.ps1
    
  5. 安装项目依赖项:

    uv pip install -r requirements.txt
    
  6. 如果您在安装UV时遇到问题,请以管理员身份测试:

    powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
    

配置您的环境变量

创建一个名为 .env 在项目的根目录中,包含以下内容(根据您的ERPNEXT替换值):

URL_ERPNext=http://192.168.52.128/
API_KEY=tu_api_key
API_SECRET=tu_api_secret

确保这些数据与您在ERPNEXT配置中获得的数据相匹配。

该存储库包含:

  • 服务器源代码
  • 图像和图表

有关更多信息,请查看文件夹中的文档 Docs/.

如何将教师分配给销售订单的工具?

视觉功能 asignar_profesor_a_orden_venta 它允许将教师(必须事先作为ERPNEXT中的“Sales Person”存在)分配给特定的销售订单。

他是做什么的?

  • 接收销售订单的ID(sales_order_id)教授的名字(profesor).
  • 更新字段 sales_team 从ERPNEXT的销售订单中,分配100%参与的教授。
  • 返回操作结果并打印一条消息,指示更新是否成功或是否存在错误。

使用示例:

asignar_profesor_a_orden_venta("SO-0001", "Juan Perez")

这将指派“胡安·佩雷斯”负责ID为“SO-0001”的销售订单。

注: 教师必须在ERPNEXT中以“Sales Person”的身份存在,才能使作业正常工作。

什么是MCP,它在这个项目中是如何工作的?

MCP(Model Context Protocol)是一种协议和框架,允许将Python函数作为智能助手、聊天机器人或外部集成的可访问工具公开。在这个项目中,使用类 FastMCP 记录和暴露与ERPNEXT交互的函数。

  • 每个功能都装饰着 @mcp.tool() 它成为向导或从其他系统调用的可用工具。
  • MCP以结构化和安全的方式管理这些功能的通信、注册和执行。
  • MCP服务器可以在不同的传输模式下运行(例如, stdio,HTTP等),促进与其他会话服务或接口的集成。

基本示例:

from mcp.server.fastmcp import FastMCP
mcp = FastMCP("Demo1")

@mcp.tool()
def mi_funcion(param):
    # lógica aquí
    return resultado

这使得 mi_funcion 从连接到MCP服务器的向导或接口调用。

要在本地使用GitHub Local,您必须使用mcp.json文件

将main.py文件的路径添加到您的计算机上,然后选择“重新启动”或“开始”

然后单击GitHub Copilot聊天室中的工具符号

然后你会看到你的工具是否可用

运行独立的MCP开发工具

要使用uv运行mcp命令:

uv run mcp

快速启动

让我们创建一个简单的MCP服务器,它公开了一个计算器工具和一些数据:

# 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}!"

您可以在以下位置安装此服务器 克劳德桌面 并通过运行以下命令立即与之交互:

mcp install server.py

或者,您可以使用MCP检查器进行测试:

mcp dev server.py

测试

在配置后,您可以更准确地修改您的功能,您可以通过以下示例从GitHub Copilot聊天室测试服务器:

您可以在Customer中验证创建

奖金 - 使用 Claude 桌面

您可以在以下位置安装此服务器 克劳德桌面 并通过运行以下命令立即与之交互:

mcp install server.py

打开密钥

验证工具是否存在

创建学生测试

会出现一个弹出窗口,自动填充MCP

然后检查输出和ERP

ERPNEXT