jquants-mcp-usage — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited jquants-mcp-usage (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
jquants-mcp is an MCP server that retrieves Japanese stock market data via the J-Quants API. It serves data from a local SQLite cache (fast, offline) and falls back to the live API when needed.
Always call health_check at the beginning of a session:
health_check()cache_ready: true means the cache has finished loading and screener tools are available.cache_ready: false (integrity is "pending") at first call after server start — wait 10–60 s and retry.today_cache_ready: true means today's equities data is already in cache.plan to know which endpoints and date ranges are available.| Plan | Historical depth | Exclusive endpoints |
|---|---|---|
| free | Latest 2 years (12-week delay) | — |
| light | Latest 5 years | investor_types, indices_bars_daily, earnings_calendar |
| standard | Latest 10 years | margin_interest, margin_alert, short_ratio, short_sale_report |
| premium | Full history | breakdown, derivatives |
Queries outside the plan's date range return an error — do not retry with the same date.
72030 (Toyota), 86970 (Japan Exchange Group)130A) are accepted and normalised to 130A0get_equities_master — listed company master (name, sector, market)get_equities_bars_daily — OHLCV daily bars with split adjustmentget_equities_bars_minute — intraday minute bars (light+ with tick add-on)get_equities_bars_daily_am — morning session barsget_equities_investor_types — weekly investor type flows (light+)get_equities_earnings_calendar — scheduled earnings dates (light+)get_fins_summary — quarterly earnings summary (EPS, revenue, guidance)get_fins_details — detailed P&L / balance sheet items (standard+)get_fins_dividend — dividend history (standard+)get_markets_margin_interest / get_markets_margin_alert — margin trading data (standard+)get_markets_short_ratio / get_markets_short_sale_report — short-selling data (standard+)get_markets_breakdown — trading breakdown by investor type (premium+)get_markets_calendar — trading calendar (holidays, market open/close)get_indices_bars_daily_topix — TOPIX daily bars (all plans)get_indices_bars_daily — other indices (light+)Screener tools use a pre-built screener_results cache populated by daily_fetch.py. Cache hit response time: ~0.01 s. Range: last 52 weeks only.
detect_price_limit — stocks at daily price limit (upper/lower)compare_close_vs_vwap — close above/below VWAPdetect_52w_high_low — 52-week high/low hits on a given datedetect_ytd_high_low — year-to-date high/low hits on a given datedetect_volume_surge — unusual volume spikesUse _range variants (detect_52w_high_low_range, detect_ytd_high_low_range) to retrieve multiple consecutive days in a single call.
Dates beyond the 52-week cache window return OutOfCacheRange immediately — do not retry. When a specific stock code is provided, cache is bypassed for correctness (IPO edge cases).
The 6 cross-sectional screener tools above (detect_price_limit, detect_52w_high_low, detect_ytd_high_low, detect_volume_surge, detect_52w_high_low_range, detect_ytd_high_low_range) accept detail: bool = False.
detail=False (default): returns summary counts only — no stock-level array. Prefer this onmobile and whenever you only need totals.
detail=True: returns the full data array with per-stock rows.compare_close_vs_vwap is per-code only and always returns a data array (no detail param).
get_candlestick_data — returns OHLCV + indicator data as JSON for React artifact renderingget_comparison_chart_data — multi-stock performance comparison data as JSON; up to 10 codes, mode="return_pct" (default) or "price"get_bulk_list — list available bulk data filesget_bulk_download_url — get a signed URL for bulk file downloadget_derivatives_bars_daily_futures / _options / _options_225cache_status()Shows row counts per table, file size, and detected plan. Does not return market data.
| Call | Effect |
|---|---|
cache_clear(table="response_cache") | Clears only the API response cache (Tier 2). Safe — historical Tier 1 data is preserved. Use when you suspect stale live-API responses. |
cache_clear() (no argument) | Clears ALL data including all Tier 1 historical rows. Only use if you intend a full cache rebuild. |
Never call bare cache_clear() unless you are prepared to re-run the full bulk fetch (can take ~1 hour).
https://<host>/settings (recommended) or via register_api_keySingle-user local mode uses JQUANTS_API_KEY env var or the [jquants] section in the config file.
Check what data is available today:
health_check() # confirm cache_ready and plan
cache_status() # see latest dates per tableScreen for 52-week highs on the latest trading day:
health_check() # confirm today_cache_ready: true
detect_52w_high_low() # omit date → uses latest cached dateRetrieve a week of screener results at once:
detect_52w_high_low_range(start_date="2025-04-28", end_date="2025-05-02")Look up a company before querying bars:
get_equities_master(code="72030") # confirm code, name, sector
get_equities_bars_daily(code="72030", date_from="2024-01-01")Render a chart:
get_candlestick_data(code="72030", from_date="2024-10-01")~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.