数学计算服务

OpenWebUI MCP Math Server是一个提供计算器和Java解释器工具的MCP服务器,用于OpenWebUI集成。

  • by QuifixOfficial
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 QuifixOfficial/MCP_Server

使用说明

OpenWebUI MCP 数学服务器

这是一个模型上下文协议(MCP)服务器,为OpenWebUI集成提供了计算器和Java解释器工具。

可用工具

  • 计算器评估、简化、求导、积分或求解数学表达式
  • Java 解释器在沙箱环境中运行Java代码

OpenWebUI 集成

这台服务器设计为通过MCP到OpenAPI的代理与OpenWebUI协同工作mcpo)。 按照以下步骤操作:

选项1:本地开发

  1. 构建服务器:

    npm run build
    
  2. 安装 mcpo(MCP 到 OpenAPI 的代理):

    pip install mcpo
    # or with uv:
    # uvx mcpo
    
  3. 通过mcpo运行服务器:

    # Using pip installation:
    mcpo --port 8000 -- node dist/index.js
    
    # Or using uv:
    uvx mcpo --port 8000 -- node dist/index.js
    
  4. 访问OpenAPI文档:

    • 访问 http://localhost:8000/docs 查看自动生成的API文档
    • 使用 http://localhost:8000 作为OpenWebUI中的基础URL

选项2:Docker(本地)

  1. 使用 Docker 构建并运行:

    docker-compose up --build
    
  2. 运行 mcpo 以代理容器化的 MCP 服务器:

    # Install mcpo if not already installed
    pip install mcpo
    
    # Run mcpo with the containerized server
    mcpo --port 8000 -- docker exec -i mcp-math-java node dist/index.js
    
  3. 配置OpenWebUI:

    • 使用 http://localhost:8000 作为基础URL
    • 工具将被自动发现并记录

选项3:Windows批处理脚本

对于Windows用户,您可以使用提供的批处理脚本:

# Run the server through mcpo
mcpo --port 8000 -- run-mcp-server.bat

OpenWebUI 配置

  1. 在OpenWebUI中,前往 设置 → 工具
  2. 添加一个新的工具源,使用:
    • 基本URL: http://localhost:8000 (或您的 MCPo 服务器 URL)
    • 工具(计算器和Java解释器)将被自动发现

工具使用示例

计算器工具

{
  "expression": "2 + 2 * 3",
  "mode": "evaluate"
}

Java 解释器工具

{
  "code": "public class Hello { public static void main(String[] args) { System.out.println(\"Hello World!\"); } }",
  "className": "Hello"
}
  1. 构建
npm run build
  1. 启动构建服务器
npm start

Docker

构建镜像:

docker build -t openwebui-mcp-math-server:latest .

运行容器:

docker run --rm -it --name mcp-math-java openwebui-mcp-math-server:latest

在OpenWebUI MCP设置中,使用以下配置配置stdio:

  • 命令:node
  • 参数: /app/dist/index.js

Docker Compose

docker compose up --build -d

OpenWebUI 集成

在OpenWebUI中配置一个MCP服务器(设置 -> MCP),使用stdio:

  • 命令: node
  • 参数: dist/index.js (构建后)或 node_modules/tsx/dist/cli.js src/index.ts 为开发者(或开发)
  • Env: 可选(无需提供)

服务器暴露了一个名为 calculator。

工具:计算器

输入模式:

  • 表达式:字符串(必填)
  • 模式:“评估” | “简化” | “推导” | “积分” | “求解”(默认:评估)
  • 变量:字符串(默认:x)
  • 点:数字(可选,用于在该点评估导数)
  • lower, upper:数字(可选,用于定积分)

本地烟雾测试

npm run test

备注

  • 需要 Node.js 版本 >= 18.17
  • 如果在您的设置中,OpenWebUI 预期使用 TCP 传输而不是 stdio,我们可以添加一个 HTTP/TCP 传输适配器。

工具

计算器

输入模式:

  • 表达式:字符串(必填)
  • 模式: "evaluate"(评估)| "simplify"(简化)| "derive"(推导)| "integrate"(积分)| "solve"(求解)(默认:evaluate(评估))
  • 变量:字符串(默认:x)
  • 要点:数字(可选,用于在该点评估导数)
  • 下限,上限:数字(可选,用于定积分)

Java解释器

目的:用于高中计算机科学课程。编译并运行小型Java程序以展示概念并回答问题。源代码在临时的工作空间中运行。

输入模式:

  • 代码:字符串(必需)—— 包含一个公共类的Java源代码(例如。, public class Main)
  • `className`: 字符串(可选)— 公共类名;若省略则进行推断
  • stdin:字符串(可选)— 传递给程序标准输入的文本
  • args: string[] (可选) — 传递给命令行的参数 main
  • `timeoutMs`:数字(可选)— 默认8000毫秒,最大30000毫秒

要求:必须安装JDK,并且其路径需包含在环境变量PATH中javac, java)。