
Nostr MCP Server
Let AI models post notes and send Lightning zaps on the Nostr protocol.
Add to your client
Copy the config for your MCP client and paste it into its config file.
npx -y @smithery/cli install @AbdelStark/nostr-mcp --client claudePaste into ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"nostr-mcp-server": {
"command": "npx",
"args": [
"-y",
"@smithery/cli",
"install",
"@AbdelStark/nostr-mcp",
"--client",
"claude"
],
"env": {
"NOSTR_RELAYS": "wss://relay.damus.io,wss://relay.primal.net,wss://nos.lol",
"NOSTR_NSEC_KEY": "your_nsec_key_here"
}
}
}
}Step-by-step guides: Add to Claude Desktop · Add to Cursor · Add to Windsurf
Before you start
- Node.js 18+
- A Nostr private key (nsec) for the account that will post
- One or more Nostr relay URLs (e.g. wss://relay.damus.io)
About Nostr MCP Server
Nostr MCP Server bridges AI assistants and the Nostr protocol via the Model Context Protocol. Once connected to an MCP client such as Claude Desktop, an AI model can post notes to the Nostr network (broadcast to multiple configured relays) and send Lightning zaps to Nostr users identified by a NIP-05 address. The server is written in TypeScript using the Nostr Development Kit (NDK) and the MCP TypeScript SDK, and it can run in either stdio mode or SSE mode for real-time communication. Installation is available automatically through Smithery for Claude Desktop, or manually by cloning the repo, installing dependencies, and configuring a .env file with your relays and Nostr private key.
Tools & capabilities (2)
post_notePosts a new note to the Nostr network. Takes a `content` string and broadcasts it to the configured relays.
send_zapSends a Lightning zap to a Nostr user. Takes a `nip05Address` and an `amount` (in sats). Marked work-in-progress in the README.
What this server can do
Nostr MCP Server provides tools for these capabilities — tap one to see every MCP server that does the same:
When to use it
- Let an AI assistant publish updates or notes to Nostr
- Automate posting to a censorship-resistant social network from an LLM workflow
- Tip or zap Nostr creators with Lightning directly from an AI agent
- Experiment with MCP + decentralized social protocols
Security notes
Requires your Nostr private key (NOSTR_NSEC_KEY, an `nsec` secret) to sign and publish notes on your behalf. Keep this key secret — anyone with it controls your Nostr identity. Posting and zapping take real actions on the public Nostr network. Configure relays via NOSTR_RELAYS.
Nostr MCP Server FAQ
What transport does the server use?
It supports both stdio and SSE modes, selected via the SERVER_MODE environment variable. The Smithery install for Claude Desktop runs it over stdio; SSE mode listens on a configurable PORT (default 9000) for real-time communication.
What credentials does it need?
Your Nostr private key (NOSTR_NSEC_KEY, starting with `nsec`) so it can sign and publish notes as you, plus a comma-separated list of relay URLs in NOSTR_RELAYS.
Is the zap feature fully working?
The README marks send_zap (Lightning zaps) as work-in-progress, while post_note is the primary supported tool.
How do I install it for Claude Desktop?
Run `npx -y @smithery/cli install @AbdelStark/nostr-mcp --client claude` to install automatically via Smithery, or clone the repo and configure a .env file for manual setup.
Alternatives to Nostr MCP Server
Compare all alternatives →Connect your personal WhatsApp: search, read and send messages and media locally
Powerful Slack MCP with stdio/SSE/HTTP, DMs, group DMs and no-admin token auth
Full Telegram user-account MCP via MTProto: read chats, manage groups, send messages