MCP HubMCP Hub
AbdelStark

nostr-mcp

by: AbdelStark

A Nostr MCP server that allows to interact with Nostr, enabling posting notes, and more.

25created 29/01/2025
Visit
Nostr
Decentralized

πŸ“Œ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

  1. Clone the repository:

    git clone https://github.com/AbdelStark/nostr-mcp
    cd nostr-mcp
    
  2. Install dependencies:

    npm install
    
  3. 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

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. 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