Skip to main content

MCP server for trading signal analysis, position monitoring, and market regime detection

Project description

oneqaz-trading-mcp

MCP server for trading signals, market regime detection, position monitoring, Fear & Greed index, and cross-market pattern analysis. Supports crypto, US stocks, and Korean stocks.

Keywords: MCP, trading, signals, market analysis, regime, portfolio, sentiment, technical analysis, crypto, stocks, Fear & Greed, cross-market, Claude, model context protocol

Features

  • 8 Resource categories: Global regime, market status, market structure, indicators (Fear & Greed), signals, external context (news/events), unified context, derived signals
  • 4 Tool types: Trade history, positions, signals, and trading decisions — all with filtering and sorting
  • Multi-market: Supports crypto, Korean stocks (KR), and US stocks
  • SQLite-based: No external database server required
  • Stateless HTTP: Compatible with any MCP client

Quick Start

Install

pip install oneqaz-trading-mcp

Initialize sample data

oneqaz-trading-mcp init

This creates sample SQLite databases with demo trading data so you can test immediately.

Start the server

oneqaz-trading-mcp serve

Server starts at http://localhost:8010 by default.

  • Swagger UI: http://localhost:8010/docs
  • MCP endpoint: http://localhost:8010/mcp

Connect from Claude

Add to your Claude MCP config:

{
  "mcpServers": {
    "oneqaz-trading": {
      "url": "http://localhost:8010/mcp"
    }
  }
}

Use Cases

1. Ask Claude about market conditions

Once connected, just ask Claude in natural language:

You: "What's the current market regime for crypto?"

Claude reads market://crypto/status and responds:
  "Crypto is currently in a sideways_bullish regime.
   Fear & Greed index is at 68 (Greed).
   3 active BUY signals with avg score 0.78."
You: "Show me the best performing positions in US stocks"

Claude calls get_positions(market_id="us_stock", sort_by="roi", sort_order="desc") and responds:
  "Top positions:
   1. NVDA — +12.3% ROI (trend_continuation strategy)
   2. AAPL — +8.1% ROI (breakout strategy)
   3. MSFT — +5.4% ROI (momentum strategy)"
You: "Any macro risks I should know about?"

Claude reads market://global/summary and responds:
  "Global regime: neutral (score: 0.12)
   - Bonds: bearish, rising yields
   - VIX: elevated, risk_level=high
   - Commodities: bullish, gold at ATH
   Recommendation: defensive positioning suggested."

2. Build an AI trading assistant

Connect the MCP server to your own AI application:

# Your AI app reads market intelligence from OneQAZ
regime = mcp.read("market://crypto/status")
signals = mcp.call("get_signals", market_id="crypto", min_score=0.7)
fear_greed = mcp.read("market://indicators/fear-greed")

# Your AI decides what to do with this context
prompt = f"""
  Market regime: {regime}
  High-confidence signals: {signals}
  Sentiment: {fear_greed}

  Should the user buy, hold, or sell?
"""

3. Cross-market analysis

You: "Compare crypto vs US stock market conditions"

Claude reads:
  - market://crypto/status
  - market://us_stock/status
  - market://unified/cross-market

Claude: "Crypto is bullish while US stocks are neutral.
   Cross-market correlation is weakening — crypto is
   decoupling from equity risk sentiment.
   This pattern historically precedes crypto outperformance."

4. Signal monitoring

You: "What BUY signals fired in the last 24 hours for Korean stocks?"

Claude calls get_signals(market_id="kr_stock", action_filter="BUY"):
  "12 BUY signals in KR market:
   - Samsung (005930): score 0.85, trend_continuation
   - SK Hynix (000660): score 0.79, breakout
   - POSCO (005490): score 0.71, mean_reversion
   ..."

Sample Response

Reading market://crypto/status returns:

{
  "market_id": "crypto",
  "regime": {
    "stage": "sideways_bullish",
    "score": 0.42,
    "confidence": 0.78
  },
  "positions": {
    "total": 5,
    "long": 4,
    "short": 1,
    "avg_roi": 3.2
  },
  "signals_24h": {
    "buy": 8,
    "sell": 3,
    "hold": 12,
    "avg_score": 0.65
  },
  "_llm_summary": "Crypto market is sideways_bullish. 5 active positions (avg ROI +3.2%). 8 BUY signals in last 24h."
}

Configuration

All configuration is via environment variables:

