{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_rqn4m6yrrf9m","handle":"nostr-signer","url":"https://wellknown.network/agents/nostr-signer","links":{"self":"https://wellknown.network/agents/nostr-signer/record.json","html":"https://wellknown.network/agents/nostr-signer","markdown":"https://wellknown.network/agents/nostr-signer/record.md","api":"https://wellknown.network/api/v1/agents/nostr-signer","status":"https://wellknown.network/api/v1/agents/nostr-signer/status","claim":"https://wellknown.network/agents/nostr-signer/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/nostr-signer/claim.json","badge":"https://wellknown.network/agents/nostr-signer/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/nostr-signer/history","tools":"https://wellknown.network/api/v1/agents/nostr-signer/tools"},"ard":{"identifier":"urn:air:signer.frontiercrown.com:server:nostr-signer","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Nostr Signer","summary":"Approve Nostr signatures with your own browser signer without exposing a private key.","description":"Approve Nostr signatures with your own browser signer without exposing a private key.","publisher":{"name":"com.frontiercrown.signer","url":null},"homepage":null,"repository":"https://github.com/hudhaifahz/nostr-signer-chatgpt","version":"0.4.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://signer.frontiercrown.com/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-09-11T05:59:17.916669Z","publishedAt":"2026-09-11T05:59:17.916669Z","registryName":"com.frontiercrown.signer/nostr-signer"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","repoUrl":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"security.identity","name":"Identity & Access","confidence":1,"provenance":"derived"},{"slug":"infra.browser-automation","name":"Browser Automation","confidence":0.911,"provenance":"derived"},{"slug":"analytics.reporting","name":"Reporting & Dashboards","confidence":0.54,"provenance":"derived"},{"slug":"documents.invoice-processing","name":"Invoice Processing","confidence":0.51,"provenance":"derived"},{"slug":"commerce.payments","name":"Payments","confidence":0.51,"provenance":"derived"},{"slug":"security.secrets","name":"Secrets Management","confidence":0.51,"provenance":"derived"}],"categories":["analytics","commerce","documents","infra","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 6h ago.","lastOkAt":"2026-10-12T23:27:44.161Z","lastProbedAt":"2026-10-12T23:27:44.161Z","statusComputedAt":"2026-10-12T23:28:42.607Z","reliability30d":{"probes":111,"successRate":1,"p50Ms":161,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":110,"ok":110,"authBoundaryOk":0,"serviceOk":110,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-12T23:27:44.161Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":173,"error":null,"detail":{"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"toolCount":17,"toolsHash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","serverName":"nostr-signer-chatgpt","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T17:34:56.759Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":153,"error":null,"detail":{"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"toolCount":17,"toolsHash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","serverName":"nostr-signer-chatgpt","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T11:23:24.237Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":174,"error":null,"detail":{"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"toolCount":17,"toolsHash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","serverName":"nostr-signer-chatgpt","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-12T04:28:12.476Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":150,"error":null,"detail":{"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"toolCount":17,"toolsHash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","serverName":"nostr-signer-chatgpt","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T22:22:08.139Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":151,"error":null,"detail":{"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"toolCount":17,"toolsHash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","serverName":"nostr-signer-chatgpt","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T15:23:29.424Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":151,"error":null,"detail":{"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"toolCount":17,"toolsHash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","serverName":"nostr-signer-chatgpt","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T09:26:23.311Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":154,"error":null,"detail":{"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"toolCount":17,"toolsHash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","serverName":"nostr-signer-chatgpt","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-11T02:22:01.163Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":150,"error":null,"detail":{"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"toolCount":17,"toolsHash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","serverName":"nostr-signer-chatgpt","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T19:25:54.378Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":151,"error":null,"detail":{"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"toolCount":17,"toolsHash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","serverName":"nostr-signer-chatgpt","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-10T12:29:16.410Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":156,"error":null,"detail":{"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"toolCount":17,"toolsHash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","serverName":"nostr-signer-chatgpt","capabilities":["tools"],"serverVersion":"0.4.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer."},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected."},{"name":"begin_nostrconnect_pairing","description":"Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec."},{"name":"connect_bunker","description":"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 nse"},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer."},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish."},{"name":"prepare_event","description":"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."},{"name":"sign_event","description":"Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes."},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent."},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays."},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events."},{"name":"get_grynvault_account_dashboard","description":"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"},{"name":"approve_grynvault_browser_handoff","description":"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, "},{"name":"prepare_grynvault_supporter_invoice","description":"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 si"},{"name":"create_grynvault_supporter_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending Grynvault supporter invoice. Does not pay it and never"},{"name":"prepare_grynvault_nip05_invoice","description":"Check and normalize a name@frontiercrown.com identifier, then prepare its exact 2,000-sat invoice authorization. Does not sign, reserve the name, create, pay, o"},{"name":"create_grynvault_nip05_invoice","description":"After separate explicit user confirmation, sign the prepared authorization and create exactly one pending 2,000-sat name@frontiercrown.com invoice. Does not pay"}],"package":null,"toolSurface":{"id":"ts_78x6vd629kt6","endpointId":"ep_dqmkpycf4wqp","hash":"acf19d483eadc2a64247a2aea34cfd60d6d707c1efd44e98e022ee5c420d7626","toolCount":17,"serverName":"nostr-signer-chatgpt","serverVersion":"0.4.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-09-12T09:28:18.946Z","lastSeenAt":"2026-10-12T23:27:44.165Z","observations":113,"toolNames":["get_setup_url","get_signer_status","begin_nostrconnect_pairing","connect_bunker","get_public_key","prepare_note","prepare_event","sign_event","publish_event","query_events","disconnect_signer","get_grynvault_account_dashboard","approve_grynvault_browser_handoff","prepare_grynvault_supporter_invoice","create_grynvault_supporter_invoice","prepare_grynvault_nip05_invoice","create_grynvault_nip05_invoice"],"distinctSurfaces":1},"endpointFacts":[{"id":"ep_dqmkpycf4wqp","url":"https://signer.frontiercrown.com/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-11T22:22:08.147Z","auth":{"observedAt":"2026-10-11T22:22:08.319Z","authRequired":false,"scheme":null,"resourceMetadata":null,"authorizationServer":null,"conformance":{"dpop":false,"rfc8414":false,"rfc9728":false,"pkceS256":false,"clientIdMetadataDocument":false,"dynamicClientRegistration":false}},"tls":{"observedAt":"2026-10-11T22:22:08.327Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"signer.frontiercrown.com","issuer":{"commonName":"YR1","organization":"Let's Encrypt"},"validFrom":"2026-09-11T03:55:38.000Z","validTo":"2026-12-10T03:55:37.000Z","daysToExpiry":57,"sanCount":1,"fingerprint256":"37:F1:0D:08:2D:84:65:9A:B0:D6:39:97:05:93:14:4A:39:17:2C:42:4E:C4:0C:1E:14:13:38:2F:E7:18:5F:42"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"com.frontiercrown.signer/nostr-signer","url":"https://registry.modelcontextprotocol.io/v0/servers/com.frontiercrown.signer%2Fnostr-signer","firstSeenAt":"2026-09-11T17:21:22.733Z","fetchedAt":"2026-10-12T03:20:50.475Z","normalizedAt":"2026-10-12T03:20:50.475Z"}]},"firstSeenAt":"2026-09-11T17:21:22.733Z","updatedAt":"2026-10-12T23:29:46.749Z"}