使用说明
OpenWebUI MCP 数学服务器
这是一个模型上下文协议(MCP)服务器,为OpenWebUI集成提供了计算器和Java解释器工具。
可用工具
- 计算器评估、简化、求导、积分或求解数学表达式
- Java 解释器在沙箱环境中运行Java代码
OpenWebUI 集成
这台服务器设计为通过MCP到OpenAPI的代理与OpenWebUI协同工作mcpo)。 按照以下步骤操作:
选项1:本地开发
-
构建服务器:
npm run build -
安装 mcpo(MCP 到 OpenAPI 的代理):
pip install mcpo # or with uv: # uvx mcpo -
通过mcpo运行服务器:
# Using pip installation: mcpo --port 8000 -- node dist/index.js # Or using uv: uvx mcpo --port 8000 -- node dist/index.js -
访问OpenAPI文档:
- 访问
http://localhost:8000/docs查看自动生成的API文档 - 使用
http://localhost:8000作为OpenWebUI中的基础URL
- 访问
选项2:Docker(本地)
-
使用 Docker 构建并运行:
docker-compose up --build -
运行 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 -
配置OpenWebUI:
- 使用
http://localhost:8000作为基础URL - 工具将被自动发现并记录
- 使用
选项3:Windows批处理脚本
对于Windows用户,您可以使用提供的批处理脚本:
# Run the server through mcpo
mcpo --port 8000 -- run-mcp-server.bat
OpenWebUI 配置
- 在OpenWebUI中,前往 设置 → 工具
- 添加一个新的工具源,使用:
- 基本URL:
http://localhost:8000(或您的 MCPo 服务器 URL) - 工具(计算器和Java解释器)将被自动发现
- 基本URL:
工具使用示例
计算器工具
{
"expression": "2 + 2 * 3",
"mode": "evaluate"
}
Java 解释器工具
{
"code": "public class Hello { public static void main(String[] args) { System.out.println(\"Hello World!\"); } }",
"className": "Hello"
}
- 构建
npm run build
- 启动构建服务器
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)。