越南数据MCP服务器

提供越南金融数据、新闻、广播电台和音乐流媒体的MCP服务器集合,支持实时获取金价、油价和新闻等功能。

  • by lehoangnb
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 lehoangnb/xiaozhi-mcp

使用说明

xiaozhi mcp:用于xiaozhi的越南数据mcp服务器

一组MCP(模型上下文协议)服务器,提供对越南金融数据、新闻、广播电台和音乐流的访问。该项目与人工智能系统集成,以获取实时越南黄金价格(SJC)、燃料价格(Petrolimex)、Dantri新闻、广播电台和音乐搜索/播放。

特性

  • 💰 SJC黄金价格:SJC(越南国家贵金属贸易公司)不同地区的实时金价
  • ⛽ Petrolimex燃料价格:越南国家石油公司Petrolimex的当前燃料价格因地区而异
  • 📰 丹特里新闻:Dantri.com.vn全球、越南、体育和汽车类别的最新新闻头条和文章摘要
  • 🔄 自动重新连接:具有指数退避重试机制的强大WebSocket连接
  • 📡 多种运输方式:支持stdio、SSE和HTTP传输
  • 🐳 Docker支持:使用Docker Compose进行容器化部署

项目结构

  • mcp_pipe.py:管理MCP服务器进程和连接的主WebSocket代理
  • utils.py:用于数据规范化和价格格式化的共享实用程序
  • sjc_gold.py:越南地区SJC金价数据的MCP服务器
  • petrolimex.py:Petrolimex燃料价格数据的MCP服务器
  • dantri_news.py:用于Dantri.vn新闻抓取的MCP服务器
  • mcp_config.json:自定义服务器设置的可选配置
  • docker/:Docker部署文件

可用的MCP工具

SJC黄金价格工具

  • get_gold_prices():所有SJC黄金价格
  • get_northern_gold_prices():北部地区价格
  • get_hcm_gold_prices():胡志明市价格
  • get_halong_gold_prices():下龙价格
  • get_haiphong_gold_prices():海防价格
  • get_central_gold_prices():中部地区价格
  • get_hue_gold_prices():色调价格
  • get_quangngai_gold_prices():广奈价格
  • get_nhatrang_gold_prices():芽庄价格
  • get_bienhoa_gold_prices():边和价格
  • get_southern_gold_prices():南部地区价格

Petrolimex燃料价格工具

  • get_fuel_prices():各地区当前的Petrolimex燃料价格

Dantri新闻工具

  • get_world_news():最新5条世界新闻头条
  • get_vietnam_news():最新5条越南新闻头条
  • get_sports_news():最新5条体育新闻头条
  • get_auto_news():最新5条汽车新闻头条
  • search_news(query):按查询搜索新闻
  • get_news_summary(url):获取文章摘要(200字)

电台工具

  • get_radio_stations():列出所有可用的越南广播电台(谢谢 @天湖物联网)
  • get_radio_station_url(station_id_or_name):获取特定广播电台的流媒体URL

音乐搜索工具

  • search_music(song, artist?):搜索歌曲并返回元数据,包括流URL
  • get_music_stream(song, artist?):获取播放所需的基本流信息

快速开始

本地开发

  1. 安装依赖项:
pip install -r requirements.txt
  1. 设置环境变量:
export MCP_ENDPOINT=wss://your-xiaozhi-endpoint
# Windows: $env:MCP_ENDPOINT = "wss://your-xiaozhi-endpoint"
  1. 运行所有服务器:
python mcp_pipe.py

或者运行单个服务器进行测试:

python mcp_pipe.py calculator.py
python mcp_pipe.py sjc_gold.py
python mcp_pipe.py petrolimex.py
python mcp_pipe.py dantri_news.py
python mcp_pipe.py radio.py

Docker部署

  1. 克隆存储库并设置环境:
git clone https://github.com/lehoangnb/xiaozhi-mcp.git
cd xiaozhi-mcp
  1. 在docker-compose.yaml中设置MCP端点

  2. 使用Docker Compose运行:

docker-compose up --build

配置

环境变量

  • MCP_ENDPOINT:MCP连接的WebSocket URL(必需)
  • MCP_CONFIG:自定义配置文件的路径(可选,默认为mcp_config.json)

自定义配置

编辑 mcp_config.json 要配置其他服务器,请执行以下操作:

{
  "mcpServers": {
    "my-server": {
      "command": "python",
      "args": ["my_server.py"],
      "disabled": false
    }
  }
}

依赖项

  • python>=3.7
  • fastmcp>=2.13.0
  • websockets>=15.0
  • requests>=2
  • beautifulsoup4>=4.12
  • mcp>=1.20.0
  • mcp-proxy>=0.10.0
  • python-dotenv>=1.2.1

数据源

该项目从真实网站抓取数据,不在本地存储任何数据(SJC黄金缓存1小时除外):

  • SJC黄金价格: https://sjc.com.vn/(越南官方黄金价格跟踪)
  • Petrolimex燃料价格:https://webgia.com/gia-xang-dau/petrolimex/
  • 丹特里新闻: https://dantri.com.vn/(越南主要新闻网站)

API响应格式

所有价格工具都返回结构化数据供人工智能消费:

{
  "data": [
    {
      "product": "Product Name",
      "region": "Region Name",
      "price_buy": "buy_price",
      "price_sell": "sell_price",
      "price_display": "display_price",
      "unit": "Triệu đồng một lượng",
      "updated_at": "2025-01-15T10:30:00+07:00",
      "source": "https://source.url"
    }
  ],
  "schema_version": "1.0"
}

贡献

欢迎投稿!通过以下方式添加新的越南数据源:

  1. 创建新 tool.py 遵循现有模式
  2. 检查 utils.normalize_prices_for_ai() 用于一致的数据格式
  3. 添加适当的错误处理和日志记录
  4. 使用描述清晰的MCP工具

免责声明

该项目抓取公共网站,并为信息目的提供数据访问。用户应验证数据的准确性,并遵守各自网站的服务条款。开发人员不对这些数据的任何使用负责。