MCP server for Japanese stock market data via J-Quants API — tools for price history, financials, screeners, and candlestick charts
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http counts 2 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
delete_api_key
OAuth 2.1 + MCP_ENCRYPTION_KEY
-
register_api_key
OAuth 2.1 + MCP_ENCRYPTION_KEY
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 4e43bb4 · analyzer v18 · 4h ago
skills & prompt files 2
evidence-backed
findings quoted directly from the published source artifact — not inferred
filesystem 16
- fs shigechika-jquants-mcp-4e43bb4/scripts/bulk_fetch_all.py :27
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/scripts/collect_metrics.py :27
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/scripts/daily_fetch.py :40
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/scripts/gcs_export_cache.py :26
import shutil - fs shigechika-jquants-mcp-4e43bb4/scripts/gcs_sync.py :33
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/scripts/migrate_adj_factor.py :23
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/scripts/screener_populate_history.py :29
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/scripts/verify_cache_completeness.py :36
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/cache/gcs_download.py :15
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/cache/store.py :11
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/cli.py :8
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/config.py :16
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/db/users.py :9
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/oauth_kv_store.py :14
from pathlib import Path - fs shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/oauth_login.py :188
webbrowser.open(authorize_url) - fs shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/server.py :296
from pathlib import Path
shell / exec 1
- shell shigechika-jquants-mcp-4e43bb4/scripts/collect_metrics.py :23
import subprocess
network 8
- net shigechika-jquants-mcp-4e43bb4/scripts/bulk_fetch_all.py :29
import httpx - net shigechika-jquants-mcp-4e43bb4/scripts/collect_metrics.py :30
import httpx - net shigechika-jquants-mcp-4e43bb4/scripts/verify_cache_completeness.py :94
import httpx - net shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/cache/screener_compute.py :5
can populate ``screener_results`` without pulling in fastmcp/httpx. - net shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/client.py :11
import httpx - net shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/oauth_login.py :24
import urllib.parse - net shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/server.py :13
import httpx - net shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/settings/routes.py :9
import httpx
secrets 1
- secrets shigechika-jquants-mcp-4e43bb4/scripts/verify_cache_completeness.py :494
api_key = s.jquants_api_key or os.environ.get("JQUANTS_API_KEY", "")
database 13
- db shigechika-jquants-mcp-4e43bb4/scripts/bulk_fetch_all.py :24
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/scripts/daily_fetch.py :36
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/scripts/gcs_export_cache.py :27
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/scripts/gcs_sync.py :193
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/scripts/migrate_adj_factor.py :21
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/scripts/screener_populate_history.py :25
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/scripts/verify_cache_completeness.py :32
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/cache/schema.py :30
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/cache/store.py :7
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/db/users.py :6
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/oauth_kv_store.py :11
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/charts.py :19
import sqlite3 - db shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/equities.py :7
import sqlite3
tool registrations 54
- health_check shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/server.py :766
- cache_status shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/server.py :823
- cache_clear shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/server.py :852
- register_api_key shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/server.py :863
- delete_api_key shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/server.py :956
- get_bulk_list shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/bulk.py :50
- get_bulk_download_url shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/bulk.py :98
- get_comparison_chart_data shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/charts.py :293
- get_candlestick_data shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/charts.py :457
- get_derivatives_bars_daily_futures shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/derivatives.py :29
- get_derivatives_bars_daily_options shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/derivatives.py :69
- get_derivatives_bars_daily_options_225 shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/derivatives.py :117
- get_equities_master shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/equities.py :60
- get_equities_bars_daily shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/equities.py :97
- get_equities_bars_minute shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/equities.py :154
- get_equities_bars_daily_am shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/equities.py :200
- get_equities_investor_types shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/equities.py :229
- get_equities_earnings_calendar shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/equities.py :274
- get_earnings_this_week shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/equities.py :338
- search_equities shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/equities.py :413
- get_fins_summary shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/financials.py :158
- get_fins_details shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/financials.py :210
- get_fins_dividend shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/financials.py :251
- get_earnings_results_this_week shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/financials.py :297
- get_indices_bars_daily shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/indices.py :34
- get_indices_bars_daily_topix shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/indices.py :79
- detect_price_change shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/market_overview.py :493
- get_advance_decline_ratio shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/market_overview.py :549
- get_top_movers shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/market_overview.py :611
- get_top_volume shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/market_overview.py :682
- get_top_turnover_value shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/market_overview.py :751
- get_sector_performance shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/market_overview.py :799
- get_dividend_yield_ranking shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/market_overview.py :862
- get_valuation_ranking shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/market_overview.py :1060
- get_market_briefing shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/market_overview.py :1221
- get_markets_margin_interest shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/markets.py :44
- get_markets_margin_alert shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/markets.py :110
- get_markets_short_ratio shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/markets.py :165
- get_markets_short_sale_report shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/markets.py :230
- get_markets_breakdown shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/markets.py :278
- get_markets_calendar shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/markets.py :332
- detect_price_limit shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/screener.py :188
- compare_close_vs_vwap shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/screener.py :267
- detect_52w_high_low shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/screener.py :378
- detect_ytd_high_low shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/screener.py :454
- detect_volume_surge shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/screener.py :524
- detect_52w_high_low_range shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/screener.py :642
- detect_ytd_high_low_range shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/screener.py :722
- detect_distribution_days shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/screener.py :797
- detect_follow_through_day shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/screener.py :909
- detect_consecutive_dividend_increase shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/screener.py :1039
- get_stock_briefing shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/summary.py :42
- get_technical_indicators shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/technical.py :88
- get_sector_briefing shigechika-jquants-mcp-4e43bb4/src/jquants_mcp/tools/valuation.py :25
declared dependencies 7
- fastmcp@>=3.2.1
- httpx@>=0.25.0
- cryptography@>=41.0.0
- tomli@>=2.0.0; python_version <
- google-cloud-storage@>=2.0.0
- google-cloud-firestore@>=2.0.0
- zstandard@>=0.21.0