Nostr MCP Server

by AustinKelsay
Verified

local-only server

The server can only run on the client’s local machine because it depends on local resources.

Servidor Nostr MCP

Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona capacidades Nostr a LLM como Claude.

https://github.com/user-attachments/assets/1d2d47d0-c61b-44e2-85be-5985d2a81c64

Características

Este servidor implementa varias herramientas para interactuar con la red Nostr:

  1. getProfile : obtiene la información del perfil de un usuario mediante una clave pública
  2. getKind1Notes : obtiene notas de texto (tipo 1) creadas por un usuario
  3. getLongFormNotes : obtiene contenido de formato largo (tipo 30023) creado por un usuario
  4. getReceivedZaps : obtiene los zaps recibidos por un usuario, incluida la información de pago detallada
  5. getSentZaps : recupera los zaps enviados por un usuario, incluida la información de pago detallada
  6. getAllZaps : obtiene los zaps enviados y recibidos de un usuario, claramente etiquetados con la dirección y los totales
  7. searchNips : Búsqueda a través de las posibilidades de implementación de Nostr (NIP) con puntuación de relevancia
  8. sendAnonymousZap : prepara un zap anónimo a un perfil o evento, generando una factura relámpago para el pago

Todas las herramientas admiten tanto claves públicas hexadecimales como el formato npub, con una visualización fácil de usar de los identificadores Nostr.

Instalación

# Clone the repository git clone https://github.com/austinkelsay/nostr-mcp-server.git cd nostr-mcp-server # Install dependencies npm install # Build the project npm run build

