mcpField
C
Canli Paper Trading

Canli Paper Trading

ローカル
canlicapital.com金融データ53 日前に更新

Canli Paper Trading について

Canli Paper Trading は、Alpaca のペーパー口座を操作するエージェント向けの MCP サーバーです。設定可能な取引前チェックと短時間有効の確認トークンを通過した注文だけを送信でき、実取引には対応しません。

主な機能

  1. 01ペーパー口座と注文状況の確認
  2. 02取引前の上限チェックとキルスイッチ
  3. 03注文のプレビューと期限付きトークン
  4. 04目標配分から整数株の注文を生成
  5. 05署名付き証明と改ざん検知ログ
  6. 06残高を隠す任意のコミットメント

活用シーン

  1. 01送信前にペーパー注文を確認
  2. 02ペーパーポートフォリオを目標配分に調整
  3. 03取引証明の確認や検証
  4. 04口座の数値をモデルに見せない運用

MCP 対応

ローカル stdio 経由で、口座確認、プレビュー、リバランス、送信、検証のツールを MCP クライアントに公開します。トークンで承認された注文のみ送信でき、Alpaca のペーパー取引に限定されます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"arhancanli-canli-paper-trading": {
"command": "npx",
"args": [
"-y",
"canli-paper-trading-mcp"
],
"env": {
"ALPACA_PAPER_KEY_ID": "<ALPACA_PAPER_KEY_ID>",
"ALPACA_PAPER_SECRET_KEY": "<ALPACA_PAPER_SECRET_KEY>",
"CANLI_HOME": "<CANLI_HOME>"
}
}
}
}
起動コマンドnpx -y canli-paper-trading-mcp
設定が必要な環境変数
ALPACA_PAPER_KEY_IDシークレットYour Alpaca paper API key id (starts with PK).
ALPACA_PAPER_SECRET_KEYシークレットYour Alpaca paper API secret key.
CANLI_HOMEDirectory with limits.json, KILL and the order log; default ~/.canli.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmcanli-paper-trading-mcp0.3.1

ツール

5

掲載時のツール一覧 · 4 日前に更新

このツールにパラメーターはありません。

詳細

canli-paper-trading-mcp

チェックを回避できない仕組みで、AI エージェントがAlpaca のペーパーアカウントで取引できるようにします。 各注文は、お客様自身の制限、マーケットの取引時間、キルスイッチに照らして事前確認されます。すべてのチェックに合格した注文にのみ、5 分間有効な確認トークンが発行され、そのトークンがなければ注文を送信できません。ペーパー取引専用です。このパッケージにはライブ取引ホストが含まれておらず、ライブキーは拒否されます。

ローカル stdio で動作します。キーはお客様の環境内にとどまり、Alpaca のペーパー API 以外に送信されることはありません。

ツール

ツール機能
paper_account資産、現金、購買力、ポジション、未決済注文、マーケットの取引時間、キルスイッチ、注文ログの検証済みヘッドを確認します。
preview_paper_ordersライブのペーパーデータを使って注文の取引前チェックを実行し、すべての注文が合格した場合のみトークンを返します。
rebalance_to_weights目標ウェイト(バックテストの結果など)を端株ではない注文に変換し、売り注文を先に処理してチェックを行い、トークンを返します。
send_paper_ordersトークンを使って事前確認済みの注文を送信するか、ID を指定して未決済注文をキャンセルします。変更を加える唯一のツールです。

チェック

取引前チェックには、canlicapital の共有コア(js/pretrade-core.js。リポジトリ内でバイト単位で同一に複製され、テストされています)を使用します。注文ごとに、キルスイッチ、許可されたシンボルと注文タイプ、マーケットの取引時間内かどうか、価格の上限・下限、注文および日次の想定元本上限、ポジション、ポートフォリオ全体を対象とするグロスおよびネットの上限、縮小専用の整合性、推定コスト(スプレッドの半分。手数料と出来高を指定した場合は、それらも考慮)を確認します。拒否された場合は、理由をすべて示します。注文数量は調整されません。

お客様の制限は CANLI_HOME/limits.json(デフォルトは ~/.canli)に保存します。例:

