Skip to main content
Glama

Nostr MCP Server

by AustinKelsay

Наш MCP-сервер

Сервер протокола контекста модели (MCP), который предоставляет возможности Nostr для LLM, таких как Клод.

https://github.com/user-attachments/assets/1d2d47d0-c61b-44e2-85be-5985d2a81c64

Функции

На этом сервере реализовано несколько инструментов для взаимодействия с сетью Nostr:

  1. getProfile : извлекает информацию из профиля пользователя по открытому ключу
  2. getKind1Notes : извлекает текстовые заметки (тип 1), созданные пользователем
  3. getLongFormNotes : извлекает длинный контент (вид 30023), созданный пользователем
  4. getReceivedZaps : извлекает полученные пользователем Zap-сообщения, включая подробную информацию о платеже.
  5. getSentZaps : извлекает отправленные пользователем zaps, включая подробную информацию о платеже
  6. getAllZaps : извлекает отправленные и полученные Zap-сообщения для пользователя, с четкой маркировкой направления и общего количества.
  7. searchNips : Поиск по возможностям внедрения Nostr (NIP) с оценкой релевант��ости
  8. sendAnonymousZap : подготовка анонимного ZAP-запроса к профилю или событию, создание счета-фактуры для оплаты

Все инструменты полностью поддерживают как шестнадцатеричные открытые ключи, так и формат npub, с удобным отображением идентификаторов Nostr.

Установка

# Clone the repository git clone https://github.com/austinkelsay/nostr-mcp-server.git cd nostr-mcp-server # Install dependencies npm install # Build the project npm run build

