Luno MCP Server

by amanasmuei
  • Apple
  • Linux

Integrations

  • Supports configuration management through .env files, allowing secure storage of API credentials and other environment variables needed for the Luno exchange integration.

  • Provides real-time cryptocurrency price information and trading capabilities through the Luno exchange, including market overview, account balance queries, order management, and transaction history retrieval for Bitcoin and other cryptocurrencies.

  • Enables version control and codebase management for the MCP server, supporting cloning of the repository during installation.

Luno MCP サーバー

Luno暗号通貨取引API用のモデルコンテキストプロトコル(MCP)サーバー。このサーバーは、AIモデルとアプリケーションが暗号通貨取引用のLuno APIと連携するための標準化されたインターフェースを提供します。

_ __ __ ____ ____ | | _ _ _ __ ___ | \/ |/ ___| _ \ | | | | | | '_ \ / _ \ | |\/| | | | |_) | | |___| |_| | | | | (_) || | | | |___| __/ |_____|\__,_|_| |_|\___/ |_| |_|\____|_|

特徴

  • Luno API経由のリアルタイム暗号通貨価格情報
  • すべての取引ペアの市場概要
  • 口座残高照会
  • 注文管理(発注、キャンセル、ステータス)
  • 取引履歴の取得
  • 料金情報
  • 標準化されたJSON-RPC 2.0インターフェース
  • AIアプリケーションとのシンプルな統合

前提条件

  • Python 3.8 以上 (Python 3.9 以上を推奨)
  • パッケージ管理のためのuv
  • APIキー付きのLunoアカウント(全機能対応)

インストール

  1. このリポジトリをクローンする
git clone https://github.com/amanasmuei/mcp-luno.git cd mcp-luno
  1. uvを使って仮想環境を作成する
uv venv source .venv/bin/activate # On macOS/Linux # On Windows use: .venv\Scripts\activate
  1. 依存関係をインストールする
uv pip install -r requirements.txt
  1. Luno API 資格情報を設定します (1 つの方法を選択):

Docker サポート

Docker を使用して MCP サーバーを実行すると、さまざまなプラットフォーム間での展開が容易になり、環境の一貫性も確保できます。

Docker Compose の使用(推奨)

  1. サンプル環境ファイルをコピーし、資格情報を設定します。
cp .env.example .env # Edit .env file with your Luno API credentials
  1. サーバーを起動します。
docker compose up -d

サーバーは、WebSocket モードでws://localhost:8765で利用できるようになります。

  1. ログを表示:
docker compose logs -f
  1. サーバーを停止します。
docker compose down

Dockerを直接使用する

イメージをビルドします。

docker build -t mcp-luno .

コンテナを実行します。

docker run -d \ -p 8765:8765 \ -e LUNO_API_KEY=your_api_key_here \ -e LUNO_API_SECRET=your_api_secret_here \ -e MCP_TRANSPORT=websocket \ -e MCP_HOST=0.0.0.0 \ -v ./certs:/app/certs \ --name mcp-luno \ mcp-luno

AIアシスタントと併用する

Docker コンテナを起動したら、さまざまな AI アシスタントを接続して Luno MCP サーバーを使用できます。

カーソル

カーソル設定に以下を追加します。

{ "mcp_servers": { "luno": { "type": "websocket", "url": "ws://localhost:8765" } } }
クロードデスクトップ

Claude Desktop 設定には、MCP サーバーを構成するための 2 つのオプションがあります。

オプション 1: Docker を使用する (推奨)
{ "mcpServers": { "luno": { "command": "docker", "args": ["compose", "up"], "cwd": "/path/to/mcp-luno", "transport": "websocket", "url": "ws://localhost:8765", "env": { "LUNO_API_KEY": "your_api_key_here", "LUNO_API_SECRET": "your_api_secret_here" } } } }

この構成では、Docker コンテナ内でサーバーを起動し、WebSocket 経由で接続します。

オプション2: Pythonの直接実行を使用する
{ "mcpServers": { "luno": { "command": "python", "args": ["-m", "src.main", "--transport", "stdio"], "cwd": "/path/to/mcp-luno", "transport": "stdio", "env": { "PYTHONPATH": "${workspaceFolder}", "LUNO_API_KEY": "your_api_key_here", "LUNO_API_SECRET": "your_api_secret_here" } } } }

この構成では、STDIO トランスポートを使用して Python サーバーを直接実行します。

注: /path/to/mcp-lunoリポジトリのクローンを作成した実際のパスに置き換えます。

クライン

Cline 構成ファイルに次の内容を追加します。

{ "mcp": { "servers": { "luno": { "transport": "websocket", "url": "ws://localhost:8765" } } } }

Docker による SSL サポート

Docker コンテナで SSL を使用するには:

  1. 提供されたスクリプトを使用して証明書を生成します。
./generate_certificates.sh
  1. コンテナを実行するときに証明書ディレクトリをマウントします。
