Skip to main content
Glama
forgesworn

nostr-bray

by forgesworn

nostr-bray

MCP-сервер Nostr с поддержкой доверия для ИИ и людей. 235 инструментов в 27 группах. Не зависит от модели. Работает с Claude, ChatGPT, Gemini, Cursor, Windsurf или любым другим MCP-клиентом.

npm CI licence TypeScript

Быстрый старт

Установите глобально или запустите через npx:

npm install -g nostr-bray

Добавьте в конфигурацию вашего MCP-клиента:

{
  "mcpServers": {
    "nostr": {
      "command": "npx",
      "args": ["nostr-bray"],
      "env": {
        "NOSTR_SECRET_KEY": "nsec1...",
        "NOSTR_RELAYS": "wss://relay.damus.io,wss://nos.lol"
      }
    }
  }
}

Затем попросите ваш ИИ выполнить whoami, чтобы убедиться, что всё работает.

Для промышленного использования лучше использовать Heartwood или любой NIP-46 bunker (ваш ключ никогда не покидает устройство подписи):

{
  "mcpServers": {
    "nostr": {
      "command": "npx",
      "args": ["nostr-bray"],
      "env": {
        "BUNKER_URI": "bunker://...",
        "NOSTR_RELAYS": "wss://relay.damus.io,wss://nos.lol"
      }
    }
  }
}

Уровни аутентификации (от лучшего к худшему)

Уровень

Метод

Уязвимость ключа

Heartwood

Выделенное устройство подписи (BUNKER_URI)

Ключ никогда не покидает устройство подписи. Поддерживает деривацию nsec-tree, разрешения для каждого клиента и аттестации на уровне устройства.

Software bunker

Любой NIP-46 bunker (BUNKER_URI)

Ключ хранится в отдельном процессе. bray его не видит.

ncryptsec

Зашифрованный ключ NIP-49 (NOSTR_NCRYPTSEC)

Ключ зашифрован в покое, расшифровывается в памяти при запуске.

Key file

Путь к файлу (NOSTR_SECRET_KEY_FILE)

Ключ на диске, считывается один раз, переменная окружения удаляется.

Env var

Встроенный секрет (NOSTR_SECRET_KEY)

Ключ виден в окружении процесса. Используйте только для разработки.

Группы инструментов

Группа

Инструменты

Ключевые примеры

Identity

16

whoami, identity-derive-persona, identity-switch, identity-prove, nip05-lookup

Social

15

social-post, social-reply, social-feed, contacts-follow, social-notifications

Direct Messages

4

dm-send, dm-read, dm-conversation

Trust

22

trust-attest, trust-ring-prove, trust-spoken-challenge, trust-attest-chain

Dispatch

13

dispatch-send, dispatch-check, dispatch-reply, dispatch-capability-discover

Relay

13

relay-query, relay-set, relay-discover, cast-spell, relay-health

Moderation

16

label-create, list-mute, list-bookmark, list-followset-create, moderation-filter

Marketplace

16

marketplace-discover, marketplace-call, listing-create, listing-search

Safety

14

canary-session-create, canary-group-create, canary-duress-signal, safety-activate

Blossom

10

blossom-upload, blossom-mirror, blossom-verify, blossom-repair

Privacy

10

privacy-commit, privacy-prove-range, privacy-prove-age, privacy-publish-proof

Zap

9

zap-send, zap-balance, zap-make-invoice, zap-decode

Vault

9

vault-create, vault-encrypt, vault-share, vault-rotate

Workflow

7

trust-score, verify-person, identity-setup, relay-health, feed-discover

Signet

7

signet-badge, signet-vouch, signet-credentials, signet-challenge

Communities

5

community-create, community-feed, community-post, community-approve

Badges

4

badge-create, badge-award, badge-accept, badge-list

Groups (NIP-29)

4

group-info, group-chat, group-send, group-members

Articles

3

article-publish, article-read, article-list

Calendar

3

calendar-create, calendar-read, calendar-rsvp

Wiki

3

wiki-publish, wiki-read, wiki-list

Search

3

search-notes, search-profiles, hashtag-feed

Scheduling

4

post-schedule, post-queue-list, post-queue-cancel, publish-event

Community NIPs

2

nip-publish, nip-read

Utility

19

decode, encode-npub, nip44-encrypt, verify-event, tombstone

Handler

2

handler-publish, handler-discover

Catalog

2

search-actions, execute-action

Используйте search-actions для поиска инструментов по ключевым словам, затем execute-action для их запуска.

Dispatch: Сотрудничество ИИ с ИИ

Dispatch позволяет ИИ-агентам сотрудничать через зашифрованные личные сообщения Nostr. Любой MCP-совместимый клиент может отправлять структурированные задачи другим агентам и получать результаты обратно.

13 типов сообщений: send, check, reply, ack, status, cancel, refuse, failure, query, propose, capability-publish, capability-discover, capability-read.

Обнаружение возможностей NIP-89: Агенты публикуют свои возможности. Другие агенты обнаруживают их по темам и автоматически направляют задачи нужному исполнителю.

dispatch-send("alice", "think", "Analyse the trade-offs of NIP-44 vs NIP-04")
dispatch-check()                    → inbox with pending tasks
dispatch-reply(taskId, result)      → send results back encrypted

Все сообщения зашифрованы по NIP-44. Получатели определяются по имени, NIP-05, npub или hex-ключу.