Conectarse a Claude para escritorio

  1. Asegúrate de tener Claude for Desktop instalado y actualizado a la última versión.
  2. Configure Claude for Desktop editando o creando el archivo de configuración:Para macOS:
    vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
    Para Windows:
    notepad %AppData%\Claude\claude_desktop_config.json
  3. Añade el servidor Nostr a tu configuración:
    { "mcpServers": { "nostr": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/nostr-mcp-server/build/index.js" ] } } }
    Asegúrese de reemplazar /ABSOLUTE/PATH/TO/ con la ruta real a su proyecto.
  4. Reinicie Claude para escritorio.

Conectando al cursor

  1. Asegúrate de tener Cursor instalado y actualizado a la última versión.
  2. Configure el Cursor creando o editando el archivo de configuración:Para macOS:
    vim ~/.cursor/config.json
    Para Windows:
    notepad %USERPROFILE%\.cursor\config.json
  3. Añade el servidor Nostr a tu configuración:
    { "mcpServers": { "nostr": { "command": "node", "args": [ "/ABSOLUTE/PATH/TO/nostr-mcp-server/build/index.js" ] } } }
    Asegúrese de reemplazar /ABSOLUTE/PATH/TO/ con la ruta real a su proyecto.
  4. Reiniciar cursor.

Uso en Claude

Una vez configurado, puedes pedirle a Claude que use las herramientas Nostr realizando solicitudes como:

  • Muéstrame la información del perfil de npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8
  • ¿Cuáles son las publicaciones recientes de npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8?
  • Muéstrame los artículos extensos de npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8
  • "¿Cuántos zaps ha recibido npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8?"
  • "Muéstrame los zaps enviados por npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8"
  • "Muéstrame todos los zaps (enviados y recibidos) para npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8"
  • "Buscar NIP sobre zaps"
  • "¿Qué NIP están relacionados con el contenido de formato largo?"
  • "Muéstrame el NIP-23 con el contenido completo"
  • Envía un zap anónimo de 100 sats a npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8
  • Envía 1000 sats a note1abcdef... con un comentario que diga "¡Excelente publicación!".

El servidor gestiona automáticamente la conversión entre los formatos npub y hexadecimal, por lo que puede usar cualquiera de los dos en sus consultas. Los resultados se muestran con identificadores npub fáciles de usar.

Uso avanzado

Puede especificar relés personalizados para cualquier consulta:

  • Muéstrame el perfil de npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 usando el relé wss://relay.damus.io

También puedes especificar el número de notas o zaps a buscar:

  • Muéstrame las últimas 20 notas de npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8

Para los zaps anónimos, puedes incluir comentarios opcionales y especificar el tipo de destino:

  • Envía un zap anónimo de 500 sats a note1abcdef... con el comentario "¡Excelente publicación!".
  • Envía 1000 sats anónimamente a nevent1qys... usando el relé wss://relay.damus.io.

Para las consultas zap, puedes habilitar validación y depuración adicionales:

  • "Muéstrame todos los zaps de npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8 con validación y depuración habilitadas"

Para las búsquedas NIP, puede controlar la cantidad de resultados e incluir contenido completo:

  • Buscar NIPs sobre zaps con contenido completo
  • Muéstrame los 5 mejores NIP sobre relés.
  • ¿Qué NIP están relacionados con el cifrado? Muéstrame 15 resultados.

Limitaciones

  • El servidor tiene un tiempo de espera predeterminado de 8 segundos para las consultas para evitar que se cuelguen.
  • Solo se admiten claves públicas en formato hexadecimal o npub
  • Solo se utiliza un subconjunto de relés de forma predeterminada

Detalles de implementación

  • Compatibilidad nativa con el formato npub mediante codificación/decodificación NIP-19
  • Detección de recibos de zap conforme con NIP-57 con reconocimiento de dirección (enviado/recibido/propio)
  • Análisis avanzado de facturas de Bolt11 con extracción del importe del pago
  • Sistema de almacenamiento en caché inteligente para un mejor rendimiento con grandes volúmenes de zaps
  • Cálculos de sats totales para zaps enviados/recibidos/automáticos con saldo neto
  • Validación NIP-57 opcional para garantizar la integridad del recibo de zap
  • Soporte anónimo de Zap con generación de facturas Lightning
  • Soporte para zapping de perfiles, eventos (ID de notas) y eventos reemplazables (naddr)
  • Cada llamada de herramienta crea una nueva conexión con los relés, lo que garantiza una recuperación confiable de datos.

Zaps anónimos

La herramienta sendAnonymousZap permite a los usuarios enviar zaps sin revelar su identidad de Nostr. Puntos clave sobre los zaps anónimos:

  • El zap parecerá provenir de un usuario anónimo en la billetera del destinatario.
  • El zap sigue el protocolo NIP-57 pero sin firma del remitente
  • El destinatario aún puede recibir el pago y cualquier mensaje incluido.
  • Puede cambiar perfiles (usando npub/hex pubkey), eventos específicos (usando note/nevent/hex ID) o eventos reemplazables (usando naddr)
  • El servidor genera una factura Lightning para el pago que puedes copiar en tu billetera Lightning

Ejemplos:

"Send an anonymous zap of 100 sats to npub1qny3tkh0acurzla8x3zy4nhrjz5zd8ne6dvrjehx9n9hr3lnj08qwuzwc8" "Send 1000 sats anonymously to note1abcdef... with the comment 'Great post!'"

El servidor valida completamente los servicios LNURL de acuerdo con las especificaciones LNURL-pay (LUD-06) y Lightning Address (LUD-16), lo que garantiza la compatibilidad con varias implementaciones de billeteras.

Solución de problemas

  • Si las consultas agotan el tiempo de espera, intente aumentar el valor QUERY_TIMEOUT en el código fuente (actualmente 8 segundos)
  • Si no se encuentran datos, intente especificar diferentes relés que puedan tener los datos
  • Consulte los registros MCP de Claude para obtener información detallada sobre errores

Relés predeterminados

El servidor utiliza los siguientes relés de forma predeterminada:

  • wss://relay.damus.io
  • wss://relay.nostr.band
  • wss://relay.primal.net
  • wss://nos.lol
  • wss://relay.current.fyi
  • wss://nostr.bitcoiner.social

Desarrollo

Para modificar o ampliar este servidor:

  1. Edite el archivo relevante en la raíz del proyecto:
    • index.ts : Registro del servidor principal y de la herramienta
    • zap-tools.ts : funcionalidad relacionada con Zap (getSentZaps, getReceivedZaps, getAllZaps)
    • nips-tools.ts : funcionalidad de búsqueda de NIP
  2. Ejecute npm run build para compilar
  3. Reinicie Claude for Desktop o Cursor para que se apliquen los cambios.

El código base está organizado en módulos:

  • La configuración del servidor principal y las herramientas para perfiles y notas se encuentran en index.ts
  • La funcionalidad de Zap está encapsulada en zap-tools.ts
  • La búsqueda de NIP se implementa en nips-tools.ts

Esta separación hace que el código base sea más fácil de mantener y ampliar con nuevas funciones.

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Un servidor de Protocolo de Contexto Modelo que permite a los LLM como Claude interactuar con la red social Nostr, lo que permite obtener perfiles de usuario, notas de texto e información de pago de zap.

  1. Features
    1. Installation
      1. Connecting to Claude for Desktop
        1. Connecting to Cursor
          1. Usage in Claude
            1. Advanced Usage
              1. Limitations
                1. Implementation Details
                  1. Anonymous Zaps
                    1. Troubleshooting
                      1. Default Relays
                        1. Development
                          ID: y0jkijddmr