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:
getProfile
: obtiene la información del perfil de un usuario mediante una clave públicagetKind1Notes
: obtiene notas de texto (tipo 1) creadas por un usuariogetLongFormNotes
: obtiene contenido de formato largo (tipo 30023) creado por un usuariogetReceivedZaps
: obtiene los zaps recibidos por un usuario, incluida la información de pago detalladagetSentZaps
: recupera los zaps enviados por un usuario, incluida la información de pago detalladagetAllZaps
: obtiene los zaps enviados y recibidos de un usuario, claramente etiquetados con la dirección y los totalessearchNips
: Búsqueda a través de las posibilidades de implementación de Nostr (NIP) con puntuación de relevanciasendAnonymousZap
: 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
Conectarse a Claude para escritorio
- Asegúrate de tener Claude for Desktop instalado y actualizado a la última versión.
- Configure Claude for Desktop editando o creando el archivo de configuración:Para macOS:Para Windows:CopyCopy
- Añade el servidor Nostr a tu configuración:Asegúrese de reemplazarCopy
/ABSOLUTE/PATH/TO/
con la ruta real a su proyecto. - Reinicie Claude para escritorio.
Conectando al cursor
- Asegúrate de tener Cursor instalado y actualizado a la última versión.
- Configure el Cursor creando o editando el archivo de configuración:Para macOS:Para Windows:CopyCopy
- Añade el servidor Nostr a tu configuración:Asegúrese de reemplazarCopy
/ABSOLUTE/PATH/TO/
con la ruta real a su proyecto. - 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:
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:
- Edite el archivo relevante en la raíz del proyecto:
index.ts
: Registro del servidor principal y de la herramientazap-tools.ts
: funcionalidad relacionada con Zap (getSentZaps, getReceivedZaps, getAllZaps)nips-tools.ts
: funcionalidad de búsqueda de NIP
- Ejecute
npm run build
para compilar - 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.
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.
- Features
- Installation
- Connecting to Claude for Desktop
- Connecting to Cursor
- Usage in Claude
- Advanced Usage
- Limitations
- Implementation Details
- Anonymous Zaps
- Troubleshooting
- Default Relays
- Development