Nostr Tools for AI Agents
nostr-mcp-server
A Nostr MCP (Model Context Protocol) server with NIP-46 remote signing support. Private keys never need to touch the AI context window.
Live Endpoint
Connect directly without running locally:
https://nostr.jorgenclaw.ai/mcpTransport: Streamable HTTP (MCP spec 2025-03-26) — compatible with Claude Desktop, Cursor, Glama, Smithery, and any MCP client.
Legacy SSE endpoint (backward compat): https://nostr.jorgenclaw.ai/sse
Related MCP server: nostr-bray
NIP-05 Identity Service
Get a yourname@jorgenclaw.ai verified Nostr identity — registered by an AI agent over Lightning.
How to register:
Open any Nostr client (Amethyst, Primal, Damus, etc.)
DM this npub:
npub16pg5zadrrhseg2qjt9lwfcl50zcc8alnt7mnaend3j04wjz4gnjqn6efzcSend the message:
register yournamePay the Lightning invoice that arrives in reply (1,000 sats)
Done —
yourname@jorgenclaw.airesolves immediately on all Nostr clients
Uses NIP-17 gift-wrapped DMs. Works with all modern Nostr clients.
Features
NIP-46 bunker mode — Set
NOSTR_BUNKER_URIonce, all signing routes through your bunkerDirect key mode — Pass
privateKeyper-tool call (backwards compatible)23 tools — Notes, profiles, social actions, DMs (NIP-04/44), relay lists, zaps, fetch
MCP native — Works with any MCP-compatible client
Quick Start
npm install
npm run buildDirect key mode (no bunker)
node dist/index.jsTools require privateKey parameter on each signing call.
Bunker mode (recommended)
NOSTR_BUNKER_URI="bunker://<pubkey>?relay=wss://relay.example.com&secret=abc" node dist/index.jsAll signing tools use the bunker. privateKey parameter becomes optional.
Tools
Tool | Description |
| Create, sign, and publish a text note |
| Create unsigned text note |
| Sign a note event |
| Publish signed note to relays |
| Create unsigned event of any kind |
| Sign any unsigned event |
| Publish signed event to relays |
| Create Nostr profile (kind 0) |
| Update existing profile |
| Follow a pubkey |
| Unfollow a pubkey |
| React to event (kind 7) |
| Repost event (kind 6) |
| Delete events (kind 5) |
| Reply with NIP-10 threading |
| NIP-04 encryption |
| Send NIP-04 DM |
| NIP-44 encryption |
| Send NIP-44 DM |
| Publish relay list (NIP-65) |
| Check signing mode and pubkey |
| Fetch a Nostr profile |
| Fetch events from relays |
NIP-46 Bunker URI
Format: bunker://<bunker-hex-pubkey>?relay=wss://relay.com&secret=optional
Compatible with: nsecbunker, Amber, any NIP-46 signer.
Also Available: Sovereign MCP (Paid)
For agents that need verifiable signed actions with a Lightning-gated audit trail:
https://mcp.jorgenclaw.ai/mcp9 tools, sats per call, LCS-1 action receipts. No signup.
Dependencies
nostr-tools— Nostr protocol library (signing, encryption, NIP-46)@modelcontextprotocol/sdk— MCP server frameworkws— WebSocket for Node.js relay connectionszod— Input validation
License
MIT
Available Tools
23 toolscreateNostrEventB
Create an unsigned Nostr event of any kind
Inputs: kind (required), content (required), tags.
createNoteC
Create an unsigned kind 1 text note
Inputs: content (required), tags.
createProfileC
Create a new Nostr profile (kind 0)
Inputs: name, about, picture, nip05, +5 more.
decryptNip04B
Decrypt NIP-04 ciphertext
Inputs: ciphertext (required), senderPubkey (required), privateKey.
decryptNip44B
Decrypt NIP-44 ciphertext
Inputs: ciphertext (required), senderPubkey (required), privateKey.
deleteEventB
Delete events (kind 5)
Inputs: eventIds (required), reason, privateKey, relays.
encryptNip04C
Encrypt text with NIP-04 (legacy)
Inputs: plaintext (required), recipientPubkey (required), privateKey.
encryptNip44B
Encrypt text with NIP-44
Inputs: plaintext (required), recipientPubkey (required), privateKey.
followA
Follow a pubkey (updates kind 3 contact list)
Inputs: pubkeyToFollow (required), privateKey, relays.
getSignerInfoA
Returns current signing configuration and pubkey
Inputs: no named parameters.
postNoteB
Create, sign, and publish a text note (all-in-one)
Inputs: content (required), tags, privateKey, relays.
publishNostrEventB
Publish a signed event to relays
Inputs: signedEvent (required), relays.
publishNoteC
Publish a signed note to relays
Inputs: signedEvent (required), relays.
reactToEventC
React to an event (kind 7)
Inputs: eventId (required), eventPubkey (required), reaction, privateKey, +1 more.
replyToEventC
Reply to an event with NIP-10 threading
Inputs: eventId (required), eventPubkey (required), content (required), rootEventId, +2 more.
repostEventC
Repost an event (kind 6)
Inputs: eventId (required), eventPubkey (required), relayUrl, privateKey, +1 more.
sendDmNip04C
Send a NIP-04 direct message
Inputs: content (required), recipientPubkey (required), privateKey, relays.
sendDmNip44C
Send a NIP-44 direct message
Inputs: content (required), recipientPubkey (required), privateKey, relays.
setRelayListC
Publish a relay list (NIP-65 kind 10002)
Inputs: readRelays, writeRelays, readWriteRelays, privateKey, +1 more.
signNostrEventC
Sign any unsigned Nostr event
Inputs: unsignedEvent (required), privateKey.
signNoteC
Sign a note event
Inputs: unsignedEvent (required), privateKey.
unfollowB
Unfollow a pubkey
Inputs: pubkeyToFollow (required), privateKey, relays.
updateProfileA
Update an existing Nostr profile (merges with current)
Inputs: name, about, picture, nip05, +5 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 23 tools
Many tools overlap conceptually: e.g., 'createNostrEvent' vs 'createNote', 'postNote' vs 'createNote'+'signNote'+'publishNote', and 'publishNostrEvent' vs 'publishNote'. The distinction between generic and specific tools is unclear, causing potential confusion for agents.
All names use camelCase, but patterns are mixed: some are verb+object ('createNote'), others verb+protocol ('decryptNip04'), and some use prepositions ('reactToEvent', 'replyToEvent'). While readable, the inconsistency in verb choice and structure reduces predictability.
With 23 tools, the server covers many Nostr operations. While slightly high, most tools have distinct roles in sending, receiving, and managing events. A few could be merged (like generic vs specific event creation), but overall the count is reasonable for a comprehensive Nostr toolset.
The server focuses exclusively on writing and event creation operations (create, sign, publish, encrypt). There are no tools for reading or querying events (e.g., subscribe, fetch filters), which is a major gap for an agent to usefully interact with Nostr. The set is severely one-sided.
Maintenance
Related MCP Connectors
Agent registry with Nostr identity, reputation, escrow, observability, and Lightning payments.
13 privacy-first network, auth & web tools for AI agents — no API key, 60 req/min free.
44 tools for AI agents: Trends, SERP, SEO audits, screenshots, weather, FX, whois, RSS.
54 AI agent tools: OSINT, intel feeds, DeFi, crypto, weather, DNS, proxies. x402 micropayments.
Related MCP Servers
- AlicenseAqualityDmaintenance9 tools, Lightning-gated. Pay per call. For agents that need verifiable signed actions with an audit trail. Nostr event signing via daemon Publish events to relays Create Lightning invoices Action receipts — signed proof of agent actions Identity attestation914 npmMIT
- AlicenseNot gradedqualityBmaintenanceTrust-aware Nostr MCP server. 236 tools for identity, social, DMs, trust scoring, AI-to-AI dispatch, Lightning payments, privacy proofs, and encrypted vaults. NIP-46 bunker auth; keys never leave the signing device.1,549 npm1MIT
- AlicenseAqualityDmaintenancePersistent memory and payment safety for AI agents on Lightning. Enables agents to remember purchases, track vendor reputations, enforce budgets, and share trust signals via Nostr.229MIT
- AlicenseAqualityDmaintenanceMCP server exposing a Lightning wallet to LLM agents over Nostr Wallet Connect (NIP-47): balance, invoices, LN address/LNURL payments, batch pay, and keysend. All spend tools are wrapped in a defense-in-depth safety stack — budget caps, allowlist, two-step confirmation, audit log.1391 npmMIT