{ "max_order_notional": 10000, "max_position_frac": 0.2, "max_gross": 1.0, "allowed_types": ["limit"] }

呼び出しごとに、プレビューの制限を厳しくすることはできますが、緩めることはできません。このディレクトリに KILL という名前のファイルが存在する間は、すべてのプレビューが失敗し、すべての送信が拒否されます。

トークン

  • プレビューした注文の内容にひも付いています。数量を変更すると、トークンを検証できなくなります。
  • 1 回のみ使用でき、有効期間は 5 分です。そのため、送信時に古いチェックが使われることはありません。
  • 稼働中のサーバー内にのみ存在するキーで署名されます。サーバーを再起動すると、古いトークンは拒否されます。
  • 送信された各注文には、トークンから生成された client_order_id が付与されます。Alpaca は同じ ID の再使用を拒否するため、送信を再試行しても二重に約定することはありません。

注文ログ

すべての送信とキャンセルは CANLI_HOME/paper-orders.jsonl に追記されます。各行には、直前の行のハッシュが記録されます。paper_account はチェーンが引き続き検証できるかを報告します。行を編集すると、チェーンの整合性が崩れます。

署名付き証明と非公開残高

プレビュー、リバランス、送信の各処理では、どの注文がチェックされたか(そのハッシュ値)、どの制限に照らしてチェックされたか(そのハッシュ値)、判定、キルスイッチ、時刻、口座のエクイティとポジションに関するコミットメントを含む attestation が返されます。これらは、初回にお使いのマシン上で作成される Ed25519 キー(CANLI_HOME/attest-ed25519.pem、モード 0600)で署名されます。このキーがマシンの外に出ることはありません。attest-ed25519.pub.pem を監査担当者または取引相手に渡してください。verify_attestation は、ステートメントがそのキーで署名され、改ざんされていないことをチェックします。Node 24.7 以降では、各ステートメントに ML-DSA-65 キー(FIPS 204、耐量子署名方式、attest-ml-dsa-65.pem)でも署名されます。両方のキーを記載した同じステートメントに対する署名です。両方の公開鍵を渡してください。両方の署名が有効である必要があるため、一方の方式が破られてもステートメントの偽造を防げます。

CANLI_PAPER_PRIVATE=1 を設定すると、モデルに口座の数値が表示されなくなります。paper_account はエクイティ、現金、購買力、ポジションの代わりにコミットメント(ランダムなソルトと値の SHA-256)を返します。rebalance_to_weights は注文の数量を計算しますが、その内容を表示しません。チェックメッセージ内の数値は伏せられます。ソルトは CANLI_HOME/commitments.jsonl にのみ書き込まれるため、後からコミットメントを誰かに開示(値とソルトを提示)し、verify_attestation で検証できます。

これはコミットメントに対する署名であり、ゼロ知識証明ではありません。値を開示した相手には、その値が知られます。また、チェックはこのサーバーのコードで行われます。ブローカーが受け付けるのは証明ではなく API キーです。どちらのモードでも、キーは環境内に保管され、モデルに表示されることはありません。

クイックスタート

  1. Alpaca アカウントを作成し、ペーパートレーディングのダッシュボードを開いて、ペーパー用 API キーを生成します(キー ID は PK で始まります)。
  2. 環境変数にキーを設定してサーバーを追加します。
claude mcp add canli-paper -e ALPACA_PAPER_KEY_ID=PK... -e ALPACA_PAPER_SECRET_KEY=... -- npx -y canli-paper-trading-mcp

次のように依頼します。「ペーパー口座を SPY 60%、TLT 40%にリバランスし、チェック内容を表示して、すべて通過したら送信してください。」

canli-quant-mcp と組み合わせて使えます。そちらで戦略をバックテストしてから、こちらでペーパー口座の資産配分を目標の比率に変更します。

このツールでできないこと

実資金の取引は行いません。また、それを可能にする設定もありません。取引対象を決めることもありません。ペーパートレーディングの約定は Alpaca のシミュレーションであり、実際の市場より有利な条件です(キューの順位やマーケットインパクトは考慮されません)。ペーパー取引で機能する戦略でも、実運用で機能することが確認されたわけではありません。

MIT ライセンス。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。