Подключение к Claude для рабочего стола

  1. Убедитесь, что у вас установлен и обновлен Claude for Desktop до последней версии.
  2. Настройте Claude for Desktop, отредактировав или создав файл конфигурации:Для macOS:
    vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
    Для Windows:
    notepad %AppData%\Claude\claude_desktop_config.json
  3. Добавьте сервер Nostr в свою конфигурацию:
    { "mcpServers": { "nostr": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/nostr-mcp-server/build/index.js" ] } } }
    Обязательно замените /ABSOLUTE/PATH/TO/ на фактический путь к вашему проекту.
  4. Перезапустите Claude для рабочего стола.

Подключение к курсору

  1. Убедитесь, что у вас установлен и обновлен Cursor до последней версии.
  2. Настройте курсор, создав или отредактировав файл конфигурации:Для macOS:
    vim ~/.cursor/config.json
    Для Windows:
    notepad %USERPROFILE%\.cursor\config.json
  3. Добавьте сервер Nostr в свою конфигурацию:
    { "mcpServers": { "nostr": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/nostr-mcp-server/build/index.js" ] } } }
    Обязательно замените /ABSOLUTE/PATH/TO/ на фактический путь к вашему проекту.
  4. Перезапустить курсор.

Использование в Клоде

После настройки вы можете попросить Клода использовать инструменты Nostr, сделав такие запросы:

  • «Покажите мне информацию профиля npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8»
  • «Каковы последние сообщения от npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8?»
  • «Покажите мне длинные статьи из npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8»
  • «Сколько ZAP-запросов получил npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8?»
  • «Покажи мне zaps, отправленные npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8»
  • "Покажи мне все zaps (отправленные и полученные) для npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8"
  • "Поиск НПВ о zaps"
  • «Какие НПВ связаны с длинным контентом?»
  • «Покажите мне NIP-23 с полным содержанием»
  • "Отправить анонимный зэп в размере 100 сатт на npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8"
  • «Отправьте 1000 сатт на note1abcdef... с комментарием «Отличный пост!»»

Сервер автоматически обрабатывает преобразование между форматами npub и hex, поэтому вы можете использовать любой из форматов в своих запросах. Результаты отображаются с удобными для пользователя идентификаторами npub.

Расширенное использование

Вы можете указать пользовательские реле для любого запроса:

  • «Покажите мне профиль для npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8, использующего реле wss://relay.damus.io»

Вы также можете указать количество заметок или запов для извлечения:

  • «Покажи мне последние 20 заметок от npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8»

Для анонимных Zap-ов вы можете включить необязательные комментарии и указать тип цели:

  • «Отправьте анонимный зэп в размере 500 сатт на note1abcdef... с комментарием «Отличный пост!»»
  • «Отправьте 1000 сато анонимно на nevent1qys... используя реле wss://relay.damus.io»

Для zap-запросов можно включить дополнительную проверку и отладку:

  • «Показать мне все zap для npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 с включенной проверкой и отладкой»

Для поиска по NIP вы можете контролировать количество результатов и включать полный контент:

  • «Поиск НПВ о zaps с полным содержанием»
  • «Покажите мне 5 лучших НПВ по реле»
  • «Какие NIP связаны с шифрованием? Покажите мне 15 результатов»

Ограничения

  • На сервере по умолчанию установлено 8-секундное время ожидания для запросов, чтобы предотвратить зависание.
  • Поддерживаются только открытые ключи в шестнадцатеричном формате или формате npub.
  • По умолчанию используется только подмножество реле.

Подробности реализации

  • Собственная поддержка формата npub с использованием кодирования/декодирования NIP-19
  • Обнаружение приема ZAP-сообщений в соответствии с NIP-57 с распознаванием направления (отправлено/получено/самостоятельно)
  • Расширенный анализ счетов-фактур Bolt11 с извлечением суммы платежа
  • Интеллектуальная система кэширования для повышения производительности при больших объемах ZAP-загрузок
  • Расчеты общего количества сатс для отправленных/полученных/самозарядных платежей с чистым балансом
  • Дополнительная проверка NIP-57 для обеспечения целостности чека ZAP
  • Анонимная поддержка ZAP с мгновенной генерацией счетов-фактур
  • Поддержка профилей замены, событий (идентификаторов заметок) и заменяемых событий (naddr)
  • Каждый вызов инструмента создает новое соединение с реле, обеспечивая надежный поиск данных.

Анонимные Запсы

Инструмент sendAnonymousZap позволяет пользователям отправлять zaps, не раскрывая свою личность Nostr. Ключевые моменты об анонимных zaps:

  • Zap будет выглядеть так, как будто он пришел от анонимного пользователя в кошельке получателя.
  • Zap следует протоколу NIP-57, но без подписи отправителя.
  • Получатель по-прежнему может получить платеж и любое включенное в него сообщение.
  • Вы можете удалить профили (используя npub/hex pubkey), определенные события (используя note/nevent/hex ID) или заменяемые события (используя naddr)
  • Сервер генерирует Lightning-счет для оплаты, который вы можете скопировать в свой Lightning-кошелек.

Примеры:

"Send an anonymous zap of 100 sats to npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8" "Send 1000 sats anonymously to note1abcdef... with the comment 'Great post!'"

Сервер полностью проверяет сервисы LNURL в соответствии со спецификациями LNURL-pay (LUD-06) и Lightning Address (LUD-16), обеспечивая совместимость с различными реализациями кошельков.

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

  • Если время ожидания запроса истекло, попробуйте увеличить значение QUERY_TIMEOUT в исходном коде (в настоящее время 8 секунд)
  • Если данные не найдены, попробуйте указать другие реле, которые могут иметь данные.
  • Проверьте журналы MCP Клода для получения подробной информации об ошибках.

Реле по умолчанию

По умолчанию сервер использует следующие реле:

  • wss://relay.damus.io
  • wss://relay.nostr.band
  • wss://relay.primal.net
  • wss://nos.lol
  • wss://relay.current.fyi
  • wss://nostr.bitcoiner.social

Разработка

Чтобы изменить или расширить этот сервер:

  1. Отредактируйте соответствующий файл:
    • index.ts : Основной сервер и регистрация инструментов
    • note/note-tools.ts : Функциональность профиля и заметок ( Документация )
    • zap/zap-tools.ts : Функциональность, связанная с Zap ( Документация )
    • nips/nips-tools.ts : Функции для поиска NIP ( Документация )
    • utils/ : Общие служебные функции
      • constants.ts : Глобальные константы и конфигурации реле
      • conversion.ts : утилиты преобразования формата открытого ключа
      • formatting.ts : Помощники форматирования вывода
      • pool.ts : управление пулом подключений Nostr
      • ephemeral-relay.ts : Реле Nostr в памяти для тестирования
  2. Запустите npm run build для компиляции
  3. Перезапустите Claude для рабочего стола или курсора, чтобы изменения вступили в силу.

Тестирование

Мы реализовали комплексный набор тестов с использованием Jest для проверки как базовой функциональности, так и интеграции с протоколом Nostr:

# Run all tests npm test # Run a specific test file npm test -- __tests__/basic.test.ts # Run integration tests npm test -- __tests__/integration.test.ts

Тестовый набор включает в себя:

Тесты модулей

  • basic.test.ts — Тестирует простое форматирование профиля и обработку чеков ZAP.
  • profile-notes-simple.test.ts — Тестирует структуры данных профилей и примечаний
  • zap-tools-simple.test.ts — Тесты обработки zap и анонимной подготовки zap

Интеграционные тесты

  • integration.test.ts — Тестирует взаимодействие с эфемерным реле Nostr, включая:
    • Публикация профильных событий
    • Создание и извлечение текстовых заметок
    • Публикация квитанций ZAP
    • Фильтрация событий
  • websocket-integration.test.ts — тестирует связь WebSocket с реле Nostr:
    • Публикация событий через WebSocket
    • Подписка на события с фильтрами
    • Управление несколькими подписками
    • Закрытие подписки
    • Проверка того, что события с недействительными подписями отклоняются

Все интеграционные тесты используют нашу реализацию ephemeral-relay.ts — полнофункциональное реле Nostr в памяти, которое поддерживает протокол Nostr, позволяя осуществлять реальное криптографическое подписание и проверку событий без необходимости внешних сетевых подключений. Это обеспечивает надежный способ тестирования полного рабочего процесса Nostr в изолированной среде.

Более подробную информацию о тестовом наборе можно найти в файле tests /README.md .

Организация кодовой базы

Кодовая база организована в виде модулей:

  • Настройка основного сервера в index.ts
  • Специализированные функции в выделенных каталогах:
    • nips/ : функциональность поиска и кэширования NIP
    • note/ : Функциональность профиля и заметок
    • zap/ : Обработка Zap и анонимный Zap
  • Общие утилиты в каталоге utils/

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

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

hybrid server

The server is able to function both locally and remotely, depending on the configuration or use case.

Сервер протокола контекста модели, который позволяет специалистам LLM, таким как Клод, взаимодействовать с социальной сетью Nostr, позволяя извлекать профили пользователей, текстовые заметки и информацию о платежах ZAP.

  1. Функции
    1. Установка
      1. Подключение к Claude для рабочего стола
        1. Подключение к курсору
          1. Использование в Клоде
            1. Расширенное использование
              1. Ограничения
                1. Подробности реализации
                  1. Анонимные Запсы
                    1. Поиск неисправностей
                      1. Реле по умолчанию
                        1. Разработка
                          1. Тестирование
                            1. Тесты модулей
                            2. Интеграционные тесты
                          2. Организация кодовой базы

                            Related MCP Servers

                            • A
                              security
                              A
                              license
                              A
                              quality
                              A Model Context Protocol server that gives LLMs the ability to interact with Ethereum networks, manage wallets, query blockchain data, and execute smart contract operations through a standardized interface.
                              Last updated -
                              31
                              323
                              2
                              TypeScript
                              MIT License
                            • -
                              security
                              F
                              license
                              -
                              quality
                              A Model Context Protocol server that enables Claude and other LLMs to interact with Notion workspaces, providing capabilities like searching, retrieving, creating and updating pages, as well as managing databases.
                              Last updated -
                              194
                              2
                              TypeScript
                            • -
                              security
                              A
                              license
                              -
                              quality
                              A Model Context Protocol server enabling LLMs like Claude to interact with the Alpaca trading API through natural language for stock trading, checking positions, fetching market data, and managing your account.
                              Last updated -
                              Python
                              MIT License
                            • A
                              security
                              A
                              license
                              A
                              quality
                              An extensible Model Context Protocol server that provides standardized access to social platform data (currently Farcaster) and onchain data for LLMs.
                              Last updated -
                              5
                              11
                              TypeScript
                              MIT License
                              • Apple

                            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/AustinKelsay/nostr-mcp-server'

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