Shioaji MCP Server
Access the Shioaji trading API for financial data and trading operations, requiring a SinoPac Securities account.
Shioaji MCP 伺服器
提供永豐金證券 Shioaji 交易 API 功能的模型上下文協議 (MCP) 伺服器,透過標準化工具存取交易功能。
繁體中文 | English
功能特色
身份驗證與連線
get_account_info- 取得帳戶資訊和連線狀態
市場資料
search_contracts- 根據關鍵字、交易所或類別搜尋交易合約get_snapshots- 取得指定合約的即時市場快照get_kbars- 取得合約的歷史 K 線資料
交易操作
place_order- 使用指定參數下單買賣(需要權限)cancel_order- 根據訂單 ID 取消現有訂單(需要權限)list_orders- 列出所有訂單及其狀態get_positions- 取得目前持倉和損益(支援股票、期貨或全部帳戶)get_account_balance- 取得帳戶餘額和保證金資訊(支援股票、期貨或全部帳戶)
⚠️ 交易安全性:交易操作(place_order、cancel_order)預設為停用。設定 SHIOAJI_TRADING_ENABLED=true 來啟用交易功能。
服務條款與合規
check_terms_status- 檢查服務條款簽署狀態和 API 測試完成情況run_api_test- 執行服務條款合規的 API 測試(登入和訂單測試)
必要條件
- 永豐金證券帳戶:您需要一個永豐金證券帳戶
- API 憑證:申請並取得 API Key 和 Secret Key
- 服務條款:完成文件簽署和 API 測試(詳見 docs/SERVICE_TERMS.md)
關於使用 GitHub Container Registry 的 Docker 映像詳細資訊,請參閱 docs/CONTAINER_REGISTRY.md。
安裝與使用
使用預建的 Docker 映像(建議)
使用 GitHub Container Registry 預建的 Docker 映像是最簡單的方式:
# 拉取最新穩定版映像
docker pull ghcr.io/musingfox/shioaji-mcp:latest
# 執行 MCP 伺服器(唯讀模式)
docker run --rm -i --platform=linux/amd64 \
-e SHIOAJI_API_KEY=your_api_key \
-e SHIOAJI_SECRET_KEY=your_secret_key \
-e SHIOAJI_TRADING_ENABLED=false \
ghcr.io/musingfox/shioaji-mcp:latest
# 執行 MCP 伺服器並啟用交易功能
docker run --rm -i --platform=linux/amd64 \
-e SHIOAJI_API_KEY=your_api_key \
-e SHIOAJI_SECRET_KEY=your_secret_key \
-e SHIOAJI_TRADING_ENABLED=true \
ghcr.io/musingfox/shioaji-mcp:latest
可用標籤
latest- 主分支的最新穩定發布版vX.Y.Z(如v0.1.0)- 特定版本發布dev- 最新開發版本(可能包含實驗性功能)
生產環境建議使用特定版本標籤。
本地建置 Docker 映像
如果偏好本地建置映像:
# 建置 Docker 映像
docker build -t shioaji-mcp .
# 執行 MCP 伺服器(唯讀模式)
docker run --rm -i --platform=linux/amd64 \
-e SHIOAJI_API_KEY=your_api_key \
-e SHIOAJI_SECRET_KEY=your_secret_key \
-e SHIOAJI_TRADING_ENABLED=false \
shioaji-mcp
MCP 客戶端設定
在您的 MCP 客戶端中加入以下設定:
{
"mcpServers": {
"shioaji": {
"command": "docker",
"args": [
"run", "--rm", "-i", "--platform=linux/amd64",
"-e", "SHIOAJI_API_KEY=your_api_key",
"-e", "SHIOAJI_SECRET_KEY=your_secret_key",
"-e", "SHIOAJI_TRADING_ENABLED=false",
"ghcr.io/musingfox/shioaji-mcp:latest"
]
}
}
}
交易權限:
- 設定
SHIOAJI_TRADING_ENABLED=false(預設)為唯讀模式 - 設定
SHIOAJI_TRADING_ENABLED=true啟用交易操作
啟用交易的範例:
"-e", "SHIOAJI_TRADING_ENABLED=true"
開發或測試時,您可以使用 dev 標籤:
"ghcr.io/musingfox/shioaji-mcp:dev"
Python 客戶端範例
我們提供 Python 客戶端範例,示範如何程式化使用 Shioaji MCP 伺服器:
# 安裝 MCP 客戶端程式庫
pip install mcp-client
# 設定您的 API 憑證
export SHIOAJI_API_KEY=your_api_key
export SHIOAJI_SECRET_KEY=your_secret_key
# 執行範例
./examples/python_client.py
範例展示:
- 連接到 Shioaji MCP 伺服器
- 取得帳戶資訊
- 搜尋合約
- 取得即時市場資料
- 取得歷史 K 線資料
- 檢索持倉和帳戶餘額
完整程式碼詳見 examples/python_client.py。
本地開發(Linux/WSL)
# 複製專案
git clone <repository-url>
cd shioaji-mcp
# 安裝相依套件
uv sync
# 設定環境變數
export SHIOAJI_API_KEY=your_api_key
export SHIOAJI_SECRET_KEY=your_secret_key
# 執行 MCP 伺服器
uv run python -m shioaji_mcp.server
開發指南
環境設定
# 安裝開發相依套件
uv sync --extra dev
# 設定環境變數(如需本地開發)
export SHIOAJI_API_KEY=your_api_key
export SHIOAJI_SECRET_KEY=your_secret_key
測試
# 執行測試
uv run pytest
# 測試覆蓋率
uv run pytest --cov=src/shioaji_mcp
程式碼品質
# 檢查和格式化程式碼
uv run ruff check --fix src/ tests/
uv run ruff format src/ tests/
# 型別檢查
uv run mypy src/
Docker 開發
# 建置開發 Docker 映像
docker build -t shioaji-mcp-dev .
# 測試 Docker 容器
docker run --rm -i --platform=linux/amd64 \
-e SHIOAJI_API_KEY=test_key \
-e SHIOAJI_SECRET_KEY=test_secret \
shioaji-mcp-dev
架構
src/shioaji_mcp/
├── server.py # MCP 伺服器主程式
├── tools/ # 工具模組
│ ├── contracts.py # 合約搜尋
│ ├── market_data.py # 市場資料
│ ├── orders.py # 訂單操作
│ ├── positions.py # 持倉查詢
│ └── terms.py # 服務條款
└── utils/ # 工具程式
├── auth.py # 身份驗證管理
├── formatters.py # 資料格式化
└── shioaji_wrapper.py # Shioaji 包裝器
重要注意事項
⚠️ 真實交易 API
- 此 MCP 伺服器連接到真實的永豐金證券 API
- 所有交易操作都會執行真實訂單
- 請確保您在交易前了解風險
- 建議先以小額進行測試
- 本軟體以「現況」提供,不提供任何形式的保證
- 使用者需負責自己的交易決策和法規遵循
⚠️ 相容性
- Python 3.10-3.12
- 建議在 Linux 環境或 Docker 中執行
- macOS 使用者應使用 Docker
故障排除
Docker 設定測試
我們提供腳本來測試您的 Docker 設定是否與 Shioaji MCP 伺服器相容:
# 使腳本可執行
chmod +x scripts/test_docker_setup.sh
# 執行測試腳本
./scripts/test_docker_setup.sh
此腳本檢查 Docker 安裝、守護程序狀態、權限、平台支援和基本功能。
macOS 相依性問題
# 使用 Docker 解決
docker run --platform=linux/amd64 ...
API 連線問題
# 檢查環境變數
echo $SHIOAJI_API_KEY
echo $SHIOAJI_SECRET_KEY
# 檢查 API 憑證是否有效
docker run --rm -i --platform=linux/amd64 \
-e SHIOAJI_API_KEY=your_key \
-e SHIOAJI_SECRET_KEY=your_secret \
shioaji-mcp python -c "from shioaji_mcp.utils.auth import auth_manager; print(auth_manager.is_connected())"
授權條款
本專案採用 MIT 授權條款 - 詳見 LICENSE 檔案。
貢獻
我們歡迎貢獻來改善 Shioaji MCP 伺服器!請參閱 CONTRIBUTING.md 了解如何為此專案貢獻的詳細指南。
- Fork 此專案
- 建立功能分支
- 進行變更並加入測試
- 執行程式碼檢查和測試
- 提交 Pull Request
Related Servers
Crypto Price & Market Analysis (JJ Fork)
Provides real-time cryptocurrency price data, market analysis, and historical trends using the CoinCap API.
MCP Wallet Service
An MCP server that provides wallet balance checking capabilities.
Public Data Portal Short-term Forecast
Provides current weather information using the Korea Meteorological Administration's short-term forecast API.
通胜 MCP 服务
Provides Chinese Tung Shing (almanac) data, including calendar conversions, auspicious activities, and traditional metaphysical elements.
Time MCP Server
Provides current time and timezone conversion capabilities using IANA timezone names, with automatic system timezone detection.
Texas Holdem MCP Server
A Texas Hold'em poker game server with an MCP API, built using Node.js and TypeScript.
OSINT MCP
Real-time OSINT intelligence platform for global security monitoring.
MB's Personal MCP Server
A personal server for MB Crosier providing biography, contact information, and social links.
Phone Carrier Detector
Detects Chinese mobile phone carriers, including China Mobile, China Unicom, China Telecom, and virtual operators.
Weather
Provides real-time weather information for any location.