excalibur-mcp
Server Details
FastMCP server for posting formatted content to X (Twitter) — Tollbooth-monetized, DPYC-native
The last two health checks of this connector failed. If this server requires authentication, missing or expired test credentials may be the cause. A test profile lets Glama authenticate for health checks and discover tools; it is separate from your personal connections.
If you are the author, claim ownership, then add or update a test profile under Admin → Test Profile.
- Status
- Unhealthy
- Uptime
- 86.7% over 70 days
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- lonniev/excalibur-mcp
- GitHub Stars
- 3
- Server Listing
- eXcalibur MCP
TDQS
Scored across 87 tools
The set contains many similar-sounding tools (e.g., check_balance vs check_authority_balance, scheduler_status/pending/reissue/check_now, operator vs patron credential CRUD, account_statement vs account_statement_infographic). Descriptions are detailed and often explicitly cross-reference each other, which helps, but the sheer volume and overlap still create meaningful misselection risk.
All tools use snake_case with a consistent excalibur_ prefix and predominantly verb_noun structure (e.g., create_post, list_posts, update_coupon). A few tools break the pattern with noun phrases (oracle_about, service_status, scheduler_pending) and verbs vary (get/fetch/list), but overall the convention is predictable.
87 tools is excessive for an MCP server, far beyond the typical 3-15 range. Even accounting for the platform's broad scope, the surface is extremely large and likely burdens tool discovery and selection.
The surface covers CRUD for posts, snippets, coupons, credentials, pricing, billing, scheduler, Nostr, Oracle, and more, with lifecycle operations for most entities. Minor gaps exist (e.g., no operator credential field listing, no patron management/list), but agents can generally work around them.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
69 tool updates
- Changed
excalibur_account_statement1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"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."
- Changed
excalibur_account_statement_infographic1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"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."
- Changed
excalibur_adoption_status2 fields changed- added
Input schema / properties / authority_npub / descriptionAdded value: +"The npub of the Authority the request was sent to." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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."
- Changed
excalibur_begin_oauth1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing.\nIts `u` tag must hold THIS tool's exact name (from\ntools/list), not the endpoint URL; content:\"\", created_at\nwithin 60s of now, and a random `nonce` tag recommended. Or a\ncached dpop_token phrase."New value: +"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."
- Changed
excalibur_check_balance1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"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."
- Changed
excalibur_check_oauth_status1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing.\nIts `u` tag must hold THIS tool's exact name (from\ntools/list), not the endpoint URL; content:\"\", created_at\nwithin 60s of now, and a random `nonce` tag recommended. Or a\ncached dpop_token phrase."New value: +"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."
- Changed
excalibur_check_payment1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"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."
- Changed
excalibur_check_price2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / npub / descriptionAdded value: +"Optional patron npub; with it, the preview includes that\npatron's coupons and constraint effects."
- Changed
excalibur_check_proof_status1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Required. The grant envelope returned by\n``receive_npub_proof``."New value: +"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."
- Changed
excalibur_create_post6 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - changed
Input schema / properties / recurrence / descriptionPrevious value: -"``{\"freq\": \"daily|weekly|monthly\", \"interval\": n}`` or null."New value: +"``{\"freq\": \"daily|weekdays|weekly|monthly\", \"interval\": n}``\n(``interval`` a positive integer) or null." - changed
Input schema / properties / status / descriptionPrevious value: -"``draft`` or ``scheduled``."New value: +"``draft``, ``scheduled`` or ``sent`` (a post already on X)." - changed
Input schema / properties / title / descriptionPrevious value: -"Optional human label for the post; the list falls back to the\nfirst body line when it is blank."New value: +"Optional human label for the post (up to 200 characters); the\nlist falls back to the first body line when it is blank." - added
Input schema / properties / tweet_url / descriptionAdded value: +"URL of the tweet on X, for a post created already ``sent``."
- Changed
excalibur_delete_conversation_query3 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / query_id / descriptionAdded value: +"The saved query's UUID."
- Changed
excalibur_delete_coupon2 fields changed- added
Input schema / properties / coupon_id / descriptionAdded value: +"The id of the coupon to delete (from list_coupons)." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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."
- Changed
excalibur_delete_operator_credential1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Operator proof for this tool."New value: +"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."
- Changed
excalibur_delete_patron_credential1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"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."
- Changed
excalibur_delete_post4 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / hard / descriptionAdded value: +"``true`` removes the row permanently; ``false`` archives it." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / post_id / descriptionAdded value: +"The post's UUID."
- Changed
excalibur_delete_snippet3 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / snippet_id / descriptionAdded value: +"The snippet's UUID."
- Changed
excalibur_fetch_dynamic_block3 fields changed- added
Input schema / properties / claim_check / descriptionAdded value: +"The ``claim_check`` string ``resolve_dynamic_block`` returned." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_find_conversations7 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / max_posts / descriptionAdded value: +"Most posts to read from X, 10..300." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / query / descriptionAdded value: +"An ad-hoc X search clause, up to 438 characters, with no ``?``\noperator. Give this or ``query_id``." - added
Input schema / properties / query_id / descriptionAdded value: +"UUID of a saved query to run. Give this or ``query``." - added
Input schema / properties / safe_defaults / descriptionAdded value: +"``true`` appends ``-is:retweet -has:links -has:cashtags\nlang:en`` to an ad-hoc ``query``; a saved query uses its own setting." - added
Input schema / properties / weights / descriptionAdded value: +"Scoring overrides for this call, an object whose keys are any\nof ``need``, ``replies``, ``band``, ``spam``, ``reply``,\n``replies_min``, ``followers_min``, ``followers_max``,\n``decay_hours`` with integer values, laid over the saved query's\nweights or the defaults; null adds no overrides."
- Changed
excalibur_forget_coupon3 fields changed- added
Input schema / properties / coupon_id / descriptionAdded value: +"The id of the redeemed coupon to remove (from\nlist_my_coupons)." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
excalibur_forget_credentials1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"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."
- Changed
excalibur_get_nostr_profile1 field changed- added
Input schema / properties / npub / descriptionAdded value: +"The Nostr public key (npub1...) whose profile to read."
- Changed
excalibur_get_patron_credential_fields1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"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."
- Changed
excalibur_get_patron_onboarding_status1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"A kind-27235 Nostr event signed by patron_npub for this tool."New value: +"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."
- Changed
excalibur_get_post3 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / post_id / descriptionAdded value: +"The post's UUID, as returned by ``create_post`` or ``list_posts``."
- Changed
excalibur_get_post_metrics2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Your npub (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_get_scheduler_log2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Your npub (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_get_snippet3 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / snippet_id / descriptionAdded value: +"The snippet's UUID."
- Changed
excalibur_get_voice2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_get_x_profile2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_harvest_metrics2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"The OPERATOR's npub (npub1...); this tool is operator-only."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_list_conversation_queries2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_list_conversations13 fields changed- added
Input schema / properties / date_field / descriptionAdded value: +"The date the bounds apply to: ``found`` or ``posted``." - added
Input schema / properties / date_from / descriptionAdded value: +"Lower bound on ``date_field`` — ``YYYY-MM-DD`` or an ISO-8601\ninstant; blank for none." - added
Input schema / properties / date_to / descriptionAdded value: +"Upper bound on ``date_field`` — ``YYYY-MM-DD`` or an ISO-8601\ninstant; blank for none." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / min_score / descriptionAdded value: +"Lowest score to include, 0..100." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / page / descriptionAdded value: +"0-indexed page number." - added
Input schema / properties / page_size / descriptionAdded value: +"Rows per page, 1..100." - added
Input schema / properties / query_id / descriptionAdded value: +"UUID of a saved query to narrow to, ``adhoc`` for leads from\nad-hoc searches, or blank for all." - added
Input schema / properties / search / descriptionAdded value: +"Case-insensitive regular expression over the post text or\nauthor handle; blank matches all." - added
Input schema / properties / sort_col / descriptionAdded value: +"Column to sort by: ``score``, ``found``, ``seen``, ``posted``,\n``replies`` or ``followers``." - added
Input schema / properties / sort_dir / descriptionAdded value: +"``asc`` or ``desc``." - added
Input schema / properties / status / descriptionAdded value: +"Comma-separated statuses from ``new``, ``seen``, ``engaged``,\n``dismissed``; blank for all."
- Changed
excalibur_list_coupons1 field changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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."
- Changed
excalibur_list_my_coupons2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
excalibur_list_posts14 fields changed- added
Input schema / properties / date_field / descriptionAdded value: +"The date the bounds apply to: ``created``, ``updated``,\n``scheduled`` or ``sent``." - added
Input schema / properties / date_from / descriptionAdded value: +"Lower bound on ``date_field`` — ``YYYY-MM-DD`` or an ISO-8601\ninstant; blank for none." - added
Input schema / properties / date_to / descriptionAdded value: +"Upper bound on ``date_field`` — ``YYYY-MM-DD`` (inclusive) or an\nISO-8601 instant (exclusive); blank for none." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / page / descriptionAdded value: +"0-indexed page number." - added
Input schema / properties / page_size / descriptionAdded value: +"Rows per page, 1..100." - added
Input schema / properties / search / descriptionAdded value: +"Case-insensitive regular expression matched against the post\ntext; blank matches all." - added
Input schema / properties / sent_hour / descriptionAdded value: +"Local wall-clock hour 0..23 of ``last_sent_at`` in\n``time_zone``; null for no filter." - added
Input schema / properties / sort_col / descriptionAdded value: +"Column to sort by: ``created``, ``updated``, ``status`` or\n``scheduled``." - added
Input schema / properties / sort_dir / descriptionAdded value: +"``asc`` or ``desc``." - added
Input schema / properties / status / descriptionAdded value: +"One status or a comma-separated set of ``draft``, ``scheduled``,\n``sent``, ``archived``; blank lists every status." - added
Input schema / properties / template_id / descriptionAdded value: +"UUID of a recurring post; keeps only the sent occurrences\nit fired. Blank for no filter." - added
Input schema / properties / time_zone / descriptionAdded value: +"IANA time zone (e.g. ``America/New_York``) for ``sent_hour``."
- Changed
excalibur_list_snippets10 fields changed- added
Input schema / properties / date_field / descriptionAdded value: +"The date the bounds apply to: ``created`` or ``updated``." - added
Input schema / properties / date_from / descriptionAdded value: +"Lower bound on ``date_field`` — ``YYYY-MM-DD`` or an ISO-8601\ninstant; blank for none." - added
Input schema / properties / date_to / descriptionAdded value: +"Upper bound on ``date_field`` — ``YYYY-MM-DD`` (inclusive) or an\nISO-8601 instant; blank for none." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / page / descriptionAdded value: +"0-indexed page number." - added
Input schema / properties / page_size / descriptionAdded value: +"Rows per page, 1..200." - added
Input schema / properties / search / descriptionAdded value: +"Case-insensitive regular expression matched against the\nsnippet name or body; blank matches all." - added
Input schema / properties / sort_col / descriptionAdded value: +"Column to sort by: ``favorite``, ``created``, ``updated`` or\n``name``." - added
Input schema / properties / sort_dir / descriptionAdded value: +"``asc`` or ``desc``."
- Changed
excalibur_mint_coupon1 field changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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."
- Changed
excalibur_oracle_lookup_member1 field changed- added
Input schema / properties / npub / descriptionAdded value: +"The Nostr public key (npub1...) of the member to look up."
- Changed
excalibur_post_nostr_message3 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / message / descriptionPrevious value: -"The note text to publish."New value: +"The note text to publish. You (the proven npub) are recorded\nas its author." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your PROVEN Nostr public key (npub1...). You are recorded as the note's author."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_post_performance2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Your npub (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_post_performance_infographic2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Your npub (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_post_tweet2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_post_tweet_image2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_process_scheduled_posts2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"The OPERATOR's npub (npub1...); this tool is operator-only."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_purchase_credits1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"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."
- Changed
excalibur_receive_credentials1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Required. The session phrase returned by\nrequest_credential_channel for this exact channel."New value: +"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."
- Changed
excalibur_receive_npub_proof1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Required. The dpop_token returned by request_npub_proof."New value: +"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."
- Changed
excalibur_redeem_coupon3 fields changed- added
Input schema / properties / code / descriptionAdded value: +"The coupon code the operator shared." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
excalibur_refine_post_region2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_reply_to_conversation4 fields changed- added
Input schema / properties / conversation_id / descriptionAdded value: +"The lead's row UUID (``id`` from ``list_conversations``)." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / text / descriptionAdded value: +"Your reply, 1..280 characters, with optional markdown inline\nformatting."
- Changed
excalibur_report_issue1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"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."
- Changed
excalibur_request_adoption1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"operator-npub ownership proof (inline kind-27235 or cached token)."New value: +"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."
- Changed
excalibur_reset_pricing_model1 field changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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."
- Changed
excalibur_resolve_dynamic_block2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_restore_credits1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"A kind-27235 Nostr event signed by the OPERATOR's nsec\nfor this tool. Patron proofs are rejected."New value: +"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."
- Changed
excalibur_restore_neon_schema1 field changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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."
- Changed
excalibur_save_conversation_query7 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / name / descriptionAdded value: +"The query's name, up to 120 characters and unique among your\nqueries. Required on create; blank on update keeps it." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / query / descriptionAdded value: +"The X search clause, up to 438 characters, with no ``?``\noperator. Required on create; blank on update keeps it." - added
Input schema / properties / query_id / descriptionAdded value: +"UUID of the query to update; blank creates a new one." - added
Input schema / properties / safe_defaults / descriptionAdded value: +"``true`` appends X's safe-default filters when the query\nruns; null keeps the current value (and means ``true`` on create)." - added
Input schema / properties / weights / descriptionAdded value: +"Scoring overrides to store, an object whose keys are any of\n``need``, ``replies``, ``band``, ``spam``, ``reply``,\n``replies_min``, ``followers_min``, ``followers_max``,\n``decay_hours`` with integer values; null keeps the current ones."
- Changed
excalibur_save_snippet7 fields changed- added
Input schema / properties / doc / descriptionAdded value: +"The block/flag document (same shape as a post's ``doc``), or null." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / favorite / descriptionAdded value: +"``true`` pins it as a one-click chiclet; null keeps the\ncurrent value on update (and means ``false`` on create)." - added
Input schema / properties / name / descriptionAdded value: +"The snippet's label, up to 120 characters. Required on create;\nblank on update keeps the current name." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / snippet_id / descriptionAdded value: +"UUID of the snippet to update; blank creates a new one." - added
Input schema / properties / text / descriptionAdded value: +"The snippet body, up to 8000 characters. Required on create;\nblank on update keeps the current body."
- Changed
excalibur_save_voice4 fields changed- added
Input schema / properties / bans / descriptionAdded value: +"Up to 200 ``{\"text\": str, \"on\": bool}`` objects, each ``text`` up\nto 200 characters; null saves an empty list." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / profile / descriptionAdded value: +"Free-text description of your writing voice, up to 4000\ncharacters."
- Changed
excalibur_scheduler_check_now2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Your npub (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_scheduler_pending2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"The OPERATOR's npub (npub1...); this tool is operator-only."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_scheduler_reissue2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"The OPERATOR's npub (npub1...); this tool is operator-only."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_scheduler_status2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Your npub (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it."
- Changed
excalibur_set_conversation_status4 fields changed- added
Input schema / properties / conversation_id / descriptionAdded value: +"The lead's row UUID (``id`` from ``list_conversations``)." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...)."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / status / descriptionAdded value: +"One of ``new``, ``seen``, ``engaged``, ``dismissed``."
- Changed
excalibur_set_pricing_model2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / model_json / descriptionAdded value: +"The complete pricing model as a JSON object; it\nreplaces the active model."
- Changed
excalibur_update_coupon11 fields changed- added
Input schema / properties / clear_total_uses / descriptionAdded value: +"True makes total redemptions unlimited." - added
Input schema / properties / clear_uses_per_patron / descriptionAdded value: +"True makes discounted calls per patron unlimited." - added
Input schema / properties / coupon_id / descriptionAdded value: +"The id of the coupon to change (from list_coupons)." - added
Input schema / properties / discount_percent / descriptionAdded value: +"A new percentage off the base price (0-100)." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - added
Input schema / properties / name / descriptionAdded value: +"A new code for patrons to type." - added
Input schema / properties / tool_ids / descriptionAdded value: +"The tools the coupon discounts: tool ids or MCP tool names,\n[\"*\"] for every paid tool, [] to unbind it." - added
Input schema / properties / total_uses / descriptionAdded value: +"A new number of redemptions across all patrons." - added
Input schema / properties / uses_per_patron / descriptionAdded value: +"A new number of discounted calls per patron." - added
Input schema / properties / valid_from / descriptionAdded value: +"A new ISO-8601 datetime when the coupon becomes active." - added
Input schema / properties / valid_until / descriptionAdded value: +"A new ISO-8601 datetime when the coupon expires."
- Changed
excalibur_update_operator_credential1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Operator proof for this tool."New value: +"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."
- Changed
excalibur_update_patron_credential1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase."New value: +"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."
- Changed
excalibur_update_post6 fields changed- added
Input schema / properties / client_req_id / descriptionAdded value: +"Idempotency key for this edit; resending the last applied\nid changes nothing and charges nothing." - added
Input schema / properties / dpop_token / descriptionAdded value: +"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." - changed
Input schema / properties / npub / descriptionPrevious value: -"Required. Your Nostr public key (npub1...) for credit billing."New value: +"The patron's Nostr public key (npub1...). Tool fees are paid from this patron's balance; dpop_token proves the caller holds it." - added
Input schema / properties / patch / descriptionAdded value: +"Object of the fields to change, any of ``doc``, ``publish_at``,\n``recurrence``, ``cease_at``, ``status`` (``draft``, ``scheduled``,\n``archived``, ``sent``), ``tweet_url``, ``title``. Each value has\nthe same shape ``create_post`` takes." - added
Input schema / properties / post_id / descriptionAdded value: +"The post's UUID." - added
Input schema / properties / text_cache / descriptionAdded value: +"Composed text (blocks joined) to store with a ``doc``\nchange; blank leaves the stored text as it is."
1 tool update
- Added
excalibur_request_echo
2 tool updates
- Changed
excalibur_mint_coupon1 field changed- added
Input schema / properties / tool_idsAdded value: +{ + "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." +}
- Changed
excalibur_update_coupon1 field changed- added
Input schema / properties / tool_idsAdded value: +{ + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null +}
1 tool update
- Added
excalibur_reply_to_conversation
6 tool updates
- Added
excalibur_delete_conversation_query - Added
excalibur_find_conversations - Added
excalibur_list_conversation_queries - Added
excalibur_list_conversations - Added
excalibur_save_conversation_query - Added
excalibur_set_conversation_status
1 tool update
- Changed
excalibur_check_proof_status1 field changed- changed
Input schema / properties / dpop_token / descriptionPrevious value: -"Required. The dpop_token phrase returned by\n``request_npub_proof`` / ``receive_npub_proof``."New value: +"Required. The grant envelope returned by\n``receive_npub_proof``."
1 tool update
- Added
excalibur_scheduler_reissue
1 tool update
- Changed
excalibur_scheduler_check_now1 field changed- changed
Input schema / properties / npub / descriptionPrevious value: -"The OPERATOR's npub (npub1...); this tool is operator-only."New value: +"Your npub (npub1...)."
1 tool update
- Changed
excalibur_list_posts2 fields changed- added
Input schema / properties / sent_hourAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Input schema / properties / time_zoneAdded value: +{ + "default": "", + "type": "string" +}
34 tool updates
- Changed
excalibur_account_statement3 fields changed- added
Input schema / properties / days / descriptionAdded value: +"Number of days of daily usage history to include (default 30)." - added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
excalibur_account_statement_infographic3 fields changed- added
Input schema / properties / days / descriptionAdded value: +"Number of days of daily usage history to include (default 30)." - added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase." - added
Input schema / properties / npub / descriptionAdded value: +"The Nostr public key (npub1...) whose statement to render."
- Changed
excalibur_begin_oauth2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing.\nIts `u` tag must hold THIS tool's exact name (from\ntools/list), not the endpoint URL; content:\"\", created_at\nwithin 60s of now, and a random `nonce` tag recommended. Or a\ncached dpop_token phrase." - added
Input schema / properties / npub / descriptionAdded value: +"Your DPYC patron npub (npub1...)."
- Changed
excalibur_check_balance2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase." - added
Input schema / properties / npub / descriptionAdded value: +"The Nostr public key (npub1...) whose balance to check."
- Changed
excalibur_check_oauth_status2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing.\nIts `u` tag must hold THIS tool's exact name (from\ntools/list), not the endpoint URL; content:\"\", created_at\nwithin 60s of now, and a random `nonce` tag recommended. Or a\ncached dpop_token phrase." - added
Input schema / properties / npub / descriptionAdded value: +"The same Nostr public key (npub1...) used in begin_oauth."
- Changed
excalibur_check_payment3 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase." - added
Input schema / properties / invoice_id / descriptionAdded value: +"The invoice ID returned by purchase_credits." - added
Input schema / properties / npub / descriptionAdded value: +"The Nostr public key (npub1...) that purchased the invoice."
- Changed
excalibur_check_price2 fields changed- added
Input schema / properties / tool_id / descriptionAdded value: +"Either the tool's UUID (from the pricing model) or a\nbare capability string (e.g. ``\"deal_scenario\"``). FE\ncallers usually have the capability name; this resolves\nboth so the FE doesn't need to derive UUIDs locally." - added
Input schema / properties / tool_kwargs / descriptionAdded value: +"Optional JSON object with tool call parameters\nfor ad valorem / categorical-multiplier pricing preview\n(e.g. '{\"amount_sats\": 5000}' or\n'{\"difficulty\": \"sovereign\", \"mode\": \"live\"}')."
- Changed
excalibur_check_proof_status2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Required. The dpop_token phrase returned by\n``request_npub_proof`` / ``receive_npub_proof``." - added
Input schema / properties / patron_npub / descriptionAdded value: +"Required. The patron's npub (npub1...)."
- Changed
excalibur_create_post8 fields changed- added
Input schema / properties / cease_at / descriptionAdded value: +"ISO-8601 stop time for recurrence; null = open-ended." - added
Input schema / properties / client_req_id / descriptionAdded value: +"Idempotency key — re-sending the same id returns the same\npost without a second charge." - added
Input schema / properties / doc / descriptionAdded value: +"The editable Doc — a JSON object whose consumed key is ``blocks``,\na list of block objects. A minimal static post is one block:\n``{\"blocks\": [{\"text\": \"gm. stack sats.\", \"flags\": []}]}``. Blocks\nare joined with a blank line between them to form ``text_cache``.\nEach block:\n - ``text`` (str): the block's copy (for a dynamic block, a prompt).\n - ``flags`` (list): editor highlight regions, each\n ``{\"start\": int, \"end\": int, \"note\": str, \"colorIdx\": int}``\n (char offsets into ``text``) — pass ``[]`` when there are none.\n - ``dynamic`` (bool, optional): when true ``text`` is a prompt the\n server resolves with an LLM at post time; ``fallback`` (str) is\n posted if it fails, and ``domains``/``maxFetches``/``runtimeLimit``\n bound its web access.\nVoice/bans live in your separate Voice profile and the schedule in\n``publish_at``/``recurrence``/``cease_at`` — neither belongs in ``doc``." - added
Input schema / properties / publish_at / descriptionAdded value: +"ISO-8601 first/next publish time; required when status='scheduled'." - added
Input schema / properties / recurrence / descriptionAdded value: +"``{\"freq\": \"daily|weekly|monthly\", \"interval\": n}`` or null." - added
Input schema / properties / status / descriptionAdded value: +"``draft`` or ``scheduled``." - added
Input schema / properties / text_cache / descriptionAdded value: +"Composed text (blocks joined) for scheduler + list excerpts." - added
Input schema / properties / title / descriptionAdded value: +"Optional human label for the post; the list falls back to the\nfirst body line when it is blank."
- Added
excalibur_delete_operator_credential - Changed
excalibur_delete_patron_credential3 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase." - added
Input schema / properties / field / descriptionAdded value: +"The credential field name to remove." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
excalibur_forget_credentials3 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase." - added
Input schema / properties / npub / descriptionAdded value: +"The Nostr public key (npub1...) whose credentials to forget." - added
Input schema / properties / service / descriptionAdded value: +"The credential service to forget."
- Changed
excalibur_get_notarization_proof2 fields changed- added
Input schema / properties / notarization_id / descriptionAdded value: +"The notarization record ID." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
excalibur_get_patron_credential_fields2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
excalibur_get_patron_onboarding_status2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"A kind-27235 Nostr event signed by patron_npub for this tool." - added
Input schema / properties / patron_npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)."
- Changed
excalibur_list_notarizations2 fields changed- added
Input schema / properties / limit / descriptionAdded value: +"Maximum records to return (default 20)." - added
Input schema / properties / status / descriptionAdded value: +"Optional filter (e.g., 'submitted', 'confirmed')."
- Changed
excalibur_mint_coupon6 fields changed- added
Input schema / properties / discount_percent / descriptionAdded value: +"Percentage off the base price (0-100)." - added
Input schema / properties / name / descriptionAdded value: +"The catchy code patrons type to redeem\n(operator-scoped uniqueness)." - added
Input schema / properties / total_uses / descriptionAdded value: +"Aggregate cap across all patrons (default None =\nunlimited)." - added
Input schema / properties / uses_per_patron / descriptionAdded value: +"How many tool calls one patron can claim the\ndiscount on (default 1; pass null/None for unlimited\nwithin the window)." - added
Input schema / properties / valid_from / descriptionAdded value: +"ISO-8601 datetime when the coupon becomes active." - added
Input schema / properties / valid_until / descriptionAdded value: +"ISO-8601 datetime when the coupon expires."
- Changed
excalibur_post_nostr_message1 field changed- added
Input schema / properties / message / descriptionAdded value: +"The note text to publish."
- Changed
excalibur_post_tweet1 field changed- added
Input schema / properties / text / descriptionAdded value: +"Tweet content with optional markdown formatting."
- Changed
excalibur_post_tweet_image3 fields changed- added
Input schema / properties / banner_svg / descriptionAdded value: +"Self-contained SVG markup string, converted to PNG." - added
Input schema / properties / image_url / descriptionAdded value: +"URL of an image to attach to the tweet." - added
Input schema / properties / text / descriptionAdded value: +"Tweet content with optional markdown formatting."
- Changed
excalibur_publish_nostr_profile2 fields changed- added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key the event must be signed by." - added
Input schema / properties / signed_event / descriptionAdded value: +"A JSON-encoded, client-signed kind-0 event."
- Changed
excalibur_purchase_credits3 fields changed- added
Input schema / properties / amount_sats / descriptionAdded value: +"Satoshis to purchase (default 1000)." - added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase." - added
Input schema / properties / npub / descriptionAdded value: +"The Nostr public key (npub1...) the credits will fund."
- Changed
excalibur_receive_credentials4 fields changed- added
Input schema / properties / credential_card / descriptionAdded value: +"Optional. An ncred1... card to redeem directly\n(bypasses the relay drain; dpop_token not needed)." - added
Input schema / properties / dpop_token / descriptionAdded value: +"Required. The session phrase returned by\nrequest_credential_channel for this exact channel." - added
Input schema / properties / sender_npub / descriptionAdded value: +"Required. The npub that sent the credentials." - added
Input schema / properties / service / descriptionAdded value: +"Required. The credential service name (must match\nthe service used in request_credential_channel)."
- Changed
excalibur_receive_npub_proof2 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Required. The dpop_token returned by request_npub_proof." - added
Input schema / properties / patron_npub / descriptionAdded value: +"Required. The patron's npub to receive proof from."
- Changed
excalibur_refine_post_region5 fields changed- added
Input schema / properties / bans / descriptionAdded value: +"Banned constructions — JSON array or comma-separated (optional)." - added
Input schema / properties / full_text / descriptionAdded value: +"The whole tweet, for context." - added
Input schema / properties / instruction / descriptionAdded value: +"What the editor wants changed (optional)." - added
Input schema / properties / region / descriptionAdded value: +"The flagged span to rewrite." - added
Input schema / properties / voice / descriptionAdded value: +"Voice-profile text fed to the model (optional)."
- Changed
excalibur_report_issue5 fields changed- added
Input schema / properties / body / descriptionAdded value: +"The details — which tool, what was wrong, what you expected." - added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase." - added
Input schema / properties / npub / descriptionAdded value: +"Your Nostr public key (npub1...); the report's author of record." - added
Input schema / properties / title / descriptionAdded value: +"One-line summary of the problem." - added
Input schema / properties / tool_name / descriptionAdded value: +"Optional: the specific tool the report is about\n(e.g. \"schwab_get_option_chain\")."
- Changed
excalibur_request_adoption4 fields changed- added
Input schema / properties / authority_npub / descriptionAdded value: +"npub of the Authority to request adoption from." - added
Input schema / properties / dpop_token / descriptionAdded value: +"operator-npub ownership proof (inline kind-27235 or cached token)." - added
Input schema / properties / note / descriptionAdded value: +"optional message for the Authority owner." - added
Input schema / properties / service_url / descriptionAdded value: +"this operator's MCP endpoint (advertised to the Authority)."
- Changed
excalibur_request_credential_channel2 fields changed- added
Input schema / properties / sender_npub / descriptionAdded value: +"Required. The npub to send the template to." - added
Input schema / properties / service / descriptionAdded value: +"Required. The credential service name (e.g.,\nfrom get_operator_onboarding_status or get_patron_onboarding_status)."
- Changed
excalibur_request_npub_proof3 fields changed- added
Input schema / properties / patron_npub / descriptionAdded value: +"Required. The patron's npub to request proof from." - added
Input schema / properties / reason / descriptionAdded value: +"Optional. A human-readable purpose for the request\n(\"I'm working on your request XYZ and need the Operator to do\nABC for you\"). Signed into the provenance attestation and shown\nin the DM, so the recipient sees *why* they are being asked —\nespecially useful when the signer is unknown to them." - added
Input schema / properties / verify_at / descriptionAdded value: +"Optional. A free-form statement of WHERE you (the\ninitiating agent) already showed this proof's one-time code to\nthe user — a URL, or \"your Claude.ai conversation\", \"the Grok\nsession\". The OAuth 2.0 Device Grant ``verification_uri``,\ngeneralized: the user approves only if the code in the DM matches\nthe one you displayed there, so an unsolicited request they've\nnever seen is refused. Signed into the attestation."
- Changed
excalibur_resolve_dynamic_block6 fields changed- added
Input schema / properties / allowed_domains / descriptionAdded value: +"Author allowlist for web_fetch — JSON array or\ncomma-separated. Blank = fetch any URL the prompt references." - added
Input schema / properties / bans / descriptionAdded value: +"Banned constructions — JSON array or comma-separated (optional)." - added
Input schema / properties / context / descriptionAdded value: +"The surrounding composed post (may contain the ⟨HERE⟩ marker)." - added
Input schema / properties / max_fetches / descriptionAdded value: +"Author budget for web lookups (search + fetch), 1..25." - added
Input schema / properties / prompt / descriptionAdded value: +"The dynamic block's prompt to run." - added
Input schema / properties / voice / descriptionAdded value: +"Voice-profile text fed to the model (optional)."
- Changed
excalibur_restore_credits3 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"A kind-27235 Nostr event signed by the OPERATOR's nsec\nfor this tool. Patron proofs are rejected." - added
Input schema / properties / invoice_id / descriptionAdded value: +"The BTCPay invoice ID to verify and credit." - added
Input schema / properties / patron_npub / descriptionAdded value: +"The patron's npub whose ledger receives the grant."
- Changed
excalibur_session_status1 field changed- added
Input schema / properties / patron_npub / descriptionAdded value: +"Optional. If supplied, the response includes an\n``upstream_oauth`` block with the patron's stored OAuth\ntoken expiry (runtime-derived from vault state) so a\nclient can refresh proactively rather than reactively\nafter a stale-token failure."
- Changed
excalibur_update_operator_credential3 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Operator proof for this tool." - added
Input schema / properties / field / descriptionAdded value: +"The operator credential field to set. Must be declared\nin the operator's credential template." - added
Input schema / properties / value / descriptionAdded value: +"The value to store."
- Changed
excalibur_update_patron_credential4 fields changed- added
Input schema / properties / dpop_token / descriptionAdded value: +"Raw JSON of a kind-27235 Nostr event signed by npub —\nnot base64, not NIP-98 'Authorization: Nostr <b64>' framing. Its\n`u` tag must hold THIS tool's exact name (from tools/list), not\nthe endpoint URL; content:\"\", created_at within 60s of now, and a\nrandom `nonce` tag recommended. Or a cached dpop_token phrase." - added
Input schema / properties / field / descriptionAdded value: +"The credential field name to set." - added
Input schema / properties / npub / descriptionAdded value: +"The patron's Nostr public key (npub1...)." - added
Input schema / properties / value / descriptionAdded value: +"The value to store."
1 tool update
- Added
excalibur_update_operator_credential
1 tool update
- Changed
excalibur_resolve_dynamic_block1 field changed- changed
Input schema / properties / runtime_limit_seconds / descriptionPrevious value: -"Author's time budget for this block in seconds (60–900). Bounds how long the job may run AND sets the poll cadence; the operator may price it ad valorem."New value: +"Author's time budget for this block in seconds (60–1800). Bounds how long the job may run AND sets the poll cadence; the operator may price it ad valorem."
4 tool updates
- Added
excalibur_get_post_metrics - Added
excalibur_harvest_metrics - Added
excalibur_post_performance - Added
excalibur_post_performance_infographic
Related MCP Connectors
Hosted X (Twitter) MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Multi-tenant FastMCP server for Charles Schwab brokerage data, monetized via DPYC Tollbooth
- PostHeroOAuthai.posthero
PostHero MCP server — schedule and publish social media posts from any MCP-compatible AI tool
Twitter/X read-only MCP server — 12 tools: search, users, tweets, followers, timelines, trends.
Related MCP Servers
- AlicenseAqualityDmaintenanceA minimal MCP server for posting tweets to X (Twitter) via API v2, supporting tweet creation, replies, and quote tweets.18 npmMIT
- AlicenseAqualityAmaintenanceMCP server to read X (Twitter) posts, threads, replies, quotes, and search using your own logged-in session, no API key required.851 PyPI3MIT
- AlicenseBqualityDmaintenanceMCP server for interacting with the X platform (Twitter) via MCP clients like Claude, Cursor AI, and Windsurf AI.201 npm6MIT
- AlicenseCqualityDmaintenanceA Model Context Protocol (MCP) server for managing social media posts, currently supporting X (formerly Twitter).37MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.