Skip to main content
Glama

Сервер Luno MCP

Сервер Model Context Protocol (MCP) для API криптовалютной биржи Luno. Этот сервер предоставляет стандартизированный интерфейс для моделей и приложений ИИ для взаимодействия с API Luno для торговли криптовалютой.

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

Функции

  • Информация о ценах криптовалют в режиме реального времени через API Luno

  • Обзор рынка по всем торговым парам

  • Запросы баланса счета

  • Управление заказами (размещение, отмена, статус)

  • Извлечение истории транзакций

  • Информация о сборах

  • Стандартизированный интерфейс JSON-RPC 2.0

  • Простая интеграция с приложениями ИИ

Related MCP server: AMOCA Solana MCP Server

Предпосылки

  • Python 3.8+ (рекомендуется Python 3.9+)

  • uv для управления пакетами

  • Учетная запись Luno с ключами API (для полной функциональности)

Установка

  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. Настройте учетные данные API Luno (выберите один способ):

Поддержка докера

Вы можете запустить сервер MCP с помощью Docker для более простого развертывания и обеспечения единообразной среды на разных платформах.

Использование Docker Compose (рекомендуется)

  1. Скопируйте пример файла среды и настройте свои учетные данные:

cp .env.example .env # Edit .env file with your Luno API credentials
  1. Запустите сервер:

docker compose up -d

Сервер будет доступен по адресу ws://localhost:8765 в режиме WebSocket.

  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

Использование с помощниками на основе искусственного интеллекта

После запуска контейнера Docker вы можете подключить различных помощников на основе искусственного интеллекта для использования сервера Luno MCP:

Курсор

Добавьте следующее в конфигурацию курсора:

{ "mcp_servers": { "luno": { "type": "websocket", "url": "ws://localhost:8765" } } }

Клод Десктоп

В настройках Claude Desktop у вас есть два варианта настройки сервера MCP:

Вариант 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" } } } }

Эта конфигурация запускает сервер Python напрямую с использованием транспорта STDIO.

Примечание: замените /path/to/mcp-luno фактическим путем, по которому вы клонировали репозиторий.

Клайн

Добавьте следующее в файл конфигурации Cline:

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

Поддержка SSL с Docker

Чтобы использовать SSL с контейнером Docker:

  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

Ручная установка

Вариант А : использование файла .env

cp .env.example .env

Затем отредактируйте файл .env , чтобы добавить свои учетные данные API Luno:

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 в двух различных транспортных режимах:

Транспорт STDIO (по умолчанию, один клиент)

Это режим по умолчанию, который поддерживает одно клиентское соединение через стандартный ввод/вывод:

python -m src.main --transport stdio

Транспорт WebSockets (несколько клиентов)

Для поддержки нескольких клиентских подключений одновременно запустите сервер в режиме 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

Этот сервер реализует протокол контекста модели, который позволяет моделям ИИ взаимодействовать с ним через стандартизированные сообщения JSON-RPC 2.0. Сервер работает через STDIO по умолчанию, что упрощает интеграцию с расширениями VS Code и другими MCP-совместимыми клиентами.

Интеграция VS-кода

Файл .vscode/mcp.json настраивает сервер для использования с VS Code. Предоставляются две конфигурации сервера:

  1. luno-mcp-server-stdio — использует транспорт STDIO (поведение MCP по умолчанию)

  2. luno-mcp-server-websocket — использует транспорт WebSocket для поддержки нескольких клиентов

Конфигурация VS-кода

Для использования транспорта WebSocket с VS Code файл mcp.json включает конфигурацию типа процесса:

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

При использовании транспорта WebSocket VS Code запустит сервер как фоновый процесс, а не будет взаимодействовать через STDIO.

Настройка MCP-сервера в VS Code

Вы можете настроить сервер непосредственно из файла .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" } } } }

Эта конфигурация будет использоваться расширениями VS Code, поддерживающими протокол MCP, что упрощает интеграцию с моделями ИИ и другими инструментами.

Доступные методы

Метод

Описание

Требуется аутентификация

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/

Добавление новых функций

Чтобы добавить новые возможности API Luno:

  1. Расширьте класс LunoClient в src/luno_mcp_server/luno_client.py новыми методами API

  2. Добавьте соответствующие методы в класс LunoMCPServer в src/luno_mcp_server/server.py

  3. Обновите список MCP_METHODS в server.py и зарегистрируйте свои методы в функции _register_methods

  4. Добавьте тесты в каталог tests/

Архитектура

Сервер MCP использует простую архитектуру:

  • JSON-RPC 2.0 для связи

  • Стандартный ввод/вывод (STDIO) для транспорта

  • Клиент API Luno для криптовалютных операций

Поиск неисправностей

Распространенные проблемы

  • Ошибки аутентификации API : убедитесь, что ключи API Luno правильно установлены либо в файле .env , либо в .vscode/mcp.json

  • Ошибки импорта : убедитесь, что вы активировали виртуальную среду.

  • Ограничение скорости : API Luno имеет ограничения скорости — реализуйте логику повторных попыток для использования в производстве.

Приоритет конфигурации

При запуске сервера значения конфигурации загружаются в следующем порядке приоритета:

  1. Переменные среды, проходящие через конфигурацию MCP (наивысший приоритет)

  2. Значения в файле .env

  3. Значения по умолчанию в коде (самый низкий приоритет)

Это означает, что вы можете задать значения в конфигурации MCP, чтобы переопределить любые существующие значения в вашем файле .env .

Поддержка нескольких клиентов

Этот сервер MCP поддерживает несколько клиентских подключений одновременно через WebSockets. Для получения подробной информации см. MULTI_CLIENT_SUPPORT.md .

Варианты транспорта

Сервер поддерживает два транспортных механизма:

  1. STDIO (по умолчанию): стандартный ввод/вывод — один клиент, используется VS Code MCP

  2. WebSockets : сетевой транспорт — несколько клиентов с функциями безопасности

Работа с WebSockets Transport

Основное использование:

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

Репозиторий включает два клиентских инструмента:

  1. test_websocket_client.py : Простой тестовый клиент

    python test_websocket_client.py
  2. enhance_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

Лицензия

Лицензия Массачусетского технологического института

Авторские права (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