Information
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 - 模型上下文协议