docker run -d \ -p 8765:8765 \ -e LUNO_API_KEY=your_api_key_here \ -e LUNO_API_SECRET=your_api_secret_here \ -e MCP_TRANSPORT=websocket \ -e MCP_HOST=0.0.0.0 \ -v ./certs:/app/certs \ --name mcp-luno \ mcp-luno

手動インストール

オプションA : .envファイルを使用する

cp .env.example .env

次に、 .envファイルを編集して、Luno API 資格情報を追加します。

LUNO_API_KEY=your_api_key_here LUNO_API_SECRET=your_api_secret_here

オプションB : VS Code MCP構成を使用する

.vscode/mcp.jsonファイルを編集し、 envセクションに資格情報を追加します。

"env": { "PYTHONPATH": "${workspaceFolder}", "LUNO_API_KEY": "your_api_key_here", "LUNO_API_SECRET": "your_api_secret_here", "LOG_LEVEL": "INFO" }

: 有効なAPI認証情報がない場合は、パブリックエンドポイントのみ利用可能です。推奨事項: セキュリティのため、コードを共有する際は環境変数を使用することをお勧めします。

サーバーの実行

MCP サーバーは、次の 2 つの異なるトランスポート モードで実行できます。

STDIO トランスポート (デフォルト、単一クライアント)

これはデフォルトのモードで、標準入出力を介して単一のクライアント接続をサポートします。

python -m src.main --transport stdio

WebSocket トランスポート (複数のクライアント)

複数のクライアント接続を同時にサポートするには、サーバーを WebSocket モードで実行します。

python -m src.main --transport websocket [--host HOST] [--port PORT]

WebSocket サーバーは、デフォルトではws://localhost:8765で起動します。

WebSocketサーバーのテスト

付属のテスト クライアントを使用して WebSocket サーバーをテストできます。

python test_websocket_client.py

これにより、サーバーが WebSocket 接続を正しく処理し、要求に応答していることを確認できます。

コマンドラインオプション

  • --transport {stdio,websocket} : 使用するトランスポートメカニズム (デフォルト: stdio)
  • --host HOST : WebSocketトランスポートを使用するときにバインドするホスト(デフォルト: localhost)
  • --port PORT : WebSocketトランスポートを使用するときにバインドするポート(デフォルト: 8765)

環境変数

環境変数を使用してトランスポートを構成することもできます。

  • MCP_TRANSPORT : トランスポートメカニズム(「stdio」または「websocket」)
  • MCP_HOST : WebSocketトランスポートにバインドするホスト
  • MCP_PORT : WebSocketトランスポートにバインドするポート

標準クライアントでのテスト

STDIO トランスポートをテストするには、付属のテスト クライアントを使用します。

python test_client.py

MCPプロトコル統合

このサーバーはモデルコンテキストプロトコル(MCP)を実装しており、AIモデルは標準化されたJSON-RPC 2.0メッセージを介してサーバーとやり取りできます。サーバーはデフォルトでSTDIO経由で動作するため、VS Code拡張機能やその他のMCP互換クライアントとの統合が容易です。

VSコード統合

.vscode/mcp.jsonファイルは、VS Code で使用するサーバーの設定を行います。2 つのサーバー設定が用意されています。

  1. luno-mcp-server-stdio - STDIO トランスポートを使用します (デフォルトの MCP 動作)
  2. luno-mcp-server-websocket - 複数のクライアントをサポートするためにWebSocketトランスポートを使用します

VSコードの構成

VS Code で WebSocket トランスポートを使用するには、 mcp.jsonファイルにプロセス タイプの構成を含めます。