Резолвер идентификаторов

Каждый инструмент, принимающий получателя, использует универсальное разрешение идентификаторов. Вам никогда не нужно искать hex-публичные ключи вручную.

Поддерживаемые форматы:

  • Имя -- "alice" (разрешается из ваших контактов Dispatch)

  • NIP-05 -- "alice@example.com" (HTTP-поиск)

  • npub -- "npub1abc..." (декодирование NIP-19)

  • Hex -- "a1b2c3..." (64-символьный ключ)

Отложенная публикация

Подписывайте события сейчас, публикуйте позже. События подписываются немедленно вашим текущим ключом, а затем удерживаются в очереди до запланированного времени.

post-schedule("Good morning!", "2026-04-01T08:00:00Z")
post-queue-list()          → view pending scheduled posts
post-queue-cancel(id)      → cancel before it publishes

Поддержка NIP

nostr-bray реализует или интегрирует следующие NIP:

NIP

Что это

NIP-01

События, подпись, протокол реле

NIP-02

Списки подписок

NIP-05

DNS-идентификация (поиск, проверка, подсказки реле)

NIP-09

Удаление событий

NIP-11

Информация о реле

NIP-17

Личные сообщения (gift wrap, по умолчанию)

NIP-19

Кодирование bech32 (npub, nsec, nprofile, nevent, naddr)

NIP-23

Длинные статьи (kind 30023)

NIP-29

Групповые чаты

NIP-32

Метки

NIP-40

Теги истечения срока

NIP-42

Аутентификация на реле

NIP-44

Зашифрованные полезные нагрузки v2

NIP-45

Подсчет событий

NIP-46

Nostr Connect (bunker)

NIP-49

Шифрование приватных ключей (ncryptsec)

NIP-50

Поиск

NIP-51

Списки (игнорирование, закрепление, наборы подписок, закладки)

NIP-52

Календарные события

NIP-54

Вики-страницы

NIP-57

Lightning zaps

NIP-58

Значки

NIP-65

Метаданные списка реле

NIP-72

Сообщества

NIP-78

Данные конкретных приложений

NIP-85

Рейтинги доверия

NIP-89

Рекомендуемые приложения (обнаружение возможностей dispatch)

NIP-96

HTTP-хранилище файлов (Blossom)

NIP-99

Классифицированные объявления

NIP-A7

Заклинания (kind 777 — выполнение сохраненных запросов)

NIP-VA

Проверяемые аттестации (kind 31000)

Конфигурация

Файл конфигурации (рекомендуется)

Создайте ~/.config/bray/config.json (или ~/.nostr/bray.json):

{
  "bunkerUriFile": "/Users/you/.nostr/bunker-uri",
  "relays": ["wss://relay.damus.io", "wss://nos.lol"],
  "trustMode": "annotate"
}

Секреты указываются через путь к файлу (bunkerUriFile, secretKeyFile, nwcUriFile), поэтому они никогда не появляются в самой конфигурации.

Порядок поиска: переменная окружения BRAY_CONFIG > $XDG_CONFIG_HOME/bray/config.json > ~/.nostr/bray.json.

Переменные окружения

Переменная

Описание

BRAY_CONFIG

Путь к файлу конфигурации

BUNKER_URI

URL NIP-46 bunker (самый безопасный)

BUNKER_URI_FILE

Путь к файлу с URI bunker

NOSTR_SECRET_KEY

nsec, hex или мнемоника BIP-39

NOSTR_SECRET_KEY_FILE

Путь к файлу секретного ключа

NOSTR_NCRYPTSEC

Зашифрованный ключ NIP-49

NOSTR_NCRYPTSEC_PASSWORD

Пароль для ncryptsec

NOSTR_RELAYS

URL реле через запятую

TOR_PROXY

SOCKS5h прокси для Tor

NIP04_ENABLED

Установите 1 для включения устаревших NIP-04 сообщений

TRANSPORT

stdio (по умолчанию) или http

PORT

Порт HTTP (по умолчанию 3000)

Все секретные переменные окружения удаляются из process.env сразу после парсинга.

CLI

npx nostr-bray whoami                    # show your npub
npx nostr-bray post "hello from bray!"   # publish a note
npx nostr-bray persona work              # derive a work persona
npx nostr-bray prove blind               # create a linkage proof
npx nostr-bray --help                    # see all commands

Документация

Для ИИ-ассистентов

См. llms.txt для краткого резюме, оптимизированного для контекстных окон ИИ, или llms-full.txt для полной документации инструментов с параметрами.

Часть набора инструментов ForgeSworn

ForgeSworn создает инструменты с открытым исходным кодом для криптографической идентификации, платежей и координации в Nostr.

Библиотека

Что делает

nsec-tree

Детерминированная деривация субидентификаторов

ring-sig

Кольцевые подписи SAG/LSAG на secp256k1

range-proof

Доказательства диапазона обязательств Педерсена

canary-kit

Голосовая проверка, устойчивая к принуждению

spoken-token

Человекочитаемые токены проверки

toll-booth

Платежное промежуточное ПО L402

geohash-kit

Инструментарий Geohash с покрытием полигонов

nostr-attestations

Проверяемые аттестации NIP-VA

dominion

Контроль доступа на основе эпох

nostr-veil

Сеть доверия с сохранением конфиденциальности

Лицензия

MIT

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/forgesworn/bray'

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