货币与石油价格服务器

Zenrus MCP Server 是一个提供实时货币汇率和石油价格的服务器,支持多种计算功能,适用于金融分析和自动化工具集成。

  • by DarkGenius
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 DarkGenius/zenrus-mcp

使用说明

Zenrus MCP 服务器

用于从网站获取实时汇率和油价的MCP服务器 zenrus.ru(该域名直接翻译无实际意义,保持原样)。

可能性/功能

服务器提供以下工具:

基本工具(数据获取)

  • get_usd_rate - 获取当前美元/卢布汇率
  • get_eur_rate - 获取当前欧元/卢布汇率
  • get_brent_usd_rate - 获取当前布伦特原油的美元每桶价格
  • get_brent_rub_rate - 获取当前布伦特原油每桶的卢布价格

计算工具(计算)

  • calculate_barrels_for_rub - 计算用给定的卢布金额能购买多少桶(商品)
  • calculate_barrels_for_usd - 计算用给定的美元金额能购买多少桶(石油)
  • calculate_barrels_for_eur - 计算用给定的欧元金额能购买多少桶

返回数据的格式

所有工具都归还 结构化的JSON数据 带有可用于计算的数值:

汇率 (get_usd_rate, get_eur_rate):

{
  "rate": 81.08,
  "currency": "USD/RUB",
  "description": "US Dollar to Russian Ruble exchange rate"
}

石油价格 (get_brent_usd_rate, get_brent_rub_rate):

{
  "price": 62.17,
  "commodity": "Brent Crude Oil",
  "currency": "USD",
  "unit": "per barrel"
}

结算 (calculate_barrels_for_rub, calculate_barrels_for_usd, calculate_barrels_for_eur):

{
  "amount": 100000,
  "currency": "RUB",
  "barrels": 19.8374,
  "pricePerBarrel": 5041,
  "commodity": "Brent Crude Oil"
}

这种方法使AI模型能够:

  • 在数学计算中使用数据
  • 根据自己的判断调整输出格式
  • 轻松解析和处理结果
  • 保持数据的语义

使用示例

对于计算工具,请传递参数 amount:

{
  "name": "calculate_barrels_for_usd",
  "arguments": {
    "amount": 1000
  }
}

结果将显示可以购买多少桶:

{
  "amount": 1000,
  "currency": "USD",
  "barrels": 16.0848,
  "pricePerBarrel": 62.17,
  "commodity": "Brent Crude Oil"
}

安装

从 npm(推荐)

首次使用时,该软件包将自动下载 npx:

npx -y zenrus-mcp

用于开发

git clone https://github.com/DarkGenius/zenrus-mcp.git
cd zenrus-mcp
npm install
npm run build

使用

配置

在您的AI工具设置文件中添加以下配置:

{
  "mcpServers": {
    "zenrus": {
      "command": "npx",
      "args": ["-y", "zenrus-mcp"]
    }
  }
}

手动启动服务器

npm start

开发

# Сборка проекта
npm run build

# Режим разработки с автоматической пересборкой
npm run dev

# Запуск тестов
npm test

# Запуск тестов в watch-режиме
npm run test:watch

# Отладка (выполняет запрос к API и выводит данные)
npm run debug

调试

要检查服务器的运行状态,请使用以下命令:

npm run debug

这个脚本将向zenrus.ru发出实际请求并输出:

  • 以JSON格式获取的数据
  • 每个MCP工具的工作成果
  • 执行统计

项目结构

zenrus-mcp/
├── src/
│   ├── index.ts              # Основной код MCP сервера
│   ├── api.ts                # API модуль с кешированием
│   ├── debug.ts              # Скрипт для отладки
│   └── __tests__/
│       └── parser.test.ts    # Тесты парсинга данных
├── dist/                     # Скомпилированные файлы
├── package.json
├── tsconfig.json
├── vitest.config.ts
└── README.md

它是如何运作的

获取数据

服务器从zenrus.ru的JavaScript文件中获取数据 currents.js,其中包含以以下格式呈现的最新课程:

var current = {0:81.08,1:94.15,2:62.17,...}

地点:

  • 0 - 美元兑卢布汇率
  • 1 - 欧元兑卢布汇率
  • 2 - 布伦特原油价格(美元)

布伦特原油价格(以卢布计)自动计算得出: USD * Brent(USD)

缓存

数据缓存于 60分钟 以减轻远程API的负载。每次请求时:

  1. 检查缓存数据的存在性和时效性
  2. 如果数据已过时(超过60分钟),则执行新的请求
  3. 新数据保存在缓存中

URL 使用 Unix 时间戳进行缓存失效处理: currents.js?v1234567890

技术

许可证

麻省理工学院(MIT)