{"name":"com.frontiercrown.signer/nostr-signer","slug":"signer-nostr-signer","title":"Nostr Signer","description":"Approve Nostr signatures with your own browser signer without exposing a private key.","url":"https://mcp.market/server/signer-nostr-signer","rating":null,"grade":"B","score":77,"certified":false,"status":"active","category":"scraping","tags":["scraping"],"presence":{"score":20,"stars":0,"forks":0,"downloads_week":null,"last_push_at":"2026-09-11T09:48:06.000Z","license":"Apache-2.0"},"uptime":{"percent":100,"checks":3,"ok":3,"last_checked_at":"2026-09-20T03:06:05.731Z","last_ok_at":"2026-09-20T03:06:05.731Z","latency_ms":239},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/hudhaifahz/nostr-signer-chatgpt","website":null,"version":"0.4.0","remotes":[{"type":"streamable-http","url":"https://signer.frontiercrown.com/mcp"}],"packages":[],"tools":[{"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, publish a Nostr event, change settlement, or grant wallet custody.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"relays":{"type":"array","items":{"type":"string","maxLength":500},"maxItems":8}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"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 nsec.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"connection_uri":{"type":"string","maxLength":8192}},"required":["connection_uri"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"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, settle, activate, or prove identity.","write_action":true,"price_micros":0,"input_schema":{"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#"}},{"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 treats a redirect as settlement.","write_action":true,"price_micros":0,"input_schema":{"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#"}},{"name":"disconnect_signer","description":"Forget the in-memory signer session and all prepared events.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"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 or change settlement.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"name":"get_public_key","description":"Return the public key exposed by the currently paired signer.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_setup_url","description":"Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_signer_status","description":"Check whether a user-controlled NIP-07 or NIP-46 signer is connected.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"http://json-schema.org/draft-07/schema#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"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, or settle an invoice.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"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 sign, create, pay, or settle an invoice.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"name":"prepare_note","description":"Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"content":{"type":"string","minLength":1,"maxLength":65536}},"required":["content"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"publish_event","description":"Publish a previously verified signed event to configured relays. Requires separate explicit user intent.","write_action":true,"price_micros":0,"input_schema":{"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#"}},{"name":"query_events","description":"Read a bounded set of verified public profile or note events from selected relays.","write_action":false,"price_micros":0,"input_schema":{"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#"}},{"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.","write_action":false,"price_micros":0,"input_schema":{"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#"}}],"scan":{"score":77,"grade":"B","scanned_at":"2026-09-19T20:16:08.692Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:16:08.640Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 235ms"]},"poisoning":{"score":15,"max":15,"notes":["17 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 3 write-action tools with no auth"]},"maintenance":{"score":15,"max":15,"notes":["last push 8 days ago"]},"identity":{"score":5,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"}],"inputs":{"probes":[{"url":"https://signer.frontiercrown.com/mcp","reachable":true,"authRequired":false,"latencyMs":235,"serverInfo":{"name":"nostr-signer-chatgpt","version":"0.4.0"}}],"packages":[],"repo":{"found":true,"owner":"hudhaifahz","repo":"nostr-signer-chatgpt","archived":false,"pushedAt":"2026-09-11T09:48:06Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/20385152?v=4","ownerCreatedAt":"2016-07-10T17:06:15Z","license":"Apache-2.0"},"icon":{"url":"https://avatars.githubusercontent.com/u/20385152?v=4&s=128","source":"registry"},"presence":{"stars":0,"forks":0,"downloadsWeek":null,"license":"Apache-2.0","lastPushAt":"2026-09-11T09:48:06.000Z","score":20}}}},"grade_history":[],"reviews":[]}