单位货币时区转换工具

一个小型的本地工具调用原型,用于单位、货币和时区转换,支持通过Pint进行单位转换,通过ExchangeRate-API进行实时货币转换,通过pytz进行时区转换。

  • by dkpgde
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dkpgde/mcp_playground

使用说明

转换MCP游乐场

一个用于单位、货币和时区转换的小型本地工具调用原型,其存档的Qwen 2.5 7B评估分数为25/30提示。

它包含什么

该项目公开了三个转换函数:

  • 单位: 公制、英制、温度、复合单位和自定义单位 pallet = 500 kg 通过Pint定义。
  • 货币: 实时ExchangeRate-API转换,通过pycountry进行货币名称规范化。
  • 时区: 通过pytz在IANA时区标识符之间进行时间戳转换。

server.py 通过FastMCP stdio服务器公开这些功能。 eval.py 使用Ollama工具调用评估底层转换器函数;它不通过MCP传输连接。

评估

保存的评估包含30个提示:10个单位转换、10个实时货币转换和10个时区转换。每个提示都会启动一个新的Qwen 2.5 7B对话。模型选择一个函数,接收其输出,并写入最终答案。

模型 提示 通过 成功率
Qwen 2.5 7B途经奥利玛 30 25 83.3%

问题在 evaluation_questions.json,完整的输出在 test_results.json.

繁殖

要求:

python -m venv .venv
source .venv/bin/activate  # Windows PowerShell: .venv\Scripts\Activate.ps1
pip install -r requirements.txt
ollama pull qwen2.5:7b

设置货币API键:

# macOS/Linux
export EXCHANGERATE_API_KEY="your-key"

# Windows PowerShell
$env:EXCHANGERATE_API_KEY = "your-key"

运行记录的评估路径:

python eval.py

使用以下命令启动原型stdio服务器:

python server.py

诠释

结果表明,7B局部模型通常可以选择正确的转换函数并呈现其输出。它还不是协议级MCP基准:记录的评估直接导入转换器函数。

局限性

  • 成功检查仅在答案中查找最终的预期令牌或单位;它不会验证完整的数值结果,也不会验证是否调用了预期的工具。
  • 货币测试使用实时汇率,因此确切的金额是随时间变化的。
  • stdio包装 server.py 当前隐藏了导入的转换器名称,在MCP传输路径可靠之前需要一个小的重命名。
  • 错误处理返回字符串,而不是结构化MCP错误。
  • 该评估有30个手写提示和一个模型,没有延迟或令牌测量。

归因

与 模型上下文协议Python SDK, Ollama, 问题2.5, 品脱, 皮茨, pycountry,以及 汇率-API.