MCP 서버

Nostr Signer

com.frontiercrown.signer/nostr-signer
암호화폐 및 Web3 보안 공개 · 연결 가능 MCP 2025-11-25

이 MCP로 할 수 있는 일

Connects to user-controlled Nostr signers to prepare, approve, sign, read, and publish events without exposing private keys.

approve_grynvault_browser_handoff
Approve Grynvault in-app 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.
외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['code', 'confirm_browser_sign_in'], 'properties': {'code': {'type': 'string', 'maxLength': 20, 'minLength': 12, '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.'}}, 'additionalProperties': False}
begin_nostrconnect_pairing
Begin signer pairing
Advanced fallback: create a nostrconnect:// URI for the user to scan or open in a remote signer. Never accepts an nsec.
외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'relays': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 8}}, 'additionalProperties': False}
connect_bunker
Connect bunker signer
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.
외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['connection_uri'], 'properties': {'connection_uri': {'type': 'string', 'maxLength': 8192}}, 'additionalProperties': False}
create_grynvault_nip05_invoice
Create Frontier Crown NIP-05 invoice
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.
외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operation_id', 'confirm_invoice_creation'], '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.'}}, 'additionalProperties': False}
create_grynvault_supporter_invoice
Create Grynvault supporter invoice
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.
외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['operation_id', 'confirm_invoice_creation'], '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.'}}, 'additionalProperties': False}
disconnect_signer
Disconnect signer
Forget the in-memory signer session and all prepared events.
파괴적 작업
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['confirm_disconnect'], 'properties': {'confirm_disconnect': {'type': 'boolean', 'const': True, 'description': 'Must be true only after the user explicitly approved this action.'}}, 'additionalProperties': False}
get_grynvault_account_dashboard
Get signed Grynvault account dashboard
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.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['confirm_account_access'], 'properties': {'confirm_account_access': {'type': 'boolean', 'const': True, 'description': 'Must be true only after the user approved signing a read-only Grynvault account request.'}}, 'additionalProperties': False}
get_public_key
Get public key
Return the public key exposed by the currently paired signer.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_setup_url
Get signer setup URL
Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_signer_status
Get signer status
Check whether a user-controlled NIP-07 or NIP-46 signer is connected.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
prepare_event
Prepare exact Nostr 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.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['event'], 'properties': {'event': {'type': 'object', 'required': ['kind', 'created_at', 'tags', 'content'], 'properties': {'kind': {'type': 'integer', 'maximum': 65535, 'minimum': 0}, 'tags': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'string', 'maxLength': 4096}, 'maxItems': 16, 'minItems': 1}, 'maxItems': 128}, 'content': {'type': 'string', 'maxLength': 65536}, 'created_at': {'type': 'integer', 'minimum': 0}}, 'additionalProperties': False}}, 'additionalProperties': False}
prepare_grynvault_nip05_invoice
Prepare Frontier Crown NIP-05 invoice
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.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['name'], 'properties': {'name': {'type': 'string', 'pattern': '^[A-Za-z0-9_-]+$', 'maxLength': 32, 'minLength': 1}}, 'additionalProperties': False}
prepare_grynvault_supporter_invoice
Prepare Grynvault supporter invoice
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.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['plan'], 'properties': {'plan': {'enum': ['basic_once', 'member_monthly'], 'type': 'string'}, 'donation_sats': {'type': 'integer', 'maximum': 1000000, 'minimum': 21}}, 'additionalProperties': False}
prepare_note
Prepare Nostr note
Prepare and bind an exact unsigned kind:1 note for user review. This does not sign or publish.
읽기 전용
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['content'], 'properties': {'content': {'type': 'string', 'maxLength': 65536, 'minLength': 1}}, 'additionalProperties': False}
publish_event
Publish signed event
Publish a previously verified signed event to configured relays. Requires separate explicit user intent.
파괴적 작업 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['intent_id', 'confirm_publish'], 'properties': {'relays': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 8}, 'intent_id': {'type': 'string', 'format': 'uuid'}, 'confirm_publish': {'type': 'boolean', 'const': True, 'description': 'Must be true only after the user explicitly approved this action.'}}, 'additionalProperties': False}
query_events
Read Nostr events
Read a bounded set of verified public profile or note events from selected relays.
읽기 전용 외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'kinds': {'type': 'array', 'items': {'enum': [0, 1], 'type': 'number'}, 'maxItems': 2}, 'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1}, 'since': {'type': 'integer', 'minimum': 0}, 'relays': {'type': 'array', 'items': {'type': 'string', 'maxLength': 500}, 'maxItems': 8}, 'authors': {'type': 'array', 'items': {'type': 'string', 'pattern': '^[0-9a-f]{64}$'}, 'maxItems': 20}}, 'additionalProperties': False}
sign_event
Request event signature
Ask the paired signer to approve and sign the exact event bound to a fresh intent. Requires explicit user intent and never publishes.
외부 접근 가능
입력 스키마
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['intent_id', 'confirm_signature'], '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.'}}, 'additionalProperties': False}
추가됨
create_grynvault_nip05_invoice
2026년 9월 17일 12:34 PM
추가됨
prepare_grynvault_nip05_invoice
2026년 9월 17일 12:34 PM
추가됨
create_grynvault_supporter_invoice
2026년 9월 17일 12:34 PM
추가됨
prepare_grynvault_supporter_invoice
2026년 9월 17일 12:34 PM
추가됨
approve_grynvault_browser_handoff
2026년 9월 17일 12:34 PM
추가됨
get_grynvault_account_dashboard
2026년 9월 17일 12:34 PM
추가됨
disconnect_signer
2026년 9월 17일 12:34 PM
추가됨
query_events
2026년 9월 17일 12:34 PM
추가됨
publish_event
2026년 9월 17일 12:34 PM
추가됨
sign_event
2026년 9월 17일 12:34 PM
추가됨
prepare_event
2026년 9월 17일 12:34 PM
추가됨
prepare_note
2026년 9월 17일 12:34 PM
추가됨
get_public_key
2026년 9월 17일 12:34 PM
추가됨
connect_bunker
2026년 9월 17일 12:34 PM
추가됨
begin_nostrconnect_pairing
2026년 9월 17일 12:34 PM
추가됨
get_signer_status
2026년 9월 17일 12:34 PM
추가됨
get_setup_url
2026년 9월 17일 12:34 PM