使用说明
mcp-simple
mcp_simple 是一个独立的TypeScript MCP stdio服务器,它公开了一个工具: physics_solve_problem.
它接受物理问题文本或图像输入,可选地使用提供者选择结构化模板,然后在本地运行确定性求解器和报告管道。主要工件是一个自包含的HTML报告和一个 physics_figure/v1 数字束。
部署什么
- MCP stdio服务器入口点:
src/index.ts - 单一工具:
physics_solve_problem - 本地求解器、OCR、报表生成器和图形管道
此仓库不再包含web上传UI。部署目标是MCP服务器本身。
需求
- Node.js 20+
- npm 10+
- 支持MCP stdio的客户端
- 如果您想要基于模型的模板路由,则可以选择提供程序凭据
快速开始
git clone https://github.com/COVID-19godie/mcp_simple.git
cd mcp_simple
npm install
npm run build
npm start
对于当地发展:
npm run dev
环境变量
复制 .env.example 并填写您需要的值。
主要变量:
QWEN_API_KEYQWEN_BASE_URLQWEN_MODELREPORT_OUTPUT_DIR(可选)
推荐的提供程序默认值:
QWEN_API_KEY=your_api_key_here
QWEN_BASE_URL=https://api.siliconflow.cn/v1
QWEN_MODEL=Qwen/Qwen3.5-122B-A10B
笔记:
- 如果
provider.mode=local,该工具仍然可以从本地元数据或启发式方法运行。 - 如果
provider.mode=openai|ollama,路由取决于配置的提供程序。
MCP客户端配置
通用stdio示例
使用 mcp-config.example.json 作为参考。
最小stdio形状:
{
"name": "mcp_simple",
"entry": "./dist/index.js",
"type": "stdio"
}
VSCode代码
此仓库已包含工作区MCP设置:
.vscode/mcp.json.vscode/settings.json
在VSCode中使用它:
- 将此文件夹作为工作区打开。
- 跑
npm install和npm run build. - 重新加载VSCode窗口。
- 在Codex/Chat中,验证MCP工具列表并致电
physics_solve_problem.
部署检查表
在将此交给其他人之前,他们应该能够完成以下所有操作:
npm installnpm run buildnpm start- 将MCP客户端连接到
dist/index.js - 看
physics_solve_problem在工具列表中 - 运行一个示例调用并获取HTML报告路径
部署后自检
使用MCP客户端验证:
tools/list包括physics_solve_problem- 最小本地模式请求返回有效的结果对象
- 回归
artifact.report_path存在于磁盘上
最小样本输入:
{
"question": {
"text": "Uniform magnetic field problem",
"metadata": {
"routing": {
"template_selection": {
"template_id": "uniform_b",
"template_args": {
"m": 1,
"q_abs": 1,
"q_sign": 1,
"B_abs": 2,
"v0": 1,
"B_polarity": "into_page"
}
}
}
}
},
"provider": {
"mode": "local"
},
"render": {
"language": "zh-CN",
"output_dir": "./runtime-reports",
"file_name": "sample-report.html",
"overwrite": true
}
}
预期结果:
status存在answer.final存在artifact.report_path指向HTML文件artifacts.figure_spec_json.path指向JSON文件
工具合同
名字
physics_solve_problem
输入
{
question: {
text?: string
image_url?: string
image_base64?: string
image_mime?: string
choices?: string[]
metadata?: Record<string, unknown>
}
provider?: {
mode?: "local" | "openai" | "ollama"
base_url?: string
model?: string
api_key?: string
}
solve_options?: {
dt?: number
t_end?: number
max_steps?: number
max_particles?: number
strict_proof?: boolean
}
render?: {
theme?: "white_high_contrast"
animate?: boolean
show_layers?: string[]
language?: "en" | "zh-CN"
output_dir?: string
file_name?: string
overwrite?: boolean
figure_profile?: "compact" | "debug_full"
}
}
输出
工具返回:
statusanswer.finalderivation.stepsvisualizationartifact.report_pathartifacts.figure_spec_json- 用于报告输入/核心/可视化的可选拆分JSON工件
测试
npm test
关键回归套件位于 src/tests/solveProblem 和 src/tests/pipeline.
