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.2.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.2-py3-none-any.whl (71.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: oneqaz_trading_mcp-0.1.2.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.2.tar.gz
Algorithm Hash digest
SHA256 661d75e2c147a559e2eb458807d33e8e8ca5be0f9fa8352fbe08d92541a96b82
MD5 634f76647408a477061f390d9d876eb7
BLAKE2b-256 5b49b81acd76628fa1da69324ed04dd497fcfdbee0c9ed75a21327a4d6ab5b3f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for oneqaz_trading_mcp-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6ccd4b6d05881b1bbaca27dc97736b98990b8d2e1bac389284529a56738b9be9
MD5 d8c10e14ac9214efe7b3f6acf6b3a9e2
BLAKE2b-256 5dcc066db9b09b3a58668af5a5ac56db9f807c717fcdb9c04a9067beaf15ebe3

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