{"openapi":"3.1.0","info":{"title":"Rule Trade MCP","version":"0.2.0","summary":"Verification layer for Japanese equities. Returns rule-match facts and statistics only.","description":"Output describes whether published, mechanical rules matched — it is not investment advice, not a solicitation, and not a recommendation to buy or sell any security. No future return is promised. Daily data is delayed by one trading day; the book-derived studies are fixed snapshots taken at publication.\n\n本ツールの出力は公開ルール(機械的な条件)への該当状況を示すデータであり、投資助言・売買の勧誘ではありません。特定銘柄の売買を勧めるものではなく、将来の利益を保証しません。最終判断はご自身の責任で行ってください。日次データは1営業日遅れです（書籍の検証結果は刊行時点の固定データです）。\n\nThis is an MCP server. The single POST endpoint speaks JSON-RPC 2.0 (methods: initialize, tools/list, tools/call, ping). It is described here so that agents and crawlers can discover the tool surface; it is not a REST API.","contact":{"url":"https://ruletrade.jp/"}},"servers":[{"url":"https://ruletrade.jp"}],"paths":{"/mcp":{"post":{"operationId":"mcpJsonRpc","summary":"MCP Streamable HTTP endpoint (JSON-RPC 2.0, stateless)","description":"Send a JSON-RPC 2.0 request. Use method `tools/list` to enumerate tools, then `tools/call` with `params.name` and `params.arguments`. Batch arrays are accepted. Every successful tool result includes a `disclaimer` key that must not be removed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcRequest"},"examples":{"get_daily_signals":{"summary":"公開ルールに該当した銘柄(1件・1営業日遅れ)","value":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_daily_signals","arguments":{}}}},"get_market_regime":{"summary":"地合い判定(BULLISH/NEUTRAL/BEARISH/PANIC)と3軸スコア","value":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_market_regime","arguments":{}}}},"get_anomaly_summary":{"summary":"アノマリー検証結果(ジンクス50本)+暴落前兆(傾斜計5・着火メーター7)","value":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_anomaly_summary","arguments":{}}}},"get_candlestick_verdict":{"summary":"酒田五法12本の検証結果(採用ゼロ本)","value":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_candlestick_verdict","arguments":{}}}},"get_event_reaction":{"summary":"出来事のあとに何が起きたか(3つの検証)","value":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_event_reaction","arguments":{}}}},"get_indicator_verdict":{"summary":"テクニカル指標26種の検証結果(使える9 / 条件付き4 / 捨てろ13)","value":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_indicator_verdict","arguments":{}}}},"get_etf_decay":{"summary":"レバレッジ・インバースETFの減価(12年の実測)","value":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_etf_decay","arguments":{}}}},"list_tools_guide":{"summary":"使い方ガイド・データ更新時刻・免責","value":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_tools_guide","arguments":{}}}},"tools_list":{"summary":"List the available tools","value":{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}},"anomaly_by_name":{"summary":"Look up one anomaly by name (partial match)","value":{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_anomaly_summary","arguments":{"name":"セルインメイ"}}}}}}}},"responses":{"200":{"description":"JSON-RPC response. Tool output is in `result.structuredContent`.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonRpcResponse"}}}},"202":{"description":"Notification accepted (no response body)."},"400":{"description":"Malformed JSON."}}},"get":{"operationId":"mcpGetNotAllowed","summary":"Not allowed — this endpoint is POST only (no SSE stream)","responses":{"405":{"description":"Method Not Allowed"}}}},"/mcp/health":{"get":{"operationId":"health","summary":"Check that every upstream JSON file is reachable","responses":{"200":{"description":"All source files readable (`ok: true`)."},"503":{"description":"At least one source file could not be read."}}}},"/mcp/llms.txt":{"get":{"operationId":"llmsTxt","summary":"Plain-text description of this server for agents","responses":{"200":{"description":"text/plain"}}}}},"components":{"schemas":{"JsonRpcRequest":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","number"],"description":"Omit for notifications."},"method":{"type":"string","enum":["initialize","tools/list","tools/call","ping","notifications/initialized"]},"params":{"type":"object"}}},"JsonRpcResponse":{"type":"object","properties":{"jsonrpc":{"const":"2.0"},"id":{"type":["string","number","null"]},"result":{"type":"object","properties":{"isError":{"type":"boolean"},"content":{"type":"array","items":{"type":"object","properties":{"type":{"const":"text"},"text":{"type":"string"}}}},"structuredContent":{"$ref":"#/components/schemas/ToolResult"}}},"error":{"type":"object","properties":{"code":{"type":"integer"},"message":{"type":"string"}}}}},"ToolResult":{"type":"object","description":"Tool output. Always carries `disclaimer`. Never contains price series, financial statement values, position sizing, or recommendations.","required":["disclaimer"],"properties":{"disclaimer":{"type":"string"},"source_site":{"type":"string","format":"uri"},"data_site":{"type":"string","format":"uri"}},"additionalProperties":true},"get_daily_signals_arguments":{"type":"object","properties":{"strategy":{"type":"string","enum":["bnf"],"default":"bnf","description":"ルール名。現在は bnf(25日線乖離の逆張りルール)のみ"}},"additionalProperties":false,"description":"公開ルール(BNF 25日線乖離が -15% 以下)に該当した銘柄を返す。★返すのは1件だけ★(該当した全銘柄の一覧は配布しない)。件数は返すので「今日は何件あったか」は分かる。1営業日遅れ(前営業日の終値で判定)。価格・株数・利確/損切ラインは含まない。該当は機械的な条件への一致であって、売買の判断ではない。"},"get_market_regime_arguments":{"type":"object","properties":{"history_days":{"type":"integer","minimum":0,"maximum":60,"default":0,"description":"直近N日分の地合い履歴を含める(0=含めない、最大60)"}},"additionalProperties":false,"description":"本番システムが日中に更新している相場環境の判定、サーキットブレーカー(HALT)状態、VIX、日経平均、当日シグナル件数を返す。あわせて3軸スコア(トレンド・短期リスク・需給をそれぞれ -2〜+2 で採点し、合計 -6〜+6 を5段階に分けたもの)と、各軸がその点数になった理由・5営業日以内の大型イベントを返す。銘柄名は含まない。オプションで日次履歴も返す。相場の予想ではない。"},"get_anomaly_summary_arguments":{"type":"object","properties":{"name":{"type":"string","description":"アノマリー名またはカテゴリの部分一致で絞り込む(例: セルインメイ / 節分 / 曜日 / 都市伝説)。省略すると全50本の要約を返す"},"detail":{"type":"boolean","default":false,"description":"年代別の内訳(extra)・中央値/標準偏差/対照群・書籍上の根拠(book)・着火メーターの統計表と履歴を含めるか"}},"additionalProperties":false,"description":"日本株の言い伝え(アノマリー/ジンクス)50本を61年分の日経平均データで検証した結果(判定・勝率・平均リターン・標本数・p値)を返す。name を渡すとその名前を含むものだけに絞り込める(例: セルインメイ, 節分天井, 干支)。あわせて、5つの暴落前兆(逆イールド・CAPE・信用膨張・過熱・引き締め)の点灯状況と、着火メーター(7フラグ・20営業日以内に-10%が起きた過去の割合)の現在値も返す。detail=true で年代別の内訳・統計表・書籍上の根拠を含める。返すのは判定結果と統計値のみで、価格系列や財務値は含まない。"},"get_candlestick_verdict_arguments":{"type":"object","properties":{"pattern":{"type":"string","description":"形の名前で絞り込む(部分一致・日英の別名可。例: 三尊 / 逆三尊 / 三空 / 赤三兵 / morning star)。省略すると12本の一覧を返す"},"detail":{"type":"boolean","default":false,"description":"保有日数別(5/10/20営業日)の内訳・75日移動平均で分けた相場環境別の内訳・検証に使った規定値を含めるか"}},"additionalProperties":false,"description":"三尊天井・赤三兵・三空叩き込みなど酒田五法12本を東証プライム1,550銘柄・10年半で検証した結果を返す。取引回数・勝率・PF・平均超過収益・p値・負け年・5つの採用基準のどれで落ちたか・不採用の理由を含む。12本すべてが採用基準を満たさなかった(採用ゼロ本)。最も PF の高い三空叩き込み(PF 3.04)も、期間を前半と後半に分けると符号が反転するため不採用としている。pattern を渡すとその形だけに絞り込める(日本語・英語の別名可。例: 三尊, head and shoulders, 赤三兵)。detail=true で保有日数別・相場環境別の内訳を含める。銘柄名・銘柄コード・価格は含まない。"},"get_event_reaction_arguments":{"type":"object","properties":{"event":{"type":"string","description":"出来事の名前で絞り込む(部分一致・日英の別名可)。出来事27種: 地震 / earthquake / 利上げ / 円安 / 関税 / パンデミック など。決算後のドリフト: 決算 / earnings / PEAD。指数の入替: TOPIX / 日経225 / 除外 / 採用。省略すると3つの検証の見出しと、出来事27種の一覧を返す"},"detail":{"type":"boolean","default":false,"description":"絞り込んだときに、分類前の全標本数・各窓での市場全体の動き・決算の区分別内訳(発表時刻/四半期/規模/期間)とルール別の成績まで含めるか。event を省略したときは効かない(全件の詳細は 50KB を超えるため)"}},"additionalProperties":false,"description":"ある出来事のあとに何が起きたかを、3つの検証からまとめて返す。(1)出来事27種 — 地震・利上げ・円安・関税・パンデミックなどのあと、市場全体を上回る動きがあったか。判定は 持続型/初動型/不発/逆行/市場全体のみ の5種類と、5つの窓(当日/翌日/5営業日後/1か月後/3か月後)の超過収益・勝率・p値。(2)決算後のドリフト — 決算発表のあと値動きが続くか。約26,000件の決算で検証。(3)指数の入替 — TOPIX の採用・除外でいつ・どちら向きに動くか。3つは別々のデータから同じ形を示している: 反応は出来事を通過する前か、ごく初期に終わる。出来事27種の「初動型」は翌朝の寄り付きで終わり、決算後のドリフトは+5日で統計的に消え、指数の入替は実施日で止まる。event を渡すと絞り込める(例: 地震, earthquake, 利上げ, 決算, PEAD, TOPIX, 日経225)。省略すると3つの見出しを返す。銘柄名・銘柄コード・銘柄バスケットは含まない。返すのは分類と統計だけ。"},"get_indicator_verdict_arguments":{"type":"object","properties":{"name":{"type":"string","description":"指標名またはカテゴリで絞り込む(部分一致・日英の別名可。例: RSI / MACD / ボリンジャー / オシレーター / volume)。省略すると26種の一覧を返す"},"detail":{"type":"boolean","default":false,"description":"8区分(出口A・B × 上昇/下落/前半/後半)それぞれの超過収益を含めるか"}},"additionalProperties":false,"description":"RSI・MACD・移動平均クロス・ボリンジャーバンドなどテクニカル指標26種を、教科書どおりの買い方で TOPIX500・10年・約50万回の売買として検証した結果を返す。勝率・期待値・PF・ランダムな売買との超過収益を、出口2種類(20営業日で手仕舞い / 8%トレーリング)で返す。判定は 使える9個 / 条件付き4個 / 捨てろ13個 の3段。「使える」の基準は8区分(出口2 × 上昇/下落/前半/後半)すべてで超過収益が +0.3% を超えること。捨てろ13個には入門書の最初に出てくる指標が並んでいる。name を渡すとその指標だけに絞り込める(日本語・英語の別名可。例: RSI, 一目, ichimoku, 乖離率)。detail=true で8区分すべての内訳を含める。銘柄名・銘柄コード・価格は含まない。"},"get_etf_decay_arguments":{"type":"object","properties":{"code":{"type":"string","description":"検証対象のETF(1357=ダブルインバース / 1570=レバレッジ)。省略すると両方を含む全体を返す"},"detail":{"type":"boolean","default":false,"description":"地合い条件別(75日線割れ初日・200日線割れ初日など8条件 × 保有日数4 × コスト2 = 72通り)の PF と最大ドローダウンを含めるか"}},"additionalProperties":false,"description":"日経ダブルインバース(1357)などレバレッジ・インバース型ETFを12年・2,964営業日ぶん実測した結果を返す。年別の理論値と実績・保有日数別の勝率と理論との乖離・地合い条件別の PF と最大ドローダウン・「戻るまで待つ」を305回試した結果を含む。日々の値動きを2倍にする商品なので、上下を往復するだけで元に戻らない(日経が+10%のあと-9.1%で元の水準に戻る2日間で、100→80→94.5)。検証結果には各節の「解釈で注意すべき点」を必ず添えて返す(日経が12年で約4倍になった上昇相場のデータであるため)。detail=true で地合い条件別の72通りを含める。日足の価格系列と個別株の銘柄情報は含まない。"},"list_tools_guide_arguments":{"type":"object","properties":{},"additionalProperties":false,"description":"このサーバーの全ツール(8本)の説明、データの更新タイミングと遅延、返さないものの一覧、免責事項、今後の予定を返す。最初に一度呼ぶことを想定。"}}}}