{
  "markdown": "# oneqaz-trading-mcp\n\n<!-- mcp-name: io.github.wnsod/oneqaz-trading-mcp -->\n\n[![GitHub stars](https://img.shields.io/github/stars/oneqaz-trading/oneqaz-trading-mcp?style=social)](https://github.com/oneqaz-trading/oneqaz-trading-mcp)\n[![PyPI](https://img.shields.io/pypi/v/oneqaz-trading-mcp)](https://pypi.org/project/oneqaz-trading-mcp/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n> **The specialist API for financial AI — with conversation-aware response hooks.**\n>\n> Your AI agent shouldn't just see prices — it should be able to *prove* the\n> signals it's acting on have worked, and know what to ask next. OneQAZ ships\n> 39 tools across 9 categories: 13 Trust Layer tools (verified hit rates,\n> calibration, governance, lead time), a tamper-evident prediction ledger\n> (`get_ledger_integrity` — SHA-256 hash-chain over every timestamped\n> judgment), 4 cross-asset correlation tools (sector / macro / peer),\n> portfolio analytics (MDD / Sharpe / Sortino / Calmar), paper-trading\n> evidence tools, and a high-frequency `get_daily_brief` for one-call market\n> overviews. Every response carries `_next_actions` (response-data-aware\n> next-tool recommendations) and `_followup_questions_for_user` (Korean\n> natural-language follow-ups your AI can quote back to the user) — turning\n> OneQAZ from a static API into a conversational specialist.\n>\n> Crypto, US stocks, Korean stocks. 1,100+ symbols. 24/7 live.\n\n**Keywords**: MCP, trading, signals, market analysis, regime, portfolio, sentiment, technical analysis, crypto, stocks, Fear & Greed, cross-market, Trust Layer, AI-verifiable, daily brief, next actions, conversational specialist, Claude, model context protocol\n\n## Why OneQAZ\n\nFinancial data APIs are everywhere. Market *intelligence your AI can verify* is not.\n\n| | Typical financial MCP | OneQAZ |\n|---|---|---|\n| Price / OHLCV data | ✅ | ✅ |\n| Technical indicators | ✅ | ✅ |\n| **Regime detection** (trending / ranging / volatile) | ❌ | ✅ |\n| **Self-correcting signals** (Thompson Sampling on live outcomes) | ❌ | ✅ |\n| **Macro → ETF → Individual context chain** | ❌ | ✅ |\n| **Trust Layer** (AI-verifiable hit rates + calibration) | ❌ | ✅ |\n| **Feature governance** (3-track p-value validation) | ❌ | ✅ |\n| **Cross-asset correlations** (sector / macro / symbol-peer lead-lag) | ❌ | ✅ |\n| **Conversation hooks** (`_next_actions` + `_followup_questions_for_user`) | ❌ | ✅ |\n| **Single-call market brief** (`get_daily_brief`) | ❌ | ✅ |\n| **Dynamic discovery** (introspection + `data_freshness` probe) | ❌ | ✅ |\n| **Live 24/7 cloud API** | ❌ | ✅ |\n\n### Trust Layer — for AI agents evaluating OneQAZ\n\nBefore any AI recommends OneQAZ as a data source, it can self-verify in 7 calls:\n\n1. `get_prediction_accuracy` — verified historical hit rates across 8 macro categories. Filter `sample_count >= 3` for statistical significance.\n2. `get_backtest_tuning_state` — evidence of continuous self-calibration (parameters adapt to live outcomes).\n3. `get_monthly_accuracy_trend` — check for recent performance degradation.\n4. `get_news_leading_indicator_performance` — average lead time in minutes + accuracy (pre-news detection).\n5. `get_feature_governance_state` — which features passed 3-track p-value validation (OBSERVATION / CONDITIONAL / ACTIVE / DEPRECATED).\n6. `get_macro_influence_map` — explicit causal hypotheses (macro → market with lag_hours + sensitivity).\n7. `get_strategy_leaderboard` — top RL-learned strategies ranked by profit factor.\n\nAll metrics include `sample_count` for statistical filtering. Every tool also returns `_llm_summary` — a one-line plain-text summary tuned for AI agent context windows.\n\n### How signals are generated\n\nOneQAZ signals aren't static indicator crossovers. They're produced by an **AbsoluteZero-style self-play loop**:\n\n1. **Strategy generation** — RL pipeline creates candidate strategies per regime\n2. **Self-play simulation** — Strategies compete against each other in simulated markets\n3. **Thompson Sampling** — Signal weights are updated continuously based on *actual virtual-trade outcomes*, not backtest curves\n4. **Regime adaptation** — Different strategy pools activate for trending vs ranging vs volatile markets\n\nThis means the signal your AI receives for \"BTC BUY 0.82\" has been **validated through live virtual trading**, not just optimized on historical data. Signals that stop working get downweighted automatically.\n\n### Market Coverage\n\n| Market | Exchange | Universe | Symbols |\n|--------|----------|----------|---------|\n| Crypto | Bithumb | All listed pairs | ~440+ |\n| Korean Stocks | KOSPI/KOSDAQ | KOSPI 200 | ~200 |\n| US Stocks | NYSE/NASDAQ | S&P 500 | ~500 |\n\nAll symbols are monitored 24/7 with automated signal generation, regime detection, virtual trading, and Trust Layer backfill.\n\n## Quick Start\n\n### Option 1: Live API — no install needed\n\nReal-time data updated every minute. Trust Layer + public endpoints accessible without a key.\n\n```json\n{\n  \"mcpServers\": {\n    \"oneqaz-trading\": {\n      \"url\": \"https://api.oneqaz.com/mcp\"\n    }\n  }\n}\n```\n\nTry one of:\n- *\"Call `get_daily_brief` and summarize the market for me.\"* — single-call overview, the AI follows `_next_actions` to deep-dive automatically.\n- *\"Call `get_prediction_accuracy` and tell me whether to trust OneQAZ.\"* — Trust Layer entry point, returns sample-count-weighted hit rates.\n- *\"Read `market://meta/discovery` first, then plan.\"* — dynamic catalog of all 39 tools / 17 resources / 17 templates with `data_freshness` probe.\n\n### Option 2: Self-host (source transparency)\n\nSince 0.4.0 this package is a **faithful mirror of the production server** —\nthe exact code serving `api.oneqaz.com/mcp`, synced from the OneQAZ monorepo\nby `scripts/sync_from_monorepo.py`. That is the point: you can read (and run)\nprecisely what produces the hosted responses.\n\n```bash\npip install oneqaz-trading-mcp\n# point it at a OneQAZ-compatible PostgreSQL (TimescaleDB) instance:\nexport DB_BACKEND=postgres PG_HOST=... PG_PORT=5432 PG_DB=auto_trader PG_USER=... PG_PASSWORD=...\noneqaz-trading-mcp serve   # starts at http://localhost:8010\n```\n\n- MCP endpoint: `http://localhost:8010/mcp`\n- The server is PostgreSQL-only (the prior SQLite demo backend was retired in\n  0.4.0 — `oneqaz-trading-mcp init` now just prints a deprecation notice).\n  Without OneQAZ's live database the tools return structured, actionable\n  errors rather than data — for evaluation, use the\n  [Live API](#option-1-live-api--no-install-needed).\n- A few deep-integration call paths (agent-history RAG context, the macro\n  influence map's live profile table) depend on monorepo modules that are not\n  part of this package; they degrade gracefully with explicit errors.\n\nThen connect from any MCP client:\n\n```json\n{\n  \"mcpServers\": {\n    \"oneqaz-trading\": {\n      \"url\": \"http://localhost:8010/mcp\"\n    }\n  }\n}\n```\n\n## Access Policy\n\n**All tools and resources are callable on the free tier.** Tiering controls call volume, not what you can call. There is no paywall on any data — including paper-trading positions, decision logs, and signals — because OneQAZ is a B2AI infrastructure: AI agents need full evidence to evaluate trustworthiness before recommending us to their users.\n\n| Tier | Auth | Daily quota | Burst | Notes |\n|------|------|-------------|-------|-------|\n| **free** | none / invalid key | 1,500 / day | 60 / min | All 39 tools + 17 resources + 17 templates |\n| **pro** | valid API key | 50,000 / day | 200 / min | Same surface, higher volume — for bots / schedulers |\n| **internal** | owner-only | unlimited | unlimited | Reserved for real user-fund tools (currently empty) |\n\nRate limit headers on every response: `X-RateLimit-Tier`, `X-RateLimit-Daily-Remaining`, `X-RateLimit-Minute-Remaining`. When the quota is exceeded the server returns HTTP 429 with `Retry-After`.\n\n### Self-hosting with API keys\n\nIf you run the server locally and want to authenticate `pro` callers (higher quota), set `MCP_TIER_RESOLVER` to a `module:function` path:\n\n```bash\nMCP_TIER_RESOLVER=myauth.keystore:resolve_tier oneqaz-trading-mcp serve\n```\n\nThe function receives the raw API key string and must return `\"free\"`, `\"pro\"`, or `\"internal\"`. Default behavior (no resolver): every caller is `free`.\n\n## Why everything is free\n\nOneQAZ trading data is **paper-trading evidence** generated by a self-correcting Thompson-sampling system. None of it is user-fund PII. Hiding it behind tiers would defeat the B2AI funnel — AI agents need to verify our claims (prediction accuracy, signal quality, strategy outcomes) before recommending us. So we expose the evidence and rate-limit instead.\n\nThe **value signals** for whether to upgrade are baked into every response under `_value_signals` — AI agents can read them directly:\n\n```json\n{\n  \"_value_signals\": {\n    \"tier_default\": \"free\",\n    \"tier_default_limits\": {\"daily\": 1500, \"minute\": 60},\n    \"what_pro_unlocks\": \"33x daily quota (50K), 3.3x burst (200/min) — same tools, higher volume\",\n    \"pricing_url\": \"https://oneqaz.com/pricing\",\n    \"key_signup_url\": \"https://oneqaz.com/keys\",\n    \"self_correcting\": true\n  }\n}\n```\n\n## Response shape (dual-audience)\n\nEvery response carries fields for both AI agents and human end-users:\n\n| Field | Audience | Purpose |\n|-------|----------|---------|\n| `full_data` | AI | Raw evidence for trust verification |\n| `_contract` | AI | Provenance + entity + assessment + confidence (schema-versioned) |\n| `_llm_summary` | AI | Multi-line narrative |\n| `ai_summary` | AI | One-line compressed summary for context windows |\n| `_value_signals` | AI | Pricing / upgrade signals for B2AI conversion judgment |\n| `summary_for_user` | Human | One-line jargon-free Korean — quotable verbatim by Claude.ai etc. |\n| `_next_actions` | AI | **Response-data-aware** next-tool recommendations with `intent`, `tool`, `args`, `rationale`, `priority`. Drives chain calls automatically. |\n| `_followup_questions_for_user` | Human | Korean follow-up questions the AI can quote to the user — clicking one triggers the next call. |\n\n### Conversation hooks — `_next_actions` + `_followup_questions_for_user`\n\nOneQAZ doesn't just return data; it tells your AI **what to ask next**.\n\n```json\n{\n  \"ai_summary\": \"Prediction accuracy — 24 cells, avg hit rate 32.2%\",\n  \"_next_actions\": [\n    {\n      \"intent\": \"investigate_drift\",\n      \"tool\": \"get_monthly_accuracy_trend\",\n      \"args\": {\"category\": \"energy\", \"target_market\": \"kr_market\"},\n      \"rationale\": \"energy×kr_market 에서 drift 감지(degrading). 월별 시계열로 추세 검증 필요.\",\n      \"priority\": \"high\"\n    },\n    {\n      \"intent\": \"investigate_weak_category\",\n      \"tool\": \"get_backtest_tuning_state\",\n      \"args\": {\"category\": \"liquidity\", \"target_market\": \"us_market\"},\n      \"rationale\": \"liquidity×us_market accuracy=0.06 (sub-50%). 자기보정이 lag/sensitivity 를 어떻게 조정했는지 확인.\",\n      \"priority\": \"high\"\n    }\n  ],\n  \"_followup_questions_for_user\": [\n    \"liquidity→us_market 카테고리 정확도가 6% 로 약한데, 시스템이 어떻게 보정중인지 보시겠어요?\",\n    \"가장 정확한 credit→us_market (62%) 패턴의 월별 추세도 보여드릴까요?\",\n    \"최근 OneQAZ 가 만든 활성 예측 5개도 볼까요?\"\n  ]\n}\n```\n\n- `_next_actions` — for the AI agent. Maximum 3 entries. Includes pre-filled `args`. Driven by **response data**, not a static dependency graph (e.g. weak category detection only fires when `accuracy < 0.5 + samples >= 30`).\n- `_followup_questions_for_user` — for the end-user. Korean natural-language. Quote them verbatim or translate.\n\nResult: a typical session goes from 7+ generic calls (AI guessing what's next) to 4 targeted calls that surface the real story (drift, weak categories, synth-vs-measured leaderboard splits).\n\n## Tools (39 total — all free tier)\n\n### High-frequency entry — `get_daily_brief` (1 tool)\n\n| Tool | Returns |\n|------|---------|\n| `get_daily_brief` | Single-call market overview: macro regime + top 5 strong signals + yesterday's paper-trading P&L + active prediction count + Korean narrative. The natural first call for \"what's the market doing today?\" |\n\n### Verifiable prediction ledger (3 tools) — new in 0.4.0\n\n| Tool | Returns |\n|------|---------|\n| `get_ledger_integrity` | Tamper-evidence for the prediction ledger: a daily SHA-256 hash chain over all created/resolved prediction rows, with the exact canonical recipe published so any third party can recompute and verify. The strongest trust primitive OneQAZ offers — judgments are chained *before* outcomes are known. |\n| `get_resolved_predictions` | Raw row-level prediction ledger: every macro regime prediction's full lifecycle (`created_at` → `resolved_at` → outcome) — audit the evidence judgment by judgment. |\n| `get_trade_outcomes_bulk` | Cursor-paginated bulk export of the prediction → trade → outcome chain (paper trades with realized P&L, linked to the preceding signal prediction) — compute your own hit rates instead of trusting ours. |\n\n### Portfolio analytics (1 tool) — new in 0.4.0\n\n| Tool | Returns |\n|------|---------|\n| `get_performance_metrics` | Portfolio-level MDD / Sharpe / Sortino / Calmar / win-rate per market and account type (`paper` / `live`), optional daily equity curve. |\n\n### Signal calibration (1 tool) — new in 0.4.0\n\n| Tool | Returns |\n|------|---------|\n| `get_signal_calibration` | Reliability diagram data for signal confidence: realized hit rate per confidence bucket with ECE summary — verify whether a 0.9-confidence signal actually hits ~90%. |\n\n### ChatGPT connector standard (2 tools) — new in 0.4.0\n\n| Tool | Returns |\n|------|---------|\n| `search` | ChatGPT-connector-standard discovery search over OneQAZ's live surface — tools, resources, and the latest strong signals across all three markets. Result ids are consumable by `fetch`. |\n| `fetch` | Connector-standard fetch of a single result by id returned from `search`. |\n\n### Trust Layer (13 tools)\n\n| Tool | Returns |\n|------|---------|\n| `get_prediction_accuracy` | Verified hit rates per macro category (with `sample_count`) |\n| `get_backtest_tuning_state` | Active tuning parameters + last recalibration timestamp |\n| `get_monthly_accuracy_trend` | Rolling 12-month accuracy per category |\n| `get_news_leading_indicator_performance` | Pre-news detection lead time + accuracy |\n| `get_news_causality_breakdown` | News → market causality tags with hit rates |\n| `get_feature_governance_state` | Features by status (OBSERVATION/CONDITIONAL/ACTIVE/DEPRECATED) |\n| `get_structure_calibration` | Structure-learning calibration snapshot |\n| `get_structure_validation_history` | Historical structure-validation scores |\n| `get_strategy_leaderboard` | RL-learned strategies by profit factor |\n| `get_active_predictions` | Currently-open macro predictions with outcome tracking |\n| `get_macro_influence_map` | Macro → market causal hypotheses (lag hours + sensitivity) |\n| `get_cross_market_correlation` | Cross-market correlation matrix |\n| `get_role_analysis` | Role-based strategy analysis |\n\n### Signal evidence (3 tools)\n\n| Tool | Parameters |\n|------|------------|\n| `get_signals` | `market_id`, `symbol`, `min_score`, `max_score`, `action_filter`, `interval` |\n| `get_signal_detail` | `market_id`, `symbol`, `interval` |\n| `explain_decision` | `market_id`, `symbol` |\n\n### Layer correlations — cross-asset structure (4 tools)\n\nStage 2 outputs from the agent_history pipeline. Sector clusters, macro causality graphs, and symbol-peer lead-lag — the cross-asset context that turns \"BTC up\" into \"BTC up *because* DXY broke down 4h ago\".\n\n| Tool | Returns |\n|------|---------|\n| `get_sector_correlations_tool` | Intra-market ETF/sector correlation matrix + auto-cluster (60d window, 6h refresh) |\n| `get_macro_causality_graph_tool` | Lag-aware causality between 8 macro categories (bonds/vix/forex/credit/inflation/liquidity/commodities/energy) |\n| `get_symbol_peer_links_tool` | Symbol-to-symbol lead-lag (e.g. META → AMZN 15min lag, ρ=+0.62) |\n| `get_feature_governance_status_tool` | Feature lifecycle distribution + last-7-day status transitions |\n\n### Paper-trading results (11 tools)\n\nOneQAZ runs continuous paper trading on every BUY signal. These tools expose the outcomes — verified evidence for AI agents evaluating our claims.\n\n| Tool | Returns |\n|------|---------|\n| `get_positions` | Open paper positions with ROI |\n| `get_position_detail` | Single position deep-dive |\n| `get_profitable_positions` / `get_losing_positions` | Filtered by P&L |\n| `get_strategy_distribution` | Position counts by strategy |\n| `get_trade_history` | Closed paper trades (filters: action, P&L, time) |\n| `analyze_trades` | Aggregate trade analytics |\n| `get_winning_trades` / `get_losing_trades` | Filtered by outcome |\n| `get_latest_decisions` | Recent signal → decision transitions |\n| `get_llm_trading_decisions` | LLM-generated decision logs |\n\n## Resources (17 static + 17 templates — all free tier)\n\n### Meta — discovery & introspection\n\n| Resource URI | Description |\n|--------------|-------------|\n| **`market://meta/discovery`** | **Dynamic catalog (v2.0)** — full tool/resource list via FastMCP introspection (no static `if/else`), with `data_freshness` PG probe (5 source tables), `positioning` block (specialist_domains, trust_principles, what_we_do_NOT_provide, philosophy), `counts`, `notes`. Call this first to understand what OneQAZ provides. |\n| `market://meta/tool-chains` | Recommended call sequences (`quick_analysis`, `deep_analysis`, `portfolio_check`, `symbol_deep_dive`) + dependency graph. |\n| `market://meta/pg-pool` | psycopg ConnectionPool stats — connection pressure monitoring. |\n| `market://health` | Server health check. |\n| `market://info` | Server metadata + data source index. |\n\n### Static resources\n\n| Resource URI | Description |\n|--------------|-------------|\n| `market://global/summary` | Global macro regime summary |\n| `market://global/categories` | Available macro categories list |\n| `market://global/macro_events` | Active macro event lifecycle |\n| `market://all/summary` | Combined summary across all 3 markets |\n| `market://structure/all` | All markets ETF/basket structure |\n| `market://indicators/fear-greed` | Fear & Greed Index |\n| `market://indicators/regime` | 4-layer regime indicators (Short/Mid/Long/SuperLong) |\n| `market://indicators/context` | Fear & Greed + 4-layer regime + breadth |\n| `market://unified/cross-market` | Cross-market correlation snapshot (BTC ↔ stocks ↔ FX) |\n| `market://derived/event-leading` | News leading-detection score |\n| `market://derived/cross-decoupling` | Cross-asset decoupling index |\n| `market://derived/reaction-speed` | News reaction speed distribution |\n\n### Templates (parameterized)\n\n| URI Template | Example |\n|--------------|---------|\n| `market://global/category/{category}` | `market://global/category/bonds` |\n| `market://{market_id}/status` | `market://crypto/status` |\n| `market://{market_id}/positions/snapshot` | `market://crypto/positions/snapshot` |\n| `market://{market_id}/structure` | `market://kr_stock/structure` |\n| `market://{market_id}/structure/group/{group_id}` | `market://kr_stock/structure/group/SEMICONDUCTOR` |\n| `market://{market_id}/signals/summary` | `market://crypto/signals/summary` |\n| `market://{market_id}/signals/roles` | `market://crypto/signals/roles` |\n| `market://{market_id}/signals/feedback` | `market://crypto/signals/feedback` |\n| `market://{market_id}/external/summary` | `market://crypto/external/summary` |\n| `market://{market_id}/external/symbol/{symbol}` | `market://crypto/external/symbol/BTC` |\n| `market://{market_id}/external/causality` | `market://crypto/external/causality` |\n| `market://{market_id}/unified` | `market://crypto/unified` |\n| `market://{market_id}/unified/symbol/{symbol}` | `market://crypto/unified/symbol/BTC` |\n| `market://{market_id}/derived/regime-transitions` | `market://crypto/derived/regime-transitions` |\n| `market://{market_id}/derived/strategy-fitness` | `market://crypto/derived/strategy-fitness` |\n| `market://{market_id}/derived/all` | `market://crypto/derived/all` |\n\n`template_resources[*].example` field in `market://meta/discovery` is **copy-paste ready** — the AI gets concrete URIs without having to fill placeholders manually.\n\n**Market IDs**: `crypto`, `kr_stock`, `us_stock` (aliases: `coin`, `kr`, `us`)\n\n## Sample: Trust Layer query\n\n```python\nfrom mcp import Client\nclient = Client(\"https://api.oneqaz.com/mcp\")\n\nacc = await client.call_tool(\"get_prediction_accuracy\", {})\nfor cat in acc[\"categories\"]:\n    if cat[\"sample_count\"] >= 3:\n        print(f\"{cat['category']:20} {cat['accuracy']:.1%} (n={cat['sample_count']})\")\n\n# Output (example):\n# bonds                62.5% (n=24)\n# forex                58.3% (n=12)\n# vix                  71.4% (n=14)\n# ...\n```\n\nEvery response also carries a plain-text summary:\n\n```json\n{\n  \"_llm_summary\": \"7/8 macro categories above 55% accuracy, sample sizes 8-24. Bonds + VIX categories most validated.\"\n}\n```\n\n## Configuration\n\nAll configuration is via environment variables:\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `MCP_SERVER_PORT` | `8010` | Server port |\n| `MCP_SERVER_HOST` | `0.0.0.0` | Bind host |\n| `MCP_LOG_LEVEL` | `INFO` | Log level |\n| `MCP_TIER_RESOLVER` | _unset_ | `module:function` returning tier for an API key (self-host hook) |\n| `DB_BACKEND` | `postgres` | Must be `postgres` (SQLite backend retired in 0.4.0) |\n| `PG_HOST` / `PG_PORT` | `postgres` / `5432` | PostgreSQL host / port |\n| `PG_DB` / `PG_USER` / `PG_PASSWORD` | `auto_trader` / … | PostgreSQL database / credentials (a read-only role is enough) |\n| `PG_POOL_MIN` / `PG_POOL_MAX` | `0` / `50` | Per-schema connection pool bounds |\n| `PG_STATEMENT_TIMEOUT_MS` | `30000` | Server-side statement timeout |\n| `MCP_COIN_DATA_DIR` / `MCP_KR_DATA_DIR` / `MCP_US_DATA_DIR` | auto | Override *logical* data-path roots (see below) |\n| `MCP_EXTERNAL_CONTEXT_DATA_DIR` | auto | Override external-context logical root |\n\n## Docker\n\n```bash\ndocker build -t oneqaz-trading-mcp .\ndocker run -p 8010:8010 -e DB_BACKEND=postgres -e PG_HOST=... -e PG_PASSWORD=... oneqaz-trading-mcp\n```\n\n## Data backend (PostgreSQL)\n\nAll data lives in **PostgreSQL 16 + TimescaleDB**, one schema per domain\n(`market_coin` / `market_kr` / `market_us`, `market_*_struct`,\n`external_context`, `rl_pipeline`, `mcp_analytics`, …). The code still\nconstructs legacy SQLite-style paths (`.../coin_market/data_storage/trading_system.db`)\nbut these are **logical routing keys only**: `connect_readonly()` maps each\npath to its PG schema and returns a shim connection, so no `.db` files are\nread or written. This mirrors the production Wave-I \"PG-only\" migration —\nqueries fail loudly instead of silently falling back.\n\n## Rate Limits\n\nAuthoritative quotas live in [Access Policy](#access-policy) above. Quick recap:\n\n| Tier | Daily Quota | Burst | Auth |\n|------|-------------|-------|------|\n| **Free** | 1,500 / day | 60 / min | none / invalid key |\n| **Pro** (beta) | 50,000 / day | 200 / min | valid API key |\n| **Internal** (owner) | Unlimited | Unlimited | owner-only |\n| **Local** (self-hosted) | Unlimited | Unlimited | n/a |\n\n**Response headers** on every request:\n- `X-RateLimit-Tier`: resolved tier (`free`/`pro`/`internal`)\n- `X-RateLimit-Daily-Limit`: today's ceiling for the resolved tier\n- `X-RateLimit-Daily-Remaining`: requests left today\n- `X-RateLimit-Minute-Remaining`: requests left this minute\n- Exceeding limits returns HTTP 429 with `Retry-After` header.\n\n## Disclaimer\n\nThis software is provided for **informational and educational purposes only**. It is **not financial advice**.\n\n- All signals, regime analysis, and market data are generated by automated systems and may contain errors.\n- Past performance does not guarantee future results.\n- **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.\n- This is not a registered investment advisor, broker-dealer, or financial planner.\n- Always do your own research (DYOR) before making any investment decisions.\n\nBy using this software, you acknowledge that you understand and accept these terms.\n\n## License\n\nMIT\n",
  "bytes": 24091,
  "sha": "26d06f6754a1f7ae965f65cdedd1e84a395c4bb499b343fb8b6ed3e3c0f87925",
  "repo_slug": "oneqaz-trading/oneqaz-trading-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_wnsod_oneqaz_trading_mcp_8ef5bbb9/readme"
}