Skip to main content
Glama
offbeat-studio

Shioaji MCP Server

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_ordercancel_order)預設為停用。設定 SHIOAJI_TRADING_ENABLED=true 來啟用交易功能。

服務條款與合規

  • check_terms_status - 檢查服務條款簽署狀態和 API 測試完成情況

  • run_api_test - 執行服務條款合規的 API 測試(登入和訂單測試)

必要條件

  1. 永豐金證券帳戶:您需要一個永豐金證券帳戶

  2. API 憑證:申請並取得 API Key 和 Secret Key

  3. 服務條款:完成文件簽署和 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 了解如何為此專案貢獻的詳細指南。

  1. Fork 此專案

  2. 建立功能分支

  3. 進行變更並加入測試

  4. 執行程式碼檢查和測試

  5. 提交 Pull Request

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/offbeat-studio/shioaji-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server