Nostr Signer
Approve Nostr signatures with your own browser signer without exposing a private key.
我该使用它吗
质量与安全性
发现(8)
- LOW在 get_setup_url 中
- LOW在 get_public_key 中
- LOW在 get_grynvault_account_dashboard 中
- LOW在 approve_grynvault_browser_handoff 中
- LOW在 prepare_grynvault_supporter_invoice 中
- LOW在 create_grynvault_supporter_invoice 中
- LOW在 prepare_grynvault_nip05_invoice 中
- LOW在 get_setup_url 中
基于对工具定义和协议合规性的自动分析。
上下文开销
这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。
安装
一键安装
将以下内容添加到你的 `claude_desktop_config.json` 文件中:
{
"mcpServers": {
"nostr-signer": {
"url": "https://signer.frontiercrown.com/mcp"
}
}
}远程端点
https://signer.frontiercrown.com/mcpstreamable-http它能做什么
工具清单
工具(17)
🟢get_setup_url
Return the loopback-only page used to connect a NIP-07 browser extension or an advanced NIP-46 signer.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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.
输入模式
{
"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#"
}社区
证据