nostr-mcp
by: AbdelStark
A Nostr MCP server that allows to interact with Nostr, enabling posting notes, and more.
πOverview
Purpose: To provide a Model Context Protocol (MCP) server that allows AI models to interact with the Nostr network, facilitating censorship-resistant communication.
Overview: The Nostr MCP Server serves as a bridge for AI models to post notes and engage with users on the Nostr platform, emphasizing the importance of free speech and censorship resistance in AI communications.
Key Features:
-
Post Notes to Nostr Network: Enables the posting of user-generated content to the Nostr platform, empowering creators and users to share their insights freely.
-
Connect to Multiple Relays: Supports connections to various Nostr relays to ensure a robust and flexible network interaction.
-
MCP-Compliant API: Provides an API aligned with the Model Context Protocol for seamless integration with AI systems.
-
Send Lightning Zaps: Allows users to send small payments to Nostr users (currently a work in progress), enhancing user interactivity through incentivization.
-
Server-Sent Events (SSE) Support: Facilitates real-time communication, enabling efficient updates and user notifications as events occur on the network.
π Nostr MCP Server
A Model Context Protocol (MCP) server that enables AI models to interact with Nostr, allowing them to post notes and interact with the freedom of speech protocol.
π Features
- π Post notes to the Nostr network
- π Connect to multiple relays
- π€ MCP-compliant API for AI integration
- πΈ Send Lightning zaps to Nostr users (WIP)
- π‘ Server-Sent Events (SSE) support for real-time communication
π·ββοΈ TODOs
- Add support for multiple simultaneous connections
- Implement stdin transport mode (configurable via environment variable)
π Prerequisites
- Node.js 18+
π οΈ Installation
Manual Installation
-
Clone the repository:
git clone https://github.com/AbdelStark/nostr-mcp cd nostr-mcp
-
Install dependencies:
npm install
-
Create a
.env
file:# Log level (debug, info, warn, error) LOG_LEVEL=debug # Node environment (development, production) NODE_ENV=development # List of Nostr relays to connect to NOSTR_RELAYS=wss://relay.damus.io,wss://relay.primal.net,wss://nos.lol # Your Nostr private key (starts with nsec) NOSTR_NSEC_KEY=your_nsec_key_here # Server mode (stdio or sse) SERVER_MODE=sse # Port for SSE mode PORT=9000
π¦ Usage
Starting the Server
# Development mode with hot reload
npm run dev
# Production mode
npm start
Available Tools
post_note
Posts a new note to the Nostr network.
Example input:
{
"content": "Hello from Nostr! π"
}
send_zap
Sends a Lightning zap to a Nostr user.
Example input:
{
"nip05Address": "user@domain.com",
"amount": 1000
}
π€ Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
π License
This project is licensed under the MIT License - see the LICENSE
file for details.
π¬ Contact
Feel free to follow me if you'd like, using my public key:
npub1hr6v96g0phtxwys4x0tm3khawuuykz6s28uzwtj5j0zc7lunu99snw2e29