MEXC MCP Server について
MEXC MCP ServerはEncore.tsを使い、MEXCの市場データ、口座情報、取引操作をMCPクライアントに公開します。市場照会と注文管理を組み合わせるワークフロー向けで、シークレット管理、レート制限、キャッシュも備えています。
主な機能
- 01リアルタイム価格と注文板の照会
- 02残高と注文履歴の取得
- 03注文の発注・取消・状態確認
- 04API認証情報の管理
- 05レート制限とキャッシュ
活用シーン
- 01取引ペアの価格と24時間統計の確認
- 02口座残高とポジションの確認
- 03ツール経由での注文発注や取消
MCP 対応
市場データ、取引、口座操作のMCPツールを提供し、クライアントはMCPリソースの一覧取得と読み取りもできます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MEXC MCP Server
Encore.ts を使用した MEXC 仮想通貨取引所連携用の Model Context Protocol(MCP)サーバー実装です。
🚀 機能
- リアルタイムの市場データ:MEXC 取引所のライブティッカー価格、オーダーブック、24 時間統計
- 安全な API 管理:API キーのための Encore.ts シークレット管理
- レート制限とキャッシュ:組み込みの保護機能とパフォーマンス最適化
- 型安全性:Encore.ts インターフェースを使用した完全な TypeScript 実装
- テスト駆動開発:カバレッジ 90% 超の包括的なテストスイート
- CI/CD パイプライン:テスト、リンティング、デプロイの自動化
- コミット前フック:コード品質チェックの自動化
📋 前提条件
- Bun >= 1.0.0
- Node.js >= 18.0.0
- Encore CLI(デプロイ用)
- MEXC API 認証情報
🛠️ ローカル開発のセットアップ
1. クローンしてインストール
git clone https://github.com/RyanLisse/mexc-mcp-server.git
cd mexc-mcp-server
bun install
2. 環境設定
プロジェクトのルートに .env ファイルを作成します。
# MEXC API Credentials
MEXC_API_KEY=your_mexc_api_key_here
MEXC_SECRET_KEY=your_mexc_secret_key_here
3. 開発ワークフロー
# Start development server
bun run dev
# Run tests (with watch mode)
bun run test:watch
# Run all quality checks
bun run check
# Format and lint code
bun run format
bun run lint:fix
🧪 テスト
# Run all tests
bun test
# Run tests with coverage
bun run test:coverage
# Run specific test file
bun test auth/auth.test.ts
# Test MEXC API connectivity
bun run test:mexc
🔧 利用可能な MCP ツール
| ツール名 | 説明 | 入力パラメーター |
|---|---|---|
mexc_get_ticker | 現在のティッカー価格と 24 時間統計を取得します | symbol: string, convert?: string |
mexc_get_order_book | 現在のオーダーブック(買い注文/売り注文)を取得します | symbol: string, limit?: number |
mexc_get_24h_stats | 24 時間の取引統計を取得します | symbol?: string |
mexc_test_connectivity | API 接続とサーバー時刻をテストします | なし |
mexc_test_authentication | API 認証をテストします | なし |
mexc_get_active_symbols | 取引中のすべてのシンボルを取得します | limit?: number |
mexc_place_order | 買い注文または売り注文を発注します | `symbol: string, side: 'buy' |
mexc_cancel_order | 既存の注文をキャンセルします | symbol: string, orderId: string |
mexc_get_order_status | 注文のステータスと詳細を取得します | symbol: string, orderId: string |
mexc_get_account_balance | アカウント残高を取得します | なし |
mexc_get_open_orders | すべての未決済注文を取得します | symbol?: string |
mexc_get_order_history | 注文履歴を取得します | symbol?: string, limit?: number |
mexc_get_trade_history | 取引の約定履歴を取得します | symbol?: string, limit?: number |
🚀 デプロイ
Encore Cloud へのデプロイ
-
Encore CLI をインストール:
curl -L https://encore.dev/install.sh | bash -
認証:
encore auth login -
シークレットを設定:
# For staging environment encore secret set --env=staging MEXC_API_KEY "your_api_key" encore secret set --env=staging MEXC_SECRET_KEY "your_secret_key" # For production environment encore secret set --env=production MEXC_API_KEY "your_api_key" encore secret set --env=production MEXC_SECRET_KEY "your_secret_key" -
デプロイ:
# Deploy to staging encore deploy --env=staging # Deploy to production encore deploy --env=production
デプロイの自動化
このプロジェクトには、自動デプロイ用の GitHub Actions ワークフローが含まれています。
-
CI パイプライン(
.github/workflows/ci.yml):すべての PR とプッシュで実行- 型チェック
- リンティングとフォーマット
- テストの実行
- セキュリティスキャン
- ビルドの検証
-
デプロイパイプライン(
.github/workflows/deploy.yml):Encore Cloud にデプロイ- main ブランチへのプッシュで起動
- 環境を選択して手動デプロイ
- ヘルスチェックの自動化
- シークレット管理
必須の GitHub シークレット
GitHub リポジトリの設定で、以下のシークレットを設定します。
ENCORE_AUTH_TOKEN=your_encore_auth_token
ENCORE_INSTALL_ID=your_encore_install_id
MEXC_API_KEY=your_mexc_api_key
MEXC_SECRET_KEY=your_mexc_secret_key
CODECOV_TOKEN=your_codecov_token # Optional, for coverage reports
🔒 セキュリティとシークレット管理
Encore.ts のシークレット
このプロジェクトでは、認証情報を安全に保存するため、Encore.ts の組み込みシークレット管理を使用しています。
// In shared/config.ts
import { secret } from "encore.dev/config";
// Secrets are automatically injected by Encore.ts
const mexcApiKey = secret("MEXC_API_KEY");
const mexcSecretKey = secret("MEXC_SECRET_KEY");
// For local development, use environment variables
const localConfig = {
apiKey: process.env.MEXC_API_KEY || mexcApiKey(),
secretKey: process.env.MEXC_SECRET_KEY || mexcSecretKey(),
};
シークレットの設定
# Set secrets for different environments
encore secret set --env=development MEXC_API_KEY "your_dev_api_key"
encore secret set --env=development MEXC_SECRET_KEY "your_dev_secret_key"
encore secret set --env=staging MEXC_API_KEY "your_staging_api_key"
encore secret set --env=staging MEXC_SECRET_KEY "your_staging_secret_key"
encore secret set --env=production MEXC_API_KEY "your_prod_api_key"
encore secret set --env=production MEXC_SECRET_KEY "your_prod_secret_key"
ベストプラクティス
- ✅ API キーをバージョン管理にコミットしないでください
- ✅ 環境ごとのシークレット(ステージング/本番環境)を使用してください
- ✅ API キーを定期的にローテーションしてください
- ✅ API の使用状況とレート制限を監視してください
- ✅ 最小権限の原則に従ってアクセス権を設定してください
🔄 CI/CD パイプライン
コミット前フック
Husky のコミット前フックでコード品質を確保します。
# Automatically runs on git commit
- Lint-staged (format & lint staged files)
- Type checking
- Test execution
GitHub Actions
CI ワークフロー(.github/workflows/ci.yml)
- トリガー:プルリクエスト、および main/develop へのプッシュ
- 手順:インストール → 型チェック → リンティング → テスト → セキュリティスキャン → ビルド
デプロイワークフロー(.github/workflows/deploy.yml)
- トリガー:main へのプッシュ、または手動実行
- 手順:品質チェック → デプロイ → ヘルスチェック → 通知
📊 API エンドポイント
ヘルスチェックと情報
GET /health- サービスのヘルスチェックGET /mcp/info- MCP プロトコル情報GET /- API の概要
認証サービス
POST /auth/validate- API キーを検証GET /auth/status- 認証ステータスPOST /auth/rate-limit- レート制限のステータスGET /auth/test-mexc- MEXC 認証情報をテスト
マーケットデータサービス
POST /market-data/ticker- ティッカーデータを取得POST /market-data/order-book- オーダーブックを取得POST /market-data/24h-stats- 24 時間の統計情報を取得GET /market-data/test-connectivity- 接続をテストGET /market-data/test-auth- 認証をテストPOST /market-data/active-symbols- アクティブなシンボルを取得GET /market-data/health- マーケットデータサービスのヘルス状態GET /market-data/mcp/tools- 利用可能な MCP ツール
トレーディングサービス
POST /trading/place-order- 新しい注文を発注POST /trading/cancel-order- 既存の注文をキャンセルPOST /trading/order-status- 注文ステータスを取得GET /trading/open-orders- 未決済注文を取得POST /trading/order-history- 注文履歴を取得POST /trading/trade-history- 取引履歴を取得GET /trading/health- トレーディングサービスのヘルス状態
ポートフォリオサービス
GET /portfolio/balance- 口座残高を取得GET /portfolio/positions- 保有中のポジションを取得POST /portfolio/pnl- 損益データを取得GET /portfolio/health- ポートフォリオサービスのヘルス状態
ツールサービス(MCP プロトコル)
GET /tools/list- 利用可能なすべての MCP ツールを一覧表示POST /tools/call- MCP ツールを実行GET /tools/resources- MCP リソースを一覧表示POST /tools/resources/read- MCP リソースの内容を読み取る
🧩 アーキテクチャ
Encore.ts サービス
このアプリケーションは、5 つの主要サービスで構成されるマイクロサービスアーキテクチャを使用して構築されています。
mexc-mcp-server/
├── encore.service.ts # Main service definition
├── api.ts # Root API endpoints
├── auth/ # Authentication service
│ ├── encore.service.ts # Service definition
│ ├── api.ts # Auth endpoints
│ └── auth.ts # Auth logic
├── market-data/ # Market data service
│ ├── encore.service.ts # Service definition
│ ├── api.ts # Market data endpoints
│ ├── tools.ts # MCP tools implementation
│ └── mexc-client.ts # MEXC API client
├── trading/ # Trading operations service
│ ├── encore.service.ts # Service definition
│ ├── api.ts # Trading endpoints
│ └── tools.ts # Trading MCP tools
├── portfolio/ # Portfolio management service
│ ├── encore.service.ts # Service definition
│ ├── api.ts # Portfolio endpoints
│ └── tools.ts # Portfolio MCP tools
└── tools/ # MCP tools aggregation service
├── encore.service.ts # Service definition
└── api.ts # MCP protocol endpoints
サービスの依存関係
- auth:基本的な認証とレート制限
- market-data:リアルタイムのマーケットデータ(auth に依存)
- trading:注文管理(auth、market-data に依存)
- portfolio:口座とポジションの追跡(auth、trading に依存)
- tools:MCP プロトコルの実装(すべてのサービスを統合)
🤝 貢献
- リポジトリをフォークします
- フィーチャーブランチを作成します:
git checkout -b feature/amazing-feature - コーディング規約に従って変更を加えます
- テストを実行します:
bun test - Conventional Commits に従ってコミットします:
git commit -m "feat: add amazing feature" - ブランチにプッシュします:
git push origin feature/amazing-feature - プルリクエストを作成します
開発規約
- ✅ 厳格モードの TypeScript
- ✅ テスト駆動開発(TDD)
- ✅ ファイルは 500 行未満
- ✅ 型安全性を確保する Encore.ts インターフェース
- ✅ Conventional Commits
- ✅ 新機能のテストカバレッジは 90% 以上
- ✅ リントとフォーマットには Biome.js を使用
📝 ライセンス
MIT ライセンスの詳細については、LICENSE ファイルを参照してください。
🆘 サポート
- 📖 ドキュメント
- 🐛 イシュー
- 💬 ディスカッション
- 📧 メール:[email protected]
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。