openmm-mcp について
openmm-mcp は、AI エージェント向けに市場データ、口座、注文、戦略のツールを提供する暗号資産取引 MCP サーバーです。ローカル利用では暗号化ボルトを使うプロセス内で署名を分離し、ホスト版では USDC による呼び出しごとの支払いに対応します。
主な機能
- 01ティッカー、板、取引、OHLCV の取得
- 02残高と未約定注文の確認
- 03取引注文の作成とキャンセル
- 04グリッド戦略の開始、停止、状態確認
- 05暗号化ボルトでの認証情報管理
活用シーン
- 01AI エージェントによる取引所価格と残高の確認
- 02ツールを使った取引注文の作成やキャンセル
- 03グリッド取引戦略の実行と状態確認
- 04ホスト版で公開データを呼び出しごとに支払って取得
MCP 対応
市場データ、口座、取引、戦略のツールを MCP 経由で AI エージェントに公開します。クライアントは openmm serve が起動するローカル統合ソケット、または x402 の USDC 決済に対応するホストサービスに接続できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
13掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| symbol | string | はい | 取引ペアのシンボル(例:BTC/USDT、INDY/USDT) |
| exchange | string | はい | 照会する取引所。対応:mexc、gateio、bitget、kraken |
詳細
@qbtlabs/openmm-mcp
📚 ドキュメント · 🤖 AI スキルポータル · 🔌 API リファレンス
OpenMM 用の MCP サーバーです。あらゆる MCP クライアントを介して、AI エージェントに市場データ、アカウント、取引、戦略のツールを提供します。
2 つの利用方法
| オプション | 最適な用途 | API キー | 支払い |
|---|---|---|---|
| ローカル(npm) | 完全な制御、自分のキーを使用 | 暗号化された保管庫 | 無料 |
| ホステッド(mcp.openmm.io) | セットアップ不要、使用量に応じた支払い | 公開データには不要 | x402 USDC |
ローカルでのセットアップ
前提条件: Node.js 20 以降。
1. インストールと設定
npm install -g @qbtlabs/openmm-mcp
openmm-mcp --setup
セットアップウィザードは、使用するクライアント(Claude Desktop、Claude Code、Cursor、Windsurf)に適した MCP 設定を書き込みます。設定ファイルには認証情報は保存されず、ソケットのパスのみが保存されます。
2. 暗号化された保管庫を初期化
openmm-init
これにより、ウォレットキーと取引所の API 認証情報を含む暗号化された保管庫が ~/.openmm/vault.enc に作成されます。パスワードを設定し、ウォレットを生成(またはインポート)して、必要に応じて取引所のキーを追加します。
3. サーバーを起動
openmm serve
保管庫のパスワードを一度入力します。統合ソケットが /tmp/openmm.sock で起動し、すべての MCP クライアントがここに接続します。どの設定ファイルにも認証情報は存在しません。
手動で設定する
--setup を使わず、設定ファイルを直接編集する場合は、以下を参照してください。
| クライアント | 設定ファイル |
|---|---|
| Claude Desktop | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Claude Code | ~/.claude.json |
| Cursor | .cursor/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
{
"mcpServers": {
"openmm": {
"command": "node",
"args": ["/path/to/openmm-mcp/dist/index.js"],
"env": {
"MCP_TRANSPORT": "stdio",
"OPENMM_SOCKET": "/tmp/openmm.sock",
"PAYMENT_SERVER": "https://mcp.openmm.io",
"X402_TESTNET": "true"
}
}
}
}
/path/to/openmm-mcp を実際のインストールパスに置き換えてください。Claude Desktop では、nvm/PATH の問題を避けるため、node の完全なパス(例:which node で確認したパス)を使用してください。
ヒント: 代わりに
openmm-mcp --setupを実行してください。適切な絶対パスが自動的に書き込まれます。
API キーも秘密鍵もパスワードも不要です。ソケットのパスだけです。
保管庫を使わない場合(クイックスタート)
保管庫を使わず、API キーを env ブロックに直接渡すこともできます。
{
"mcpServers": {
"openmm": {
"command": "npx",
"args": ["@qbtlabs/openmm-mcp"],
"env": {
"MEXC_API_KEY": "your_key",
"MEXC_SECRET": "your_secret"
}
}
}
}
保管庫を使用すれば、あらゆる利用方法でセキュリティが強化されます。設定ファイル、プロセス環境、クライアントのメモリのいずれにも、機密情報は存在しません。
クライアントの互換性
| クライアント | 保管庫なし | 保管庫あり |
|---|---|---|
| Claude Desktop | 環境変数に API キー | OPENMM_SOCKET のみ |
| Claude Code | 環境変数に API キー | OPENMM_SOCKET のみ |
| Cursor | 環境変数に API キー | OPENMM_SOCKET のみ |
| Windsurf | 環境変数に API キー | OPENMM_SOCKET のみ |
すべてのクライアントは、同じ実行中の openmm serve に接続します。保管庫は 1 つ、ソケットは 1 つで、どのクライアントでも利用できます。
x402 決済対応のホステッドサーバー
mcp.openmm.io に接続すれば、公開データの利用にローカルインストールは不要です。
Base 上の USDC で、ツールの呼び出しごとに支払います。
仕組み
AI Agent (Claude / Cursor / Windsurf)
│ MCP stdio — no keys in config
▼
MCP Client Process
(reads OPENMM_SOCKET — credentials never here)
│ Unix socket /tmp/openmm.sock (mode 0600)
▼
openmm serve — unified vault process
┌──────────────────────────────────┐
│ ~/.openmm/vault.enc │
│ AES-256-GCM + PBKDF2 │ ← wallet key + exchange keys, one vault
│ │ │
│ Policy Engine │ ← maxPerTx, maxPerDay, allowedChains
│ (checked before key is touched) │
│ │ │
│ signAndWipe() │ ← key used inline, wiped from memory
└──────────────────────────────────┘
│ EIP-3009 signature only
▼
mcp.openmm.io → x402 verification → Base L2 settlement
セキュリティ特性
| 特性 | 方法 |
|---|---|
| 保存時の鍵の暗号化 | ~/.openmm/vault.enc 内で AES-256-GCM + PBKDF2 を使用 |
| クライアントメモリに鍵を保存しない | MCP プロセスが保持するのはソケットパスのみ |
| 設定ファイルに鍵を保存しない | 設定内のどこにも API キーや秘密鍵はありません |
| プロセスの分離 | 署名は AI エージェントプロセスではなく、openmm serve 内で行われます |
| ポリシーの適用 | 秘密鍵にアクセスする前に支出上限を確認します |
| メモリ安全性 | signAndWipe() — 鍵は一度だけ使用され、直ちにスコープ外になります |
支払いフロー
- エージェントがツールを呼び出します
- サーバーが価格を含む
402 Payment Requiredを返します openmm serveが EIP-3009 認証に署名します(ガス代不要 — ETH は不要です)- サーバーがオンチェーンで支払いを送信し、データを返します
ツールの料金
| カテゴリ | ツール | 価格(USDC) |
|---|---|---|
| 無料 | list_exchanges | $0.00 |
| 読み取り | get_ticker、get_orderbook、get_trades、get_ohlcv、get_balance、list_orders、get_cardano_price、discover_pools、get_strategy_status | $0.001 |
| 書き込み | create_order、cancel_order、cancel_all_orders、start_grid_strategy、stop_strategy | $0.01 |
利用可能なツール(15)
| ツール | 説明 | パラメーター |
|---|---|---|
| 市場データ | ||
list_exchanges | 対応する取引所の一覧 | — |
get_ticker | リアルタイムの価格、買値/売値、スプレッド、出来高 | exchange、symbol |
get_orderbook | オーダーブックの深さ(買い注文/売り注文) | exchange、symbol、limit? |
get_trades | 最近の取引と買い/売りの概要 | exchange、symbol、limit? |
get_ohlcv | OHLCV ローソク足データ | exchange、symbol、timeframe?、limit? |
| アカウント | ||
get_balance | アカウント残高(すべて、または絞り込み) | exchange、asset? |
list_orders | 未決済注文(すべて、またはシンボル別) | exchange、symbol? |
| 取引 | ||
create_order | 指値注文または成行注文を発注 | exchange、symbol、type、side、amount、price? |
cancel_order | ID を指定して注文をキャンセル | exchange、symbol、orderId |
cancel_all_orders | 通貨ペアのすべての注文をキャンセル | exchange、symbol |
| Cardano DEX | ||
get_cardano_price | DEX のトークン価格を集約して取得 | symbol |
discover_pools | Minswap と SundaeSwap 経由で ADA の直接プールを検出 | symbol |
| 戦略 | ||
start_grid_strategy | グリッド取引を開始 | exchange、symbol、lowerPrice、upperPrice、gridLevels?、totalAmount |
stop_strategy | 実行中の戦略を停止 | strategyId、cancelOrders? |
get_strategy_status | 戦略のステータスを取得 | strategyId |
CLI リファレンス
セットアップとサーバー
| コマンド | 説明 |
|---|---|
openmm-init | ボールトを作成し、ウォレットを生成/インポートして、取引所を追加 |
openmm-init --import <key> | 既存の秘密鍵を使用してボールトを作成 |
openmm serve | ボールトのロックを解除し、統合ソケットを起動 |
openmm-status | ボールト、ソケット、ウォレット、取引所の状態を表示(パスワード不要) |
取引所の認証情報
| コマンド | 説明 |
|---|---|
openmm-exchange list | 設定済みの取引所を一覧表示 |
openmm-exchange add <id> | 取引所の認証情報を追加 |
openmm-exchange remove <id> | 取引所の認証情報を削除 |
対応する取引所:mexc、gateio、bitget、kraken、binance、coinbase、okx
ウォレット
| コマンド | 説明 |
|---|---|
openmm-wallet info | ウォレットのアドレスとチェーンを表示 |
openmm-wallet set | ウォレットの認証情報を設定 |
openmm-wallet export | 秘密鍵を表示(確認が必要) |
支出ポリシー
| コマンド | 説明 |
|---|---|
openmm-policy show | 現在のポリシーを表示 |
openmm-policy set max-per-tx <amount> | 1 回の取引あたりの USDC の上限 |
openmm-policy set max-per-day <amount> | 1 日あたりの USDC の上限 |
openmm-policy set allowed-chains <chains> | カンマ区切りのチェーン ID |
openmm-policy reset | すべてのポリシー上限をクリア |
高度な操作
| コマンド | 説明 |
|---|---|
openmm-vault info | Vault のメタデータを表示します |
openmm-vault change-password | Vault のパスワードを変更します |
openmm-vault export | すべての認証情報をエクスポートします(危険) |
openmm-vault destroy | Vault を削除します |
使用例
BTC の価格を確認する:
"Get me the BTC/USDT ticker on MEXC"
注文を出す:
"Buy 0.1 ETH at $2400 on Kraken"
グリッド戦略を開始する:
"Start a grid strategy on MEXC for INDY/USDT between $0.10 and $0.15 with 10 levels and $500 total"
Cardano トークンを確認する:
"What's the current price of SNEK on Cardano DEXes?"
セキュリティ
- Vault:
~/.openmm/vault.encで AES-256-GCM 暗号化されています - パスワード: 対話型ターミナルでのみ使用します。設定ファイル、環境変数、CLI フラグには決して保存しません
- ソケット:
/tmp/openmm.sockのモードは0600です。ソケットが認証境界となります - ポリシー: 秘密鍵に触れる前に、ソケットで支出上限を適用します
- 分離: 秘密鍵が MCP クライアントプロセスのメモリに入ることはありません。IPC を介して
openmm serveプロセス内で署名が行われます
開発
git clone https://github.com/QBT-Labs/openMM-MCP.git
cd openMM-MCP
npm install
npm run typecheck
npm run lint
npm test
npm run build
リソース
- OpenMM SDK — 基盤となる取引 SDK
- x402 Package — 決済連携
- MCP Specification — Model Context Protocol のドキュメント
- Base Network — USDC 決済向けの L2
ライセンス
MIT
ホステッドデプロイ
ホステッドデプロイは Fronteir AI で利用できます。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。