/ ディレクトリ / プレイグラウンド / Alpaca
● 公式 alpacahq 🔑 自分のキーが必要

Alpaca

作者 alpacahq · alpacahq/alpaca-mcp-server

ClaudeがAlpaca経由で株式、ETF、オプション、暗号資産のリサーチ・バックテスト・発注を実行します。ペーパートレードがデフォルトなので、口座を吹き飛ばす心配はありません。

AlpacaのオフィシャルMCPは、Alpaca Trading APIおよびMarket Data APIをラップしています。気配値、バー、ファンダメンタルズ、ポジションの取得、注文の発注・変更・キャンセルが可能です。デフォルトはペーパートレードであり、まさにそこから学ぶべきです。戦略が実証されてからライブに切り替えてください。

なぜ使うのか

主な機能

ライブデモ

実際の動作

alpaca.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "alpaca": {
      "command": "uvx",
      "args": [
        "alpaca-mcp-server"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "alpaca": {
      "command": "uvx",
      "args": [
        "alpaca-mcp-server"
      ]
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "alpaca": {
      "command": "uvx",
      "args": [
        "alpaca-mcp-server"
      ]
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "alpaca": {
      "command": "uvx",
      "args": [
        "alpaca-mcp-server"
      ]
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "alpaca",
      "command": "uvx",
      "args": [
        "alpaca-mcp-server"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "alpaca": {
      "command": {
        "path": "uvx",
        "args": [
          "alpaca-mcp-server"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add alpaca -- uvx alpaca-mcp-server

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: Alpaca

ウォッチリストの日次プレマーケットブリーフを生成する

👤 アクティブな個人トレーダー ⏱ ~10 min beginner

使うタイミング: 寄り前に20銘柄を30秒でチェックしたいとき — 夜間の値動き、決算、主要ニュースの確認に。

前提条件
  • Alpacaアカウント(無料ペーパー口座) — alpaca.markets → サインアップ → ダッシュボードでAPIキーを取得
  • 銘柄ウォッチリスト — [AAPL, MSFT, NVDA, ...] のようなプレーンリスト
フロー
  1. 夜間のバーデータを取得
    For my watchlist [symbols], get yesterday's close and the latest pre-market quote. Compute % gap.✓ コピーしました
    → テーブル形式:銘柄、前日終値、プレマーケット始値、ギャップ率
  2. 異常値をフラグ付け
    Which tickers are gapping more than 2% in either direction? Rank by gap magnitude.✓ コピーしました
    → 短い「要注意」リスト
  3. コンテキストを追加
    For each outlier, pull the latest news headlines from Alpaca news endpoint.✓ コピーしました
    → 銘柄ごとに原因の箇条書き

結果: 毎日同じフォーマットの1画面プレマーケットブリーフ。手作業のクリック不要。

注意点
  • 無料マーケットデータはIEXのみで遅延あり。気配値がブローカーと一致しない場合がある — 夜間/EOD分析なら問題なし。SIPフィードが必要な場合はAlpacaの有料データプランにアップグレード
組み合わせ: notion

シンプルなルールベース戦略をペーパートレードする

👤 アルゴトレーディング初心者 ⏱ ~30 min intermediate

使うタイミング: 「SPYの5日リターンが-3%未満なら買い、+2%または5営業日後に売り」といったルールをペーパーマネーでライブ実行したいとき。

前提条件
  • ペーパー口座のキーを設定済み — APCA_API_BASE_URL=https://paper-api.alpaca.markets を使用
  • 明文化されたルール — エントリー、エグジット、ポジションサイズ、最大損失 — すべてコーディング前に明示
フロー
  1. 口座とポジションを確認
    Show my paper account equity, buying power, and current open positions.✓ コピーしました
    → クリーンな口座スナップショット
  2. 本日のエントリー条件を評価
    Get SPY's last 5 daily bars. Compute 5-day return. If it's < -3% and I don't already hold SPY, place a market buy for $5000 notional. Otherwise do nothing.✓ コピーしました
    → 注文IDまたは明示的な「アクションなし」
  3. 本日の判断をログに記録
    Append a row to /trades/journal.csv: date, condition_met, action, order_id, fill_price.✓ コピーしました
    → ジャーナル行が書き込まれた

結果: ペーパーマネーに対するシンプルな戦略の監査可能な日次実行記録と、レビュー用のジャーナル。

注意点
  • テスト中に誤ってライブキーで実行してしまう — 開始時に明確なチェックを入れる:注文を出す前に口座番号がペーパー口座と一致することを確認
  • Claudeが前日のポジションを忘れて二重買いする — エントリー評価前に必ず現在のポジションを取得する。メモリに頼らない
組み合わせ: filesystem

ポートフォリオを目標配分にリバランスする

👤 目標配分を持つ自己運用投資家 ⏱ ~20 min intermediate

使うタイミング: 四半期ごとに60/30/10(米国/海外/債券)を目標に戻したい。株数の手計算は不要。

前提条件
  • 目標配分の定義 — 例: VTI 60%、VXUS 30%、BND 10%
フロー
  1. 乖離を測定
    Get my positions and current prices. Compute current weight per symbol vs target [paste targets]. Show drift in $ and %.✓ コピーしました
    → 銘柄ごとの乖離テーブル
  2. 取引を提案
    Propose the minimum set of buys/sells to bring weights within 1% of target. Show expected commissions (likely $0) and estimated slippage.✓ コピーしました
    → 注文プラン
  3. 確認後に執行
    Before placing: summarize the plan in 3 lines and wait for my 'yes'. On yes, submit as market-on-open orders.✓ コピーしました
    → 注文IDとともに発注完了。資産額が目標の1%以内に収まる

結果: 各取引の理由が記録されたクリーンな四半期リバランス。

注意点
  • 課税口座ではリバランスのたびに譲渡損益が発生する — 新規入金によるリバランスまたはタックスロットを考慮した売却を推奨。不安な場合はIRAのみで実行
組み合わせ: filesystem

短期プットプレミアムのオプションチェーンをスキャンする

👤 オプションインカムトレーダー(キャッシュセキュアドプット / カバードコール) ⏱ ~25 min advanced

使うタイミング: 保有しても構わない銘柄で、最適なキャッシュセキュアドプットを毎週見つけたいとき。

前提条件
  • オプション取引が有効なAlpacaアカウント — アカウント設定でオプションを有効化。ペーパー口座でも学習可能
フロー
  1. チェーンとグリークスを取得
    Get the options chain for [ticker] expiring next Friday, puts only, strikes within 5% of spot. Include bid, ask, mid, delta, IV.✓ コピーしました
    → チェーンテーブル
  2. 年率リターンでランク付け
    Compute annualized return-on-cash for each strike assuming assignment. Filter delta between -0.15 and -0.30. Rank top 5.✓ コピーしました
    → ランク付けされたショートリスト
  3. ミッド価格で新規売り注文を発注
    Place a sell-to-open limit order for 1 contract of the #1 strike at the mid. GTC, day-only.✓ コピーしました
    → 注文IDが返される

結果: 保守的なリスクスクリーンを備えた、繰り返し可能な週次インカム獲得ルーティン。

注意点
  • 保有したくない銘柄でプットを売ってしまう — ハードルール:長期保有として事前承認した10銘柄のみでこの戦略を実行
  • 流動性の低い行使価格でビッド・アスクが大きく乖離し、ミッドでは約定しない — ランク付け前にopen_interest > 500かつスプレッド < ミッドの5%でフィルタリング
組み合わせ: notion

組み合わせ

他のMCPと組み合わせて10倍の力を

alpaca + notion

日次プレマーケットブリーフをNotionページに配信

Run my pre-market scan for watchlist and create a Notion page in 'Trading / Daily' with the results.✓ コピーしました
alpaca + filesystem

トレードジャーナル:全注文と理由をローカルCSVに追記

After any place_order, append {ts, symbol, side, qty, reason} to /trading/journal.csv.✓ コピーしました
alpaca + postgres

バックテスト用に日次エクイティカーブを保存

Every evening, INSERT today's account equity into the equity_curve table.✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
get_account セッション開始時の最初の呼び出し — ペーパーかライブかを確認 free
get_positions エントリーロジックの前に現在の保有を確認 free
get_bars symbol, timeframe, start, end, limit? 分析やシグナル用のヒストリカルOHLCV取得 free (IEX) or paid (SIP)
get_latest_quote symbol 注文発注前のリアルタイム価格確認 free
place_order symbol, qty|notional, side, type, time_in_force, limit_price? 新規注文を送信(必ずペーパーから開始) free (commission-free)
cancel_order order_id 約定前のオープン注文をキャンセル free
get_options_chain underlying, expiration, side? オプション戦略の行使価格をスキャン free on Alpaca

コストと制限

運用コスト

APIクォータ
データAPIは200リクエスト/分(無料枠)。トレーディングAPIは個人規模では実質無制限
呼び出しあたりのトークン
口座/ポジション: 200〜500トークン。バー: limitに応じてスケール
金額
Alpacaは手数料無料。SIPフィード用の有料マーケットデータプランは月額約$9。無料のIEXフィードでほとんどの個人利用には十分です。
ヒント
新しい戦略はライブマネーに触れる前に最低4週間ペーパートレードしてください。無料です。

セキュリティ

権限、シークレット、影響範囲

最小スコープ: Account API key + secret — Alpaca doesn't have sub-scopes
認証情報の保管: APCA_API_KEY_IDAPCA_API_SECRET_KEYAPCA_API_BASE_URLを環境変数に設定
データ送信先: すべての呼び出しはapi.alpaca.marketsまたはpaper-api.alpaca.marketsへ送信
絶対に付与しない: Sharing live keys with any third-party service, including code hosts

トラブルシューティング

よくあるエラーと対処法

403 forbidden.insufficient-permissions

キーが間違った環境(ライブ vs ペーパー)用です。APCA_API_BASE_URLをキーペアに合わせてください。

確認: curl -H 'APCA-API-KEY-ID: ...' -H 'APCA-API-SECRET-KEY: ...' $APCA_API_BASE_URL/v2/account
422 buying_power insufficient

ペーパー口座がリセットされたか、取引サイズが現金を超えています。get_accountを呼び出してポジションサイズを再計算してください。

Bars return empty for recent timestamp

無料枠のIEXフィードには約15分の遅延があり、すべての銘柄に対応していません。SIPを使用するか、待ってください。

Order rejected: market closed

デフォルトのTIFはday。市場閉鎖中の注文にはtime_in_force='opg'または'cls'が必要。もしくは指値注文でextended_hours=trueを指定して時間外取引に切り替えてください。

代替案

Alpaca 他との比較

代替案代わりに使う場面トレードオフ
Interactive Brokers MCP海外市場や先物が必要な場合認証がより複雑(ゲートウェイアプリが必要)。学習コストが高い
Polygon.io MCPマーケットデータのみが必要で、取引は不要な場合注文執行なし。フルカバレッジは有料

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る