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:
- Añade el servidor Nostr a tu configuración:Asegúrese de reemplazar
/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:
- Añade el servidor Nostr a tu configuración:Asegúrese de reemplazar
/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.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
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.
- Características
- Instalación
- Conectarse a Claude para escritorio
- Conectando al cursor
- Uso en Claude
- Uso avanzado
- Limitaciones
- Detalles de implementación
- Zaps anónimos
- Solución de problemas
- Relés predeterminados
- Desarrollo
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that gives LLMs the ability to interact with Ethereum networks, manage wallets, query blockchain data, and execute smart contract operations through a standardized interface.Last updated -313232TypeScriptMIT License
- -securityFlicense-qualityA Model Context Protocol server that enables Claude and other LLMs to interact with Notion workspaces, providing capabilities like searching, retrieving, creating and updating pages, as well as managing databases.Last updated -1942TypeScript
- -securityAlicense-qualityA Model Context Protocol server enabling LLMs like Claude to interact with the Alpaca trading API through natural language for stock trading, checking positions, fetching market data, and managing your account.Last updated -PythonMIT License
- AsecurityAlicenseAqualityAn extensible Model Context Protocol server that provides standardized access to social platform data (currently Farcaster) and onchain data for LLMs.Last updated -511TypeScriptMIT License