Nostr Ops MCP Server
by llmops-proio.github.llmops-pro/nostr-ops-mcpv0.2.3
Nostr publishing, queries, and DMs for AI agents, with allowlists, rate limits, and an audit log.
context tax
queued
security
queued
cold start
queued
freshness
Slowing4mo ago
Install Nostr Ops MCP server
Install in Claude Code
claude mcp add nostr-ops -e NOSTR_RELAYS='<nostr-relays>' -e NOSTR_NIP46_URI='<nostr-nip46-uri>' -e NOSTR_PRIVATE_KEY='<nostr-private-key>' -- npx -y nostr-ops-mcpInstall in Cursor
{
"mcpServers": {
"nostr-ops": {
"command": "npx",
"args": [
"-y",
"nostr-ops-mcp"
],
"env": {
"NOSTR_RELAYS": "<nostr-relays>",
"NOSTR_NIP46_URI": "<nostr-nip46-uri>",
"NOSTR_PRIVATE_KEY": "<nostr-private-key>"
}
}
}
}Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (project).
Install in Claude Desktop
{
"mcpServers": {
"nostr-ops": {
"command": "npx",
"args": [
"-y",
"nostr-ops-mcp"
],
"env": {
"NOSTR_RELAYS": "<nostr-relays>",
"NOSTR_NIP46_URI": "<nostr-nip46-uri>",
"NOSTR_PRIVATE_KEY": "<nostr-private-key>"
}
}
}
}Settings → Developer → Edit Config (claude_desktop_config.json), then restart.
Install in VS Code
{
"servers": {
"nostr-ops": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"nostr-ops-mcp"
],
"env": {
"NOSTR_RELAYS": "<nostr-relays>",
"NOSTR_NIP46_URI": "<nostr-nip46-uri>",
"NOSTR_PRIVATE_KEY": "<nostr-private-key>"
}
}
}
}Add to .vscode/mcp.json in your workspace.
Install in Windsurf
{
"mcpServers": {
"nostr-ops": {
"command": "npx",
"args": [
"-y",
"nostr-ops-mcp"
],
"env": {
"NOSTR_RELAYS": "<nostr-relays>",
"NOSTR_NIP46_URI": "<nostr-nip46-uri>",
"NOSTR_PRIVATE_KEY": "<nostr-private-key>"
}
}
}
}Add to ~/.codeium/windsurf/mcp_config.json.
Configuration
| Variable | Required | Secret | Description |
|---|---|---|---|
| NOSTR_RELAYS | yes | — | Comma-separated wss:// relay URLs |
| NOSTR_NIP46_URI | — | yes | NIP-46 bunker URI (preferred signer; keeps the nsec off this machine) |
| NOSTR_PRIVATE_KEY | — | yes | nsec private key (alternative to NOSTR_NIP46_URI; read-only mode if neither is set) |
| NOSTR_ALLOWED_KINDS | — | — | Comma-separated event kinds the server may publish (required when a signer is configured) |
Freshness
Slowing — last maintenance signal 4mo ago. The newest of the signals below sets the band.
Last commit (default branch)
2026-06-15 · 4mo ago · GitHub
Latest release
no data · GitHub
Package published
no data · npm/PyPI
Registry entry updated
2026-06-12 · 4mo ago · official registry · v0.2.3
FAQ
›How do I install the Nostr Ops MCP server in Claude Code?
Run: claude mcp add nostr-ops -e NOSTR_RELAYS='<nostr-relays>' -e NOSTR_NIP46_URI='<nostr-nip46-uri>' -e NOSTR_PRIVATE_KEY='<nostr-private-key>' -- npx -y nostr-ops-mcp. For Cursor, VS Code, Claude Desktop and Windsurf, use the install tabs above.
›Does Nostr Ops require an API key?
Yes. It expects NOSTR_RELAYS, NOSTR_NIP46_URI, NOSTR_PRIVATE_KEY, of which 2 are secrets.
›Can I use Nostr Ops as a remote (hosted) MCP server?
No hosted endpoint is published; it runs locally over stdio.
›Is Nostr Ops in the official MCP registry?
Yes, as io.github.llmops-pro/nostr-ops-mcp.