"luno-mcp-server-websocket": { "type": "process", "command": "python", "args": ["-m", "src.main", "--transport", "websocket"], "env": { // environment variables } }

WebSocket トランスポートを使用する場合、VS Code は STDIO 経由で通信するのではなく、バックグラウンド プロセスとしてサーバーを起動します。

VS Code で MCP サーバーを構成する

.vscode/mcp.jsonファイルから直接サーバーを構成できます。

{ "servers": { "luno-mcp-server": { "type": "stdio", "command": "python", "args": ["-m", "src.main"], "env": { "PYTHONPATH": "${workspaceFolder}", "LUNO_API_KEY": "your_api_key_here", "LUNO_API_SECRET": "your_api_secret_here", "LOG_LEVEL": "INFO" } } } }

この構成は、MCP プロトコルをサポートする VS Code 拡張機能によって使用され、AI モデルやその他のツールとの統合が容易になります。

利用可能な方法

方法説明認証が必要です
describe_capabilitiesサーバーの機能に関する情報を返すいいえ
get_crypto_price特定の取引ペアの現在の価格を取得するいいえ
get_market_overview利用可能なすべての市場の概要を確認するいいえ
get_account_balanceすべてのアカウントの残高を取得するはい
place_order新しい注文をするはい
cancel_order既存の注文をキャンセルするはい
get_order_status注文のステータスを取得するはい
get_transaction_historyアカウントの取引履歴を取得するはい
get_fees取引ペアの手数料情報を取得するはい

リクエストの例

サーバー機能を取得します:

{ "jsonrpc": "2.0", "method": "describe_capabilities", "params": {}, "id": 1 }

Bitcoin-ZARの価格を取得:

{ "jsonrpc": "2.0", "method": "get_crypto_price", "params": {"pair": "XBTZAR"}, "id": 2 }

発達

プロジェクト構造

├── .env # Environment variables (API credentials) ├── .gitignore # Git ignore configuration ├── .vscode/ # VS Code specific settings │ └── mcp.json # MCP configuration for VS Code ├── src/ # Source code │ ├── main.py # Entry point │ └── luno_mcp_server/ # MCP server implementation │ ├── luno_client.py # Luno API client │ └── server.py # MCP server core ├── tests/ # Test suite ├── test_client.py # Simple test client for the MCP server ├── requirements.txt # Project dependencies └── setup.py # Package setup

テストの実行

python -m pytest tests/

新機能の追加

新しい Luno API 機能を追加するには:

  1. src/luno_mcp_server/luno_client.pyLunoClientクラスを新しい API メソッドで拡張します。
  2. src/luno_mcp_server/server.pyLunoMCPServerクラスに対応するメソッドを追加します。
  3. server.pyMCP_METHODSリストを更新し、 _register_methods関数でメソッドを登録します。
  4. テストをtests/ディレクトリに追加する

建築

MCP サーバーはシンプルなアーキテクチャを使用します。

  • 通信用のJSON-RPC 2.0
  • トランスポート用の標準入出力(STDIO)
  • 暗号通貨操作のためのLuno APIクライアント

トラブルシューティング

よくある問題

  • API認証エラー: Luno APIキーが.envファイルまたは.vscode/mcp.jsonに正しく設定されていることを確認してください。
  • インポートエラー: 仮想環境がアクティブ化されていることを確認してください
  • レート制限: Luno API にはレート制限があります。本番環境での使用には再試行ロジックを実装してください。

構成の優先順位

サーバーを起動すると、構成値が次の優先順位で読み込まれます。

  1. MCP 構成を通じて渡される環境変数 (最高優先度)
  2. .envファイルの値
  3. コード内のデフォルト値(最低優先度)

つまり、MCP 構成で値を設定して、 .envファイル内の既存の値を上書きすることができます。

マルチクライアントサポート

このMCPサーバーは、WebSocketを介して複数のクライアントからの同時接続をサポートします。詳細については、 MULTI_CLIENT_SUPPORT.mdをご覧ください。

交通手段

サーバーは 2 つのトランスポート メカニズムをサポートしています。

  1. STDIO (デフォルト): 標準入出力 - 単一クライアント、VS Code MCP によって使用される
  2. WebSocket : ネットワークトランスポート - セキュリティ機能を備えた複数のクライアント

WebSocketトランスポートで実行

基本的な使用方法:

python -m src.main --transport websocket --host localhost --port 8765

セキュリティ オプション付き:

python -m src.main --transport websocket --host localhost --port 8765 \ --max-connections 50 --max-message-size 1048576 --rate-limit 100

SSL/TLS 暗号化の場合:

# First generate certificates ./generate_certificates.sh # Then run with SSL support python -m src.main --transport websocket --ssl-cert ./certs/server.crt --ssl-key ./certs/server.key

WebSocketクライアントツール

リポジトリには 2 つのクライアント ツールが含まれています。

  1. test_websocket_client.py : シンプルなテストクライアント
    python test_websocket_client.py
  2. enhanced_websocket_client.py : マルチクライアントシミュレーションを備えた高度なクライアント
    # Single client mode python enhanced_websocket_client.py --mode single # Multi-client simulation (3 clients) python enhanced_websocket_client.py --mode multi --clients 3

ライセンス

MITライセンス

著作権 (c) 2025

本ソフトウェアおよび関連ドキュメント ファイルのコピーを入手するすべての人に対して、無償で許可が付与されます。

Related MCP Servers

  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that provides read-only access to Bybit's cryptocurrency exchange API, allowing users to query real-time cryptocurrency data using natural language.
    Last updated -
    9
    5
    TypeScript
    MIT License
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server implementation that enables AI assistants to interact with the Paradex perpetual futures trading platform, allowing for retrieving market data, managing trading accounts, placing orders, and monitoring positions.
    Last updated -
    28
    4
    Python
    MIT License
    • Linux
    • Apple
  • A
    security
    F
    license
    A
    quality
    A Model Context Protocol server that enables AI assistants to interact with the Deriv trading API, providing access to active trading symbols and account balance information.
    Last updated -
    2
    Python
    • Apple
  • A
    security
    F
    license
    A
    quality
    A Model Context Protocol server that provides access to CoinMarketCap's cryptocurrency data, enabling AI applications to retrieve cryptocurrency listings, quotes, and detailed information.
    Last updated -
    3
    10
    Python
    • Linux
    • Apple

View all related MCP servers

ID: cqsor538wh