Skip to main content
Glama

Luno MCP サーバー

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

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

特徴

  • Luno API経由のリアルタイム暗号通貨価格情報

  • すべての取引ペアの市場概要

  • 口座残高照会

  • 注文管理(発注、キャンセル、ステータス)

  • 取引履歴の取得

  • 料金情報

  • 標準化されたJSON-RPC 2.0インターフェース

  • AIアプリケーションとのシンプルな統合

Related MCP server: AMOCA Solana MCP Server

前提条件

  • 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

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

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/amanasmuei/mcp-luno'

If you have feedback or need assistance with the MCP directory API, please join our Discord server