Skip to main content
Glama

Наш 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.

Related MCP server: Notion MCP Server

Установка

# 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 .

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

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

  • Настройка основного сервера в index.ts

  • Специализированные функции в выделенных каталогах:

    • nips/ : функциональность поиска и кэширования NIP

    • note/ : Функциональность профиля и заметок

    • zap/ : Обработка Zap и анонимный Zap

  • Общие утилиты в каталоге utils/

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

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

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