与MCP服务器的数学小测验
一个演示应用程序,展示了MCP(模型上下文协议)服务器如何充当数学协处理器。大型语言模型(LLM)决定执行哪些计算,而MCP服务器则使用mathjs处理这些计算。
建筑学
- 前端React + Vite + Tailwind CSS - 简单的数学测验界面
- MCP服务器Node.js + TypeScript - 数学评估服务
项目结构
mcp-math/
├── frontend/ # React quiz application
│ ├── src/
│ │ ├── App.tsx # Main quiz component
│ │ ├── main.tsx # React entry point
│ │ └── index.css # Tailwind styles
│ └── package.json
├── mcp-server/ # MCP server for math operations
│ ├── src/
│ │ └── index.ts # MCP server implementation
│ └── package.json
└── package.json # Workspace root安装说明
1. 安装依赖项
从根目录:
npm install
cd frontend && npm install
cd ../mcp-server && npm install
cd ..或者使用便捷脚本:
npm run install:all2. 构建MCP服务器
cd mcp-server
npm run build3. 配置MCP客户端
对于Cursor
在你的 Cursor 配置文件中添加 MCP 服务器:
位置: ~/.cursor/mcp.json
示例配置:
{
"mcpServers": {
"math": {
"command": "node",
"args": ["${HOME}/path/to/mcp-math/mcp-server/dist/index.js"]
}
}
}重要的替换 path/to/mcp-math 使用从您的主目录到项目目录的实际路径 ${HOME} 变量将被自动展开。
更新配置后,请重启 Cursor 以使更改生效。
对于Claude Desktop
将MCP服务器添加到您的Claude Desktop配置文件中:
MacOS/Linux(注:MacOS是苹果公司的操作系统,Linux是一种开源操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
示例配置:
{
"mcpServers": {
"math": {
"command": "node",
"args": ["${HOME}/path/to/mcp-math/mcp-server/dist/index.js"]
}
}
}重要的替换 path/to/mcp-math 使用从您的主目录到项目目录的实际路径。
更新配置后,请重启Claude Desktop以使更改生效。
运行应用程序
启动前端
cd frontend
npm run dev这款问答应用将在 http://localhost:5173
使用MCP服务器与Claude/Cursor
配置完成后,您可以要求Claude(或Cursor AI)使用数学服务器:
示例提示:
- “使用数学服务器计算123乘以456”
- “使用计算工具计算√144 + sin(π/2)”
- “(25 + 75) / (10 - 5) 等于多少?”
该人工智能将自动使用 evaluate 从MCP服务器获取工具以执行计算。
MCP 服务器工具
evaluate
评估一个数学表达式并返回结果。
输入:
expression(字符串):要评估的数学表达式
支持的操作:
- 基本算术:
+,-,*,/ - 指数:
^或者** - 括号:
(,) - 常用功能:
sqrt(),sin(),cos(),tan(),log()等。 - 常量:
pi,e
示例:
{
"expression": "2 * (3 + 4)"
}回答:
{
"expression": "2 * (3 + 4)",
"result": "14",
"success": true
}发展
前端开发
npm run dev:frontendMCP服务器开发
在对MCP服务器进行更改后:
cd mcp-server
npm run build然后重启Claude Desktop以加载更新后的服务器。
为生产构建
# Build frontend
npm run build:frontend
# Build MCP server
npm run build:mcp它是如何工作的
MCP模式
这个应用程序展示了“协处理器”模式:
- 前端 向用户展示数学问题
- LLM (Claude) 理解用户意图,并决定执行哪些计算
- MCP服务器 使用mathjs准确执行计算
- 结果 流经克劳德(Claude)再返回到应用程序
为何选择MCP来学习数学?
- 准确性大型语言模型(LLMs)在进行精确计算时可能会遇到困难。MCP服务器使用mathjs来确保结果的准确性。
- 关注点分离(或译为“职责分离”)大型语言模型(LLM)侧重于理解和协调,而MCP服务器则负责计算。
- 可扩展性无需重新训练模型,即可轻松添加新的数学运算。
注释
- 当前前端实现为了演示的简洁性,是在本地计算答案的
- 在生产环境中,你会将前端连接到Claude(通过API或桌面应用程序),而Claude将使用MCP服务器
- 这是一个展示MCP架构的演示项目,尚未达到生产就绪状态
未来的改进/增强
潜在的改进之处:
- 添加数据库以存储测验结果
- 通过MCP直接将前端连接到Claude API
- 增加更多题型(代数、几何等)
- 实现用户身份验证和进度跟踪
- 增加难度级别和自适应测验
故障排除
MCP 服务器未显示在 Claude/Cursor 中
- 检查配置文件路径是否正确
~/.cursor/mcp.json(适用于 Cursor) - 确保路径到
index.js是正确的(使用${HOME}/...(为了便于携带) - 验证服务器构建过程中无错误:
cd mcp-server && npm run build - 检查日志:
- Claude Desktop(中文可译为“Claude桌面版”或“Claude桌面应用”,具体根据上下文选择更贴切的表述)帮助 → 显示日志 - 光标在光标设置中检查MCP服务器的输出
- 配置更改后重启 Claude Desktop 或 Cursor
前端未启动
- 确保已安装所有依赖项:
cd frontend && npm install - 检查 Node.js 版本(需要 Node 18 或更高版本)
- 尝试清除node_modules并重新安装
许可证
麻省理工学院(MIT)
