Shioaji MCP Server
Acesse a API de negociação Shioaji para dados financeiros e operações de trading, exigindo uma conta na SinoPac Securities.
Documentação
Servidor MCP Shioaji
Fornece um servidor de Protocolo de Contexto de Modelo (MCP) para os recursos da API de negociação Shioaji da Yuanta Securities, acessando funcionalidades de negociação por meio de ferramentas padronizadas.
Chinês Tradicional | English
Recursos
Autenticação e Conexão
get_account_info- Obter informações da conta e status da conexão
Dados de Mercado
search_contracts- Buscar contratos de negociação por palavra-chave, bolsa ou categoriaget_snapshots- Obter snapshots de mercado em tempo real para contratos especificadosget_kbars- Obter dados históricos de candles para contratos
Operações de Negociação
place_order- Enviar ordens de compra/venda com parâmetros especificados (requer permissão)cancel_order- Cancelar ordens existentes por ID da ordem (requer permissão)list_orders- Listar todas as ordens e seus statusget_positions- Obter posições atuais e lucros/perdas (suporta ações, futuros ou todas as contas)get_account_balance- Obter saldos da conta e informações de margem (suporta ações, futuros ou todas as contas)
⚠️ Segurança de Negociação: Operações de negociação (place_order, cancel_order) estão desabilitadas por padrão. Defina SHIOAJI_TRADING_ENABLED=true para habilitar funcionalidades de negociação.
Termos de Serviço e Conformidade
check_terms_status- Verificar status de assinatura dos termos de serviço e conclusão dos testes de APIrun_api_test- Executar testes de API para conformidade dos termos de serviço (testes de login e ordens)
Pré-requisitos
- Conta Yuanta Securities: Você precisa de uma conta Yuanta Securities
- Credenciais de API: Solicite e obtenha a Chave de API e a Chave Secreta
- Termos de Serviço: Complete a assinatura de documentos e testes de API (veja docs/SERVICE_TERMS.md)
Para detalhes sobre imagens Docker usando GitHub Container Registry, consulte docs/CONTAINER_REGISTRY.md.
Instalação e Uso
Usando a imagem Docker pré-construída (recomendado)
Usar a imagem Docker pré-construída do GitHub Container Registry é a maneira mais simples:
# 拉取最新穩定版映像
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
Tags disponíveis
latest- Versão estável mais recente do branch principalvX.Y.Z(comov0.1.0) - Lançamentos de versões específicasdev- Versão de desenvolvimento mais recente (pode conter recursos experimentais)
Recomenda-se usar tags de versões específicas em produção.
Construindo a imagem Docker localmente
Se preferir construir a imagem localmente:
# 建置 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
Configuração do cliente MCP
Adicione a seguinte configuração ao seu cliente 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"
]
}
}
}
Permissões de negociação:
- Defina
SHIOAJI_TRADING_ENABLED=false(padrão) para modo somente leitura - Defina
SHIOAJI_TRADING_ENABLED=truepara habilitar operações de negociação
Exemplo com negociação habilitada:
"-e", "SHIOAJI_TRADING_ENABLED=true"
Para desenvolvimento ou testes, você pode usar a tag dev:
"ghcr.io/musingfox/shioaji-mcp:dev"
Exemplo de cliente Python
Fornecemos um exemplo de cliente Python demonstrando como usar o servidor MCP Shioaji programaticamente:
# 安裝 MCP 客戶端程式庫
pip install mcp-client
# 設定您的 API 憑證
export SHIOAJI_API_KEY=your_api_key
export SHIOAJI_SECRET_KEY=your_secret_key
# 執行範例
./examples/python_client.py
O exemplo demonstra:
- Conectar ao servidor MCP Shioaji
- Obter informações da conta
- Buscar contratos
- Obter dados de mercado em tempo real
- Obter dados históricos de candles
- Recuperar posições e saldos da conta
Veja o código completo em examples/python_client.py.
Desenvolvimento local (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
Guia de Desenvolvimento
Configuração do ambiente
# 安裝開發相依套件
uv sync --extra dev
# 設定環境變數(如需本地開發)
export SHIOAJI_API_KEY=your_api_key
export SHIOAJI_SECRET_KEY=your_secret_key
Testes
# 執行測試
uv run pytest
# 測試覆蓋率
uv run pytest --cov=src/shioaji_mcp
Qualidade do código
# 檢查和格式化程式碼
uv run ruff check --fix src/ tests/
uv run ruff format src/ tests/
# 型別檢查
uv run mypy src/
Desenvolvimento com 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
Arquitetura
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 包裝器
Avisos Importantes
⚠️ API de negociação real
- Este servidor MCP conecta-se à API real da Yuanta Securities
- Todas as operações de negociação executam ordens reais
- Certifique-se de entender os riscos antes de negociar
- Recomenda-se testar primeiro com valores pequenos
- Este software é fornecido "no estado em que se encontra", sem garantias de qualquer tipo
- Os usuários são responsáveis por suas próprias decisões de negociação e conformidade regulatória
⚠️ Compatibilidade
- Python 3.10-3.12
- Recomenda-se executar em ambiente Linux ou Docker
- Usuários de macOS devem usar Docker
Solução de Problemas
Teste de configuração do Docker
Fornecemos um script para testar se sua configuração do Docker é compatível com o servidor MCP Shioaji:
# 使腳本可執行
chmod +x scripts/test_docker_setup.sh
# 執行測試腳本
./scripts/test_docker_setup.sh
Este script verifica a instalação do Docker, status do daemon, permissões, suporte de plataforma e funcionalidade básica.
Problemas de dependências no macOS
# 使用 Docker 解決
docker run --platform=linux/amd64 ...
Problemas de conexão com a 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())"
Licença
Este projeto é licenciado sob a Licença MIT - veja o arquivo LICENSE.
Contribuições
Aceitamos contribuições para melhorar o servidor MCP Shioaji! Consulte CONTRIBUTING.md para obter diretrizes detalhadas sobre como contribuir com este projeto.
- Faça um fork deste projeto
- Crie um branch de funcionalidade
- Faça alterações e adicione testes
- Execute verificações de código e testes
- Envie um Pull Request