
How to add Nostr MCP Server to Windsurf
Let AI models post notes and send Lightning zaps on the Nostr protocol. Paste the config into ~/.codeium/windsurf/mcp_config.json and restart Windsurf.
Last updated June 14, 2026 · 37★ · stdio · apikey
Windsurf config for Nostr MCP Server
npx -y @smithery/cli install @AbdelStark/nostr-mcp --client claude{
"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"
}
}
}
}Setup steps
- 1Open Windsurf → Cascade → the hammer/MCP icon → Configure (or edit ~/.codeium/windsurf/mcp_config.json).
- 2Paste the Nostr MCP Server config below.
- 3Fill in placeholder secrets, then save.
- 4Click Refresh in the MCP panel.
- 5Nostr MCP Server's tools become available to Cascade.
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)
What Nostr MCP Server can do in Windsurf
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.
Security
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 + Windsurf FAQ
Where is the Windsurf config file?
Windsurf reads MCP servers from ~/.codeium/windsurf/mcp_config.json. Paste the Nostr MCP Server config there under the "mcpServers" key and restart the client.
Is Nostr MCP Server safe to use with Windsurf?
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.
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.