🚀 Orderly Network MCP Server
Orderly Networkはオムニチェーンの先物取引インフラストラクチャです。このModel Context Protocol (MCP)サーバーは、Orderly Networkに関するドキュメントとSDKパターンを提供します。
🚀 クイックスタート
AIクライアント用のMCPサーバーを1つのコマンドでインストールします。
npx @orderly.network/mcp-server init --client <client>
サポートされているクライアント: claude, cursor, vscode, codex, opencode
使用例
npx @orderly.network/mcp-server init --client opencode
npx @orderly.network/mcp-server init --client claude
npx @orderly.network/mcp-server init --client cursor
npx @orderly.network/mcp-server init --client vscode
npx @orderly.network/mcp-server init
このコマンドにより、以下のことが行われます。
- AIクライアントに適した設定ファイルが作成されます。
@orderly.network/mcp-serverが開発依存パッケージとしてインストールされます。
- 次の手順が案内されます。
インストール後: AIクライアントを再起動して、「Orderly Networkに接続するにはどうすればいいですか?」と質問してみてください。
✨ 主な機能
このMCPサーバーは、AIアシスタントがOrderly Networkに関する質問に回答し、開発者がOrderly SDK v2を使用してReactコンポーネントを構築するのをガイドします。
機能の詳細
- ドキュメント検索: アーキテクチャ、API、コンセプトに関するOrderlyのドキュメントを検索できます。
- SDKパターン: すべてのv2フック(useOrderEntry、usePositionStreamなど)のコード例を取得できます。
- コントラクトアドレス: サポートされているすべてのチェーンのスマートコントラクトアドレスを検索できます。
- ワークフローガイド: 一般的な開発タスクのステップバイステップの説明を提供します。
- コンポーネントガイド: 取引UIコンポーネントを構築するためのパターンを提供します。
- APIリファレンス: RESTおよびWebSocketエンドポイントのドキュメントを提供します。
- インデクサーAPI: 取引メトリクス、アカウントイベント、取引量統計、ランキングを提供します。
📦 インストール
クイックインストール (推奨)
CLIを使用してAIクライアントを自動的に設定します。
npx @orderly.network/mcp-server init --client <client>
利用可能なクライアント:
| クライアント |
コマンド |
設定ファイルの場所 |
| Claude Code |
--client claude |
.mcp.json |
| Cursor |
--client cursor |
.cursor/mcp.json |
| VS Code |
--client vscode |
.vscode/mcp.json |
| Codex |
--client codex |
~/.codex/config.toml |
| OpenCode |
--client opencode |
.opencode/mcp.json |
手動設定
自動設定がクライアントで機能しない場合、または手動で設定したい場合は、以下の手順を実行します。
前提条件
- Node.js 18以上
- Yarn (またはnpm)
ソースからのセットアップ
- プロジェクトをクローンまたは作成します:
cd orderly-mcp
- 依存関係をインストールします:
yarn install
- プロジェクトをビルドします:
yarn build
サーバーの起動
MCPサーバーは2つのモードをサポートしています。
1. Stdioモード (デフォルト - ローカルMCPクライアント用)
ローカルのAIアシスタントにこれを使用します。
yarn start
手動設定
自動インストーラーを使用しない場合は、この設定をAIクライアントに追加します。
Claude Code (.mcp.json):
{
"mcpServers": {
"orderly": {
"command": "npx",
"args": ["@orderly.network/mcp-server@latest"]
}
}
}
Cursor (.cursor/mcp.json):
{
"mcpServers": {
"orderly": {
"command": "npx",
"args": ["@orderly.network/mcp-server@latest"]
}
}
}
VS Code (.vscode/mcp.json):
{
"servers": {
"orderly": {
"command": "npx",
"args": ["@orderly.network/mcp-server@latest"]
}
}
}
OpenCode (.opencode/mcp.json):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"orderly": {
"type": "local",
"command": ["npx", "@orderly.network/mcp-server@latest"],
"enabled": true
}
}
}
Codex (~/.codex/config.toml):
[mcp_servers.orderly]
command = "npx"
args = ["@orderly.network/mcp-server@latest"]
2. HTTPモード (ホストされたデプロイ用)
リモートアクセス用にHTTPサーバーとして実行します。
yarn start:http
サーバーはポート3000(またはPORT環境変数)で起動します。
- MCPエンドポイント:
http://localhost:3000/
- ヘルスチェック:
http://localhost:3000/health
Dockerデプロイメント:
docker build -t orderly-mcp .
docker run -p 3000:3000 orderly-mcp
DockerイメージはデフォルトでステートレスなHTTPモードで実行されます。
開発
自動再構築を使用した開発の場合は、以下のコマンドを実行します。
yarn dev
コード品質
このプロジェクトでは、コード品質を保つためにESLintとPrettierを使用しています。
yarn lint
yarn lint:fix
yarn format
yarn format:check
yarn typecheck
📚 詳細ドキュメント
1. search_orderly_docs
特定のトピック、コンセプト、または質問についてOrderlyのドキュメントを検索します。
パラメータ:
query (文字列、必須): Orderlyに関する検索クエリ
limit (数値、オプション): 最大結果数 (デフォルト: 5)
クエリの例:
- "how does the vault work"
- "trading fees"
- "order types"
- "leverage calculation"
2. get_sdk_pattern
Orderly SDK v2のフックと完全なDEXコンポーネントのコード例とパターンを取得します。
パラメータ:
pattern (文字列、必須): フックまたはパターンの名前 (例: 'useOrderEntry', 'wallet-connection', 'LightweightChart')
includeExample (ブール値、オプション): 完全なコード例を含める (デフォルト: true)
利用可能なパターン:
- アカウント:
useAccount, useWalletConnector
- 注文:
useOrderEntry, useOrderStream
- ポジション:
usePositionStream, useCollateral
- 市場データ:
useOrderbookStream, useMarkPrice, useTickerStream
- チェーン:
useChains
- 資産:
useDeposit
- チャート:
LightweightChart, TradingViewWidgetSetup, Real-timeKlineDataviaWebSocket
- 取引コンポーネント:
CreateOrder, Orderbook, SymbolHeader, SymbolSelection
- ポジションコンポーネント:
Positions, UpdatePosition, ClosePosition
- ウォレットコンポーネント:
ConnectWalletButton, WalletConnection, EvmDropdownMenu
- WebSocketサービス:
websocket.service (リアルタイムのローソク足データ)
3. get_contract_addresses
特定のチェーンでのOrderlyのスマートコントラクトアドレスを取得します。
パラメータ:
chain (文字列、必須): チェーン名 (例: 'arbitrum', 'optimism', 'base')
contractType (文字列、オプション): コントラクトのタイプまたは 'all' (デフォルト: 'all')
network (文字列、オプション): 'mainnet' または 'testnet' (デフォルト: 'mainnet')
サポートされているチェーン:
- EVM: ethereum, arbitrum, optimism, base, mantle, solana
- Orderly L2: orderlyL2
4. explain_workflow
一般的な開発ワークフローのステップバイステップの説明を取得します。
パラメータ:
workflow (文字列、必須): ワークフローの名前
利用可能なワークフロー:
wallet-connection: ウォレットを接続し、Orderlyのキーを作成する
place-first-order: 最初の取引を行うための完全なフロー
deposit-funds: USDC/トークンをOrderlyに入金する
set-tp-sl: 利確と損切りを設定する
subaccount-management: サブアカウントを作成し、管理する
5. get_api_info
OrderlyのREST APIまたはWebSocketストリームに関する情報を取得します。
パラメータ:
type (文字列、必須): 'rest', 'websocket', または 'auth'
endpoint (文字列、オプション): 特定のエンドポイントまたはストリームの名前
6. get_indexer_api_info
取引メトリクス、アカウントイベント、取引量統計、およびランキングに関するOrderly Indexer APIの情報を取得します。
パラメータ:
endpoint (文字列、オプション): 特定のエンドポイントのパスまたは名前 (例: '/events_v2', 'daily_volume', 'ranking/positions')
category (文字列、オプション): カテゴリでフィルタリング (例: 'trading_metrics', 'events', 'ranking')
利用可能なカテゴリ:
- 取引メトリクス: 日次取引量、手数料、永続的取引データ (
/daily_volume, /daily_trading_fee, /daily_orderly_perp)
- イベント: ページネーション付きのアカウントイベント (
/events_v2) - 取引、決済、清算、トランザクション
- 取引量統計: アカウントとブローカーの取引量統計 (
/get_account_volume_statistic, /get_broker_volume_statistic)
- ランキング: ポジション、損益、取引量、入出金 (
/ranking/positions, /ranking/realized_pnl, /ranking/trading_volume, /ranking/deposit, /ranking/withdraw)
例:
# すべてのインデクサーAPIエンドポイントを取得する
get_indexer_api_info
# 特定のエンドポイントの詳細を取得する
get_indexer_api_info endpoint="/events_v2"
# カテゴリ内のすべてのエンドポイントを取得する
get_indexer_api_info category="trading_metrics"
7. get_component_guide
Orderly SDKを使用してReact UIコンポーネントを構築するためのガイダンスを取得します。
パラメータ:
component (文字列、必須): コンポーネントのタイプ
complexity (文字列、オプション): 'minimal', 'standard', または 'advanced' (デフォルト: 'standard')
利用可能なコンポーネント:
order-entry: 注文入力フォーム
orderbook: 市場深度表示
positions: ポジション管理テーブル
wallet-connector: ウォレット接続UI
8. get_orderly_one_api_info
DEXの作成、グラデュエーション、および管理に関するOrderly One APIの情報を取得します。
パラメータ:
endpoint (文字列、オプション): 特定のエンドポイントのパスまたは名前 (例: '/dex', 'verify-tx', '/theme/modify')
category (文字列、オプション): カテゴリでフィルタリング (例: 'auth', 'dex', 'graduation', 'theme', 'stats', 'leaderboard', 'admin')
利用可能なカテゴリ:
- 認証: ウォレット署名ベースの認証 (ナンス、検証、検証)
- DEX: DEX管理 - 交換所の作成、更新、削除、デプロイ、および管理
- グラデュエーション: グラデュエーションシステム - デモから手数料分割を伴う完全なブローカーにアップグレードする
- テーマ: AIによるテーマ生成とCSSカスタマイズ
- 統計: プラットフォーム全体の統計と分析
- リーダーボード: DEXのランキング、パフォーマンスメトリクス、およびリーダーボード
- 管理: プラットフォーム管理のための管理操作
例:
# 概要と認証フローを取得する
get_orderly_one_api_info
# カテゴリ内のすべてのエンドポイントを取得する
get_orderly_one_api_info category="dex"
get_orderly_one_api_info category="graduation"
# 特定のエンドポイントの詳細を取得する
get_orderly_one_api_info endpoint="verify-tx"
get_orderly_one_api_info endpoint="/theme/modify"
利用可能なリソース
リソースURIを介して包括的なドキュメントにアクセスできます。すべてのリソースはページネーション付きのファジー検索をサポートしています。
クエリパラメータ:
search (必須) - ファジー検索クエリ
page (オプション) - ページ番号 (デフォルト: 1)
limit (オプション) - ページあたりの結果数、最大10 (デフォルト: 10)
リソース:
orderly://overview - 高レベルのプロトコルアーキテクチャ (検索不要)
orderly://sdk/hooks?search=orderEntry - 名前、説明、またはカテゴリでSDKフックを検索する
orderly://sdk/components?search=Checkbox - 名前または説明でコンポーネントを検索する
orderly://contracts?search=arbitrum - チェーンまたは名前でコントラクトを検索する
orderly://workflows?search=wallet - 名前またはステップでワークフローを検索する
orderly://api/rest?search=position - REST APIエンドポイントを検索する
orderly://api/websocket?search=orderbook - WebSocketストリームを検索する
orderly://api/indexer?search=events - インデクサーAPIエンドポイントを検索する
例:
orderly://sdk/hooks?search=useOrderEntry&page=1&limit=5
💻 使用例
ドキュメントの検索
ユーザー: "Orderlyのボールトシステムはどのように機能しますか?"
AIは "vault system" というクエリで search_orderly_docs を使用します
→ クロスチェーンボールトアーキテクチャの説明が返されます
SDKパターンの取得
ユーザー: "useOrderEntry の使い方を教えてください"
AIは "useOrderEntry" というパターンで get_sdk_pattern を使用します
→ 使い方の例付きのフックドキュメントが返されます
コントラクトの検索
ユーザー: "Arbitrum上のUSDCのアドレスは何ですか?"
AIはチェーン "arbitrum"、コントラクトタイプ "USDC" で get_contract_addresses を使用します
→ コントラクトアドレスが返されます
ワークフローの説明
ユーザー: "最初の注文を入れるにはどうすればいいですか?"
AIは "place-first-order" というワークフローで explain_workflow を使用します
→ ステップバイステップのガイドが返されます
コンポーネント構築ガイド
ユーザー: "注文入力コンポーネントを構築するにはどうすればいいですか?"
AIは "order-entry" というコンポーネントで get_component_guide を使用します
→ 完全な実装ガイドが返されます
データソース
このMCPサーバーには、以下の埋め込みデータが含まれています。
- Orderlyドキュメント: アーキテクチャ、コンセプト、およびガイド
- SDKパターン: @orderly.network/hooks からのv2フックの例とパターン
- DEXの例: example-dex リポジトリからの完全な動作コンポーネント
- コントラクトアドレス: サポートされているすべてのチェーンでデプロイされたコントラクト
- API仕様: RESTおよびWebSocketエンドポイント
- インデクサーAPI: 取引メトリクス、アカウントイベント、取引量統計、およびランキング
- Orderly One API: DEXの作成、グラデュエーション、および管理のAPIドキュメント
- ワークフローガイド: 一般的な開発タスクの説明
プロジェクト構造
orderly-mcp/
├── src/
│ ├── index.ts # メインサーバーエントリ (stdioモード)
│ ├── http-server.ts # HTTPサーバーエントリ (ステートレスモード)
│ ├── server.ts # 共有MCPサーバーロジック
│ ├── tools/
│ │ ├── searchDocs.ts # ドキュメント検索
│ │ ├── sdkPatterns.ts # SDKパターンの検索
│ │ ├── contracts.ts # コントラクトアドレスの検索
│ │ ├── workflows.ts # ワークフローの説明
│ │ ├── apiInfo.ts # APIドキュメント
│ │ ├── indexerApi.ts # インデクサーAPIドキュメント
│ │ ├── componentGuides.ts # コンポーネント構築ガイド
│ │ └── orderlyOneApi.ts # Orderly One APIドキュメント
│ ├── resources/
│ │ └── index.ts # リソースハンドラー
│ └── data/
│ ├── documentation.json # 検索可能なドキュメントチャンク
│ ├── sdk-patterns.json # SDKパターンと例
│ ├── contracts.json # コントラクトアドレス
│ ├── workflows.json # ワークフローの説明
│ ├── api.json # API仕様
│ ├── indexer-api.json # インデクサーAPIドキュメント
│ ├── orderly-one-api.json # Orderly One APIドキュメント
│ ├── component-guides.json # コンポーネントガイド
│ └── resources/
│ └── overview.md # プロトコルの概要
├── .vscode/ # VS Code設定
│ ├── settings.json
│ └── extensions.json
├── package.json
├── tsconfig.json
├── eslint.config.mjs # ESLint設定
├── .prettierrc # Prettier設定
├── .gitignore
├── .dockerignore # Dockerの無視ルール
├── Dockerfile # Dockerビルド設定
└── README.md
データの更新
src/data/ 内のすべてのデータファイルは、scripts/ フォルダ内のスクリプトによって自動生成されます。JSONファイルを手動で編集しないでください - 再生成スクリプトが実行されると上書きされます。
前提条件
.env ファイルにNEAR AI APIキーを設定します: NEAR_AI_API_KEY=your_key
- APIキーはここで取得できます: https://cloud.near.ai/api-keys
完全な再生成 (推奨)
すべてを最初から生成します。
curl -o llms-full.txt https://orderly.network/docs/llms-full.txt
node scripts/split_telegram_chats.js
node scripts/analyze_chat_openai.js
node scripts/analyze_llms_full.js
node scripts/analyze_sdk.js
git clone --depth 1 https://github.com/orderlynetwork/example-dex.git /tmp/example-dex
node scripts/analyze_example_dex.js
node scripts/enrich_sdk_patterns_with_examples.js
node scripts/generate_mcp_data.js
node scripts/generate_api_from_openapi.js
node scripts/generate_indexer_api.js
node scripts/generate_contracts.js
yarn build && yarn test:run
ドキュメントのみを更新する
Telegramデータを使用せずに公式ドキュメントから最新の情報に更新したい場合は、以下の手順を実行します。
curl -o llms-full.txt https://orderly.network/docs/llms-full.txt
node scripts/analyze_llms_full.js
node scripts/generate_mcp_data.js
yarn build
データファイル
| ファイル |
ソース |
生成スクリプト |
| documentation.json |
公式ドキュメント + Telegramチャット |
generate_mcp_data.js |
| sdk-patterns.json |
SDKソースコード (GitHub) |
analyze_sdk.js |
| sdk-patterns.json |
例DEXリポジトリ (GitHub) |
analyze_example_dex.js + enrich_sdk_patterns_with_examples.js (AIモードの場合は USE_AI=true を追加) |
| component-guides.json |
SDKソースコード (GitHub) |
analyze_sdk.js |
| workflows.json |
公式ドキュメント + Telegramチャット |
generate_mcp_data.js |
| api.json |
OpenAPI仕様 |
generate_api_from_openapi.js |
| indexer-api.json |
インデクサーAPIのOpenAPI仕様 |
generate_indexer_api.js |
| orderly-one-api.json |
Orderly OneのOpenAPI仕様 |
generate_orderly_one_api.js |
| contracts.json |
公式ドキュメント (llms-full.txt) |
generate_contracts.js |
コントリビュート
新しいコンテンツを追加するには、ソースデータを更新して再生成する必要があります。
- 新しいドキュメント:
llms-full.txt またはTelegramエクスポートを更新してから、生成スクリプトを実行します。
- 新しいSDKパターン: SDKはGitHubから自動的に解析されるため、SDKが更新されるとパターンが自動的に表示されます。
- 新しいDEXの例: example-dex リポジトリをクローンして、分析スクリプトを実行します。
- 新しいチェーン: ソースドキュメントを更新してから、再生成します。
- 新しいワークフロー: ソースドキュメントまたはTelegramチャットに追加してから、再生成します。
📄 ライセンス
MIT
サポート
- Orderlyドキュメント: https://orderly.network/docs
- SDKリポジトリ: https://github.com/OrderlyNetwork/js-sdk
- Orderly Discord: https://discord.gg/OrderlyNetwork