Nostr Signer

Approve Nostr signatures with your own browser signer without exposing a private key.

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
96%
Integridad del esquema
76%
Calidad de los nombres
85%
Riesgo de envenenamiento
100%
Coincidencia de permisos
90%
Cumplimiento del protocolo
100%

Hallazgos (8)

  • LOWTool 'get_setup_url' description lacks action verben get_setup_url
  • LOWTool 'get_public_key' description lacks action verben get_public_key
  • LOWTool 'get_grynvault_account_dashboard' name length outside 3-30 rangeen get_grynvault_account_dashboard
  • LOWTool 'approve_grynvault_browser_handoff' name length outside 3-30 rangeen approve_grynvault_browser_handoff
  • LOWTool 'prepare_grynvault_supporter_invoice' name length outside 3-30 rangeen prepare_grynvault_supporter_invoice
  • LOWTool 'create_grynvault_supporter_invoice' name length outside 3-30 rangeen create_grynvault_supporter_invoice
  • LOWTool 'prepare_grynvault_nip05_invoice' name length outside 3-30 rangeen prepare_grynvault_nip05_invoice
  • LOWTool 'get_setup_url' suggests web access but openWorldHint=falseen get_setup_url

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~2,268Tokens (definiciones de herramientas)
~854 BTamaño de respuesta típico
Impacto moderado en la atención (1.77% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "nostr-signer": {
      "url": "https://signer.frontiercrown.com/mcp"
    }
  }
}

Puntos de conexión remotos

https://signer.frontiercrown.com/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (17)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢get_setup_url

Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_signer_status

Check whether a user-controlled NIP-07 or NIP-46 signer is connected.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡begin_nostrconnect_pairing(relays)

Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "relays": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 8
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪connect_bunker(connection_uri)

Connect a bunker:// URI only when the user knowingly supplied it. Prefer the local setup page so connection secrets are not placed in chat. Never accepts an nsec.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "connection_uri": {
      "type": "string",
      "maxLength": 8192
    }
  },
  "required": [
    "connection_uri"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_public_key

Return the public key exposed by the currently paired signer.

Esquema de entrada

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢prepare_note(content)

Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "content": {
      "type": "string",
      "minLength": 1,
      "maxLength": 65536
    }
  },
  "required": [
    "content"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢prepare_event(event)

Validate and bind an exact unsigned Nostr event for user review. This does not sign or publish. Show the user every field before requesting a signature.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "event": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "integer",
          "minimum": 0,
          "maximum": 65535
        },
        "created_at": {
          "type": "integer",
          "minimum": 0
        },
        "tags": {
          "type": "array",
          "items": {
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 4096
            },
            "minItems": 1,
            "maxItems": 16
          },
          "maxItems": 128
        },
        "content": {
          "type": "string",
          "maxLength": 65536
        }
      },
      "required": [
        "kind",
        "created_at",
        "tags",
        "content"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "event"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
⚪sign_event(intent_id, confirm_signature)

Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "intent_id": {
      "type": "string",
      "format": "uuid"
    },
    "confirm_signature": {
      "type": "boolean",
      "const": true,
      "description": "Must be true only after the user explicitly approved this action."
    }
  },
  "required": [
    "intent_id",
    "confirm_signature"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴publish_event(intent_id, confirm_publish, relays)

Publish a previously verified signed event to configured relays. Requires separate explicit user intent.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "intent_id": {
      "type": "string",
      "format": "uuid"
    },
    "confirm_publish": {
      "type": "boolean",
      "const": true,
      "description": "Must be true only after the user explicitly approved this action."
    },
    "relays": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 8
    }
  },
  "required": [
    "intent_id",
    "confirm_publish"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢query_events(relays, authors, kinds, limit, since)

Read a bounded set of verified public profile or note events from selected relays.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "relays": {
      "type": "array",
      "items": {
        "type": "string",
        "maxLength": 500
      },
      "maxItems": 8
    },
    "authors": {
      "type": "array",
      "items": {
        "type": "string",
        "pattern": "^[0-9a-f]{64}$"
      },
      "maxItems": 20
    },
    "kinds": {
      "type": "array",
      "items": {
        "type": "number",
        "enum": [
          0,
          1
        ]
      },
      "maxItems": 2
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50
    },
    "since": {
      "type": "integer",
      "minimum": 0
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🔴disconnect_signer(confirm_disconnect)

Forget the in-memory signer session and all prepared events.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "confirm_disconnect": {
      "type": "boolean",
      "const": true,
      "description": "Must be true only after the user explicitly approved this action."
    }
  },
  "required": [
    "confirm_disconnect"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_grynvault_account_dashboard(confirm_account_access)

Read the connected Nostr identity's Grynvault supporter, payment, and NIP-05 dashboard using a short-lived signed authorization. This does not create an invoice or change settlement.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "confirm_account_access": {
      "type": "boolean",
      "const": true,
      "description": "Must be true only after the user approved signing a read-only Grynvault account request."
    }
  },
  "required": [
    "confirm_account_access"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡approve_grynvault_browser_handoff(code, confirm_browser_sign_in)

Sign a short-lived, read-only Grynvault account handoff code so the browser tab that created it can receive its own dashboard. This does not create an invoice, publish a Nostr event, change settlement, or grant wallet custody.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "minLength": 12,
      "maxLength": 20,
      "description": "The one-time code displayed by the Grynvault portal, for example ABCD-EFGH-JKLM."
    },
    "confirm_browser_sign_in": {
      "type": "boolean",
      "const": true,
      "description": "Must be true only after the user asked to sign the displayed Grynvault browser code."
    }
  },
  "required": [
    "code",
    "confirm_browser_sign_in"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢prepare_grynvault_supporter_invoice(plan, donation_sats)

Prepare an exact, short-lived signed-authorization request for a one-time donation of 21 to 1,000,000 sats or the fixed 2,100-sat 30-day membership. Does not sign, create, pay, or settle an invoice.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "plan": {
      "type": "string",
      "enum": [
        "basic_once",
        "member_monthly"
      ]
    },
    "donation_sats": {
      "type": "integer",
      "minimum": 21,
      "maximum": 1000000
    }
  },
  "required": [
    "plan"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_grynvault_supporter_invoice(operation_id, confirm_invoice_creation)

After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never treats a redirect as settlement.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "operation_id": {
      "type": "string",
      "format": "uuid"
    },
    "confirm_invoice_creation": {
      "type": "boolean",
      "const": true,
      "description": "Must be true only after the user explicitly approved this action."
    }
  },
  "required": [
    "operation_id",
    "confirm_invoice_creation"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢prepare_grynvault_nip05_invoice(name)

Check and normalize a [email protected] identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, or settle an invoice.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 32,
      "pattern": "^[A-Za-z0-9_-]+$"
    }
  },
  "required": [
    "name"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_grynvault_nip05_invoice(operation_id, confirm_invoice_creation)

After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat [email protected] invoice. Does not pay, settle, activate, or prove identity.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "operation_id": {
      "type": "string",
      "format": "uuid"
    },
    "confirm_invoice_creation": {
      "type": "boolean",
      "const": true,
      "description": "Must be true only after the user explicitly approved this action."
    }
  },
  "required": [
    "operation_id",
    "confirm_invoice_creation"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada17 herramientas
verificadoversión no registrada17 herramientas
verificadoversión no registrada17 herramientas