quant-swarm について
quant-swarm は、クオンツ研究者や取引システム向けにリスク優先の戦略検査を提供し、戦略ゲノムを Shadow Tournament に提出して、同一の市場経路で進化する取引スウォームのチャンピオンと比較できます。時点データ、リーケージ監査、統計的な判定基準を重視し、ローカルツールから注文はできません。
主な機能
- 01取引前のリスクと不変条件を検査
- 02特徴量の来歴と先読みリーケージを監査
- 03時点特徴量を構築しシグナルの有意性を評価
- 04市場レジームごとの戦略の脆弱性を調査
- 05ゲノムを提出し大会結果を確認
活用シーン
- 01実運用への昇格前に注文リスクを確認
- 02バックテストの先読みバイアスを監査
- 03シグナルの有意性と研究範囲を評価
- 04同一経路で戦略をチャンピオンと比較
MCP 対応
swarm-data-mcp、swarm-warden-mcp、swarm-gym-mcp の三つの MCP サーバーを提供し、市場データ、リスク監査、戦略評価のツールを公開します。大会関連ツールではゲノムの提出と結果の取得ができ、ローカルツールから注文はできません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://swarm-mcp-503318750546.europe-west1.run.app/mcp/dataclaude mcp add --transport http blink1217-quant-swarm https://swarm-mcp-503318750546.europe-west1.run.app/mcp/data{"mcpServers":{"blink1217-quant-swarm":{"type":"http","url":"https://swarm-mcp-503318750546.europe-west1.run.app/mcp/data"}}}Cursor で開く{"servers":{"blink1217-quant-swarm":{"type":"http","url":"https://swarm-mcp-503318750546.europe-west1.run.app/mcp/data"}}}VS Code で開く{"mcpServers":{"blink1217-quant-swarm":{"type":"http","url":"https://swarm-mcp-503318750546.europe-west1.run.app/mcp/data"}}}{"mcpServers":{"blink1217-quant-swarm":{"serverUrl":"https://swarm-mcp-503318750546.europe-west1.run.app/mcp/data"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://swarm-mcp-503318750546.europe-west1.run.app/mcp/data認証が必要https://swarm-mcp-503318750546.europe-west1.run.app/mcp/warden認証が必要https://swarm-mcp-503318750546.europe-west1.run.app/mcp/gym認証が必要ツール
詳細
quant-swarm
ライブ資本の投入可否を判定する、リスク優先の取引前チェックです。時点整合性のあるデータ、不変条件とリークの監査、レジームの検証に加え、シャドー・トーナメントを備えています。同一の市場経路上で、あなたの戦略ゲノムを、自己進化するライブ取引スウォームのチャンピオンと照合してスコアリングします。
プリンシパル・クオンティタティブ・テクノロジストが開発
The 1.21 Initiativeのプリンシパル・クオンティタティブ・テクノロジストが作成しました。取引スウォームで、ライブ昇格と執行の判断をゲートするものと同じコードパスを使用しています。すべてのツールは、本番の取引システムで繰り返し発生する2つの問題、すなわちリサーチにおける先読みリークと本番環境における過大なポジションを防ぐために用意されています。quant-swarmは両方を防ぐチェッカーを提供するため、運用中の資本を守るものとまったく同じロジックで、自分の作業を監査できます。
あなたのバックテストは静的です。スウォームは静的ではありません。
このパッケージの背後にあるスウォームは、戦略を手作業で調整しません。チャンピオンのゲノムがライブで稼働し、サイクルごとにスウォームがチャレンジャー(ティアごとに上限を設けた変異体)を生み出します。5つのラベル付き市場レジーム(高ボラティリティ、ドローダウン、もみ合い、急騰、ギャップ多発)にわたり、チャンピオンとチャレンジャーを同一のエピソードシード行列でリプレイし、ペアごとの結果をELO台帳に記録します。サロゲート事前分布で候補を事前スコアリングし、コストのかかるリプレイを重要な候補に集中させます。単一の好成績バックテストだけで昇格することはありません。昇格には、MIN_EPISODES=20のペアエピソード、Wilcoxon検定で有意な差、正の最悪レジームのマージン(平均ではなくマキシミン)、これまでに試みたすべての試行の単調増加カウントを基準とするディフレート・シャープレシオのマージン、そしてPBOの上限が必要です。これは、AlphaZero型システムで広く知られるチャンピオン/チャレンジャー方式のセルフプレイループを、市場に誠実に適用したものです。ただし、当てはまらない点が2つあります。市場は私たちに反応しないため、真のセルフプレイではありません。また、学習されたダイナミクスモデルも木探索もありません。選抜はペアリプレイ、ELO、統計的ゲートによって行われます。
リプレイは半分にすぎません。毎週日曜日、スウォームはフォワードリーグも実行します。リーグの各ゲノム(チャンピオン、上位ELOのチャレンジャー、提供されたゲノム、そして学習済みモデルで週末の取引を選ぶプランナー参加者)は、金曜日の因果特徴量をもとに翌週のポジションを確定し、週が始まる前にSHA-256コミットメントを保存します。次のサイクルでは、確定済みの各ポジションを実際の終値(各ゲノム固有のコストモデルを差し引いた値)で評価し、同一の実際の週を基準に参加者を順位付けしてELOを更新します。確定済みの予測をその後の週に合わせて過剰適合させることはできません。これがスウォームのグラウンドトゥルースであり、各ポジションを構成要素であるムーブ(スクリーニング、エントリー、サイズ、週末)に分解するリプレイバッファに取り込まれます。これにより、戦略全体をひとまとめに評価するのではなく、ムーブごと、レジームごとに貢献度を割り当てます。フォワードリーグは2026-09-02に開始しました。最初の実績決済は9月中旬に行われ、スウォームはそれを収集するため、8週間は手を加えずに稼働します。
これは、あなたにとって次のような意味があります。ローカルのバックテストでわかるのは、ある1つの経路における戦略の成績です。Shadow Tournamentでは、進化を続けるチャンピオンに、同じ経路上で、その戦略が最も苦手とするレジームにおいて、統計的に判断可能なサンプルサイズで勝てるかどうかがわかります。そして、あなたの結果はスウォームのELO台帳に記録されます。コントリビューターとして参加すると、あなたのゲノムは次回の交配サイクルで外部チャレンジャーとなり(料金は半額)、リプレイでスコアリングされ、リーグ出場枠を獲得すれば実際の週でも評価されます。これがフライホイールです。誠実な投稿のたびにチャンピオンはより倒しにくくなり、すべてのユーザーがより手強いベンチマークを得られます。
リスク優先の理由
リスクゲートは事後レポートではなく、あらゆるアクションの前提条件です。この制約を中心にパッケージを構成しています。
-
デフォルトでフェイルクローズ。 不明な機能はティア C に分類され、来歴が欠けている場合は
UNSCORABLEを返し(中立値で補完することはありません)、検証できないトークンはホスト型の経路で拒否されます。warden.audit_featuresとfeatures.buildの来歴ガードを参照してください。 -
固定され、ドリフトしない不変条件。 注文サイズの上限(銘柄ごとに 25%、グロス 60%)、約定モデル(スプレッド+スリッページ+逆選択、両レッグとも常に不利な方向)、ハード制約チェックは、固定されたコミット SHA のコードをベンダー管理しています(
.github/pins.json、CI でバイト単位に検証)。同等性テストで、上限の 3 つの実装(Python/MCP、C# ライブエンジン、Terraform)を固定し、ドリフトしないようにしています。 -
ポイント・イン・タイムの来歴。
%LOCALAPPDATA%\1.21-initiative\swarm-mcp\cache.dbの SQLite WAL キャッシュ(POSIX では$XDG_CACHE_HOME/1.21-initiative/swarm-mcp):確定済みセッションは再取得せず、進行中のセッションは最大 60 秒ごとに更新され、決算情報とニュースはfetched_atに基づく追記専用で保存されます。また、features.buildはすべての行で先読み防止ガードを実行します(各特徴量がas_of時点での新たな因果的再計算の結果と一致する必要があります)。 -
悲観的な約定処理。
warden.cost_checkとシミュレーターは不利な約定をモデル化します。バックテスト結果を水増しする楽観的な約定経路はありません。 -
注文発注コードの経路なし。 注文の発注、キャンセル、ルーティングができるツールはありません。このリポジトリは取引を実行できず、安全でない取引を拒否することしかできません。
-
統計的に誠実な拒否。 昇格判定はローカルでは決して発行されません。統計的に判定できない出力は
INDETERMINATE_LOCAL/UNDERPOWERED/UNSCORABLEを返し、正確に不足している入力(MIN_EPISODES=20、PBO、DSR、最悪レジームのマージン)を示して、ホスト型の Shadow Tournament(tournament.submit)に引き継ぎます。 -
ローカルファースト、BYO キー:BYOK モードで動作している場合に限り、Alpaca/AltData のキーを環境変数から読み込みます。それ以外の場合、データはホスト型リレーを経由します。
-
シンボル、バー、特徴量、注文がマシンの外に出ることはありません。外部に送信される可能性があるのは、
tournament.submitに明示的に渡したものだけです。ゲノムのパラメーター・ベクトル(公開スキーマのフィールド)と、戦略貢献者ティアの場合は、著者が作成した開示情報や戦略コードです。送信されたコードが実行されることはありません。不活性なテキストとして扱われ、ホスト型 LLM レビュアーによって静的に読み取られ、構造化された説明とコードハッシュに変換された後、レビュー後に生のコードは破棄されます。デフォルトでは、採点後にベクトルさえもホスト側から削除されます。
Smithery でワンクリックインストール:
リスティングは blink-kt/quant-swarm です(パッケージ名と Smithery のスラッグはどちらも quant-swarm)。Smithery の stdio ランチャーは swarm-data-mcp を起動し、以下のホスト型ストリーミング可能な HTTP エンドポイントが 3 つのサーバーすべてを提供します。設定は任意です。トークンがなくてもサーバーは起動して、すべてのツールを一覧表示します。最初の呼び出しで無料登録の案内が表示されます。トークンはいつでも追加でき、リレー経由およびホスト型のツールを利用できるようになります。
サーバー
| サーバー | フック | ツール |
|---|---|---|
swarm-data-mcp | 派生データのみの市場シグナルと、ポイントインタイムの特徴量構築 | market.pulse、market.sentiment、market.climate、market.regime、market.microstructure、volume.forecast、market.screen、market.rank、pit.analysis、features.build、cache.warm、cache.stats、cache.offline |
swarm-warden-mcp | 取引前の不変条件チェックとリークゲート — ライブ資金運用の最低基準とポイントインタイムのガード | warden.validate_order、warden.audit_features、warden.cost_check、warden.validate_genome、warden.explain_sizing、warden.promotion_verdict |
swarm-gym-mcp | まずローカルでレジームの脆弱性を調査し、次にスワームの現役チャンピオンと対戦する シャドウトーナメント | gym.label_regimes、gym.probe_fragility、gym.paired_preview、gym.estimate_cloud_run、tournament.submit、tournament.verdict、tournament.leaderboard |
生のバー/エンリッチメントへのアクセス(get_bars/enrich_symbol)は内部専用であり、ツールとしては登録されなくなりました。これらの経路はプロバイダーの生の値をそのまま返すためです。データポリシーは派生データのみを許可し、比率、パーセンタイル順位、ラベル、区分、件数に限定しています。market.pulse と market.sentiment が汎用の代替ツールです。どちらも任意の bars 引数を受け付けるため、こちらが扱っていない銘柄について、独自の OHLCV 行を渡せます。
PIT の有意性について(pit.analysis)
pit.analysis は、オルタナティブデータを購入するすべての人がまず尋ねるべき問いに答えます。このシグナルは本物なのか、そしてそれをどう判断できるのか? リリースゲートで管理される pit_analysis/v2 ストア(ファネルの有意性出力を保持する行を含む同じアーティファクト)を読み取り、基礎データごとに、推測を交えず各 (dataset|metric|horizon) ファミリーを説明します。
- rolling_ir(指標をサイズ/セクター中立化し、中立化した将来リターンと比較した52週間の Spearman 横断面ランク IC)、Newey-West の両側 p 値(
t_hac、ラグceil(horizon/5)— 1m/6m の期間は重複するため、単純なIR·√nによる t 値は保守性を欠きます)、n_obs、research_only カバレッジフラグ、および鮮度に関する注意事項。 - 期間ごとの明示的な判定:SIGNIFICANT(同一実行で L1 を通過:rolling IR > 0 かつ Benjamini-Hochberg の q ≤ 0.05)、NOT_SIGNIFICANT(理由も表示 — IR が負、または名目上の p 値が多重検定補正を通過しない)、NOT_JUDGED(26件の観測数の下限未満、リリースが古い、または診断専用の生レベル)、UNVERIFIED(ゲートアーティファクトがない、別の実行のゲートである、またはプラセボ検定に失敗 — 生の p 値だけで判定が昇格することはありません)。
- ポイントインタイム:
as_ofより後のリリースポイントは無視され、生の指標値は返されません。返されるのは派生統計のみです。
無料プランでは簡易版の回答(1回の呼び出しにつき1銘柄、概要件数と上位ファミリー)が利用できます。Pro では1回の呼び出しにつき10銘柄、すべてのファミリー、期間ごとの詳細情報、および過去の as_of が利用可能になります。v2 の手法(中立化、重複補正済みの推論、スケール非依存の会計バリアント、鮮度の上限、日付シャッフルによるプラセボ検定)は各実行マニフェストに記録され、v1 のストアは黙って再利用されることなく拒否されます。投資助言ではありません。
営業地域の天候(market.climate)
market.climateは、天候の影響を受ける原資産を対象とした地域別の天候調査です。各シンボルについて、製品の製造および/または販売を行うすべての営業地域を対象に、認証情報不要のOpen-Meteoによる14日間の予報と、1年前の同じ暦日14日間のデータを取得します(エネルギー、農業、航空・旅行、小売、公益事業、住宅建設業者の事業展開地域を対象に、出荷済みの10-K形式でエクスポージャー加重したレジストリを使用します)。次に、地域ごとの気温偏差、HDD/CDD、降水量/降雪量、風、凍結日数/高温日数をエクスポージャー加重してシンボル単位に集計します。地域ごとの詳細も保持されるため、ある収穫地域の熱波も確認できます。天候データは原資産の実際の地理に基づき、上場取引所や本社所在地の都市に基づくことはありません。ニューヨークで製造・販売される製品に、ロンドンの予報を代用することはありません。出荷済みのレジストリに含まれない原資産については、areas(製造・販売地域)を渡すと、market.climateは指定された地域のみを調査します。無料のツールで、プロバイダーの認証情報は不要です。返されるのは導出された合計値/平均値/比率/件数/区分のみで、生の日別時系列データは返しません。予報値は現在の調査コンテキストであり、過去の判断日に適用することはできません。
シャドウトーナメント
gym.paired_preview は、性能が限られていることを明示しています。キャッシュ済みのウィンドウでは、レジームごとに最大8シード×2回までで、すべての統計に UNDERPOWERED とラベルが付き、判定にはなりません。ゲノムをこの上限の先へ進めるには、tournament.submit を使います。
- ローカルで検証 —
warden.validate_genomeはgenome_hashを返します。データは何も送信されません。 - 送信 —
tournament.submit(genome, contribute=false|true)。サイトでクレジット(200、contribute=trueの場合は100)が課金され、ホスト型ランナーにジョブが送られます。contribute=trueは ゲノムコントリビューター ティアです(ベクトルは外部チャレンジャーとしてライセンスされます)。戦略コントリビューター ティアに参加するには、disclosureおよび/またはstrategy_codeを追加します。これは、著者が作成した意思決定ロジックおよび/または静的な LLM レビュー用コードです。コードが実行されることはありません。レビュー後に、リーダーボードへのクレジット表記とリーグ席の資格が与えられます。 - 同一パスでのホスト型リプレイ — ランナーは、ホスト型の
bars_1dayパネルで、あなたのゲノムとスウォームの現チャンピオンを、同じ5レジーム×レジームあたり4回×5シード=100件のペアエピソード(MIN_EPISODES=20を上回る)にわたって再生します。Wilcoxon の対応あり p 値、ブートストラップ信頼区間、レジームごとの差分、最悪レジームのマージンを計算し、ハード制約違反と先読み違反を数え、結果をCHALLENGER_BEATS_CHAMPION、CHALLENGER_LOSES、INCONCLUSIVEのいずれかに分類します。 - ELO — 結果に基づき、チャンピオンに対するあなたのゲノムのレーティングと、出場者に対するチャンピオンのレーティングが更新されます(K=16、開始時は1500)。
tournament.leaderboard(無料)では、匿名化されたリーダーボードが表示されます。表示されるのは12文字のハッシュ接頭辞のみです。 - 結果の確認 —
tournament.verdict(job_id)。結果の確認に料金はかかりません。実行には約2分かかります。
結果はトーナメントの結果であり、昇格ではありません。昇格ゲート(デフレート・シャープ・マージン、PBO 上限、単調増加する試行台帳)は、条件を満たしたゲノムに対して、スウォームの非公開レジストリ内で実行されます。この境界は意図的に設けられています(下記の IP の境界 を参照)。リプレイ結果はスウォームの迅速なシグナルであり、実際の週におけるフォワードリーグの決済は、遅いものの偽装できないシグナルです。リプレイでチャンピオンに勝ったコントリビュート済みゲノムはリーグ席を獲得し、席を維持できるのは実現した週の成績だけです。
送信されるもの: ゲノムのパラメータベクトル、そのハッシュ、contribute フラグです。さらに、戦略コントリビューターのティアに限り、disclosure および/または strategy_code が送信されます(コードが実行されることはありません。ホスト側のレビュアーが LLM を用いて静的に読み取り、構造化された説明とコードハッシュのみを保持します)。シンボル、バー、特徴量、注文、認証情報は送信されません。保持期間: contribute=false の場合、スコア算出後にベクトルはジョブレコードから削除され、ハッシュと結果のみが残ります。contribute=true(ゲノムまたは戦略のティア)の場合、ベクトルと結果をスウォームの進化ループにライセンスします。そこでは外部チャレンジャー(origin=external_contribution)として登録され、スウォーム独自の変異体と同じティア上限付きトーナメントおよび昇格ゲートを通過します。コントリビューターの料金が半額なのはそのためです。あなたのゲノムがスウォームの提案者の多様性を高め、採用されたコントリビューションの一つひとつが、誰にとっても次のチャンピオンを倒しにくくするのです。戦略ティアでは、さらに disclosure によって、レビュー後にリーダーボードへのクレジット表記とリーグ席を獲得できます。リプレイでチャンピオンに勝ったコントリビュート済みゲノムは席を獲得し、席を維持できるのは実現したフォワードリーグの週次成績だけです。
プランとクレジット料金表
アクセスには https://1.21initiative.com/mcp/ で発行されるトークンを使用します。 クレジットは、費用が発生するすべての処理に共通する単位です — リレーのデータ呼び出し、ホスト型コンピューティングのシミュレーションエピソード 1 回、トーナメント実行のいずれも対象です。そのため、パックで購入できるのは、そのすべてに使える上限付きのクレジットであり、ホスト型コンピューティングを赤字で提供することはありません。
| 内容 | クレジット | 備考 |
|---|---|---|
リレーのデータ呼び出し(/data/bars、/data/enrich、/data/pit) | 1 | プランの上限内であれば、シンボル数にかかわらず 1 回の呼び出しとしてカウントされます |
ホスト型の単発 Pro ツール(features.build、warden.promotion_verdict、gym.label_regimes、gym.estimate_cloud_run) | 1 | ホスト型エンドポイントでのみ課金されます |
ホスト型ジムエピソード(gym.probe_fragility、gym.paired_preview) | エピソードごとに 1 | 5 regimes × per_regime × seeds(ペアプレビューでは × 2 genomes)。gym.estimate_cloud_run で、実行前に任意の構成の料金を確認できます |
Shadow Tournament(tournament.submit) | 200 — contribute=true の場合は 100 | チャンピオンとの 100 ペアエピソードの全構成に対する固定料金です |
tournament.verdict、tournament.leaderboard、すべての warden チェッカー、cache.*、あらゆるツールのローカル stdio 実行 | 0 | ローカル実行には課金されません — CPU と電力はお客様の負担です |
- 無料(登録時に即時発行されるトークン):すべての warden チェッカー、派生スナップショット
market.pulse/market.sentiment/market.climate/market.regime、pit.analysislite(1 回の呼び出しにつき 1 シンボル、見出しの件数と上位ファミリー。Pro では 10 シンボル、すべてのファミリー、期間ごとの全詳細、過去のas_ofが利用可能)、cache.stats、cache.offline、およびtournament.leaderboard(1 回の呼び出しにつき 10 シンボル、月あたり 250 回のリレー呼び出し、365 日のバックフィル)。ホスト型コンピューティングは含まれず、 リレーの利用枠を超えてお客様に代わって GCP 費用が発生することもありません。 - Pro — セルフサービスの一回限りのクレジットパック:10,000 クレジットで £19、または 100,000 クレジットで £149。
有効期間は 90 日間で、サブスクリプションも無制限プランもありません。
features.build、cache.warm、Pro の 派生ツール(market.microstructure、volume.forecast、market.screen、market.rank。1 回の呼び出しにつき 50 シンボル、全期間のバックフィル)、すべてのジムツール、warden.promotion_verdict、tournament.submit/tournament.verdictが利用可能になります。Starter パックでは 50 回のトーナメントを実行でき、コントリビューターの場合は 100 回です。 - 法人向け(個別見積もり):Strategy Validation Audit の契約、カスタムユニバース、ホスト型リーグ実行、SLA。
クレジット残高が空になった、または 90 日間の有効期間を過ぎた Pro トークンは、status: exhausted /
expired として検証され、無料の機能セットで利用できます — 再購入するまで Pro ツールは利用できません。プランの制限はサーバー側で適用されます(リレー、/api/mcp/meter、/api/mcp/verify、およびホスト型
streamable-HTTP エンドポイントは、構造化された 402 拒否応答と upgrade_url を返します)。このオープンソース
クライアントのプランチェックは参考情報です。無料トークンで Pro ツールを呼び出すと UPGRADE_REQUIRED
エンベロープが返されます — ツールは引き続き一覧に表示され、試行時にアップグレードページが案内されます。DRM はありません。無料プランは意図的に費用ゼロで利用できる範囲として提供されています。
真のポイントインタイムデータ
LLM 主導の調査ではセルが何度も再実行されます。そのたびに AltData(60 req/min)と
Alpaca(200 req/min)の上限を消費して、同じ履歴を再取得し、その後、意思決定時点では
存在しなかったデータから特徴量をひそかに構築してしまいます。swarm-data-mcp はこの両方を解決します。
%LOCALAPPDATA%\1.21-initiative\swarm-mcp\cache.db(POSIX では$XDG_CACHE_HOME/1.21-initiative/swarm-mcp)に SQLite(WAL)キャッシュを保存します。- 確定済みセッションは再取得されません — 以降の再生は常にゼロコストです。 進行中のセッションは最大 60 秒ごとに更新され、エンリッチメントは 300 秒ごとに更新されます。
- 決算情報/ニュースは
fetched_atに基づく追記専用です。後から取得しても、以前のas_ofが書き換わることはありません。 - プロバイダーごとのトークンバケットと、
429に対する指数バックオフ(1s·2ⁿ)を使用します。 features.buildはすべての行に対して先読み防止ガード(各特徴量がas_of時点での 新たな因果的再計算と一致する必要があります)を実行し、すべてのフィールドに対して 出所ガードを実行します。ポイントインタイムの証拠が記録されていない Tier-B/C の フィールドはUNSCORABLEとして返されます —0.0で中立値を補完することはありません。
すべてのレスポンスには coverage(キャッシュと API の内訳、シンボルごとの最古/最新セッション)と
limits(ローカルに保持している深さの週数と、テープ深度のゲートを比較。tier-A の高速パスには
8 週間、テープ適格性には 26 週間)が含まれます。ゲートに届かない場合は、条件を満たすホスト型
bars_1day パネルを示す escalation ブロックが返されます。テープ階層の再生はロードマップ上の機能であり、現時点では利用できません — 利用できるかのように示すことはありません。
番人
warden.validate_order は、ライブ注文を拒否するものと同じ関数です。銘柄ごとに株式の 25%、
グロス上限は 60%です。ファンドごとのオーバーライドは可能ですが、レスポンスでは常にハウス基準の
最低値からの乖離が報告されます。warden.audit_features は、禁止された実績値のソース
(open-meteo.archive などは、過去の金曜日に予報されていた内容ではなく、実績値を返します)、
テープ開始より前の特徴量を検出し、未知の特徴量はフェイルクローズで Tier C に分類します。
warden.cost_check は、主張されたグロスエッジを悲観的な約定モデル(スプレッド+スリッページ+
逆選択のコスト。両レッグとも、常に不利な方向)に基づくコスト控除後の実態に換算します。
warden.explain_sizing は C# のライブリスクエンジンを手順ごとに再現し、パリティテストで
terraform と guardrails に対する最低値を固定することで、3 つのコピーに差異が生じないようにします。
ジム
gym.probe_fragility は、決定論的な tier-A シミュレーター上でゲノムを再生し、レジームごとの
コスト控除後の bps、最悪のレジーム、ターンオーバー、ハード制約への違反を報告します —
昇格は行いません。シード数は最大 8、per_regime は最大 2 です。これは統計的な誠実さのためであり、
人為的な希少性を作るためではありません。チャンピオンに対する Tier-B/C の変異では、価格パネルで
提供できない特徴量を中立値でひそかに補完するのではなく、ジムの TierScoringRefusal(UNSCORABLE)が
発生します。gym.paired_preview は昇格ゲートをバイパスし、同一の市場経路でチャンピオンと挑戦者を
比較します。すべての統計には UNDERPOWERED のラベルが付き、MIN_EPISODES=20 を満たすのに
必要な正確なシード数が示されます — そして判定不能な結果の末尾にはすべて、解決に必要な
tournament.submit 呼び出しそのものである cloud_job ブロックが含まれます。
インストール
Python ≥ 3.11 が必要です。接続方法は 2 通りです。
-
リモート — ホストされたストリーミング可能な HTTP エンドポイント(レジストリエントリーと同じ URL):
https://swarm-mcp-503318750546.europe-west1.run.app/mcp/data(および/mcp/warden、/mcp/gym)。トークンはAuthorization: Bearer <token>(または?apiToken=<token>)として渡します。Claude Code:claude mcp add --transport http swarm-data https://swarm-mcp-503318750546.europe-west1.run.app/mcp/data --header "Authorization: Bearer <token>"Web コネクター向けの OAuth ブラウザー同意はまだ検証されていません(
docs/DISTRIBUTION.mdの OAuth ゲートを参照してください)。検証が完了するまではヘッダー認証を使用してください。 -
stdio —
uvx --from quant-swarm swarm-data-mcp(およびswarm-warden-mcp、swarm-gym-mcp)。環境変数にSWARM_MCP_ACCESS_TOKENを設定します。Cursor/Claude Code の以下のブロックを参照してください。 -
認証情報は 1 種類: アクセストークン(3 つすべてのサーバーで使用。接続時は任意)は、https://1.21initiative.com/mcp/ で発行されます。こちらからアクセスを申請してください(Strategy Validation Audit の予約フローも同じです)。次に、サーバーの
envにSWARM_MCP_ACCESS_TOKENを設定します。トークンがなくても、クライアントにはツールが表示されますが、すべての呼び出しでサイトを参照するACCESS_REQUIREDエンベロープが返されます。トークンはサイトに対して検証され、その検証が使用量の計測に使われます。送信されるのはトークン自体のみで、シンボル、ゲノム、価格、プロバイダーキーは一切送信されません。
エージェントのスニペット
エージェントのスニペット(エージェントをこれらのツールに接続する際、システムプロンプトに貼り付けます):
Use quant-swarm MCP tools for market data, pre-trade risk checks and strategy
evidence. For alternative-data significance, call pit.analysis and quote its
verdict sentences verbatim (SIGNIFICANT / NOT_SIGNIFICANT / NOT_JUDGED /
UNVERIFIED); never upgrade a raw p-value to "significant"; its verdicts are
cross-sectional, not a forecast for one symbol. Risk refusals are final.
- アクセストークン(3 つすべてのサーバーで使用。接続時は任意)。 上記のとおりです。
SWARM_MCP_ACCESS_TOKENがあれば、リレー経由およびホストされたツールを利用できます。トークンがなくても、ツールは表示され、呼び出しにはACCESS_REQUIREDエンベロープが返されます。
同じトークンはホストされたデータリレーにも使われます。swarm-data-mcp は https://1.21initiative.com/api/mcp/... を通じてバーとエンリッチメントを提供するため、Alpaca や AltData の認証情報は不要です。サイトはプロバイダーキーをリレーの背後で保持し、過去のバーを GCS にキャッシュします。リレーはフェイルクローズ方式です。トークンが拒否された場合、または検証できない場合、データ取得は拒否され、不完全な行が返されることはありません。クライアント側のポイントインタイムキャッシュのセマンティクスは変更されません。どのデータ経路でセッションが取得されたかにかかわらず、確定済みセッションはローカルの SQLite で不変です。
公式 MCP レジストリ
レジストリ名は io.github.blink1217/quant-swarm です(この README.md には mcp-name マーカーがあります)。レジストリ対応クライアントでは、3 つの stdio パッケージ(uvx --from quant-swarm swarm-{data,warden,gym}-mcp)と、上記の 3 つのホストされたストリーミング可能な HTTP リモートを利用できます。接続時の SWARM_MCP_ACCESS_TOKEN は任意です。トークンがなくても、ツールは表示され、呼び出しにはアクセスが必要であることを示すエンベロープが返されます。
Smithery
Smithery から blink-kt/quant-swarm をインストールします。1 つのリスティング、1 つのトークンで、3 つすべてのサーバーを利用できます。Smithery は apiToken を SWARM_MCP_ACCESS_TOKEN 環境変数(stdio)として転送するか、ホストされたエンドポイントの ?apiToken= として転送します。トークンは接続時に任意です。
Cursor
Settings → MCP → Add server(または .cursor/mcp.json。チェックイン済みの例は .cursor/mcp.json にあります):
{
"mcpServers": {
"swarm-data": {
"command": "uvx",
"args": ["--from", "quant-swarm", "swarm-data-mcp"],
"env": {
"SWARM_MCP_ACCESS_TOKEN": "<token from https://1.21initiative.com/>"
}
},
"swarm-warden": {
"command": "uvx",
"args": ["--from", "quant-swarm", "swarm-warden-mcp"],
"env": { "SWARM_MCP_ACCESS_TOKEN": "<token from https://1.21initiative.com/>" }
},
"swarm-gym": {
"command": "uvx",
"args": ["--from", "quant-swarm", "swarm-gym-mcp"],
"env": { "SWARM_MCP_ACCESS_TOKEN": "<token from https://1.21initiative.com/>" }
}
}
}
ディープリンクを使いたい場合は、scripts/make_deeplinks.py を実行すると、3 つすべてのサーバー向けの cursor://…/mcp/install リンクが出力されます(stdio 設定を Base64 化するため、上記の JSON と食い違うことはありません)。生成された一覧は .cursor/DEEPLINKS.md にチェックインされています。
Claude Desktop
claude_desktop_config.json — 上記と同じ mcpServers ブロックです。
Claude Code
stdio:
claude mcp add swarm-data --env SWARM_MCP_ACCESS_TOKEN=<token> -- uvx --from quant-swarm swarm-data-mcp
claude mcp add swarm-warden --env SWARM_MCP_ACCESS_TOKEN=<token> -- uvx --from quant-swarm swarm-warden-mcp
claude mcp add swarm-gym --env SWARM_MCP_ACCESS_TOKEN=<token> -- uvx --from quant-swarm swarm-gym-mcp
リモート(ヘッダー認証):
claude mcp add --transport http swarm-data https://swarm-mcp-503318750546.europe-west1.run.app/mcp/data --header "Authorization: Bearer <token>"
Windsurf
~/.codeium/windsurf/mcp_config.json — 上記の Cursor ブロックと同じ stdio JSON 形式です。ホスト型エンドポイントでは、代わりに serverUrl 形式を使用してください。
{
"mcpServers": {
"swarm-data-remote": {
"serverUrl": "https://swarm-mcp-503318750546.europe-west1.run.app/mcp/data"
}
}
}
(ホスト型エンドポイントでは、トークンを Authorization: Bearer <token> または ?apiToken=<token> として渡せます。)
warden と gym はチェック専用で、データサーバーはホスト型リレー経由でデータを取得するため、プロバイダーキーが必要なサーバーはありません — 必要なのはアクセストークンだけです。
ローカル開発: このリポジトリの運用者は、SWARM_MCP_LOCAL_TOKEN に SWARM_MCP_ACCESS_TOKEN と同じ値を設定することで、オフライン環境を初期化できます(文書化されたバイパスです。サイトに対するトークン検証はスキップされ、トークンには Pro の全権限が付与されます — 自分のマシン上でのローカルオーバーライドです)。
Swarm の運用者(内部向け): リレーではなくプロバイダーから直接データを取得するには、swarm-data-mcp で SWARM_MCP_BYOK=1 と ALPACA_API_KEY/ALPACA_SECRET/ALTDATA_API_KEY を設定してください。一般ユーザーは SWARM_MCP_BYOK を未設定のままにしてください。
リモートエンドポイントを自分でホストする場合: swarm-mcp-http は Host ヘッダーを検証します(DNS リバインディング対策)。デフォルトでは 1.21initiative.com、プロジェクトの Cloud Run ホスト名、Smithery ゲートウェイ、localhost が許可されます。SWARM_MCP_ALLOWED_HOSTS(カンマ区切り)はデフォルトを追加します — デフォルトを置き換えることはないため、カスタムドメインによって Cloud Run の URL に誤ってアクセスできなくなることはありません。SWARM_MCP_REMOTE_URL は通知されるエンドポイントのベース URL を上書きし、SWARM_MCP_TOKEN_VERIFY_URL は検証エンドポイントを上書きします。コンテナー形式については Dockerfile を参照してください。
ホスト型エンドポイントではコンピューティング利用量が計量されます(swarm_mcp/metering.py)。Pro のコンピューティングツールを実行する前に、呼び出し元のトークンを使って POST {SWARM_MCP_RELAY_URL}/meter に課金し、メーターが拒否するか到達不能な場合は実行を拒否します(JSON-RPC -32003、HTTP 402/429/503) — ホスト型コンピューティングが未計量で提供されることはありません。Shadow Tournament ランナーは同じサービス内で稼働します。サイトは共有シークレット SWARM_MCP_INTERNAL_KEY で保護された POST /internal/tournament/run にジョブを送信し、ランナーは SWARM_MCP_SERVICE_TOKEN(機関向けトークンであり、ランナー自身のデータ取得にユーザーが課金されることはありません)を使ってリレー経由でパネルを構成し、SWARM_MCP_CHAMPION_GENOME(レジストリの現チャンピオンへのパス — SWARM_MCP_CHAMPION_GENOME による指定が必須です。パッケージに同梱されたフォールバックはありません)を基準にスコアを算出して、POST {relay}/tournament/complete を呼び出します。SWARM_MCP_TOURNAMENT_UNIVERSE と SWARM_MCP_TOURNAMENT_LOOKBACK_DAYS によって、ホスト型パネルを調整します。ランナーは 202 を返した後、バックグラウンドタスクでスコアを算出するため、Cloud Run サービスは CPU を常時割り当てる(--no-cpu-throttling)設定で実行し、リクエストタイムアウトを 300 秒以上にする必要があります。リクエストベースの CPU 割り当てでは、レスポンス後にタスクがリソース不足になり、ジョブは失敗として返金されます。
IP 境界(提供するもの、提供しないもの)
このリポジトリが提供するのはチェッカーのみです。注文チェック、プロベナンスガード、悲観的な約定モデル、ゲノムスキーマ、プロベナンスのティア、ハード制約チェック、ゲートしきい値、ティアAのジムシミュレーター、レジームラベラーが含まれます。これらは固定されたコミット SHA(.github/pins.json)でベンダー化され、CIで検証されます。
選定の仕組みはサーバー側にあり、このリポジトリには含まれません。対象は、目的関数のスコアリング、Deflated Sharpe 推定、昇格ゲートの判定です。昇格の判定を求めるリクエストには、正確に不足している統計的入力(MIN_EPISODES=20、組み合わせ対称分割による PBO ≤ 0.30、単調な試行台帳を用いた DSR マージン、5つすべてのレジーム × シードにわたる最悪レジームのマージン)とともに、INDETERMINATE_LOCAL を返します。さらに、次の内容が含まれます。
audit_requestブロック — ゲノムハッシュと違反の概要。専有ペイロードは含みません。- 解決に必要な
tournament.submit呼び出しを示すcloud_job仕様。
このリポジトリの Shadow Tournament ランナーは、同一のパスで対応のある統計値と結果を計算します。目的関数、DSR 推定器、昇格判定は含まれておらず、CIテスト(tests/test_ip_boundary.py)によってそれらの追加も禁止されています。チャンピオンを上回るコントリビューター提供のゲノムは、これらのゲートが実行される swarm のプライベートレジストリに渡されます。複数ゲノムのリーグ実行、カスタムユニバース、NDA締結済みのライブ指標については、https://1.21initiative.com/ のStrategy Validation Auditをご利用ください。
テレメトリー
デフォルトでは無効で、オプトインのみです(SWARM_MCP_TELEMETRY_OPT_IN=opt-in)。記録するのはカウンターのみ(ツール名、成功フラグ、大まかな所要時間)です。シンボル、ゲノム、価格、認証情報は一切記録しません。機関投資家はソースを確認します。ユーザーに知らせずにデータを外部送信すれば、この優位性は失われます。コントリビューターは提出時にテレメトリーの範囲も開示してください(上記のストラテジーコントリビューターのティアを参照)。
例外は契約上明示されているものに限られます。
- アクセストークンの検証。 トークンが設定され、ローカルのブートストラップトークンに一致しない場合、トークンは検証エンドポイント(デフォルトは
https://1.21initiative.com/api/mcp/verify、SWARM_MCP_TOKEN_VERIFY_URLで変更可能)に POST されます。送信はプロセスごとに5分間に最大1回です。送信するのはトークンのみです。エンドポイントに接続できない場合、またはトークンが拒否された場合、ゲートはフェイルクローズします。 - リレーデータの呼び出しでは、トークンに加え、要求したシンボルと日数が送信されます(それがリクエスト内容です)。リレーの呼び出しはサーバー側で呼び出しごとに計量されます。
tournament.submitでは、ゲノムベクトル、そのハッシュ、contributeフラグが送信されます。これは戦略アーティファクトを送信する唯一のツールであり、そのことは呼び出しのたびに出力に明示されます。
開発
pip install -e ".[test]"
py -3.11 -m pytest # full suite (see Step 2 count in docs/DISTRIBUTION.md)
scripts\vendor.ps1 # re-vendor the pinned checker subset
py -3.11 scripts\check_pin.py # vendored tree == pins.json
ベンダー化には、固定 SHA のプライベートリポジトリの隣接チェックアウトを使用します(ピン留めコミットが存在する前に -FromWorktree でブートストラップします)。CIでは swarm 独自の guardrails-invariants ゲートを再現します。固定 SHA をチェックアウトし、コミット済みのベンダーツリーがバイト単位で一致すること(および切り出されたサブセットが変換単位で一致すること)を検証してから、固定 SHA における guardrails 独自の不変条件テストスイートを実行します。
ライセンス
ラッパーコード:MIT(LICENSE を参照)。swarm_mcp/vendored/guardrails/ にあるベンダー化された guardrails チェッカーのサブセットは、swarm_mcp/vendored/guardrails/LICENSE.md に記載されたソース利用可能な条件の下で配布されます。除外された選定の仕組みはライセンスされていません。
ジムはティアAの価格サブセットです。tape_replay サービスは一般公開されていません。ティアB/Cのスコアリングはホスト環境でのみ実行されます。Shadow Tournament が返すのは対応のある結果であり、昇格ではありません。それ以外は証拠の捏造にあたり、このリポジトリは捏造を拒否します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。