MCP台股服务端

@Sinotrade/mcp-server-shioaji
0 Stars 349 次浏览 Sinotrade 更新于 2026-08-23

一个模型上下文协议(MCP)服务器,为人工智能助手提供访问台湾金融市场Shioaji交易API的权限。

该服务暂未提供标准配置,请参考 README 手动接入

服务介绍

MCP Server for Shioaji

一个实现了模型上下文协议(MCP)的服务器,为AI助手提供了访问Shioaji交易API的能力,以便在台湾金融市场进行操作。

概览

该服务器通过实现MCP协议来暴露Shioaji API的功能作为工具,这些工具可以被AI助手使用。它允许AI模型:

  • 获取当前股票价格
  • 获取历史数据
  • 列出可用股票
  • 等等...

安装

前提条件

  • Python 3.10 或更高版本
  • uv (快速Python包管理器)

使用 uv

uv sync

配置

在运行服务器之前,您需要配置您的Shioaji API凭据。有两种方法可以做到这一点:

环境变量

设置以下环境变量:

export SHIOAJI_API_KEY="your_api_key"
export SHIOAJI_SECRET_KEY="your_secret_key"

使用 .env 文件

在根目录下创建一个.env文件,并包含以下内容:

SHIOAJI_API_KEY=your_api_key
SHIOAJI_SECRET_KEY=your_secret_key

运行服务器

启动服务器:

uv run mcp-server-shioaji

默认情况下,服务器将在 http://0.0.0.0:8000 启动。

可用工具

服务器通过MCP协议暴露了以下工具:

get_stock_price

根据股票代码获取当前股票价格。

{
  "tool": "get_stock_price",
  "params": {
    "symbols": "TW.2330,TW.2317"
  }
}

响应将包括请求股票的价格信息,如开盘价、最高价、最低价、收盘价、成交量及其他交易数据。

get_kbars

在指定日期范围内获取股票的K线图(蜡烛图)数据。

{
  "tool": "get_kbars",
  "params": {
    "symbol": "TW.2330",
    "start_date": "2023-12-01",
    "end_date": "2023-12-15"
  }
}

如果未提供start_date,则默认为今天。如果未提供end_date,则默认与start_date相同。

scan_stocks

基于各种排名标准扫描股票。

{
  "tool": "scan_stocks",
  "params": {
    "scanner_type": "VolumeRank",
    "ascending": false,
    "limit": 10
  }
}

支持的扫描器类型:

  • VolumeRank - 按成交量排名
  • AmountRank - 按成交额排名
  • TickCountRank - 按成交笔数排名
  • ChangePercentRank - 按涨跌幅百分比排名
  • ChangePriceRank - 按涨跌金额排名
  • DayRangeRank - 按日波动范围排名

默认限制为20条记录,默认按降序排列(若要升序排列,请将ascending设为true)。

开发

项目结构

mcp-server-shioaji/
├── src/
│   └── mcp_server_shioaji/
│       ├── __init__.py      # Package entry point
│       └── server.py        # MCP server implementation
├── pyproject.toml           # Project metadata and dependencies
└── README.md                # This file

添加新工具

要添加新的Shioaji功能,请修改server.py文件并通过使用@mcp.tool装饰器添加新的工具定义。

许可证

MIT

致谢

  • Shioaji - SinoPac交易API的Python封装
  • MCP - 模型上下文协议

相关 MCP 服务