Variable Default Description
MCP_SERVER_PORT 8010 Server port
MCP_SERVER_HOST 0.0.0.0 Bind host
MCP_LOG_LEVEL INFO Log level
DATA_ROOT Auto-detect Root directory for all data
MCP_COIN_DATA_DIR {DATA_ROOT}/market/coin_market/data_storage Crypto data directory
MCP_KR_DATA_DIR {DATA_ROOT}/market/kr_market/data_storage KR stock data directory
MCP_US_DATA_DIR {DATA_ROOT}/market/us_market/data_storage US stock data directory
MCP_EXTERNAL_CONTEXT_DATA_DIR {DATA_ROOT}/external_context/data_storage External context directory
MCP_GLOBAL_REGIME_DATA_DIR {DATA_ROOT}/market/global_regime/data_storage Global regime directory

Resources

Resource URI Description
market://health Server health check
market://global/summary Global macro regime summary
market://global/category/{category} Per-category analysis (bonds, commodities, forex, vix, credit, liquidity, inflation)
market://global/categories Available categories list
market://structure/all All markets ETF/basket structure
market://{market_id}/structure Per-market structure analysis
market://{market_id}/status Market status (regime, positions, performance)
market://{market_id}/positions/snapshot Current positions snapshot
market://all/summary All markets combined summary
market://indicators/fear-greed Fear & Greed Index
market://indicators/context Combined market context
market://{market_id}/signals/summary Signal summary (24h aggregation)
market://{market_id}/signals/feedback Signal pattern feedback
market://{market_id}/signals/roles Role-based signal summary
market://{market_id}/external/summary External context (news, events, fundamentals)
market://{market_id}/external/symbol/{symbol} Per-symbol external context
market://{market_id}/unified/symbol/{symbol} Unified technical + external context
market://{market_id}/unified Market-level unified context
market://unified/cross-market Cross-market pattern analysis

Market IDs: crypto, kr_stock, us_stock (aliases: coin, kr, us)

Tools

Tool Parameters Description
get_trade_history market_id, limit, action_filter, min_pnl, max_pnl, hours_back Query trade history with filters
get_positions market_id, min_roi, max_roi, strategy, sort_by, sort_order, limit Query open positions
get_signals market_id, symbol, min_score, max_score, action_filter, interval Query trading signals
get_latest_decisions market_id, limit, decision_filter, hours_back Query recent trading decisions

Docker

docker build -t oneqaz-trading-mcp .
docker run -p 8010:8010 oneqaz-trading-mcp

Data Directory Structure

{DATA_ROOT}/
├── market/
│   ├── global_regime/data_storage/
│   │   ├── global_regime_summary.json
│   │   └── {bonds,commodities,forex,vix,...}_analysis.db
│   ├── coin_market/data_storage/
│   │   ├── trading_system.db
│   │   ├── signals/{symbol}_signal.db
│   │   └── regime/market_structure_summary.json
│   ├── kr_market/data_storage/  (same structure)
│   └── us_market/data_storage/  (same structure)
└── external_context/data_storage/
    ├── coin_market/external_context.db
    ├── kr_market/external_context.db
    └── us_market/external_context.db

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oneqaz_trading_mcp-0.1.3.tar.gz (61.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oneqaz_trading_mcp-0.1.3-py3-none-any.whl (71.3 kB view details)

Uploaded Python 3

File details

Details for the file oneqaz_trading_mcp-0.1.3.tar.gz.

File metadata

  • Download URL: oneqaz_trading_mcp-0.1.3.tar.gz
  • Upload date:
  • Size: 61.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for oneqaz_trading_mcp-0.1.3.tar.gz
Algorithm Hash digest
SHA256 cec2479d15bbec4ea9a61213082223bc7aded4a37e6bfde9064a4530ff983a53
MD5 99e869f07d09db0f0151a0bafe61b6ad
BLAKE2b-256 053f211a296b068b7d2dbb035e378acd85197b00c94323996f583a047b68d9ca

See more details on using hashes here.

File details

Details for the file oneqaz_trading_mcp-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for oneqaz_trading_mcp-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 8e828fe0f2258583363f59f182fe9fcdefe9cecf14bba76f1d3c78b9f253d3c0
MD5 e8f4a7f4502410532ca5610c170dfcca
BLAKE2b-256 0e86161790abf36f68c699850f61fff4d7569e5b741eb29929a84fff7aa464bf

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page