Kalshi Kernel について
Kalshi Kernelは、エージェントハーネス向けの非公式Kalshi MCPサービスで、現在は取引に使える状態ではないプレリリース開発ソフトウェアです。市場データとペーパートレードを提供し、デフォルトのシミュレーション、明示的な確認、上限設定で実注文との境界を設けます。
主な機能
- 01イベント契約とパーペチュアル市場の検索
- 02市場詳細・板・ローソク足・価格情報の取得
- 03インメモリ台帳でのペーパートレード
- 04イベント契約の口座と注文の確認
- 05確認・プロセス内の有効化・注文上限の設定
活用シーン
- 01イベント契約やパーペチュアル市場の情報を確認
- 02ペーパーモードで注文操作を試験
- 03明示的な設定後にイベント契約の注文を管理
MCP 対応
stdio MCPサーバーとして、読み取り専用の市場データ、ペーパートレード、イベント契約の口座・注文操作を公開します。ペーパーモードがデフォルトです。実注文と変更には認証情報、明示的な確認、プロセス内での有効化、上限設定が必要で、プロジェクトはプレリリース開発段階です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
docker run -i --rm -e KALSHI_KERNEL_MODE -e KALSHI_API_KEY_ID -e KALSHI_PRIVATE_KEY_PATH -e KALSHI_LIVE_TRADING_ACK ghcr.io/copyleftdev/kalshi-kernel:0.1.1KALSHI_KERNEL_MODEImmutable execution mode; paper is the safe defaultKALSHI_API_KEY_IDシークレットKalshi API key identifier; used only in live modeKALSHI_PRIVATE_KEY_PATHシークレットPath to a mounted Kalshi private key; used only in live modeKALSHI_LIVE_TRADING_ACKExplicit live-risk acknowledgement documented by this projectローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ghcr.io/copyleftdev/kalshi-kernel:0.1.1stdioツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Kalshi Kernel
Kalshi のイベント契約および無期限市場向けの、非公式で安全性を重視した Model Context Protocol(MCP)サーバーです。このプロジェクトはプレリリース段階であり、取引に使用できる状態ではありません。このサーバーは Hermes などのエージェントハーネス向けに設計されており、Kalshi が公開している API 契約から生成された、意図的に限定されたツール群を公開します。
正式な公開元:CopyleftDev。予定されているソースおよびコンテナーのリリースでは、それぞれ github.com/copyleftdev/kalshi-kernel と ghcr.io/copyleftdev/kalshi-kernel を使用します。
注意
**実際の注文を送信できるプレリリースソフトウェアです。**公開済みのタグは、適合性テスト済みの足場です。現在の
mainブランチでは、市場データ、ペーパートレーディング、ライブイベント契約のアダプターが追加されています。ライブモードを設定すると、実際の注文の発注、変更、キャンセルが可能です。認証情報を使って実行する前に、対象のコミット、設定、テスト、制限を確認してください。バージョン文字列から準備状況を推測しないでください。
重要
このコミュニティプロジェクトは Kalshi の公式製品ではなく、KalshiEX LLC またはその関連会社とは提携、推奨、後援、サポートのいずれの関係もありません。「Kalshi」は、Kalshi の公開 API との相互運用性を示す目的に限って使用しています。
独立した Kernel マークは、Kalshi が公開している色、コントラスト、クリアスペース、誤用に関するガイドラインを保守的に解釈したものです。Kalshi のロゴを使用または変更していません。ビジュアルアイデンティティの使用ルールをご覧ください。
このプロジェクトの目的
取引 API は範囲が広く、アプリケーション開発者向けに最適化されています。エージェントには、意図が明示され、スキーマが厳格で、エラーが予測可能であり、シミュレーションと実資金による実行が明確に分離された、より狭い境界が必要です。Kalshi Kernel はその境界を提供するとともに、生成されたクライアントを最新のアップストリーム契約に照らして継続的にテストします。
設計上の優先事項は次のとおりです。
- デフォルトでペーパーモードにすること。
- プロセスの存続期間中、実行モードを不変にすること。
- ライブモードを有効化する前に、明示的な確認と認証情報を必須にすること。
- 価格と数量に固定小数点文字列を使うこと。
- 安全性に関する注釈を備えた、厳格な生成ツールスキーマ。
- 機能が利用できない場合は、フェイルクローズで動作すること。
- 正確な OpenAPI 操作および AsyncAPI チャネルとの対応を追跡可能にすること。
- MCP プロトコル、競合状態、ファジング、アップストリームの変更に対するテストを再現可能にすること。
現在のステータス
この表は、公開済みの v0.1.1 タグではなく、現在の main ブランチについて説明しています。
追加機能はまだリリースされておらず、バージョンメタデータもまだ更新されていません。
| 領域 | 現在の動作と制限 |
|---|---|
| MCP stdio トランスポートと生成されたスキーマ | 動作します |
| 公開市場データ | イベントコントラクトと無期限先物:検索、市場詳細、REST 板スナップショット、ローソク足、直近気配値。公開約定履歴はイベントコントラクトのみです |
| ペーパートレード | インメモリの残高、ポジション、約定記録、正確な固定小数点手数料を備え、現在表示されている最良気配値で即時に全量約定します |
| ライブポートフォリオ | 認証済みのイベントコントラクトの残高、ポジション、注文、約定。無期限先物口座とプライマリ以外のサブアカウントはサポートされていません |
| ライブイベントコントラクト注文 | 発注、変更、キャンセルは本番 API に接続されています。発注と変更にはプロセス内での有効化とカーネル側の制限が必要です。キャンセルでは注文の残存状態を確認し、タイムアウト時に状態を再照合します |
| ライブ無期限先物注文 | 未実装です |
| ストリーミング注文板の再照合 | 未実装です。現在、get_orderbook は公開 REST のスナップショットを 1 件返します |
kernel_status | 呼び出し可能ですが、一部の準備状況と有効化状態のフィールドは古い足場部分の内容を引き継いでおり、信頼できる情報として扱わないでください |
| 上流仕様の自動鮮度チェック | 動作します |
| 本番向けリモート HTTPS/OAuth サービス | 未実装です |
| 公開レジストリへの掲載 | 準備済みですが、未申請です |
現在のブランチは、公開済みまたは監査済みの取引連携機能ではなく、開発中のソフトウェアとして扱ってください。一部の設計資料や公開資料は、依然として v0.1.1 の足場部分の内容を記載しています。記載内容を信頼する前に、実装と照合してください。ARCHITECTURE.md、
THREAT_MODEL.md、および
PUBLICATION.md のリリースゲートを参照してください。
エージェント向けツール
| ツール | クラス | 現在の動作 |
|---|---|---|
kernel_status | 読み取り専用 | モードと準備状況の概要を返します。新たに追加されたバックエンドと有効化状態は、まだ正確に反映されていません |
search_markets | 読み取り専用 | 公開 REST 経由でイベントコントラクト市場または無期限先物市場を検索します |
get_market | 読み取り専用 | イベントコントラクト市場または無期限先物市場 1 件の正式なメタデータを返します |
get_orderbook | 読み取り専用 | どちらの商品の場合も、yes/no の買い注文レベルの公開 REST スナップショットを返します |
get_candles | 読み取り専用 | イベントコントラクトまたは無期限先物の 1 分、60 分、1440 分の OHLC バケットを返します |
get_trades | 読み取り専用 | 公開イベントコントラクト約定履歴のカーソルページネーションによる 1 ページ分を返します |
get_last | 読み取り専用 | イベントコントラクトまたは無期限先物の簡潔な気配値とステータスのスナップショットを返します |
arm_live_trading | 破壊的操作/制御 | 正確な確認文の入力後、このプロセスのライブ発注/変更呼び出しを有効化または無効化します |
get_portfolio | 読み取り専用 | ペーパーモードではローカルのペーパートレード台帳を、ライブモードでは認証済みのイベントコントラクトポートフォリオを返します |
place_order | 破壊的操作/書き込み | ペーパーモードでは即時約定をシミュレートし、ライブモードでは有効化済みで上限が設定されたイベントコントラクト注文を送信します |
amend_order | 破壊的操作/書き込み | ペーパーモードでは残存注文はありません。ライブモードでは、有効化済みの残存イベントコントラクト注文を変更します |
cancel_order | 破壊的操作/書き込み | ペーパーモードでは残存注文はありません。ライブモードでは、残存イベントコントラクト注文の状態を確認してキャンセルします |
接続された MCP クライアントには、まず kernel_status を呼び出し、ペーパーモードとライブモードを区別し、構造化レスポンスに ok: true が含まれていない限り、アクションが成功したと決して報告しないよう指示するサーバーレベルの指示も送られます。準備状況の報告が更新されるまでは、ライブの有効化状態を kernel_status ではなく、arm_live_trading のレスポンスで確認してください。
ローカルでビルドして実行する
前提条件:
- Go 1.25.13 以降
- 公式の MCP 適合性ランナーを使用する場合のみ Node.js 22
- サポート対象の MCP クライアント
make test
make build
KALSHI_KERNEL_MODE=paper ./bin/kalshi-kernel
KALSHI_KERNEL_MODE が設定されていない場合、デフォルトでペーパーモードになります。このモードでは、ライブ認証情報の設定は意図的に破棄されます。
Hermes
ローカルの stdio サーバーを ~/.hermes/config.yaml に追加します。
mcp_servers:
kalshi-kernel:
command: "/absolute/path/to/kalshi-kernel/bin/kalshi-kernel"
env:
KALSHI_KERNEL_MODE: "paper"
Hermes を再起動し、ほかのツールを呼び出す前に kernel_status を呼び出します。
Claude Code
バイナリをビルドした後、次のコマンドを実行します。
claude mcp add --scope user --transport stdio kalshi-kernel \
--env KALSHI_KERNEL_MODE=paper -- /absolute/path/to/bin/kalshi-kernel
次に、claude mcp get kalshi-kernel を実行するか、/mcp を開いて接続を確認します。このローカル設定は、デプロイ済みのリモートサーバーが必要な Anthropic の公開コネクターディレクトリとは別のものです。
その他の stdio クライアント
標準的な MCP 設定の形式を使用します。
{
"mcpServers": {
"kalshi-kernel": {
"command": "/absolute/path/to/bin/kalshi-kernel",
"env": {
"KALSHI_KERNEL_MODE": "paper"
}
}
}
}
実行モード
ペーパーモード
KALSHI_KERNEL_MODE=paper ./bin/kalshi-kernel
ペーパーモードでは、メモリ内のシミュレーション台帳を使用し、Kalshi に注文を送信することはありません。デフォルトの開始残高は $100.00 です。別の残高を指定するには、起動前に KALSHI_PAPER_CASH_DOLLARS を設定します。プロセスが終了すると、台帳、ポジション、冪等性レコード、約定ジャーナルはリセットされます。
place_order は新しい公開注文板スナップショットを取得し、即時の全量約定か不成立のみの成行可能な約定に対応します。指定価格は現在の最良気配価格と完全に一致する必要があり、表示数量は注文数量全体を満たす必要があります。シミュレーターは固定小数点演算を使用し、公表されている手数料計算式を適用し、使用した注文板のハッシュを記録します。また、client_order_id を冪等性キーとして扱います。ペーパー注文は板に残ることがないため、amend_order と cancel_order は型付きエラーを返します。
すべてのペーパーモードの応答には simulated: true と表示されます。シミュレーションによる約定は、実際の約定、流動性、レイテンシー、スリッページ、手数料、収益性を予測または保証するものではありません。
ライブモード
ライブモードは、意図的に有効化しにくくなっています。
KALSHI_KERNEL_MODE=live
KALSHI_API_KEY_ID=...
KALSHI_PRIVATE_KEY_PATH=/absolute/path/to/private-key.pem
KALSHI_LIVE_TRADING_ACK=I_UNDERSTAND_THIS_TRADES_REAL_MONEY
# Optional startup-only overrides; these are the defaults.
KALSHI_MAX_ORDER_NOTIONAL_DOLLARS=25.00
KALSHI_MAX_DAILY_NOTIONAL_DOLLARS=100.00
KALSHI_MAX_DAILY_ORDERS=200
起動時の設定によって、変更不可能なライブモードが選択され、認証済みのイベント契約ポートフォリオの読み取りと注文のキャンセルが有効になります。ただし、注文の発注や変更は許可されません。これらの操作には、プロセス内での別の MCP アクションが必要です。
{
"acknowledgement": "I_UNDERSTAND_THIS_TRADES_REAL_MONEY",
"arm": true
}
このオブジェクトを arm_live_trading に渡して有効化します。無効化するには、同じオブジェクトに arm: false を指定して渡します。有効化の状態は永続化されません。また、place_order には、呼び出し元が指定する安定した client_order_id が必要です。注文が起動時のみ設定可能な注文ごとの上限、UTC 日次の想定元本上限、または UTC 日次の注文数上限を超える場合、発注・変更リクエストは送信前に拒否されます。これらのカウンターはプロセス内に保持され、プロセスを再起動するとリセットされます。
警告
cancel_orderは、arm_live_tradingによる別途の有効化手順なしで、設定済みのライブモードで使用できます。キャンセルを送信する前に、注文が未約定の状態で残っていることを確認します。発注・変更では価格の構文と想定元本の上限を検証しますが、現在の実装では、指定された指値価格を最新の気配と独立して比較しません。取引所側の上限、最小権限の認証情報、人による確認、監視、独立した緊急停止手段を使用してください。
現在、ライブ口座の読み取りと書き込みに対応しているのはイベント契約のみです。無期限契約口座の操作とプライマリー以外のサブアカウントには対応していません。subaccount は省略するか、0 を指定してください。書き込み後にネットワーク障害が発生した場合、無条件に再試行するのではなく、結果を照合するか、明示的に不確定な結果として扱います。
認証情報、秘密鍵、.env ファイルを絶対にコミットしないでください。利用可能な場合は有効期間の短い認証情報を使用し、本番環境ではシークレットマネージャーを使用してください。また、必要な権限と資金のみを持つ口座を使用してください。
仕様駆動の生成
厳選されたエージェントインターフェースは specs/mcp-tools.yaml にあります。各 MCP ツールを、正確な OpenAPI オペレーション ID および AsyncAPI チャネルに対応付けています。上流に存在するというだけで、管理用およびアカウント管理用のエンドポイントが自動的に公開されることはありません。
以下の 4 つの信頼できるコントラクトは https://docs.kalshi.com から取得します。
openapi.yaml— イベントコントラクト REST API。asyncapi.yaml— イベントコントラクト WebSocket API。perps_openapi.yaml— パーペチュアル REST API。perps_asyncapi.yaml— パーペチュアル WebSocket API。
フェッチャーは HTTPS とソースのホスト名を固定し、レスポンスサイズを制限して、期待される方言と空でないサーフェスを検証し、ハッシュと HTTP の来歴情報を記録します。上流のコントラクト本文は Git の追跡対象外であり、必要に応じてローカルキャッシュに取得されます。上流由来の REST クライアントもローカルで生成され、ソースリリースから除外されます。バージョン管理されるのは、来歴ロック、厳選された MCP オーバーレイ、生成された MCP ツールの境界のみです。再生成とテストは一時的なリポジトリのコピー内で行い、テスト済みのロックと MCP 境界をその後に取り込めるようにします。
make upstream-test # test latest contracts without requiring snapshot parity
make upstream-check # require parity and run MCP conformance
make upstream-promote # promote only the exact artifacts that passed
すべての CI 実行で厳密な上流チェックが行われます。また、CI は毎日実行されるため、リポジトリが更新されていない場合でも差異を検出できます。
警告
ダウンロードした Kalshi のコントラクトファイルには、上流の資料の少なくとも一部が専有情報であると記載されています。これらの資料はこのプロジェクトの Apache-2.0 ライセンスの対象ではなく、コミットまたは再配布してはなりません。生成した成果物を公開する前に THIRD_PARTY_NOTICES.md を確認してください。
検証
make test # unit, integration, and contract alignment tests
make test-alignment # OpenAPI, AsyncAPI, and MCP overlay alignment
make check-generated # deterministic generated-code check
make test-race # concurrent calls under Go's race detector
make test-fuzz # execution-mode parser safety fuzzing
make conformance # pinned official MCP protocol scenarios
make release-test # complete local release gate
make public-check # vulnerability, metadata, and public-readiness gate
make upstream-check # latest Kalshi contracts plus conformance
テストスイートでは、トランスポートセキュリティ、認証コントラクト、変更操作のセキュリティ、オペレーション ID の一意性、固定小数点型、厳選されたサーフェス領域、必須フィールドの整合性、厳密な JSON Schema、ツールのタイトルと安全性に関するヒント、フェイルクローズ動作、並行処理、Streamable HTTP のネゴシエーションを検証します。
配布とレジストリ
このリポジトリには、公式 MCP Registry 用の公開メタデータと、OpenAI Plugins Directory および Anthropic の各ディレクトリへの申請資料が含まれています。メタデータは申請の準備を示すものであり、承認、推奨、または公開の証拠ではありません。
Anthropic の現在のコネクタ審査基準では、金銭その他の金融資産を移転するコネクタは認められません。そのため、このプロジェクトの Claude Connectors Directory 向けビルドは、ライブ注文ツールを除外した、読み取り専用および/またはペーパー取引用の別個の成果物である必要があり、Anthropic の審査対象となります。
正確なチャネルマトリックス、現在のブロッカー、リリース手順、掲載文、審査用テストケースについては、PUBLICATION.md を参照してください。外部レジストリへの申請は自動では行われません。
コントリビューションとセキュリティ
プルリクエストを作成する前に CONTRIBUTING.md をお読みください。脆弱性は SECURITY.md に従って非公開で報告してください。認証情報の漏えいや取引の安全性に関する脆弱性が疑われる場合は、公開 issue を作成しないでください。一般的な利用方法に関するサポートは SUPPORT.md をご覧ください。
法的事項とリスクに関する通知
このソフトウェアは開発および研究目的で提供されています。投資、金融、法律、税務、コンプライアンス、または取引に関する助言を提供するものではありません。イベントコントラクトやレバレッジ商品では、投入した金額全額を失うことを含め、短期間で多額の損失が発生する可能性があります。アカウントの利用資格、管轄区域の制限、取引所の規則、規制要件、税金、戦略、注文、および損失については、ご自身の責任となります。
AI システムやソフトウェアは、意図を誤解したり、誤ったパラメーターを生成したり、リクエストを繰り返したり、予期しない動作をしたりする可能性があります。ライブ環境にデプロイする前に、人間によるレビュー、取引所側のリスク制限、最小権限の認証情報、監視、および独立した緊急停止手段が必要です。
DISCLAIMER.md、PRIVACY.md、SECURITY.md の全文をお読みください。このプロジェクトは Apache License 2.0 に基づいてライセンスされており、第三者の資料は THIRD_PARTY_NOTICES.md に記載のとおり除外されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。