Every change Wellknown observed on this MCP server, newest first, with what it was before and what it became. Tool-surface changes carry the definition diff. Nothing here is edited after the fact.
Changed the definition of "brain_account_statement", "brain_account_statement_infographic", "brain_add_file_attachment" and 81 more
before
—after
Account statement⟨20 unchanged words⟩ :"integer"},"dpop_token":{"description":"Raw JSON of a kind-27235ProofNostrthateventthesignedcallerbyholds npub—\nnot base64, not NIP-98 'Authorization:Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exactthenamegrant(fromenvelopetools/list)from\nreceive_npub_proof,not\nthe endpointorURL;thecontent:\"\",rawcreated_atJSONwithinof60saofkind-27235now,Nostrandeventa\nrandomsigned\nby`nonce`npubtagwhoserecommended.`u`Ortagaiscachedthisdpop_tokentool'sphrase.name.","type":"string"},"npub":{ ⟨15 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Account statement infographic⟨20 unchanged words⟩ :"integer"},"dpop_token":{"description":"Raw JSON of a kind-27235ProofNostrthateventthesignedcallerbyholds npub—\nnot base64, not NIP-98 'Authorization:Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exactthenamegrant(fromenvelope
before
—after
Attach a file⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"file_name":{"anyOf" ⟨22 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{
before
—after
Attach a URL⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"name":{"anyOf" ⟨16 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{
before
—after
Adoption status{"additionalProperties":false,"properties":{"authority_npub":{"description":"The npub of the Authority the request was sent to.","type":"string"},"dpop_token":{"default":"","description":"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name.","type":"string"}},"required": ⟨3 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
Append to a note⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"markdown":{"description" ⟨6 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{
before
—after
Run a BrainQuery⟨39 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"query":{ ⟨13 unchanged words⟩
before
—after
Authority balancebefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
Check balance{"additionalProperties":false,"properties":{"dpop_token":{"description":"Raw JSON of a kind-27235ProofNostrthateventthesignedcallerbyholds npub—\nnot base64, not NIP-98 'Authorization:Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exactthenamegrant(fromenvelopetools/list)
before
—after
Check payment{"additionalProperties":false,"properties":{"dpop_token":{"description":"Raw JSON of a kind-27235ProofNostrthateventthesignedcallerbyholds npub—\nnot base64, not NIP-98 'Authorization:Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exactthenamegrant(fromenvelopetools/list)
before
—after
Check price⟨3 unchanged words⟩ ":{"dpop_token":{"default":"","description":"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name.","type":"string"},"npub":{"default":"","description":"Optional patron npub; with it, the preview includes that\npatron's coupons and constraint effects.","type":"string"},"tool_id":{ ⟨76 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Check proof status⟨3 unchanged words⟩ dpop_token":{"default":"","description":"Required.ProofThethat the caller holds npub: the grant envelopereturnedfrom\nreceive_npub_proof,by\n``receive_npub_proof``.or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name.","type":"string"},"patron_npub":{ ⟨12 unchanged words⟩
before
—before
—after
Create a link⟨48 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"name":{"anyOf" ⟨11 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"relation":{ ⟨58 unchanged words⟩
before
—after
Write a note⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"markdown":{"description" ⟨7 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{
before
—after
Create a thought⟨50 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"foreground_color":{"anyOf" ⟨82 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"relation":{
before
—after
Delete an attachment⟨32 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"required": ⟨3 unchanged words⟩
before
—after
Delete coupon{"additionalProperties":false,"properties":{"coupon_id":{"description":"The id of the coupon to delete (from list_coupons).","type":"string"},"dpop_token":{"default":"","description":"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name.","type":"string"}},"required": ⟨3 unchanged words⟩
before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
Delete a link⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"link_id":{"description" ⟨7 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"required":
before
—after
Delete operator credential⟨90 unchanged words⟩ the vault. RESTRICTED to the operator — requiresproofthe(nsec-signedoperator's proof (a kind-27235 event or acached dpop_tokenproofphrasegrant); patron proofs are rejected. A deletion is ⟨5 unchanged words⟩
{"additionalProperties":false,"properties":{"dpop_token":{"description":"before
—after
Delete patron credential{"additionalProperties":false,"properties":{"dpop_token":{"description":"Raw JSON of a kind-27235ProofNostrthateventthesignedcallerbyholds npub—\nnot base64, not NIP-98 'Authorization:Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exactthenamegrant(fromenvelope
before
—after
Delete a thought⟨64 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{ ⟨12 unchanged words⟩
before
—after
Log an event with a person⟨34 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"event_name":{"anyOf" ⟨28 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"person":{
before
—after
Forget coupon{"additionalProperties":false,"properties":{"coupon_id":{"description":"The id of the redeemed coupon to remove (from\nlist_my_coupons).","type":"string"},"dpop_token":{"default":"","description":"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name.","type":"string"},"npub":{"description":"The patron's Nostr public key (npub1...).","type":"string"}},"required":[" ⟨4 unchanged words⟩
before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
Forget credentials{"additionalProperties":false,"properties":{"dpop_token":{"description":"Raw JSON of a kind-27235ProofNostrthateventthesignedcallerbyholds npub—\nnot base64, not NIP-98 'Authorization:Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exactthenamegrant(fromenvelopetools/list)
before
—after
Get an attachment⟨32 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"required": ⟨3 unchanged words⟩
before
—after
Download an attachment⟨32 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"save_to_path":{ ⟨19 unchanged words⟩
before
—after
Get a brain⟨12 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"required": ⟨3 unchanged words⟩
before
—after
Brain statistics⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"type":"object"}
before
—after
Get a link⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"link_id":{"description" ⟨7 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"required": ⟨3 unchanged words⟩
before
—after
Brain change log⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"end_time":{"anyOf" ⟨54 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"source_id":{
before
—after
Nostr profile⟨3 unchanged words⟩ ":{"npub":{"default":"","description":"The Nostr public key (npub1...) whose profile to read.","type":"string"}},"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
Notarization proofbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Get a note⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"format":{"default" ⟨10 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{ ⟨12 unchanged words⟩
before
—after
Operator onboarding statusbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Patron credential fields{"additionalProperties":false,"properties":{"dpop_token":{"description":"Raw JSON of a kind-27235ProofNostrthateventthesignedcallerbyholds npub—\nnot base64, not NIP-98 'Authorization:Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exactthenamegrant(fromenvelope
before
—after
Patron onboarding status{"additionalProperties":false,"properties":{"dpop_token":{"description":"AProof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr eventsignedsigned\nbybynpubpatron_npubwhosefor`u` tag is thistool.tool's name.","type":"string"},"patron_npub":{ ⟨15 unchanged words⟩
before
—after
Pricing modelbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Tags⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"type":"object"}
before
—after
Get a thought⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{ ⟨12 unchanged words⟩
before
—after
Find a thought by name⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"name_exact":{"description" ⟨8 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"required":
before
—after
Thought graph⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"include_siblings":{"default" ⟨10 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{
before
—after
Thought graph by page⟨53 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"page_size":{ ⟨45 unchanged words⟩
before
—after
Thought types⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"type":"object"}
before
—after
List attachments⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{ ⟨12 unchanged words⟩
before
—after
List brains⟨3 unchanged words⟩ ":{"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"type":"object"}
before
—after
Tool identitiesbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Constraint typesbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Coupons⟨3 unchanged words⟩ ":{"dpop_token":{"default":"","description":"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name.","type":"string"}},"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
My coupons⟨3 unchanged words⟩ ":{"dpop_token":{"default":"","description":"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name.","type":"string"},"npub":{"description":"The patron's Nostr public key (npub1...).","type":"string"}},"required":[" ⟨3 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Notarizationsbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Mint coupon⟨14 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name.","type":"string"},"name":{"description" ⟨120 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":false,"readOnlyHint":false}before
—after
Move or retype a thought⟨54 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"new_parent_id":{"anyOf" ⟨33 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{
before
—after
Notarize ledgerbefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
About DPYCbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
DPYC tax ratebefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
How to join DPYCbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
Look up a DPYC member{"additionalProperties":false,"properties":{"npub":{"description":"The Nostr public key (npub1...) of the member to look up.","type":"string"}},"required":["npub ⟨2 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
Network advisoriesbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
Publish Nostr profilebefore
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
Buy credits⟨14 unchanged words⟩ :"integer"},"dpop_token":{"description":"Raw JSON of a kind-27235ProofNostrthateventthesignedcallerbyholds npub—\nnot base64, not NIP-98 'Authorization:Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exactthenamegrant(fromenvelope
before
—after
Receive credentials⟨23 unchanged words⟩ dpop_token":{"default":"","description":"Required.ProofThethatsessionthephrasecallerreturnedholdsby\nrequest_credential_channelnpub:forthe grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is thisexacttool's
before
—after
Receive npub proof⟨3 unchanged words⟩ dpop_token":{"default":"","description":"Required.ProofThethatdpop_tokenthereturnedcallerbyholdsrequest_npub_proof.npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name.","type":"string"},"patron_npub":{ ⟨14 unchanged words⟩
before
—after
Receive patron credentials⟨3 unchanged words⟩ ":{"credential_card":{"default":"","description":"An ncred1... credential card to redeem instead\nof a DM reply.","type":"string"},"dpop_token":{"default":"","description":"The session phrase from the welcome DM; it names\nthe reply to collect.","type":"string"},"sender_npub":{"default":"","description":"The patron's Nostr public key (npub1...) that sent\nthe credential reply.","type":"string"}},"type":"object"}
before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
Redeem coupon{"additionalProperties":false,"properties":{"code":{"description":"The coupon code the operator shared.","type":"string"},"dpop_token":{"default":"","description":"Proof that the caller holds npub: the grant envelope from\nreceive_npub_proof, or the raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name.","type":"string"},"npub":{"description":"The patron's Nostr public key (npub1...).","type":"string"}},"required":[" ⟨4 unchanged words⟩
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
Report an issue⟨17 unchanged words⟩ :"string"},"dpop_token":{"description":"Raw JSON of a kind-27235ProofNostrthateventthesignedcallerbyholds npub—\nnot base64, not NIP-98 'Authorization:Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exactthenamegrant(fromenvelope
before
—after
Request adoption⟨15 unchanged words⟩ dpop_token":{"default":"","description":"operator-npubProofownershipthatproofthe(inlinecallerkind-27235holds npub: the grant envelope from\nreceive_npub_proof, orcachedthetoken).raw JSON of a kind-27235 Nostr event signed\nby npub whose `u` tag is this tool's name.","type":"string"},"note":{ ⟨28 unchanged words⟩
before
—after
Open credential channelbefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
Request echobefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Request npub proofbefore
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
Request patron credentials⟨3 unchanged words⟩ ":{"sender_npub":{"default":"","description":"The patron's Nostr public key (npub1...); the\nwelcome DM goes to this npub.","type":"string"}},"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
Reset pricing model⟨3 unchanged words⟩ ":{"dpop_token":{"default":"","description":"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name.","type":"string"}},"type":"object"}
before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
Restore credits{"additionalProperties":false,"properties":{"dpop_token":{"description":"AProofkind-27235thatNostrtheeventcallersignedholdsbynpub: theOPERATOR'sgrantnsec\nforenvelopethisfrom\nreceive_npub_proof,tool.
before
—after
Restore database schema⟨3 unchanged words⟩ ":{"dpop_token":{"default":"","description":"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name.","type":"string"}},"type":"object"}
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
Rescue orphan thoughts⟨36 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"dry_run":{"default" ⟨12 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"orphanage_name":{
before
—after
Search thoughts⟨23 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"max_results":{"default" ⟨8 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"only_search_thought_names":{
before
—after
Service statusbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Session statusbefore
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
Set the active brain⟨16 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"}},"required": ⟨3 unchanged words⟩
before
—after
Set pricing model⟨3 unchanged words⟩ ":{"dpop_token":{"default":"","description":"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name.","type":"string"},"model_json":{"description":"The complete pricing model as a JSON object; it\nreplaces the active model.","type":"string"}},"required":[" ⟨3 unchanged words⟩
before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
Update coupon{"additionalProperties":false,"properties":{"clear_total_uses":{"default":false,"description":"True makes total redemptions unlimited.","type":"boolean"},"clear_uses_per_patron":{"default":false,"description":"True makes discounted calls per patron unlimited.","type":"boolean"},"coupon_id":{"description":"The id of the coupon to change (from list_coupons).","type":"string"},"discount_percent":{"anyOf" ⟨2 unchanged words⟩ {"type":"null"}],"default":null,"description":"A new percentage off the base price (0-100)."},"dpop_token":{"default":"","description":"Proof that the caller holds the operator's npub: the grant\nenvelope from receive_npub_proof, or the raw JSON of a kind-27235\nNostr event signed by the operator whose `u` tag is this tool's name.","type":"string"},"name":{"anyOf" ⟨2 unchanged words⟩ {"type":"null"}],"default":null,"description":"A new code for patrons to type."},"tool_ids":{"anyOf":[{"items" ⟨4 unchanged words⟩ {"type":"null"}],"default":null,"description":"The tools the coupon discounts: tool ids or MCP tool names,\n[\"*\"] for every paid tool, [] to unbind it."
before
—after
Update a link⟨48 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"link_id":{"description" ⟨20 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"relation":{
before
—after
Update operator credential⟨62 unchanged words⟩ echoed back. RESTRICTED to the operator — requires the operator's proof (nsec-signeda kind-27235 event or acachedproofdpop_token phrasegrant);patron proofs are rejected.
{"additionalProperties":false,"properties":{"dpop_token":{"description":"Operator
before
—after
Update patron credential{"additionalProperties":false,"properties":{"dpop_token":{"description":"Raw JSON of a kind-27235ProofNostrthateventthesignedcallerbyholds npub—\nnot base64, not NIP-98 'Authorization:Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exactthenamegrant(fromenvelope
before
—after
Update a thought⟨80 unchanged words⟩ "},"dpop_token":{"default":"","description":"Proof that the caller holds npub. Either the grant envelope that receive_npub_proof returned, or the raw JSON of a kind-27235 Nostr event signed by npub: content \"\", a `u` tag holding this tool's exact name from tools/list, created_at within 60 s of now, and a random `nonce` tag.","type":"string"},"foreground_color":{"anyOf" ⟨62 unchanged words⟩ npub":{"default":"","description":"Required.TheYourpatron's Nostr public key (npub1...).forToolcreditfeesbilling.are paid from this patron's balance; dpop_token proves the caller holds it.","type":"string"},"thought_id":{
Added "brain_request_echo" (83 tools before, 84 now)
Echo what the client sent with this request. Free. Reports the URL path and query, the headers, the cookies and the MCP request ``_meta``. Values are SHA-256 fingerprints, so nothing a client sends is repeated back; equal fingerprints mean equal values. Call it from two conversations and compare: a value that stays the same within one and changes between them identifies the conversation.
Changed the definition of "brain_mint_coupon" and "brain_update_coupon"
Create a new operator-owned discount coupon.
The coupon owns its binding: ``tool_ids`` names the tools it
discounts, and re-pricing a tool never touches it. A coupon bound
to no tool discounts nothing, however many patrons redeem it.⟨28 unchanged words⟩ uniqueness).","type":"string"},"tool_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null,"description":"The tools this coupon discounts — tool ids or MCP\ntool names, or ``[\"*\"]`` for every tool priced above zero."},"total_uses":{"anyOf":[{"type":"integer ⟨70 unchanged words⟩
Changed the definition of "brain_check_proof_status", "brain_receive_npub_proof" and "brain_request_npub_proof"
Check whether apreviously-cachedproofdpop_tokengrant is still valid. Mirrors ``check_oauth_status`` for the npub-proof ⟨13 unchanged words⟩ dpop_token?" before burning credits on a guaranteed failure. Expiry is read from the grant itself; the only store consulted is the patron's revocation watermark. Free, no side effects —does not evict the cache ortouchestouchnorelays.relay.
Changed the definition of "brain_restore_neon_schema"
Re-runPrepare``ensure_schema()``thisonoperator'severydatabaseNeonVaultschemathisagain,operatorignoringuses.the breadcrumb. Diagnostic / recovery tool forthe case where thewhen NeonHTTP SQL API is returning
Changed the definition of "brain_session_status"
⟨14 unchanged words⟩ do next. Free. Lifecycle states: - ready:OperatorVaultisANDwarmpricingandmodelfullyverifiedoperationalon—thisvaultcall.ANDProceedpricing
Certificate recorded, valid to 2026-12-31
Authorization not required
First tool surface recorded: 83 tools (server version 3.4.7)
Showing the latest 9 events. The API returns up to 500 and filters by kind: ?kind=tool_surface_changed
before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":false,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":true}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":false,"idempotentHint":true,"openWorldHint":false,"readOnlyHint":false}before
—after
{"destructiveHint":true,"idempotentHint":true,"openWorldHint":true,"readOnlyHint":false}⟨36 unchanged words⟩ rows survive (they key on coupon id). ``tool_ids`` replaces the coupon's binding — tool ids or MCP tool names, ``["*"]`` for every paid tool, ``[]`` to unbind it. RESTRICTED to operator — requires proof.
⟨33 unchanged words⟩ ":"null"}],"default":null},"tool_ids":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"default":null},"total_uses":{"anyOf":[{"type":"integer ⟨32 unchanged words⟩
⟨106 unchanged words⟩ nsec signed it). On success, returnsthea new ``dpop_token``:—an Operator-signed **proof grant envelope** ``{"grant": …, "nonce": …}`` bound to thesamepatron, this challenge, and the duration the patrontoken.named. The calling application MUST rememberitthatandwhole string and pass it asthe``dpop_token``parameteron every subsequent paid tool call. Theproofgrant(aishashself-verifying;ofnothingtheabouttoken)it is storedin the vault keyed by that hash — the MCP never stores the raw token itself.here. Free.
⟨113 unchanged words⟩ the relay mailbox. **Returns** a ``dpop_token`` — thedemonstrated-proof-of-possession tokenone-timethatchallengethenoncecallingshownapplicationin theMUSTDM.rememberPassanditpasstoas``receive_npub_proof``the ``dpop_token``toparametercollectontheeveryreply.subsequentIt ispaidatoolmatchingcall.token,ThenotMCP doesanotcredential:retainonthisitsvalueownacrossitrestarts.authorizes nothing. **Lifecycle:**The``receive_npub_proof``cachedreturns the proof grant, which expires after thepatron's chosendurationduration.the patron named in their reply. When itexpires, call ``request_npub_proof``again for a fresh challenge,then wait for the user, thencall ``receive_npub_proof``. Free.