Rule Trade - Japanese equity verification layer について
Rule Trade は、日本株の調査向け MCP サーバーです。公開済みの検証データを統計情報に整形して提供し、既存パイプラインの JSON を読むだけで、独自の分析エンジンや売買助言はありません。
主な機能
- 01市場レジームと3軸スコアの取得
- 0250種類の市場アノマリー統計の確認
- 03ローソク足と指標の検証結果
- 04イベント反応と ETF 減価の分析
- 05市場シグナルと更新ガイドの取得
活用シーン
- 01市場アノマリーの検証統計を比較
- 02条件別にテクニカル指標の成績を確認
- 03イベント、市場環境、レバレッジ ETF の減価を調査
MCP 対応
`https://ruletrade.jp/mcp` で、ステートレスな HTTP ツールを MCP クライアントに提供します。結果には免責事項が含まれ、生の価格系列、売買助言、該当銘柄の全一覧は返しません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://ruletrade.jp/mcpclaude mcp add --transport http jp-ruletrade https://ruletrade.jp/mcp{"mcpServers":{"jp-ruletrade":{"type":"http","url":"https://ruletrade.jp/mcp"}}}Cursor で開く{"servers":{"jp-ruletrade":{"type":"http","url":"https://ruletrade.jp/mcp"}}}VS Code で開く{"mcpServers":{"jp-ruletrade":{"type":"http","url":"https://ruletrade.jp/mcp"}}}{"mcpServers":{"jp-ruletrade":{"serverUrl":"https://ruletrade.jp/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
8| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| strategy | enum | いいえ | ルール名。現在は bnf(25日線乖離の逆張りルール)のみbnf |
詳細
Rule Trade MCP / ルールトレード MCP
エンドポイント:https://ruletrade.jp/mcp
(llms.txt:https://ruletrade.jp/mcp/llms.txt · OpenAPI:https://ruletrade.jp/mcp/openapi.json · ヘルスチェック:https://ruletrade.jp/mcp/health)
英語
日本株向けの検証レイヤーを、MCP 経由で提供します。
日本株向けの MCP サーバーの多くは、開示情報、株価、注文執行などの一次データレイヤーを扱います。 このサーバーが扱うのは、そこから抜け落ちている部分です。すなわち、公開された機械的なルールを適用したときに、実際に何が起きたのかを示します。 独自のエンジンは持たず、既存のパイプラインが毎日公開する JSON を読み込んで再構成します。 依存関係はなく、API キーも登録も不要です。
取得できる情報
| ツール | 返される情報 |
|---|---|
get_daily_signals | 公開済みの平均回帰ルール(25日移動平均からの乖離率 ≤ -15%)に一致した1銘柄。1取引日遅れで返されます。一致件数は返されますが、一致した銘柄の全リストは配布しません。 |
get_market_regime | 機械判定された市場レジーム(BULLISH / NEUTRAL / BEARISH / PANIC)、サーキットブレーカーの状態、VIX、日経平均株価、日次履歴、さらに各軸の判定根拠を含む3軸スコア(トレンド、短期リスク、需給)。銘柄名は含まれません。 |
get_anomaly_summary | 61年間にわたって検証した日本市場の50のアノマリー — 判定、勝率、平均リターン、サンプル数、p値、対照群。name で絞り込めます。加えて、暴落の前兆を示す5つの指標と、26年間のデータで検証した7項目の点火メーターを提供します。 |
get_candlestick_verdict | 東証プライム1,550銘柄を対象に、10.5年間にわたって検証した、日本の古典的なローソク足パターン全12種類 — 取引回数、勝率、プロフィットファクター、超過リターン、p値、負けた年、5つの採用基準のうち各パターンが満たさなかった項目を返します。基準をクリアしたパターンはありません。 最も高いプロフィットファクター(3.04)を記録したパターンも、サンプルの前半と後半で符号が逆転しました。 |
get_event_reaction | 3つの独立した調査からわかる、イベント後に起きたこと — 27種類のイベント(地震、金利決定、関税、パンデミック)、約26,000件の発表を対象とした決算後ドリフト、指数への採用・除外。3つすべてが同じ結果を示しています。値動きはイベントが確定する前に起きます。個別銘柄の行データやセクター別バスケットは意図的に除外しています。 |
get_indicator_verdict | 教科書の説明どおりに取引した26種類のテクニカル指標 — TOPIX500、10年間、約500,000回の取引。2種類の決済方法について、勝率、期待値、プロフィットファクター、ランダムエントリーに対する超過リターンを返します。9種類はすべてのレジームで基準をクリアしましたが、13種類はクリアできませんでした。その13種類の大半は、初心者が最初に学ぶ指標です。 |
get_etf_decay | レバレッジ型・インバース型 ETF の12年間にわたる減衰の実測値 — 年ごとの理論値と実績値、保有期間別の勝率、市況別のプロフィットファクター、そしてポジションを保有し続けて回復を待った305回の試み(99.3%は回復しましたが、回復しなかった場合の損失は32.5%でした)。 |
list_tools_guide | 更新時刻(JST)、遅延、意図的に返していない情報、免責事項、ロードマップ。最初に呼び出してください。 |
設計上、取得できない情報
- 生の価格系列、OHLCV、財務諸表の数値
- ポジションサイズ、エントリー価格・決済価格、損切り水準・利益確定水準
- 運営者独自のシステムで使用している本番用の閾値
- 推奨、評価、買い・売りシグナル
すべてのレスポンスには disclaimer キーが含まれます。結果をユーザーに伝える際、このキーを削除しないでください。
出力が示すのは、機械的なルールに一致したかどうかです。投資助言でも勧誘でもなく、将来のリターンを約束するものでもありません。
接続方法
# Claude Code
claude mcp add --transport http ruletrade https://ruletrade.jp/mcp
- claude.ai:設定 → コネクタ → カスタムコネクタを追加 →
https://ruletrade.jp/mcp - 任意の MCP クライアント:
https://ruletrade.jp/mcpに JSON-RPC 2.0 を POST(ステートレスな Streamable HTTP)
Where the research comes from
The rules and verification data are published as books by the operator (Japanese, Kindle): Silent Investor BNF, Crashes Decay, and All 50 Japanese Market Anomalies Tested Over 61 Years. The anomaly dataset is a fixed snapshot taken at that book's publication (2026-08) and is not updated daily.
Good to know
- Data updates on Japan Exchange trading days. Exact times are in
list_tools_guide. - Rate limits are not enforced today. Please be reasonable.
- Statistical values are rounded; p-values use 3 significant figures so very small values stay readable.
日本語
kaburadar.jp / ruletrade.jp が毎日公開している検証済みJSON(docs/*.json)を、
AIエージェント(Claude / Cursor / ChatGPT 等)から MCP で読めるようにする 変換層 です。
エンジンは持たず、GitHub raw の JSON を読んで整形するだけ。依存パッケージゼロ。
正規URL は https://ruletrade.jp/mcp。実体は Cloudflare Workers だが、
ruletrade.jp(Vercel)の vercel.json で rewrite しているため、配信先が変わっても利用者側の URL は変わらない。
| ツール | 読むJSON | 内容 |
|---|---|---|
get_daily_signals | free_scanner.json | BNF 25日線乖離ルールの該当銘柄(1営業日遅れ)。返すのは1件のみ・件数は返す |
get_market_regime | radar.json / market_jiai.json / radar_history.json / score3.json | 地合い BULLISH〜PANIC・HALT・VIX・日経・履歴 + 3軸スコア(トレンド/短期リスク/需給・5段階・軸ごとの根拠) |
get_anomaly_summary | anomaly_results.json / gauge.json / crash.json | ジンクス50本の検証結果(61年・判定/勝率/p値。name で絞り込み)+ 『暴落は、減衰する』5つの前兆 + 着火メーター(26年検証) |
get_candlestick_verdict | candlestick_verdict.json | 酒田五法12本の検証結果(東証プライム・10年半)。12本すべて不採用・落ちた基準・不採用の理由。pattern で絞り込み(日英の別名可) |
get_event_reaction | event_reaction.json / earnings_drift.json / supply_demand_events.json | 出来事のあとに何が起きたかを3つの検証から。①出来事27種(地震・利上げ・関税ほか) ②決算後のドリフト ③指数の入替。event で絞り込み(地震 / 決算 / TOPIX など) |
get_indicator_verdict | indicator_verdict.json | テクニカル指標26種の検証結果(TOPIX500・10年・約50万回)。使える9 / 条件付き4 / 捨てろ13・8区分のどこで基準に届かなかったか。name で絞り込み(日英の別名可) |
get_etf_decay | etf_decay.json | レバレッジ・インバースETFの減価(12年の実測)。年別・保有日数別・条件別と「戻るまで待つ」305回の結果。各節の「解釈で注意すべき点」を必ず添える |
list_tools_guide | (静的) | 使い方・更新時刻・遅延・免責・今後の予定 |
法務線は人向けサイトと同一:
- 銘柄を返すのは1件だけ(2026-09-17 に上位3件から縮小)。該当した全銘柄の一覧は配布しない。件数は返す
- 推奨語(推奨/おすすめ/買うべき/儲かる 等
src/legal.jsのNG_WORDS)は出力から伏せ字にする - 全レスポンスに
disclaimerキーを常設 - 価格・株数・利確/損切ライン・本番の調整済み閾値は出さない(free_scanner.json 生成時点で既に落ちている)
- ジンクス検証は判定結果と統計値(勝率・平均・標本数・p値)のみ。格言の本文(
saying)は推奨語を含むため出力しない - 書籍の検証も統計値のみ。銘柄名・銘柄コード・銘柄バスケットは返さない。元データに併存する明細(連想の
baskets.csv499行・決算のevents_raw.csv・自社株買いのbuyback_*.csv5,523行)は生成側でも開いていない - 書籍から取り込む文章は
mcp/tools/legal_check.pyが JSON を書き出す前に検査する。伏せ字(scrub)は最後の砦で、そこに頼ると「各[表現調整]点の日経平均」のように文の意味が壊れる - ETFのコード(1357 等)だけは返す。何を検証したかを示す識別子で、個別株を名指しするのとは別
データの出どころ
docs/*.json は既存の生成側(Python)が毎日書き出しているもの。MCP は読むだけで、生成側は一切触らない。
docs/anomaly_results.json / docs/candlestick_verdict.json / docs/event_reaction.json /
docs/indicator_verdict.json / docs/etf_decay.json / docs/earnings_drift.json /
docs/supply_demand_events.json の7つは
日次ではなく 書籍刊行時点の固定データ。後の2つは mcp/tools/build_*.py で検証の生出力から機械変換し、
mcp/tools/verify_*.py で元CSVと1つずつ突き合わせている(手で書き写さない)。
docs/anomaly_results.json だけは日次ではなく 書籍刊行時点(2026-08)の固定データ。
元は 株式投資開発/jinx_verification/results/results.json(このリポジトリの外)で、
JSON 非対応の NaN を null に置換したコピー。更新するときは同じ手順でコピーし直す。
エンドポイント
| パス | 内容 |
|---|---|
POST /mcp | MCP Streamable HTTP(JSON-RPC・ステートレス) |
GET /health | 5つのJSONが読めるか確認 |
GET /llms.txt | エージェント向けの説明(英語主・日本語従) |
GET /openapi.json | OpenAPI 3.1。JSON-RPC を1エンドポイントとして記述 |
GET / | 概要 |
デプロイ(どちらか一方でOK・スマホのブラウザから完結)
A. Cloudflare Workers(推奨: ログ保持が長い・無料枠 10万req/日)
- Cloudflare ダッシュボード → Workers & Pages → Create → Import a repository
- リポジトリ
stock-trading-を選ぶ → Root directory にmcpを入れる - Build command は空、Deploy command は
npx wrangler deploy(既定のまま) - Deploy → Worker の実体は
https://ruletrade-mcp.<account>.workers.dev/mcp。 利用者に案内するのは正規URLhttps://ruletrade.jp/mcp(ruletrade.jp のsite/vercel.jsonが rewrite する)。 Worker の URL が変わったときはsite/vercel.jsonの2行とsrc/tools.jsのCANONICAL_*を直す - ログ: Worker → Logs(
wrangler.tomlの observability で有効化済み)。event:"tool_call"で絞ると呼び出し数が見える
B. Vercel
- vercel.com → Add New Project → リポジトリ
stock-trading-を Import - Root Directory を
mcpに変更、Framework Preset は Other - Deploy →
https://<project>.vercel.app/mcpがエンドポイント - ログ: Project → Logs(Hobby は保持1時間なので、集計したい場合は下の
LOG_WEBHOOKを使う)
動作確認(デプロイ後にブラウザで開くだけ)
https://ruletrade.jp/mcp/health→"ok": trueなら完了- Worker 直の
https://ruletrade-mcp.<account>.workers.dev/healthでも同じものが見える(切り分け用)
接続(正規URLを使う。*.workers.dev は案内しない)
- Claude(claude.ai): 設定 → コネクタ → カスタムコネクタを追加 → URL に
https://ruletrade.jp/mcp - Claude Code:
claude mcp add --transport http ruletrade https://ruletrade.jp/mcp - 最初に
list_tools_guideを呼ぶようinitializeの instructions で案内している
環境変数(すべて任意)
| 変数 | 用途 |
|---|---|
DATA_BASE | JSONの取得元(既定: GitHub raw の docs/)。リポジトリ非公開化時に差し替え |
ANOMALY_URL | 検証JSONを別配信先に置く場合に指定。get_anomaly_summary の jinx_verification_external にそのまま入る(通常は不要。既定は docs/anomaly_results.json) |
LOG_WEBHOOK | 呼び出しログ(1行JSON)をPOSTする先。GAS/Slack/Sheets 等で集計したい場合 |
CACHE_TTL_MS | インスタンス内キャッシュ(既定 60000) |
呼び出しログの形: {"ts","event":"tool_call","tool","args","ok","ms","scrubbed","client"}
(initialize 時は clientInfo も記録。実際にどう使われているかを見るための数字)
ローカル
cd mcp
npm test # 実際の docs/*.json をフィクスチャに35テスト(推奨語ゼロ・銘柄コードゼロの検査を含む)
node dev.js # http://localhost:8787/mcp
curl -s localhost:8787/health
curl -s -X POST localhost:8787/mcp -H 'content-type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_market_regime","arguments":{"history_days":5}}}'
今後
run_rule_backtestは、検証基盤(backtest_grid)ができた時点で検討。エンジンは二重に作らない- Week 1 は「読むだけ」。書き込み・発注・個別助言に相当する機能は入れない
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。