Skip to main content
Glama

Luno MCP Server

Сервер Luno MCP

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

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

Функции

  • Информация о ценах криптовалют в режиме реального времени через API Luno
  • Обзор рынка по всем торговым парам
  • Запросы баланса счета
  • Управление заказами (размещение, отмена, статус)
  • Извлечение истории транзакций
  • Информация о сборах
  • Стандартизированный интерфейс JSON-RPC 2.0
  • Простая интеграция с приложениями ИИ

Предпосылки

  • 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

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Сервер протокола контекста модели, который предоставляет стандартизированный интерфейс для моделей и приложений ИИ для взаимодействия с API криптовалютной биржи Luno для торговых операций.

  1. Функции
    1. Предпосылки
      1. Установка
        1. Поддержка докера
          1. Использование Docker Compose (рекомендуется)
          2. Использование Docker напрямую
          3. Использование с помощниками на основе искусственного интеллекта
          4. Поддержка SSL с Docker
        2. Ручная установка
          1. Запуск сервера
            1. Транспорт STDIO (по умолчанию, один клиент)
            2. Транспорт WebSockets (несколько клиентов)
            3. Параметры командной строки
            4. Переменные среды
            5. Тестирование со стандартным клиентом
          2. Интеграция протокола MCP
            1. Интеграция VS-кода
              1. Конфигурация VS-кода
            2. Доступные методы
              1. Примеры запросов
            3. Разработка
              1. Структура проекта
              2. Проведение тестов
              3. Добавление новых функций
            4. Архитектура
              1. Поиск неисправностей
                1. Распространенные проблемы
                2. Приоритет конфигурации
              2. Поддержка нескольких клиентов
                1. Варианты транспорта
                2. Работа с WebSockets Transport
                3. Инструменты клиента WebSocket
              3. Лицензия

                Related MCP Servers

                • 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
                • A
                  security
                  A
                  license
                  A
                  quality
                  A server that allows AI models to interact with cryptocurrency exchange APIs through the Model Context Protocol, providing access to over 100 exchanges and their trading capabilities.
                  Last updated -
                  20
                  472
                  19
                  TypeScript
                  MIT License
                  • Apple
                  • Linux

                View all related MCP servers

                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