Quant Research MCP について
Quant Research MCPは、トレーダーやエージェント向けの読み取り専用リサーチサーバーです。論文に基づく手法と再現可能な市場分析を提供し、LLMを使わない決定論的なエントリー評価を備えています。
主な機能
- 01論文に基づく手法の登録簿
- 02銘柄スクリーニングと指標計算
- 03相場レジームとセットアップ分析
- 04イン・アウトサンプル別のバックテスト
- 05ポートフォリオリスクとイベント確認
- 06決定論的なエントリー評価と計画
活用シーン
- 01デイトレード候補の銘柄選定
- 02過去データによる手法の検証
- 03候補取引前のポートフォリオリスク確認
- 04ニュースセンチメントとイベントリスクを加味した評価
MCP 対応
MCPクライアントに、手法検索、市場分析、リスク確認、意思決定スコアリングなど13種類の定量分析ツールを公開します。読み取り専用で、注文は行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
quant_research_mcp
論文に裏付けられた定量取引手法のレジストリと、決定論的なLLM不使用の意思決定ヘルパーを提供するMCP サーバーです。サーバーは再現可能な計算(スクリーニング、インジケーター、レジーム検出、手法シグナル、スコア付きエントリー判断)を提供し、呼び出し元のエージェントは判断(例:見出しを読み取ってセンチメントシグナルにすること)を担います。claude -pも、サブプロセスも、サーバー内のLLMもありません。
⚠️ 金融アドバイスではありません。 これは読み取り専用の調査・教育用ツールです。定量計算のみを行い、注文は一切発注しません。出力内容は投資アドバイスでも推奨でもありません。市場データには遅延や誤りがある場合があり、バックテストは予測ではありません。また、取引には大きな損失リスクが伴います。リスクにさらす資金については、すべてご自身の責任となります。 保証なしの「現状有姿」で提供されます。詳細は
LICENSEをご覧ください。
これが作られた理由
稼働実績のあるデイトレードパイプラインを、組み合わせ可能なMCP ツールとして再構成したもので、目標は2つあります。
- 将来の論文にも拡張できます。 各戦略はレジストリに登録された
TradingMethodです。新しい論文の手法を追加するには、モジュールを1つ置き、register(...)を呼び出してインポートします。それ以外の変更は不要です。 - 意思決定は生成的ではなく、科学的です。 以前のパイプラインでは、エントリー判定にLLM呼び出しを使っていました。ここではそれを、リスクリワード、レジームの強さ、出来高、RSIの位置、ATRで正規化したストップの質を組み合わせて、監査可能なスコアを出す純粋関数
quant_score_decisionに置き換えています。同じ入力なら、同じ出力になります。
ツール(13)
| ツール | ネットワーク | 用途 |
|---|---|---|
quant_list_methods | なし | 登録済み手法(キー、論文、時間枠、レジーム)を一覧表示します。 |
quant_describe_method | なし | 1つの手法の詳細と引用情報を表示します。 |
quant_screen_universe | あり | ギャップ/相対出来高/ATR%でティッカーを順位付けします。 |
quant_compute_indicators | あり | ティッカーのEMA9/20、RSI、ATR、VWAP、ハースト指数を計算します。 |
quant_detect_regime | あり | ハースト指数からTRENDING/MEAN_REVERTING/RANDOM_WALKを判定します。 |
quant_analyze_setup | あり | ティッカーごとに手法を実行し、シグナル+エントリー/ストップ/ターゲット(HTFコンテキストを含む)を返します。 |
quant_analyze_universe | あり | ユニバース向け手法を実行します。モメンタム順位付けやペアのスプレッドなどが対象です。 |
quant_backtest_method | あり | 手法を検証します:過去データに対して手法自身のanalyze()を再実行し、勝率、期待値、ドローダウン、IS/OOSの各期間の結果を返します。 |
quant_check_events | あり | 次回の決算発表(までの日数)、配当落ち日を確認し、二値イベントのリスクを調べます。 |
quant_portfolio_risk | あり | ステートレスなリスク量/相関/集中度チェックと、候補の判定を行います。 |
quant_market_context | あり | SPY/QQQ/IWM、VIX、順位付けされた11セクター、リスクオン/オフの市場の広がりを確認します。 |
quant_score_decision | なし | 意思決定ヘルパー:セットアップ(+センチメント、決算発表、リスク量)から、スコア、判定、サイズ、時間枠を考慮した実行プランを返します。決定論的です。 |
quant_fetch_news | あり | 最近の見出しを取得します(データのみ。センチメントの判断はエージェントが行います)。 |
すべてのツールは読み取り専用で、response_format: markdown | jsonに対応しています。
ワークフロー
デイトレード
quant_market_context # tape read: risk-on/off, sectors
→ quant_screen_universe # find movers
→ quant_analyze_setup # hurst_regime_orb on the top name
→ quant_check_events + quant_fetch_news # binary risk + agent sentiment
→ quant_portfolio_risk # heat/correlation vs your open book
→ quant_score_decision(setup, news_sentiment, days_to_earnings,
portfolio_heat_pct)
スイング(数日) — quant_analyze_setup/quant_analyze_universe から
rsi2_reversion、pairs_cointegration を実行します。ここでは決算による除外が最も重要です
(quant_check_events → days_to_earnings)。
ポジション(数週間以上) — ティッカーごとに donchian_trend、ユニバース全体で
xs_momentum を使用します。毎月再ランク付けし、執行プランに従って毎週ストップを見直します。
手法を信頼する前に:対象のティッカーと期間で quant_backtest_method を実行します。手法独自のシグナルロジックをコスト込みで再現し、インサンプルとアウトオブサンプルの期間を分けて報告するため、パフォーマンスの劣化を確認できます。
ナラティブはエージェントが作成し、数値はサーバーが保証します。
判断ヘルパー(quant_score_decision)
純粋関数です。複合スコアの重みは config.DECISION_WEIGHTS で指定します。
- reward_risk — 実現したリスクリワードと目標倍率の比較。
- regime_strength — ランダムウォークからの距離を示す、スケーリングされた
|Hurst − 0.5|。 - volume_confirmation — 相対出来高と下限値の比較。
- momentum_position — 方向に対して健全な範囲内にあるRSI(過熱していない状態)。
- stop_quality — 日次ATRで正規化したストップ幅(ノイズに近すぎるストップは減点)。
オプションの news_sentiment(エージェントが算出)は、スコアと一致する場合は加点し、
信頼度が0.5以上で矛盾する場合は除外します。出力には要因ごとの内訳、固定比率方式の
position_size(ノイズに近すぎるストップに対する減額を含む)、および機械的に導出した
execution_plan(エントリートリガー、注文タイプ、ストップの段階設定、利益確定、
時間ベースのストップ、中止条件)が含まれます。
同梱メソッド(5)
| キー | 時間軸 | 論文 |
|---|---|---|
hurst_regime_orb | 日中 | arXiv:2205.11122 — ハースト・レジーム → ORB/VWAPフェード |
rsi2_reversion | スイング | Connors & Alvarez 2009 — 200日SMAを上回るRSI(2)の押し目 |
pairs_cointegration | スイング | Gatev et al. 2006 — Engle-GrangerのスプレッドZスコア |
donchian_trend | ポジション | Faith、Turtle Rules、Moskowitz et al. 2012 — 55日ブレイクアウト、20日/ATRトレール |
xs_momentum | ポジション | Jegadeesh & Titman 1993 — 12-1のクロスセクショナル・モメンタム、上位N銘柄のポートフォリオ |
データプロバイダー
デフォルトはyfinance(無料、約15分遅延)です。データレイヤーはプロバイダーインターフェース
(quant_research_mcp/providers/)の背後にあります。Alpaca/Polygon/IBKR用に
DataProviderプロトコルを実装し、ファクトリーを登録してから、
QUANT_DATA_PROVIDER=<name>を指定して実行してください。すべての呼び出しはプロセス内で
TTLキャッシュされます(日次データは15分、日中データは60秒、ニュースは5分、イベント/セクターは1時間)。
今後、論文を追加する
# quant_research_mcp/methods/my_paper.py
from . import register
from .base import TradingMethod, TradeSetup
def analyze(daily, session, context) -> TradeSetup:
... # compute signal, entry, stop, target
register(TradingMethod(
key="my_paper_method",
name="My Method",
paper="Author et al., Title",
paper_url="https://arxiv.org/abs/...",
regime_applicability="TRENDING",
description="One paragraph on the mechanics.",
analyze=analyze,
))
次に、methods/__init__.pyにfrom . import my_paperを追加します。これで
quant_list_methodsに表示され、quant_analyze_setup(method_key=...)から実行できるようになります。
クイックスタート(Makefile)
make install # create venv + install deps (uv sync)
make smoke # import server, list the 13 tools (no network)
make run # run the server over stdio
make help # list every target
シェルバイナリとしてインストール
make install-cli # installs `quant-research-mcp` onto your PATH (uv tool)
quant-research-mcp # runs the server over stdio from anywhere
インストール後にコマンドが見つからない場合は、uv tool update-shellを実行してシェルを再起動してください
(uvのツール用バイナリディレクトリ。通常は~/.local/binがPATHに含まれている必要があります)。
| ターゲット | 内容 |
|---|---|
make install | uv sync — 仮想環境と依存関係をセットアップ |
make install-cli | quant-research-mcpバイナリをPATHにインストール |
make uninstall-cli | バイナリを削除 |
make dev | インストールと、リント用ruffのセットアップ |
make run | MCP サーバーを実行(stdio) |
make smoke | インポートとツール一覧の表示(ネットワーク接続なし) |
make test | pytestスイートを実行(ネットワーク接続なし) |
make inspect | MCP Inspectorを起動 |
make check | テスト、リント、LLM/サブプロセス呼び出しがないことの確認 |
make register | stdioクライアント設定のJSONを出力 |
make claude-add | ローカルクローンをClaude Codeに登録(ユーザースコープ) |
make claude-remove | Claude Codeから削除 |
make build | dist/にsdistとwheelをビルド |
make docker-build | Dockerイメージをローカルでビルド |
make mcpb | Claude Desktop用の.mcpbバンドルをパッケージ化 |
make clean | キャッシュ、仮想環境、ビルド成果物を削除 |
インストール
どの方法でも同じ stdio サーバーが実行されます。環境に合った方法を選んでください。
| 方法 | コマンド | 必要なもの |
|---|---|---|
| GitHub から uvx(クローン不要) | uvx --from git+https://github.com/FlawlessByte/quant-research-mcp quant-research-mcp | uv |
| PyPI | uvx quant-research-mcp · pipx install quant-research-mcp | uv / pipx |
| Docker | docker run -i --rm ghcr.io/flawlessbyte/quant-research-mcp | Docker |
| ソースから | git clone … && cd quant-research-mcp && make install | git + uv |
| Claude Desktop | 最新リリースから .mcpb をインストール | Claude Desktop |
PyPI と Docker イメージはタグ付きリリースで公開されます。最初の リリースまでは、GitHub から uvx または ソースから の行を使用してください。
Claude Code での使用
最も手軽な方法です。クローンせず、GitHub から直接実行します。
claude mcp add quant_research -- \
uvx --from git+https://github.com/FlawlessByte/quant-research-mcp quant-research-mcp
PyPI リリース後は、次のように短縮できます。
claude mcp add quant_research -- uvx quant-research-mcp
コンテナー化する場合:
claude mcp add quant_research -- docker run -i --rm ghcr.io/flawlessbyte/quant-research-mcp
ローカルのクローンから(開発用):make claude-add は、このチェックアウトを
ユーザースコープに登録します。make register は、貼り付けて使える .mcp.json ブロックを出力します。
Claude Code 内で確認します。
/mcp # should list 'quant_research' as connected
次のように尋ねます。「対象銘柄全体をスクリーニングし、ハースト法で上位銘柄を分析してから、エントリー判断をスコアリングしてください。」 すると、quant_screen_universe
→ quant_analyze_setup → quant_score_decision の順に呼び出します。
ソースから(開発用)
git clone https://github.com/FlawlessByte/quant-research-mcp
cd quant-research-mcp
make install # uv sync — venv + dependencies
make smoke # list the 13 tools (no network)
make test # 40 offline tests
オプション:make install-cli を実行すると、uv tool 経由で quant-research-mcp バイナリが PATH に追加されます。その後見つからない場合は、uv tool update-shell を実行して、シェルを再起動してください。make inspect でツールのスキーマを確認できます。
リリース(メンテナー向け)
CI はプッシュまたは PR ごとに、ruff とオフラインテスト 40 件を実行します(Python 3.12 と 3.13)。 リリースはタグで管理します。
# bump version in pyproject.toml + server.json + manifest.json, commit, then:
git tag v0.1.0 && git push origin v0.1.0
これにより、2 つのワークフローが実行されます。
release.yml→uv buildを実行し、Trusted Publishing (OIDC、保存済みトークン不要)を介して PyPI に公開し、wheel/sdist と.mcpbバンドルを GitHub Release に添付します。docker.yml→ghcr.io/flawlessbyte/quant-research-mcpをビルドしてプッシュします。
初回のみ必要な設定:
- PyPI: プロジェクトを作成し、Trusted Publisher を追加します(owner
FlawlessByte、 repoquant-research-mcp、workflowrelease.yml、environmentpypi)。 - GHCR: 初回のプッシュ後、パッケージの公開範囲を public に設定します。
- MCP registry: 初回の PyPI リリース後、
mcp-publisherCLI で登録します。mcp-publisher login githubを実行してからmcp-publisher publishを実行します(server.jsonを使用します。 GitHub ログインにより、io.github.FlawlessByte/…名前空間の所有権が証明されます)。
Claude Desktop の
.mcpbは内部でuvxを呼び出すため、ワンクリックでインストールする場合も、 マシンに uv が必要です。pandas/scipy/statsmodels の wheel を直接バンドルすると、 サイズが大きくなり、プラットフォーム固有になるためです。
制限事項(本格的なトレーダーが別途必要とするもの)
- リアルタイムデータプロバイダーのキーを設定するまでは遅延データです(インターフェースは準備済みです。 yfinance のデータは約 15 分遅延し、ニュースフィードも限定的です)。
- マクロ経済カレンダーはありません(FOMC/CPI/NFP)。信頼できる無料フィードがないため、
news_sentiment/news_confidenceを通じて 独自の判断を渡してください。 - オプションデータはありません(IV、タームストラクチャー、ガンマ水準)。空売り残高/浮動株数、Level 2 データもありません。今後の課題です。
- バックテストはパラメーター検証であり、予測ではありません:yfinance の過去データには サバイバーシップバイアスがあり、コストは推定値です。プロバイダーにより、5 分足を使った日中のリプレイは約 60 日分に制限されます。
- 設計上、永続化は行いません。サーバーは何も保存しません。呼び出しごとにオープンポジションを渡してください(
quant_portfolio_risk)。トレードジャーナルは、利用を選択できるモジュールとして開発を予定しています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。