Skip to main content
Glama
oneqaz-trading

oneqaz-trading-mcp

Official

oneqaz-trading-mcp

The context layer for financial AI.

Your AI agent shouldn't just see prices — it should understand what regime the market is in, which signals are actually working right now, and how macro flows down to individual assets.

OneQAZ provides this as a single MCP endpoint. Crypto, US stocks, Korean stocks. 1,100+ symbols. 24/7 live.

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

Why OneQAZ

Financial data APIs are everywhere. Market intelligence is not.

Typical financial MCP

OneQAZ

Price / OHLCV data

Technical indicators

Regime detection (trending / ranging / volatile)

Self-correcting signals (weighted by real outcomes)

Macro → ETF → Individual context chain

Live 24/7 cloud API

Signal weights are adjusted continuously based on actual trade outcomes per regime via Thompson Sampling — not static indicator thresholds. Every response includes an _llm_summary field optimized for AI consumption.

Related MCP server: fathom-fyi

What your AI gets

  • Regime detection: Is the market trending, ranging, or volatile? Per-market and global

  • Self-correcting signals: 1,100+ symbols scored by Thompson Sampling on actual trade outcomes

  • Macro context chain: Global regime → bonds/forex/VIX/commodities → ETF/basket → individual symbol

  • External context: News events, fundamentals, cross-market correlation — pre-processed for LLM consumption

  • 19 Resources + 4 Tools: Stateless HTTP, compatible with any MCP client

  • _llm_summary on every response: Human-readable text summary optimized for AI agent context windows

Market Coverage

Market

Exchange

Universe

Symbols

Crypto

Bithumb

All listed pairs

~440+

Korean Stocks

KOSPI/KOSDAQ

KOSPI 200

~200

US Stocks

NYSE/NASDAQ

S&P 500

~500

All symbols are monitored 24/7 with automated signal generation, regime detection, and virtual trading.

Quick Start

Option 1: Live API — no install needed

Real-time data, updated every minute.

{
  "mcpServers": {
    "oneqaz-trading": {
      "url": "https://api.oneqaz.com/mcp"
    }
  }
}

Ask Claude: "What's the current market regime?"

Option 2: Local (demo data)

pip install oneqaz-trading-mcp
oneqaz-trading-mcp init    # creates sample SQLite databases
oneqaz-trading-mcp serve   # starts at http://localhost:8010
  • Swagger UI: http://localhost:8010/docs

  • MCP endpoint: http://localhost:8010/mcp

Then connect from Claude:

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

Use Cases

1. Give your AI agent market awareness

Connect OneQAZ and your agent understands market context without you building the pipeline:

# Your agent reads regime + signals + macro in one call
context = mcp.read("market://crypto/unified")

# Or go granular
regime = mcp.read("market://crypto/status")          # what phase is the market in?
signals = mcp.call("get_signals", market_id="crypto", min_score=0.7)  # what's working now?
macro = mcp.read("market://global/summary")           # what's driving this from above?

# Feed to your agent's decision layer
prompt = f"""
  Regime: {regime}
  High-confidence signals: {signals}
  Macro context: {macro}

  Recommend portfolio action.
"""

2. Build a regime-aware trading system

Your AI reacts differently based on market state — no hardcoded rules:

regime = mcp.read("market://us_stock/status")
structure = mcp.read("market://us_stock/structure")

if regime["regime"]["stage"] == "volatile":
    signals = mcp.call("get_signals", market_id="us_stock", action_filter="DEFENSIVE")
else:
    signals = mcp.call("get_signals", market_id="us_stock", min_score=0.7)

3. Cross-market macro→micro analysis

Trace how macro shifts flow into individual assets:

# Macro layer
global_regime = mcp.read("market://global/summary")
bonds = mcp.read("market://global/category/bonds")

# Cross-market correlation
cross = mcp.read("market://unified/cross-market")

# Down to individual symbol with full context chain
symbol_ctx = mcp.read("market://us_stock/unified/symbol/NVDA")

4. Ask Claude directly

Already using Claude? Just connect and ask:

"What's the current market regime for crypto?"
"Show me the best performing positions in US stocks"
"Any macro risks I should know about?"
"Compare crypto vs US stock conditions"

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

Rate Limits

The live API (api.oneqaz.com/mcp) has rate limits to ensure fair usage:

Limit

Value

Description

Daily quota

1,500 requests/IP

Resets every 24 hours

Burst limit

30 requests/min/IP

Prevents overloading

What this means:

  • Monitor 2-3 symbols all day: ~500-800 requests → no problem

  • Scan entire market once: ~1,200-1,500 requests → fits in daily quota

  • Exceeding limits returns HTTP 429 with Retry-After header

Response headers on every request:

  • X-RateLimit-Daily-Remaining: requests left today

  • X-RateLimit-Minute-Remaining: requests left this minute

Local self-hosted servers (localhost) have no rate limits.

Disclaimer

This software is provided for informational and educational purposes only. It is not financial advice.

  • All signals, regime analysis, and market data are generated by automated systems and may contain errors.

  • Past performance does not guarantee future results.

  • You are solely responsible for your own investment decisions. The authors and contributors are not liable for any financial losses incurred from using this software.

  • This is not a registered investment advisor, broker-dealer, or financial planner.

  • Always do your own research (DYOR) before making any investment decisions.

By using this software, you acknowledge that you understand and accept these terms.

License

MIT

A
license - permissive license
-
quality - not tested
D
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/oneqaz-trading/oneqaz-trading-mcp'

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