excalibur-mcp
Server Details
FastMCP server for posting formatted content to X (Twitter) — Tollbooth-monetized, DPYC-native
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.2/5 across 67 of 67 tools scored. Lowest: 3/5.
Each tool has a clearly distinct purpose, targeting a specific resource and action. Despite the large number, there is no ambiguity between tools; even similar operations (e.g., different credential management tools) are clearly separated by their descriptions.
All tools follow a consistent snake_case verb_noun pattern prefixed with 'excalibur_'. The naming is predictable and uniform across the entire set, making it easy for an agent to infer tool functionality from the name.
With 67 tools, the server is very large. While the domain is broad (covering posts, snippets, coupons, credentials, OAuth, notarization, oracle, etc.), many tools are administrative or free. The count is high but each tool appears necessary for the intended functionality, though some merging might be possible.
The tool surface covers CRUD for posts, snippets, coupons, and credentials, plus OAuth, proof of ownership, pricing, scheduling, notarization, and oracle queries. Minor gaps exist (e.g., no duplicate or share post), but the core lifecycle for all primary resources is well covered.
Available Tools
67 toolsexcalibur_account_statementAInspect
Generate a patron's account statement at this operator.
Returns the patron's purchase history, active credit tranches, per-tool usage breakdown, and recent daily usage logs. This is the patron's spending account — not the operator's Authority tax balance.
Free — no credits consumed. Proof of npub ownership is required to prevent statement-scraping of arbitrary patrons.
Args: npub: The patron's Nostr public key (npub1...). dpop_token: A kind-27235 Nostr event signed by npub for this tool. days: Number of days of daily usage history to include (default 30).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| npub | Yes | ||
| dpop_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses key behavioral traits: free (no credits consumed), requires dpop_token for authentication, and returns a structured statement. Since no annotations are present, the description carries full burden and adequately conveys that it is a read-only, authenticated query. Could mention rate limits or idempotency but not required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Moderately concise with clear structure (intro, differentiation, cost note, auth note, then arg list). However, the arg list could be integrated more succinctly, and the 'Free — no credits consumed' sentence could be combined with the note about proof.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description need not explain return format. It already details the returned data (purchase history, credit tranches, per-tool usage, daily logs) and provides authentication context. No gaps in information needed for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant meaning beyond the schema: explains npub as Nostr public key format, dpop_token as a kind-27235 event signed by the npub, and days as number of daily usage history days with a default of 30. All three parameters are fully described despite 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool generates a patron's account statement and lists the content returned. Distinguishes from the operator's Authority tax balance. However, does not explicitly differentiate from the sibling tool 'excalibur_account_statement_infographic', which likely produces a formatted infographic instead of raw data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions that the tool is free and requires proof of npub ownership via a dpop_token, implying authentication needs. Provides some context for when to use (e.g., not for Authority balance), but no explicit when-to-use or when-not-to-use guidance relative to sibling tools like the infographic version.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_account_statement_infographicAInspect
Generate a visual SVG infographic of your account statement.
Returns the same data as account_statement, rendered as a dark-themed
SVG graphic with balance hero, metrics cards, health gauge, tranche
table, and tool usage breakdown. Costs 1 api_sat per call. Proof is
verified by debit_or_deny before any cost is incurred.
Args: npub: The Nostr public key (npub1...) whose statement to render. dpop_token: A kind-27235 Nostr event signed by npub for this tool. days: Number of days of daily usage history to include (default 30).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| npub | Yes | ||
| dpop_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses output components, cost, and verification mechanism fully. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Efficiently front-loaded with summary, followed by output details, cost, and parameter list. No superfluous text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, parameters, output nature, cost, verification. Output schema exists, so return values not needed. Complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description provides complete parameter explanations with meaning and defaults, adding substantial value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Starts with 'Generate a visual SVG infographic of your account statement', clearly stating verb and resource. Distinguishes from sibling 'excalibur_account_statement' which likely returns raw data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for visual output instead of raw data, mentions cost and verification, but lacks explicit when-not or alternatives beyond the sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_adoption_statusBInspect
Check this operator's adoption-request status at a chosen Authority.
Free. Polls the Authority MCP-to-MCP for the status of this operator's request (pending / approved / rejected / provisioned).
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No | ||
| authority_npub | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses it is a polling operation (network call) and lists possible statuses. However, it does not mention side effects, authorization requirements (dpop_token unexplained), error behavior, or rate limits. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, front-loaded sentences with no unnecessary text. Every word adds value: verb, resource, notable characteristics (free, poll, statuses). Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (not shown), return values are covered. However, parameter details (especially dpop_token) are missing, and prerequisites or error conditions are not mentioned. Adequate for a simple tool but lacking nuance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%; the description partially compensates by implying authority_npub refers to a 'chosen Authority', but does not explain format or purpose of dpop_token (which has a default). Incomplete parameter documentation beyond inferred context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Check' and the resource 'adoption-request status' with specific context of 'chosen Authority'. It enumerates possible statuses (pending/approved/rejected/provisioned), uniquely identifying this tool among siblings like 'excalibur_get_operator_onboarding_status'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Minimal usage guidance: the description mentions it is 'Free' and 'Polls the Authority', but does not specify when to use versus alternatives (e.g., similar status checks) or provide explicit when-not conditions. No sibling differentiation beyond the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_begin_oauthAInspect
Start the OAuth2 authorization flow.
Returns an authorization URL. Open it in a browser to log in
and authorize. Then call check_oauth_status with the
same npub to complete. Free. Proof of npub ownership is
required so an observer cannot DOS your account by
initiating OAuth flows in your name.
Do NOT call this pre-emptively. If a session may still be valid,
attempt the live tool call first and only begin OAuth when it
fails with upstream_auth_refresh_needed. A 'pending'
check_oauth_status is not evidence that an existing session
has lapsed.
Args: npub: Your DPYC patron npub (npub1...). dpop_token: A kind-27235 Nostr event signed by npub for this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| dpop_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that the tool is free and requires proof of npub ownership to prevent DOS. However, it does not mention expiration of the authorization URL or specific error handling beyond what is stated. Without annotations, the description carries full burden and does a good job but lacks some details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with front-loaded purpose. Each sentence adds value: purpose, flow, cost, security note, and usage guidelines. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers the essential aspects: purpose, parameters, usage conditions, and next steps. It is adequately complete but could mention URL expiry or error responses.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but description adds meaning: npub is 'Your DPYC patron npub (npub1...)' and dpop_token is 'A kind-27235 Nostr event signed by npub for this tool'. This provides helpful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Start the OAuth2 authorization flow' and explains the flow including returning a URL and calling check_oauth_status. Distinguishes itself from sibling check_oauth_status by explicitly mentioning it as the next step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: do not call pre-emptively, try live tool call first and only begin OAuth when it fails with 'upstream_auth_refresh_needed'. Also clarifies that a pending check_oauth_status is not evidence of a lapsed session.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_check_authority_balanceAInspect
Check this operator's tax balance at the Authority.
Returns the sats available for certifying patron credit purchases. When this balance reaches zero, patron top-ups cannot be certified and the operator must call purchase_credits on the Authority.
This is the operator's own funding — not a patron balance. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it returns available sats, the effect of zero balance, and clarifies it's operator's own funding (not patron balance). It also notes 'Free,' indicating no cost. Since no annotations are provided, the description carries the full burden and does so well, though it could mention idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main action and consists of four concise sentences, each adding essential information: purpose, return value, business implication, and clarification. No redundant words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and an existing output schema, the description covers the purpose, return value, business context, and common pitfalls. It is fully sufficient for an agent to understand when and how to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description need not explain parameters. The instruction states baseline 4 for 0 params, and the description adds no parameter information, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Check this operator's tax balance at the Authority,' specifying the exact resource and action. It distinguishes from siblings like 'excalibur_check_balance' by focusing on the authority tax balance and its role in certifying patron credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to check operator funding for patron credits) and mentions a consequence when balance is zero, but does not explicitly state when not to use it or compare with alternatives like 'excalibur_check_balance' or 'excalibur_check_payment'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_check_balanceAInspect
Check a patron's credit balance at this operator.
This is the patron's spending balance — credits purchased via Lightning for tool calls at this operator. For the operator's own balance at the Authority (needed to certify patron purchases), use authority_check_balance instead.
Free — no credits required. Proof of npub ownership is required to prevent anyone-with-the-registry from enumerating balances.
Args: npub: The Nostr public key (npub1...) whose balance to check. dpop_token: A kind-27235 Nostr event signed by npub for this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| dpop_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses key behavioral traits: it is a read operation (check balance), it is free (no credits required), and requires authentication via dpop_token. However, it does not mention error handling for invalid tokens or nonexistent npubs. Given no annotations, the description does well.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with paragraphs and an Args section, front-loading the core purpose. It is informative without being verbose, though minor redundancy exists (e.g., re-explaining dpop_token in Args).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers input, authentication, and distinction from sibling. Given output schema exists, it is sufficient for a balance check tool. It could mention the unit of balance, but the output schema likely handles that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description adds full semantic meaning: npub is the Nostr public key whose balance to check, and dpop_token is a kind-27235 Nostr event signed by npub for this tool. This adds substantial value over the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks a patron's credit balance at the operator, distinguishing it from sibling authority_check_balance by specifying it is the spending balance. The verb 'check' and resource 'credit balance' are specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance, clarifying that this tool is for patron balance and not for operator's authority balance, with a direct alternative named (authority_check_balance). It also notes that tool is free and requires proof of npub ownership.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_check_oauth_statusAInspect
Check whether the OAuth2 authorization flow has completed.
Call after opening the authorization URL from begin_oauth
and completing the login in your browser. Free. Proof of npub
ownership is required: OAuth status exposes which upstream
services a patron has connected.
A 'pending' result here does NOT prove an existing session has
lapsed — it only reports this authorization attempt. To find out
whether a session still works, attempt the live call; fall back
to begin_oauth only on an explicit
upstream_auth_refresh_needed error.
Args: npub: The same Nostr public key (npub1...) used in begin_oauth. dpop_token: A kind-27235 Nostr event signed by npub for this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| dpop_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses important behaviors: it is free, requires proof of npub ownership, and explains the interpretation of results. It does not explicitly label itself as read-only, but the context strongly implies it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with purpose, usage, clarification, and parameter docs. It is slightly lengthy but every sentence adds value; could be trimmed slightly but remains effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description covers purpose, usage, nuances, and parameter meanings. It lacks explicit error handling or authentication details but is sufficient for the OAuth context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema coverage, the description fully explains both parameters: npub must match the one used in begin_oauth, and dpop_token is a Nostr event. This adds essential meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Check whether the OAuth2 authorization flow has completed.' It distinguishes from sibling tools like begin_oauth and session_status by specifying the context and what it does not indicate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call after completing login from begin_oauth, and clarifies that a 'pending' result does not imply session lapse, recommending fallback only on specific errors. Provides clear when-to-use and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_check_paymentAInspect
Check the payment status of a Lightning invoice.
Call after paying the invoice from purchase_credits. Free — no credits required. Proof of npub ownership is required to prevent credit-grant front-running by an observer of the invoice ID.
Args: invoice_id: The invoice ID returned by purchase_credits. npub: The Nostr public key (npub1...) that purchased the invoice. dpop_token: A kind-27235 Nostr event signed by npub for this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| dpop_token | Yes | ||
| invoice_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description discloses free usage, proof-of-npub ownership requirement, and dpop_token rationale. Could specify return value details or error cases.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Structured with intro and Args section, each sentence adds value. Slightly verbose in dpop_token justification but overall concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Has output schema, so return values need no explanation. Description covers tool purpose, usage timing, and all parameter details sufficiently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 0% description coverage, but the description compensates fully by explaining each parameter (invoice_id, npub, dpop_token) including their source and purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks Lightning invoice payment status, specifies it should be called after purchase_credits, and distinguishes it from siblings like excalibur_purchase_credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call after paying the invoice from purchase_credits' and mentions prerequisites (npub ownership, dpop token). Lacks explicit when-not-to-use but provides adequate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_check_priceAInspect
Preview the effective cost of a tool call.
Shows the base cost and any constraint effects (discounts, free trials, surge pricing). Free — no credits required.
Args:
tool_id: Either the tool's UUID (from the pricing model) or a
bare capability string (e.g. "deal_scenario"). FE
callers usually have the capability name; this resolves
both so the FE doesn't need to derive UUIDs locally.
tool_kwargs: Optional JSON object with tool call parameters
for ad valorem / categorical-multiplier pricing preview
(e.g. '{"amount_sats": 5000}' or
'{"difficulty": "sovereign", "mode": "live"}').
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | ||
| tool_id | Yes | ||
| dpop_token | No | ||
| tool_kwargs | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description reveals it is free and shows base cost and constraint effects. However, it does not mention any prerequisites, potential errors, or whether authentication is needed. Annotations are absent, so description carries full burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, well-structured with an Args section. Every sentence adds value, no fluff. Efficiently communicates purpose and parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequately explains what the tool does and how parameters work. Output schema exists (though not shown), so return format is covered. Could mention that it is a read-only preview, but overall sufficient for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Explains tool_id as UUID or capability string, and tool_kwargs as optional JSON for pricing preview. This adds meaning beyond schema types. npub and dpop_token have defaults but are not described, but overall good coverage for key parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it previews the effective cost of a tool call, including base cost and constraint effects. Distinct from sibling tools that handle other operations like balance checks or post creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied usage for checking cost before calling a tool, but no explicit guidance on when to use this vs other related tools like excalibur_check_balance or excalibur_check_payment. Lacks when-not-to-use or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_check_proof_statusAInspect
Check whether a previously-cached dpop_token is still valid.
Mirrors check_oauth_status for the npub-proof flow: a calling
agent can ask "will my next paid call accept this dpop_token?"
before burning credits on a guaranteed failure.
Free, no side effects — does not evict the cache or touch relays.
Args:
patron_npub: Required. The patron's npub (npub1...).
dpop_token: Required. The dpop_token phrase returned by
request_npub_proof / receive_npub_proof.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No | ||
| patron_npub | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavior: 'Free, no side effects — does not evict the cache or touch relays.' This adds important context for an agent. Could be slightly more explicit about the return value format, but it's sufficient for a status check.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, front-loading the purpose in the first sentence. The Args section is structured but not overly verbose. One could argue the code-block formatting is slightly redundant with the schema, but overall it's well-organized and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema, the description need not detail return values. It covers purpose, usage timing, parameters, and behavioral traits (free, no side effects). For a simple status-checking tool, this is fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% (no parameter descriptions), but the description adds thorough details: both parameters are labeled required (contrary to schema defaults), 'patron_npub' is described as npub1... format, and 'dpop_token' is connected to specific tool outputs (request_npub_proof/receive_npub_proof). This adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks if a cached dpop_token is still valid, using verb 'check' and specific resource. It distinguishes from sibling 'check_oauth_status' by noting this is for the npub-proof flow, making purpose clear and differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage context: 'ask if next paid call will accept dpop_token before burning credits on guaranteed failure.' It also mentions it mirrors check_oauth_status and is free with no side effects. However, it does not explicitly list when not to use or alternative tools, though the flow is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_create_postBInspect
Store a new post (draft or scheduled). Returns its post_id.
Args:
doc: The editable Doc (blocks + flags + voice + bans + schedule).
text_cache: Composed text (blocks joined) for scheduler + list excerpts.
publish_at: ISO-8601 first/next publish time; required when status='scheduled'.
recurrence: {"freq": "daily|weekly|monthly", "interval": n} or null.
cease_at: ISO-8601 stop time for recurrence; null = open-ended.
status: draft or scheduled.
client_req_id: Idempotency key — re-sending the same id returns the same
post without a second charge.
title: Optional human label for the post; the list falls back to the
first body line when it is blank.
npub: Your DPYC patron Nostr public key for credit attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | ||
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| title | No | ||
| status | No | draft | |
| cease_at | No | ||
| tweet_url | No | ||
| dpop_token | No | ||
| publish_at | No | ||
| recurrence | No | ||
| text_cache | No | ||
| client_req_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description covers idempotency with client_req_id and billing implication, but omits details on authorization, error handling, or side effects of creating a post. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is structured as a docstring with clear sections and front-loaded purpose. While slightly long for the parameter count, each sentence adds value. Efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 11 parameters, 1 required, and nested objects, the description explains most parameters and key conditions (e.g., publish_at for scheduled status). Output schema exists but isn't detailed in description, which is acceptable. Lacks error scenarios.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 9%, but description provides meaningful explanations for most parameters in Args section (e.g., doc, text_cache, publish_at, recurrence, client_req_id). However, tweet_url and dpop_token are not described, leaving gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it creates a new post (draft or scheduled) and returns its post_id. However, it does not explicitly distinguish from the sibling tool excalibur_update_post for updates, leaving slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. Given the sibling excalibur_update_post exists for updates and excalibur_process_scheduled_posts for processing, the description lacks contextual cues for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_delete_couponAInspect
Delete a coupon. Cascades to all patron redemptions.
Any chain step referencing the deleted coupon_id becomes a no-op (the constraint returns neutral on unknown ids) — the Studio surfaces orphan references as warnings.
RESTRICTED to operator — requires proof.
| Name | Required | Description | Default |
|---|---|---|---|
| coupon_id | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses cascading deletion, effect on chain steps (no-op with neutral constraint), and that the Studio shows orphan warnings. It clearly implies destructive behavior, though it does not mention idempotency or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences. It front-loads the purpose, then explains side effects, and concludes with access restrictions. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Considering the tool has only two parameters and an output schema (not shown), the description covers the critical behavioral aspects. However, it omits explanation of the dpop_token parameter and does not describe return values or error states, which is a gap for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description only implicitly covers coupon_id ('Delete a coupon') but provides no explanation for the dpop_token parameter. Users must infer its purpose from context, which is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Delete a coupon' with a specific verb and resource. It also mentions cascading to all patron redemptions, which distinguishes it from other coupon-related tools like excalibur_forget_coupon or excalibur_update_coupon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates that this tool is 'RESTRICTED to operator' and 'requires proof', implying authorization requirements. It implicitly warns of severe effects (cascade), but does not explicitly compare to alternatives like excalibur_forget_coupon for when to use which.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_delete_patron_credentialAInspect
Remove a single patron credential field.
Deletes one field from stored credentials without affecting other fields. Free. Proof of npub ownership is required — this is a write to the patron's sensitive credential vault.
Args: npub: The patron's Nostr public key (npub1...). dpop_token: A kind-27235 Nostr event signed by npub for this tool. field: The credential field name to remove.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| field | Yes | ||
| dpop_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses that the tool is a write operation to a sensitive vault, is free, requires proof of ownership, and deletes without affecting other fields. This covers key behavioral aspects adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief, front-loads the action, and uses clear bullet points for arguments. No unnecessary words—every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation, the description covers purpose, usage, behavior, and parameters completely. An output schema exists, so return values need not be described. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description compensates by explaining each parameter: npub format (npub1...), dpop_token as a kind-27235 Nostr event, and field as a credential field name. This adds significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool removes a single patron credential field, distinguishing it from sibling tools like excalibur_forget_credentials (removes all) and excalibur_update_patron_credential (updates). The verb 'remove' and resource 'patron credential field' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies when to use (delete a credential field) and a prerequisite (proof of npub ownership via dpop_token). It does not explicitly list alternatives, but the sibling tools provide context. The guidance is clear enough for typical use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_delete_postAInspect
Delete a stored post. Default is a soft delete (status='archived');
pass hard=True to remove the row permanently.
| Name | Required | Description | Default |
|---|---|---|---|
| hard | No | ||
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| post_id | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description clearly discloses the two deletion modes and that soft delete sets status='archived'. It does not cover authentication or error conditions but is adequate for the core behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no fluff. The first sentence immediately states the tool's purpose, and the second explains the parameter distinction. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description covers the main action and parameter distinction. Missing are prerequisites (e.g., post must exist) and potential errors, but these are minor omissions for a deletion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning to the 'hard' parameter, explaining its effect. The npub parameter is already described in the schema (credit billing). Post_id and dpop_token lack clarification, but the key behavioral parameter is well explained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool deletes a stored post, with a clear distinction between soft delete (archiving) and hard delete (permanent removal). This differentiates it from sibling tools like update_post or create_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explains the default behavior (soft delete) and how to perform a hard delete via the 'hard' parameter. However, no explicit guidance is given on when to use delete versus other tools like update_post for archiving.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_delete_snippetBInspect
Delete one of your saved snippets by id. Free and owner-scoped.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| dpop_token | No | ||
| snippet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only mentions 'Free and owner-scoped' but omits details like irreversibility, side effects, or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no waste. Could be more structured but effective for a simple operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists so return values are covered. The description is adequate for a simple delete with one required param, but lacks detail on optional params.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 33% (only npub described). Description adds no meaning for npub, dpop_token, or snippet_id beyond the tool action, failing to compensate for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb (delete), resource (snippets), and condition (by id). It differentiates from siblings like save_snippet, get_snippet, list_snippets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description says 'owner-scoped' implying use only on own snippets, but no explicit guidance on when to use vs alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_fetch_dynamic_blockAInspect
Redeem a resolve_dynamic_block claim check (free, proof-gated).
Poll this with the claim_check from resolve_dynamic_block until
status == "done" (the resolved fragment is result.text). While the
job runs it returns {"status": "running", "poll_after_seconds": N}; on
failure {"status": "error", ...} (the start fare is refunded); an unknown
or aged-out claim returns {"status": "expired", ...}. Owner-scoped — only
the npub that started the job can redeem it. Also acts as the watchdog: a
stalled job is re-kicked when polled.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| dpop_token | No | ||
| claim_check | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Provides detailed behavioral information: polling expectation, statuses (running, error with refund, expired), owner scoping, and watchdog re-kick behavior. No annotations provided, so the description carries the full burden and does so thoroughly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused paragraph that front-loads the core purpose, uses code formatting for readability, and every sentence adds necessary detail without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite an output schema existing, the description still covers return format via status examples and covers all key aspects: usage pattern, statuses, owner restriction, and watchdog behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), and the description adds meaning to claim_check (source from resolve_dynamic_block) but does not explain npub or dpop_token beyond the minimal schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's verb+resource ('Redeem a resolve_dynamic_block claim check'), effectively differentiating it from its sibling resolve_dynamic_block, which creates the claim.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies that the claim_check comes from resolve_dynamic_block and that the tool is owner-scoped, but it does not explicitly exclude alternative uses or mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_forget_couponAInspect
Remove a coupon from this patron's redemption list.
Cosmetic only — the coupon itself still exists at the operator,
and the patron can re-redeem the same code later while the
window allows. Free — requires proof of npub.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| coupon_id | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behavioral traits: the operation is cosmetic (non-destructive), the coupon still exists at the operator, re-redeem is possible, and it requires proof of npub. This is sufficient for this relatively simple tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, each providing essential information. It is front-loaded with the main action and additional details are concise and relevant. No superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (though not shown), the description need not explain return values. The tool's purpose is simple removal from a list, and the description covers behavior, limitations, and prerequisites. It is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain parameters. It mentions npub but does not explain coupon_id or dpop_token. The names are somewhat self-explanatory, but dpop_token's purpose is unclear. The description fails to add semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Remove a coupon from this patron's redemption list'), which is specific and distinguishes from sibling tools like delete_coupon (which likely deletes the coupon entirely) and redeem_coupon (which adds a coupon).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context: it is cosmetic only, the coupon still exists, and the patron can re-redeem later. It also mentions the requirement for npub. However, it does not explicitly state when not to use it or name alternatives like delete_coupon for permanent deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_forget_credentialsAInspect
Delete vaulted credentials for a specific service and npub.
For operator credentials, pass the operator's own npub. For patron credentials, pass the patron's npub. Always requires proof of npub ownership — a deletion is as destructive as a write.
Args: service: The credential service to forget. npub: The Nostr public key (npub1...) whose credentials to forget. dpop_token: A kind-27235 Nostr event signed by npub for this tool. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| service | Yes | ||
| dpop_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses crucial behavioral traits: deletion is destructive ('as destructive as a write') and requires proof of npub ownership via dpop_token. With no annotations provided, the description adequately shoulders the transparency burden by highlighting these risks.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise yet comprehensive: five sentences plus structured Args. Every sentence adds value—no redundancy. Front-loaded with the core action, followed by clarifying instructions. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential aspects: what the tool does, how to use parameters, destructive nature, and auth requirement. With an output schema present, return values are likely covered. Missing error conditions, but overall complete enough for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaningful context to all three parameters beyond the empty schema: explains that 'npub' can be operator or patron, 'service' is the credential service, and 'dpop_token' is a kind-27235 event. This compensates for the 0% schema description coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action 'Delete vaulted credentials' and specifies the scope 'for a specific service and npub'. Distinguishes between operator and patron credentials, providing precise context. The tool name 'forget_credentials' is distinct among siblings, and the description reinforces this uniqueness.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use operator vs. patron npub, and emphasizes the necessity of the dpop_token for proof of ownership. Although it does not directly mention alternatives, the instructions are clear enough to prevent misuse.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_nostr_profileAInspect
Read an npub's public Nostr profile (NIP-01 kind-0 metadata).
Free, no proof — the data is already public on relays. Returns the latest metadata fields (name, display_name, about, picture, banner, nip05, website, lud16) or an empty profile if none is published.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses it reads public data without side effects and lists returned fields. Lacks details on error handling (invalid npub) or relay dependency, but adequately covers basic behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first defines purpose and reference, second explains cost and response. Concise, no redundant information, well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity, one optional parameter, and output schema present, description covers enough: purpose, input, cost, and return behavior. Minor omission of error conditions, but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. Describes 'npub' as a Nostr public key but does not specify format (bech32) or constraints. Adds some meaning but not fully detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it reads a Nostr profile using an npub, specifying the resource and verb. Distinguishes from sibling tools like excalibur_publish_nostr_profile (write) and excalibur_get_x_profile (Twitter/X).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions it is free and requires no proof, implying it can be used freely for public data. However, does not explicitly state when not to use or provide alternatives, leaving usage somewhat implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_notarization_proofAInspect
Generate a Merkle inclusion proof that a patron's balance was included in a Bitcoin-notarized snapshot.
Args: notarization_id: The notarization record ID. npub: The patron's Nostr public key (npub1...).
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| notarization_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It describes the tool as generating a proof, which is likely a read-only operation, but it does not disclose side effects, rate limits, or authorization requirements. Basic transparency is present but could be richer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a brief sentence explaining the purpose, followed by an 'Args' section for parameters. Every sentence adds value, and the purpose is front-loaded. There is no unnecessary text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (documenting return values) and the tool is relatively simple, the description is mostly complete. However, it could benefit from a usage hint (e.g., 'Use after notarization') to improve context but is sufficient for an agent with sibling tool awareness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the tool description provides brief, clear explanations for both parameters ('notarization_id' and 'npub'), adding meaning beyond the raw schema types. This helps the agent understand what values to provide, though format constraints are not discussed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: generating a Merkle inclusion proof for a patron's balance in a Bitcoin-notarized snapshot. The verb 'Generate' and object 'Merkle inclusion proof' are specific and distinguish it from related tools like listing notarizations or checking proof status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly state when to use this tool versus alternatives (e.g., after notarization, for verification). The context is implied but not spelled out, leaving room for confusion about prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_operator_onboarding_statusAInspect
Report this operator's configuration readiness.
Shows which operator settings are configured, which are missing, and how to deliver each missing value. For patron-level credential status, use get_patron_onboarding_status instead. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It indicates a read-only reporting operation. The term 'Free' suggests no cost. It does not disclose authorization or error handling, but for a simple status check with no parameters, the description is fairly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no fluff. It front-loads the core purpose and immediately adds actionable detail about what is reported and when to use an alternative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there are no parameters and an output schema exists, the description is complete. It effectively describes what the tool does and distinguishes from a sibling, leaving no obvious gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the baseline is 4. The description adds meaning by explaining what will be reported (configured/missing settings), compensating for the lack of parameter details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'report' and resource 'operator configuration readiness'. It explicitly lists what the tool shows (configured/missing settings and how to deliver) and distinguishes it from the sibling tool 'get_patron_onboarding_status' for patron-level status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent when to use this tool (to check operator readiness) and explicitly points to the alternative sibling for patron-level status. However, it does not provide broader context like when not to use it or other possible alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_patron_credential_fieldsAInspect
List stored patron credential field names (not values).
Returns the names of fields stored for a patron. Values are never exposed — use this to verify which fields are configured. Free. Proof of npub ownership is required: the list of configured fields is itself sensitive (reveals which integrations a patron has set up).
Args: npub: The patron's Nostr public key (npub1...). dpop_token: A kind-27235 Nostr event signed by npub for this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| dpop_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses key behaviors: read-only (never exposes values), requires proof of ownership via dpop_token, is free, and notes the sensitivity of exposed field names. This fully informs the agent of behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise with no wasted words. Front-loads the main action and uses a clear structure with 'Args:' for parameters. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 2 parameters, no annotations, and an output schema, the description is complete: covers purpose, safety, authentication, parameter details. With output schema present, return values are adequately handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds inline parameter explanations: npub as 'The patron's Nostr public key (npub1...)' and dpop_token as 'A kind-27235 Nostr event signed by npub for this tool.' This adds significant semantic meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists stored patron credential field names, explicitly noting that values are not exposed, and differentiates from siblings by focusing on credential fields. The verb 'list' and resource 'patron credential field names' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context on when to use: 'use this to verify which fields are configured.' Mentions that values are never exposed, implying proper use. Does not explicitly exclude alternatives or mention siblings, but context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_patron_onboarding_statusAInspect
Report a patron's credential readiness for this operator.
For set-once services (eXcalibur, TheBrain), shows which patron secrets are configured and which are missing. For dynamic/OAuth2 services (Schwab), reports that no patron credentials are needed. Free. Proof of npub ownership is required because credential presence is sensitive information about the patron's setup.
Args: patron_npub: The patron's Nostr public key (npub1...). dpop_token: A kind-27235 Nostr event signed by patron_npub for this tool.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | Yes | ||
| patron_npub | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description fully bears the burden. It explains that the operation is read-only, free, and requires a dpop_token for authentication. It also explains why proof of ownership is needed due to sensitivity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear summary first, then details, then parameter definitions. Every sentence adds value without unnecessary repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description covers all essential aspects: purpose, usage scenarios, behavioral requirements, and parameter semantics. It is sufficiently complete for an AI agent to understand and invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema coverage, the description compensates fully by defining each parameter in the Args section, including format and purpose for patron_npub and dpop_token. This adds significant meaning beyond the schema's basic type info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports a patron's credential readiness for the operator, with specific details for set-once vs dynamic services. It distinguishes itself from sibling tools by focusing on readiness rather than updates or credential management.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to check credential readiness) and notes that proof of npub ownership is required. It does not explicitly mention when not to use or compare to alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_postBInspect
Read one stored post by id (owner-scoped).
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| post_id | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states it's a read operation (non-destructive) and owner-scoped, but fails to disclose authentication requirements (npub needed), error behavior (e.g., missing post), or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence front-loaded with verb and resource. Every word earns its place; no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, so return values are covered. Description gives basic purpose but lacks context on npub usage, owner-scoping implications, or typical use cases. Adequate for a simple tool but could be richer.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 33% (only npub has a description). Description does not add any parameter details beyond the schema, leaving post_id and dpop_token meaning unclear. Baseline for moderate coverage is 3, but lack of compensation reduces score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Read', resource 'one stored post', and scoping 'by id (owner-scoped)'. This distinguishes it from sibling tools like excalibur_list_posts (list) and excalibur_create_post (create).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage (reading a single post by ID) but does not explicitly state when to use it vs. alternatives (e.g., excalibur_list_posts) or any preconditions like authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_pricing_modelAInspect
Get the active pricing model for this operator. Free.
If no model exists, self-initializes a scaffold with all registered tools at 0 sats. No economic data from code.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses self-initialization side effect when no model exists and notes it's free. However, 'No economic data from code' is unclear, and the description does not explicitly state the tool is read-only despite having a side effect. Annotations are absent, so the description carries full burden but falls short.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences covering purpose, default behavior, and an additional note. Front-loaded with main action. The third sentence is slightly cryptic but overall efficient and concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, the description covers key behaviors (free, self-initializing) and implies a read operation. An output schema exists, so explaining return values is not required. Adequate for a simple getter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist (schema coverage 100%), and the description adds meaningful context about the tool's behavior (self-initialization, free) beyond what the schema provides. Baseline 4 for zero parameters is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the active pricing model for the operator, with specific verbs 'get' and 'active'. It distinguishes from siblings like set_pricing_model and reset_pricing_model by implying a read-only retrieval operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives (e.g., set_pricing_model or reset_pricing_model). The description implies it's for viewing, but lacks direct differentiation or usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_scheduler_logAInspect
Read recent scheduler-tick outcomes.
Each process_scheduled_posts run — fired by the Cloudflare cron Worker or
a manual trigger — records its summary. This surfaces them so the FE debug
log can show what the Worker is doing: the per-tick heartbeat (proof it ran)
and per-post outcomes (posted / skip+error reasons like
insufficient_balance or oauth_token_expired).
Owner-scoped: the operator sees every tick in full; any other proven patron
sees the global heartbeat (processed count + run_at) plus only the
per-post entries for THEIR OWN posts. Free; npub proof required. Returns
{runs:[{run_at, summary}], scope}.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Your npub (npub1...). | |
| limit | No | How many recent runs to return (1..100). | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses scoping rules, required identity proof, and the return structure ({runs:[{run_at, summary}], scope}). It does not mention mutation effects, rate limits, or error conditions, but as a read tool, the description is sufficiently transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured: it starts with the main purpose, then explains details, scoping, and return format. Every sentence adds value without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose, behavior, scoping, and return structure. With an output schema present (signaled in context), the lack of explicit return format documentation is acceptable. Minor gaps (e.g., error handling) but overall sufficient for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers 67% of parameters with descriptions (npub, limit). The description adds context like 'npub proof required' for npub and does not enhance the dpop_token parameter. Since the schema already provides clear descriptions for most parameters, the description adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads 'recent scheduler-tick outcomes' from process_scheduled_posts runs. It specifies the verb 'read', the resource 'scheduler log', and differentiates it from siblings by focusing on debug logging for the Worker.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains who sees what (owner sees full; proven patrons see limited) and prerequisites ('npub proof required'). It implicitly advises when to use the tool (to debug scheduler logs), though it does not explicitly mention when not to use or provide alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_snippetAInspect
Read one of your saved snippets by id (full row incl. doc block
document). Free and owner-scoped. Returns {"success": true, "snippet": …}
or snippet_not_found.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| dpop_token | No | ||
| snippet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the operation is read-only ('Read'), free, and owner-scoped, and mentions the return format. However, it does not detail idempotency, authentication requirements (beyond npub in schema), or potential errors beyond 'snippet_not_found'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no redundancy. It front-loads the purpose and adds scope and return details efficiently. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description adequately outlines the return shape and error. However, the gap in parameter explanation and lack of behavioral details (like idempotency) keep it from being fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%). The tool description mentions 'by id' for snippet_id but does not explain npub (only described in schema) or dpop_token. It adds minimal value beyond the schema, which has a poor description for npub and none for dpop_token.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Read' and the resource 'saved snippets by id', including scope ('owner-scoped' and 'Free'). It distinguishes from sibling tools like excalibur_list_snippets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates it is for reading a single snippet by ID, is free, and restricted to the owner. It does not explicitly mention when not to use it or alternatives, but the context and sibling tools make it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_voiceAInspect
Read your saved writing Voice — a profile blurb plus a list of "banned
construction" chips ({text, on}) the editor passes to
refine_post_region. Owner-scoped; priced by the operator's pricing model
(use check_price). When you have not saved a Voice yet this returns an
empty one ({"voice": {"profile": "", "bans": []}}) so the editor can seed
its own defaults, not an error.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description carries full burden. Discloses empty default behavior (important), pricing model reference, and owner-scoping. Lacks details on potential error cases or permissions, but adequate for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise, front-loaded with purpose. Includes essential details on default, pricing, and scope. Slightly verbose with the chip structure explanation, but overall efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given output schema exists, description provides sufficient context: return values (profile, bans), empty default, owner-scope, pricing. Adequate for a simple read tool with many siblings; minimal risk of misuse.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 50% of parameters (npub described as required). Description does not add meaning for dpop_token, and only reaffirms npub's role. Baseline 3 due to moderate coverage, but description missed opportunity to explain dpop_token.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it reads a saved writing Voice (profile blurb + banned construction chips) and distinguishes from siblings like save_voice and refine_post_region. Also explains the empty default case, making purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions owner-scoped and priced (use check_price), and notes empty default instead of error. Does not explicitly state when to use vs alternatives, but context is clear for a read tool. Sibling save_voice implied for writes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_x_profileAInspect
Fetch the connected X account's handle and name for this patron (free).
Uses the patron's vaulted X OAuth token to call X's /users/me. Returns
{connected: true, username, name, profile_image_url} when connected, or
the OAuth situation (connected absent) when X isn't linked yet. Used to
show the real @handle on the editor's tweet-card preview.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses the technical method (calls X's /users/me), the return shape for both connected and unconnected states, and mentions it's free. It does not mention side effects, rate limits, or authentication prerequisites beyond the token, which are minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, then technical details, then concrete use case. No unnecessary words. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, return shape, and use case. Output schema exists (not shown) which likely documents return fields further. However, it lacks explanation of how to obtain required parameters (npub, dpop_token) and does not discuss error scenarios. For a simple get tool, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (npub has description, dpop_token has none). The tool description does not explain either parameter; it only mentions 'vaulted X OAuth token' in prose without mapping to dpop_token. Thus the description adds no semantic value beyond the schema and fails to compensate for the missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool fetches the connected X account's handle and name, distinguishing it from sibling tool excalibur_get_nostr_profile which fetches Nostr profiles. The verb 'Fetch' and resource 'X account info' are specific, and the return fields are listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case: 'Used to show the real @handle on the editor's tweet-card preview.' It implies the tool requires prior OAuth (vaulted X OAuth token) but does not explicitly contrast with alternatives like excalibur_begin_oauth or excalibur_check_oauth_status, nor state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_list_canonical_identitiesAInspect
Return canonical (tool_id, mcp_name, …) for every registered tool.
The authoritative source for any client (Studio, agents, FE) that needs to know how this MCP identifies its tools. Reconcile uses this output to UUID-join against the stored pricing model — no name-based UUID derivation, no guessing.
If the operator renames a function or rebrands a slug, the mcp_name in this output changes but tool_id stays. That's the whole point of the canonical-UUID design.
Free, no side effects.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explicitly states 'Free, no side effects' and explains the stability of tool_id vs mcp_name. This is sufficient behavioral disclosure, though absence of annotations means it could be more explicitly flagged as read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sentences, but it is slightly verbose. Each sentence adds value, but some phrases could be tightened. Overall, it is concise and front-loaded with the main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema (not shown but noted), so the description need not detail return values. It adequately describes the purpose, usage, and behavioral aspects. Given the complexity of a listing tool with no parameters, the description is complete enough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100% (empty schema). The description adds no parameter details because none are needed. This is appropriate; the description focuses on the output and usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns canonical identities (tool_id, mcp_name) for every registered tool. It specifies the verb 'return' and the resource 'canonical identities', distinguishing it from sibling tools that deal with specific entities like posts, coupons, or snippets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states it is the authoritative source for clients needing to know how the MCP identifies its tools, and mentions Reconcile uses this output for UUID-joining against a pricing model. It also warns against name-based UUID derivation, providing clear when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_list_constraint_typesAInspect
List all available constraint types and their parameter schemas.
Returns the type, category, description, and parameter specs for every constraint that can be used in a pricing pipeline. Free — no credits required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Indicates read-only listing behavior and cost-free nature. Could mention authentication needs, but overall clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences covering purpose, returned data, and cost. No wasted words; front-loaded with key action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a parameterless tool with an output schema (not provided but implied). Describes return fields adequately; no gaps given simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters with 100% schema coverage; baseline is 4. Description adds context about return values and cost, but parameter semantics are irrelevant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it lists all available constraint types and their parameter schemas, specifying returned fields (type, category, description, parameter specs). Differentiates from siblings as no other tool lists constraint types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions 'Free — no credits required', providing a usage note. No explicit when-to-use vs alternatives, but no competing sibling exists, so clarity is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_list_couponsAInspect
List every coupon this operator has minted (newest first).
Each row carries the current times_redeemed counter — the
Studio renders a progress bar from this against total_uses.
RESTRICTED to operator — requires proof.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses ordering (newest first), relevant data fields (times_redeemed, total_uses), and access restriction. Lacks explicit statement of read-only nature, but listing implies idempotence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding distinct value: purpose+ordering, data detail, restriction. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given one parameter and output schema existing, the description covers main purpose and usage restriction. However, it omits parameter documentation and does not guide which sibling to use vs avoid, leaving some context gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter dpop_token has 0% schema coverage, and the description provides no explanation for it. The description adds zero meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it lists every coupon minted by the operator, ordered newest first. Verb 'list' with resource 'coupons' and scope 'operator-minted' is specific. Distinguishes from sibling tools like excalibur_list_my_coupons and excalibur_delete_coupon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'RESTRICTED to operator — requires proof,' giving clear context for when to use. However, does not mention when not to use or provide alternative sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_list_my_couponsAInspect
List the coupons this patron has redeemed on this operator.
Returns both active and exhausted redemptions with a per-row
status (active / window_closed / patron_limit /
total_limit). Free — requires proof of npub.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it returns both active and exhausted redemptions with status indicators, and that it is free with npub proof requirement. No annotations exist, so the description carries full burden; it covers read-only nature and result details but omits potential pagination, ordering, or other runtime behaviors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: two focused sentences with a valuable list of status values. Every sentence adds unique information, and the first sentence immediately conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of parameter explanations and no explicit differentiation from sibling tools, the description is incomplete. Although an output schema exists and the tool is simple, the missing parameter semantics and usage guidance leave gaps for effective tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain the meaning of the 'npub' or 'dpop_token' parameters. It only implies npub is an identifier via 'requires proof of npub'. Without parameter descriptions, the agent gains little beyond parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists coupons redeemed by a patron on this operator, with specific status values. It distinguishes itself from sibling tools like 'excalibur_list_coupons' by specifying 'my' (patron-scoped) vs operator-wide listing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions it is free and requires proof of npub, providing basic usage context. However, it does not explicitly state when to use this tool vs alternatives (e.g., excalibur_list_coupons, excalibur_redeem_coupon) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_list_notarizationsBInspect
List recent Bitcoin notarization records.
Args: limit: Maximum records to return (default 20). status: Optional filter (e.g., 'submitted', 'confirmed').
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| status | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It states 'List' which implies a read-only operation, but it does not explicitly confirm idempotency, authentication needs, or side effects. The description also does not mention pagination behavior or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: a single sentence plus bullet points for parameters. Every word serves a purpose, and the structure is clean and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description can omit return value details. However, it lacks information about ordering (e.g., by date descending), whether results are paginated, and the exact time range for 'recent'. These gaps reduce completeness for a list operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds value beyond the schema by explaining the purpose of 'limit' (maximum records, default 20) and providing example values for 'status' (e.g., 'submitted', 'confirmed'). This compensates for the 0% schema description coverage. However, it does not list all possible status values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (list) and resource (recent Bitcoin notarization records). It distinguishes itself from sibling tools like excalibur_get_notarization_proof (for a specific record) and excalibur_notarize_ledger (for creating). However, 'recent' is vague and could be more precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for listing notarizations but lacks explicit guidance on when to use this tool versus alternatives or when to apply filters like status. No when-not-to-use or recommendations are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_list_postsAInspect
List your stored posts, server-side sorted, filtered, and offset-paginated.
Optional status filter — a single status or a comma-separated set
(e.g. draft,scheduled), matched as set membership. sort_col is one of
created|updated|status|scheduled (default created); sort_dir is
asc|desc. search is a case-insensitive regular expression matched
against the post text. date_from/date_to (YYYY-MM-DD, end-inclusive)
bound the date_field column, one of created|updated|scheduled|sent
(default created). template_id filters to the sent occurrences a recurring
template fired. page is 0-indexed; page_size is 1..100. Each row carries
is_recurring, has_dynamic, and template_id (set on sent occurrences).
Returns {posts:[…], total, page, page_size} reflecting the filtered set.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| page | No | ||
| search | No | ||
| status | No | ||
| date_to | No | ||
| sort_col | No | created | |
| sort_dir | No | desc | |
| date_from | No | ||
| page_size | No | ||
| date_field | No | created | |
| dpop_token | No | ||
| template_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description fully discloses behavior: sorted, filtered, offset-paginated, return format {posts, total, page, page_size}, and per-row fields (is_recurring, has_dynamic, template_id). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Slightly dense but well-structured: summary sentence followed by parameter details. Every sentence adds value, though could be slightly more compact (e.g., combine parameter explanations).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 12 parameters and no output schema provided, description covers all key behaviors and return structure. Excellent completeness—comparable to high-quality API documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage only 8%; description compensates by explaining all key parameters: status (comma-separated set), sort_col/sort_dir, search (regex), date_from/to with date_field, template_id, page (0-indexed), page_size (1-100). Adds meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'List your stored posts' and details server-side sorting, filtering, and pagination. Distinguishes from siblings like get_post (single) and create_post (write).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Does not explicitly list when not to use, but thoroughly describes filtering options (status, search, date, template) so agent can infer appropriate context. Could add note about alternatives like get_post for single posts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_list_snippetsAInspect
List your saved post snippets, server-side sorted, filtered, and
offset-paginated. sort_col is one of favorite|created|updated|name
(default favorite); sort_dir is asc|desc. search is a
case-insensitive regular expression matched against the snippet name or body.
date_from/date_to (YYYY-MM-DD, end-inclusive) bound the
date_field column, one of created|updated (default created).
page is 0-indexed; page_size is 1..200. Free, owner-scoped. Returns
{snippets:[…], total, page, page_size} reflecting the filtered set.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| page | No | ||
| search | No | ||
| date_to | No | ||
| sort_col | No | favorite | |
| sort_dir | No | desc | |
| date_from | No | ||
| page_size | No | ||
| date_field | No | created | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses server-side sorting, filtering, pagination, return format, and scope ('Free, owner-scoped'). This is thorough and provides necessary behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (4 sentences) and well-structured: first sentence states purpose and general behavior, then lists parameter details in a compact format. Every sentence adds information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters, no annotations, and an output schema, the description covers all key aspects: input parameters, defaults, valid ranges, and return shape. It is self-contained and sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite low schema description coverage (10%), the description explains nearly all parameters: sort_col values, sort_dir, search regex, date_from/date_to format and inclusivity, page index, page_size range, and date_field options. It adds significant value beyond the schema, though it omits npub and dpop_token semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists saved post snippets with sorting, filtering, and pagination. It uses specific verbs and parameters (e.g., 'list', 'sorted', 'filtered', 'offset-paginated') and distinguishes from sibling tools like get_snippet, delete_snippet, and save_snippet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (listing snippets with advanced querying) and implicitly contrasts with single-snippet tools (get_snippet) and mutation tools (save/delete). It could explicitly mention not to use for retrieving a single snippet, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_mint_couponAInspect
Create a new operator-owned discount coupon.
Args: name: The catchy code patrons type to redeem (operator-scoped uniqueness). discount_percent: Percentage off the base price (0-100). valid_from: ISO-8601 datetime when the coupon becomes active. valid_until: ISO-8601 datetime when the coupon expires. uses_per_patron: How many tool calls one patron can claim the discount on (default 1; pass null/None for unlimited within the window). total_uses: Aggregate cap across all patrons (default None = unlimited).
Returns the new coupon row. RESTRICTED to operator — requires proof (nsec-signed kind-27235 or cached dpop_token token).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| dpop_token | No | ||
| total_uses | No | ||
| valid_from | Yes | ||
| valid_until | Yes | ||
| uses_per_patron | No | ||
| discount_percent | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral disclosure burden. It explains the creation behavior, return of new coupon row, operator restriction, and parameter specifics like uniqueness and defaults. Minor omission: does not describe error behavior on duplicate name or other failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear heading, bullet-like Args listing, and a returns line. It is front-loaded with the purpose. Slightly lengthy due to parameter descriptions, but each sentence adds value. Could be more concise by omitting redundant parameter name repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with an output schema, the description covers auth requirements, parameter constraints, and uniqueness. It does not explicitly mention error handling or idempotency, but overall provides sufficient context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description provides detailed explanations for all 7 parameters, including the unique constraint on name, percentage range, ISO-8601 format for dates, and defaults for uses_per_patron and total_uses. This adds substantial meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first line clearly states 'Create a new operator-owned discount coupon.' Verb 'create' and resource 'operator-owned discount coupon' precisely define the action. Among sibling tools, this uniquely identifies the creation function, distinguishing it from update, delete, and list operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool is 'RESTRICTED to operator' and requires specific authentication (nsec-signed kind-27235 or cached dpop_token). This provides clear context on when to use it. However, it does not explicitly mention when not to use it or suggest alternatives like update_coupon for existing coupons.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_notarize_ledgerAInspect
Build a Merkle tree of all patron balances and submit the root to Bitcoin via OpenTimestamps.
Operator-only background task. Bitcoin confirmation takes 1-6 hours. Free — no credits required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It discloses the task is a background operation, free, and takes 1-6 hours, but does not explain side effects (e.g., irreversibility, multiple calls) or the exact nature of the return (though output schema may cover that). More behavioral details would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: three sentences, front-loaded with the primary action, and every sentence adds value (action, operator/background context, timing, cost). No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the moderate complexity (blockchain interaction) and existence of an output schema (which can explain return values), the description covers key points: what it does, who can use it, timing, and cost. It lacks prerequisites (e.g., being an operator) but 'Operator-only' implies the caller must be authenticated as an operator. Slightly incomplete, but adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (0 params, 100% schema coverage). The baseline for 0 parameters is 4, and the description does not need to add parameter info, which it correctly avoids.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: building a Merkle tree of patron balances and submitting its root to Bitcoin via OpenTimestamps. It uses a specific verb ('Build', 'submit') and resource ('Merkle tree', 'root to Bitcoin'), and distinguishes from sibling tools like excalibur_get_notarization_proof and excalibur_list_notarizations which are queries, not actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description specifies it is an 'Operator-only background task' and mentions 'Bitcoin confirmation takes 1-6 hours', providing clear context for when to use it. However, it does not explicitly state when not to use or list alternatives, but given the unique operation, the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_oracle_aboutBInspect
Describe the DPYC ecosystem via the Oracle. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states 'Free,' which could imply no cost but does not confirm read-only behavior, idempotency, speed, or lack of side effects. The absence of parameters suggests it is a simple query, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two short phrases). It front-loads the core action ('Describe the DPYC ecosystem') and adds one additional token ('Free'). No unnecessary words are present, though the brevity sacrifices helpful detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema (capturing return values), the description lacks context about what aspects of the ecosystem are described (e.g., overview, stats, key features). It does not differentiate from sibling oracle tools that also describe parts of the ecosystem, nor does it clarify the scope or format of the output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so the description does not need to explain parameter usage. It adds no parameter-specific information, but given 100% schema coverage (no params to cover), a baseline of 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Describe') and resource ('DPYC ecosystem'), and the 'via the Oracle' phrasing distinguishes it from sibling oracle tools like 'excalibur_oracle_how_to_join' (which explains joining) and 'excalibur_oracle_network_advisory' (which gives advice). It is not a tautology and clearly indicates the tool provides an overview.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when to prefer 'oracle_about' over other oracle tools (e.g., for specific queries vs. general overview), or when not to use it. The word 'Free' is ambiguous and does not clarify usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_oracle_get_tax_rateAInspect
Get the current DPYC certification tax rate. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It adds 'Free' indicating no monetary cost, but does not explicitly state that it is a read-only, non-destructive operation. The behavior is simple, but the description falls short of fully disclosing side-effect-free nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two words for purpose and one word for cost. Every part earns its place; no wasted words. It is front-loaded and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With zero parameters and an output schema available, the description is nearly complete. It identifies the resource (DPYC certification tax rate) and hints at cost. Could marginally improve by noting public access or read-only nature, but adequate for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters mean schema coverage is 100% trivially. Baseline is 4 per rules. No param information needed; the description does not add nor need to add parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the current DPYC certification tax rate' – a specific verb and resource. It distinguishes from sibling tools by targeting a unique entity (tax rate) not covered by any other excalibur tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The word 'Free' hints at no cost but does not specify context or prerequisites. Sibling tools like excalibur_check_price or excalibur_check_balance exist but there is no differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_oracle_how_to_joinAInspect
Get DPYC onboarding instructions from the Oracle. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description is minimal. It does not disclose any behavioral traits such as side effects, permissions, rate limits, or return format beyond the implicit 'free'.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: one sentence plus 'Free.' Every word serves a purpose, and it is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters and the existence of an output schema, the description is adequate but could be more complete by explaining what DPYC stands for or summarizing the output content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so description adds nothing beyond the schema. Baseline of 4 is appropriate for a parameterless tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get', the resource 'DPYC onboarding instructions', and the source 'from the Oracle'. This distinguishes it from sibling tools like excalibur_oracle_about or excalibur_oracle_lookup_member.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for onboarding instructions but does not explicitly state when to use this tool vs alternatives. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_oracle_lookup_memberBInspect
Look up a DPYC community member by npub. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description only adds 'Free', but does not disclose side effects, permissions, rate limits, or error behavior. With no annotations, the description should provide more behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short, front-loaded sentences. No unnecessary words or redundant information. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one parameter, has output schema), the description is adequate but minimal. It does not explain what a DPYC community member is or provide context for the output. Could be more informative without being verbose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the parameter 'npub' has no description. The tool description mentions 'by npub' but does not explain the format, constraints, or examples. The meaning is insufficiently conveyed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool looks up a DPYC community member by npub. The verb 'look up' and resource 'DPYC community member' are specific. The sibling tools include other oracle lookups (e.g., excalibur_oracle_about) but this one is distinct in purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool over others, such as excalibur_get_nostr_profile or other oracle tools. Description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_oracle_network_advisoryBInspect
Get active network advisories from the Oracle. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description bears the full burden but only states the action and cost. It omits key behavioral traits such as authentication requirements, rate limits, or what the advisories contain. This is insufficient for a no-annotation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with the primary purpose. Every word serves a purpose, with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description provides no context about what 'network advisories' entails, whether they are time-sensitive, or how to interpret the response. The lack of behavioral and usage details makes it incomplete for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters (schema coverage 100% with an empty object), so the baseline is 4. The description does not need to add parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'active network advisories from the Oracle', making the purpose specific and distinct from sibling tools. No parameter details are needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only mentions 'Free' but provides no guidance on when to use this tool versus alternatives. There is no context for eligibility, prerequisites, or comparison with other oracle tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_post_tweetAInspect
Post a text tweet with markdown formatting converted to Unicode rich text.
Accepts standard markdown inline formatting and converts it to Unicode Mathematical Alphanumeric Symbols that render as styled text on X:
**bold** -> bold
*italic* -> italic
***bold italic*** -> bold italic
`monospace` -> monospaceArgs: text: Tweet content with optional markdown formatting. npub: Your DPYC patron Nostr public key (npub1...) for credit attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| text | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the markdown-to-Unicode conversion behavior but omits side effects (e.g., irreversibility), authentication requirements (beyond npub), or rate limits. With no annotations, the description partially carries the burden but leaves gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear header, markdown examples, and parameter list. It is slightly verbose due to the table but remains readable and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown), the description does not need to detail return values. It adequately covers the tool's purpose and key parameters, though it could mention any returned tweet identifier.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explains 'text' (tweet content) and 'npub' (credit attribution), but fails to mention 'dpop_token' present in the schema. Schema coverage is low (33%), and the description compensates for two of three parameters, missing one, resulting in a partial gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it posts a text tweet with markdown-to-Unicode conversion, clearly distinguishing from sibling tools like excalibur_post_tweet_image. The verb 'post' and resource 'tweet' are precise, and the markdown conversion detail adds specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for text-only tweets but does not explicitly contrast with alternatives like excalibur_create_post or excalibur_post_tweet_image. No guidance on when not to use or required prerequisites (e.g., authentication) is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_post_tweet_imageAInspect
Post a tweet with a hero banner image to X/Twitter.
Provide either an image_url (fetched and attached) or banner_svg (rendered to PNG and attached). Text supports the same markdown formatting as post_tweet.
Args: text: Tweet content with optional markdown formatting. image_url: URL of an image to attach to the tweet. banner_svg: Self-contained SVG markup string, converted to PNG. npub: Your DPYC patron Nostr public key (npub1...) for credit attribution.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| text | Yes | ||
| image_url | No | ||
| banner_svg | No | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that image_url is fetched and attached, banner_svg is rendered to PNG, and npub is for credit attribution. It does not mention side effects or rate limits, but the core behavior is transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with the main purpose and then detailing parameters in an Args section. It is mostly concise, though the Args section partially repeats schema info. No filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of an output schema, the description covers key behaviors and parameters adequately. It could mention error scenarios or prerequisites but is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 20% (one param described). The description adds meaning: explains that text supports markdown, image_url is fetched, banner_svg is rendered to PNG, and npub is for credit attribution. This compensates well for low schema coverage, though dpop_token remains unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool posts a tweet with a hero banner image to X/Twitter, using either an image URL or SVG. It distinguishes from sibling tools like 'excalibur_post_tweet' (likely text-only) and 'excalibur_create_post' (likely creating without publishing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use each parameter (image_url vs banner_svg) and mentions the same markdown formatting as 'post_tweet', implying its alternative. However, it does not explicitly state when not to use this tool (e.g., for text-only tweets).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_process_scheduled_postsAInspect
Publish every due scheduled post (operator-only).
Selects scheduled posts whose publish_at has arrived, posts each on
behalf of its owner (billing the owner for post_tweet), stamps
last_sent_at, and reschedules from recurrence or retires the post
past cease_at. Requires the operator's npub proof; the trigger itself is
free. Returns {processed, posted, skipped, errors}.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | The OPERATOR's npub (npub1...); this tool is operator-only. | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even without annotations, the description fully discloses side effects: billing the owner for post_tweet, stamping last_sent_at, handling recurrence/retirement, and the requirement for operator npub proof. It also mentions the trigger is free and returns a detailed counts object.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two well-structured sentences. The first sentence states the core action, and the second details the process, constraints, and return value without unnecessary fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with moderate complexity, the description covers the complete lifecycle of scheduled post publishing, including billing, timestamping, recurrence logic, and operator authorization. The presence of an output schema reduces the need to describe return values, and the description fills all other gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description reinforces the npub parameter as 'operator's npub proof', but the dpop_token parameter is completely undocumented in both schema and description. With only 50% schema coverage, the description does not compensate for the missing parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool publishes due scheduled posts and explains the process step-by-step. It also identifies itself as operator-only, distinguishing it from other posting tools like excalibur_create_post or excalibur_post_tweet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies this tool is operator-only and intended for processing scheduled posts, providing solid context for when to use it. However, it does not explicitly mention when not to use it or point to alternative tools for non-scheduled posting.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_publish_nostr_profileAInspect
Publish a CLIENT-SIGNED kind-0 profile to relays for an npub.
The wheel never holds a patron nsec. The frontend signs the kind-0 metadata event with the patron's session key or a NIP-07 extension and passes the signed event (JSON) here; the wheel verifies the signature matches the npub, then relays it to public relays. The signature is the authorization — no proof token, no key custody. Free.
Args: npub: The patron's Nostr public key the event must be signed by. signed_event: A JSON-encoded, client-signed kind-0 event.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | ||
| signed_event | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses key behaviors: the wheel never stores nsec, the frontend signs the event, and the wheel verifies the signature before relaying. It explains the authorization model (signature as proof) and mentions the service is free. This is thorough for a publish tool, though it omits potential failure modes or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear opening sentence that states the core purpose, followed by a concise explanation of security model and parameter listing. It is front-loaded and every sentence adds value, though the security explanation could be slightly shortened without losing meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists (context signals indicate `has output schema: true`), the description appropriately focuses on input and behavior. It covers all necessary information for an agent to invoke the tool correctly, including the security model, parameter meanings, and the verification process. No critical gaps are evident.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% coverage, but the description compensates by clearly defining both parameters: `npub` as the public key the event must be signed by, and `signed_event` as a JSON-encoded, client-signed kind-0 event. This adds essential semantics beyond the schema's default values and type definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Publish a CLIENT-SIGNED kind-0 profile') and the target resource ('for an npub'). It distinguishes itself from sibling tools like `excalibur_get_nostr_profile` by emphasizing client-signing and publishing, making the purpose specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool: when a client has signed a kind-0 event and wants to publish it. It implicitly rules out use cases where the wheel holds private keys (explicitly stating it never holds an nsec). However, it does not explicitly contrast with alternatives like `excalibur_get_nostr_profile` or list prerequisites, though the context is clear from the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_purchase_creditsAInspect
Buy credits via Bitcoin Lightning.
Creates a Lightning invoice. Pay it with any Lightning wallet, then call check_payment to confirm. Proof of npub ownership is required so credits land in the correct ledger.
Free — no credits required to call.
Args: npub: The Nostr public key (npub1...) the credits will fund. dpop_token: A kind-27235 Nostr event signed by npub for this tool. amount_sats: Satoshis to purchase (default 1000).
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| dpop_token | Yes | ||
| amount_sats | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses creation of a Lightning invoice (write operation), required dpop_token for proof, and that it's free. Does not mention any destructive behavior or side effects, which is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Compact yet complete: a one-line summary, three-line workflow, and clear Args section. No redundant sentences; every part serves a purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 params, output schema exists), the description covers the workflow and parameters adequately. Does not describe return value, but output schema covers that. Minor lack of error handling details but overall sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description fully explains each parameter: npub as 'Nostr public key', dpop_token as 'kind-27235 Nostr event', amount_sats as 'Satoshis' with default 1000. Adds meaning beyond schema's type-only info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'Buy credits via Bitcoin Lightning' and 'Creates a Lightning invoice.' The verb 'buy' and resource 'credits' are specific. Among many siblings, no other tool duplicates this function, so it stands out.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit steps: 'Pay it with any Lightning wallet, then call check_payment to confirm.' Mentions prerequisite 'Proof of npub ownership' and that it's free. Does not explicitly contrast with alternatives but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_receive_credentialsAInspect
Pick up credentials from the Secure Courier.
Completes the CREDENTIAL-DELIVERY flow (the ownership-proof
counterpart is receive_npub_proof).
Call this only after the user confirms they have replied.
Deterministic, one-shot retrieval: name the response you want with
(sender_npub, service, dpop_token) and the tool drains ONLY the
rendezvous relay that channel was pinned to. Every popped DM with the
wrong session phrase is deleted and its sender is NACK'd; the first DM
with the matching phrase is accepted (ACK'd) and the scan stops. If
none match, the queue is drained and a courier_not_found result is
returned. Do NOT poll, loop, or retry.
If a credential_card (ncred1...) is provided, it is redeemed directly without any relay access (dpop_token not required for that path). On success, the payment processor client is reinitialized from the new credentials — no server restart needed.
Args: sender_npub: Required. The npub that sent the credentials. service: Required. The credential service name (must match the service used in request_credential_channel). dpop_token: Required. The session phrase returned by request_credential_channel for this exact channel. credential_card: Optional. An ncred1... card to redeem directly (bypasses the relay drain; dpop_token not needed). Free.
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | ||
| dpop_token | No | ||
| sender_npub | No | ||
| credential_card | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes one-shot retrieval, relay drainage, deletion of wrong DMs with NACK, acceptance of first match, and credential_card path. Fully transparent about behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with intro, condition, details, and parameter list. Front-loaded with purpose. Slightly lengthy but each part adds value; the 'Free.' at end is minor extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 0% schema coverage and no annotations, description covers all necessary aspects: flow, two paths, behavior on mismatch, reinitialization. Output schema not described per rules, but complete for tool usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% so description must compensate. Every parameter is explained with purpose and usage notes (e.g., dpop_token not needed for credential_card path). Adds significant meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool picks up credentials from Secure Courier and completes the CREDENTIAL-DELIVERY flow. Distinguishes from sibling tool receive_npub_proof by mentioning it as the ownership-proof counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states to call only after user confirms reply and warns against polling/looping/retrying. Context is clear, but no explicit when-not-to-use or alternative tools beyond the one mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_receive_npub_proofAInspect
Receive npub ownership confirmation from a patron.
Completes the npub-OWNERSHIP-PROOF flow (the credential-delivery
counterpart is receive_credentials).
Call this only after the user confirms they have replied.
Deterministic, one-shot retrieval: name the response with
(patron_npub, dpop_token) — the dpop_token being the value
returned by request_npub_proof. The tool drains ONLY the pinned
rendezvous relay that challenge was published on, stopping at the DM
whose phrase matches. Mismatched DMs are deleted and NACK'd (without
revealing the expected phrase). If called before the user replies,
their message will never be found. Do NOT poll, loop, or retry.
The signed DM itself proves npub ownership (the patron's nsec
signed it). On success, returns the dpop_token — the same
token. The calling application MUST remember it and pass it as the
dpop_token parameter on every subsequent paid tool call. The
proof (a hash of the token) is stored in the vault keyed by that
hash — the MCP never stores the raw token itself. Free.
Args: patron_npub: Required. The patron's npub to receive proof from. dpop_token: Required. The dpop_token returned by request_npub_proof.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No | ||
| patron_npub | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: deterministic one-shot retrieval, drains only pinned relay, stops at matching DM, deletes mismatched DMs without revealing phrase, and explains the security model (signed DM proves ownership, token stored as hash).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with sections, but it is somewhat lengthy. However, it is front-loaded with the main purpose and uses clear formatting. Minor improvement possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the flow (multi-step, relay interaction, security considerations), the description is complete: covers when to call, what happens, side effects, and output. An output schema is present, but the description still explains return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description explains both parameters: patron_npub is the patron's npub, dpop_token is the token from request_npub_proof, adding essential meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool receives npub ownership confirmation from a patron, specifies it completes the npub-OWNERSHIP-PROOF flow, and distinguishes it from the sibling tool receive_credentials.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidelines: call only after user confirms reply, do not poll/loop/retry, and contrasts with receive_credentials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_redeem_couponAInspect
Claim a coupon by its name (the code the operator shared).
Looks up the operator's coupon by code, validates the window
and total cap, and records a per-patron redemption row.
Subsequent paid tool calls on this MCP auto-apply the discount
until uses_per_patron is exhausted.
Free — no credits required. Requires proof of npub.
Idempotent: redeeming the same code twice returns the existing
redemption.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| npub | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses key behaviors: lookup, validation, recording, idempotency, free usage, and requirement for npub proof. Does not detail failure modes or specific validation errors, but covers main behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences with no redundancy. Front-loaded with core purpose, followed by technical details. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (not shown) and sibling tools, description covers purpose, behavior, idempotency, and cost. Minor gap in parameter explanation for dpop_token, but overall sufficient for correct selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, description explains 'code' as the operator-shared name and associates 'npub' with proof requirement. However, the optional dpop_token parameter is not mentioned, leaving its purpose unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Claim a coupon by its name', specifies the operation as redemption with validation and recording. It distinguishes from sibling tools like mint_coupon, list_coupons, delete_coupon, forget_coupon by focusing on claiming an existing coupon.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage for claiming coupons and mentions subsequent auto-application of discount, but does not explicitly state when not to use or name alternatives. Provides context on idempotency and free nature, guiding appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_refine_post_regionAInspect
Refine a flagged region of a post with Claude — server-side.
The operator's Anthropic key stays in the vault and never leaves the
server. Send the flagged region, the surrounding full_text, an
optional instruction (what to change), and the editor's voice
profile + bans (JSON array or comma list of banned constructions).
Returns {"success": true, "suggestions": [...3 strings...]}.
Paid: the AI cost is metered as a tollbooth fare. The fare is refunded if no Anthropic key is configured or the upstream call returns nothing.
Args: region: The flagged span to rewrite. full_text: The whole tweet, for context. instruction: What the editor wants changed (optional). voice: Voice-profile text fed to the model (optional). bans: Banned constructions — JSON array or comma-separated (optional). npub: Your DPYC patron npub for credit billing.
| Name | Required | Description | Default |
|---|---|---|---|
| bans | No | ||
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| voice | No | ||
| region | Yes | ||
| full_text | No | ||
| dpop_token | No | ||
| instruction | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that the operation is server-side, the Anthropic key stays secure, AI costs are metered and potentially refundable, and the output is a JSON with suggestions. It doesn't mention rate limits or error handling, but for a suggestion-based tool, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: it starts with the core purpose, then explains the server-side key handling, lists parameters in a clear 'Args' section, and ends with output and billing details. It is front-loaded with the most important information. While it could be slightly more concise by reducing redundancy with the schema, it is generally efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (7 parameters, output schema exists), the description is fairly complete. It covers inputs, output format, and billing/refund policy. It could elaborate on error cases or required auth (npub is mentioned but not fully explained), but it provides enough context for an AI agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the input schema has only 14% description coverage (only npub documented), the description's 'Args' section explicitly explains each parameter: region, full_text, instruction, voice, bans, and npub, including their purpose and optionality. This compensates well for the schema gaps, adding significant meaning beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Refine a flagged region of a post with Claude — server-side.' It specifies the verb (refine) and resource (flagged region of a post), and it distinguishes this from sibling tools like create_post or update_post by its specific refinement function and server-side key handling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool: to refine a flagged region with optional instructions, voice, and bans. It also explains the billing mechanism and refund policy. However, it does not explicitly state when not to use it or contrast it with alternatives, missing some guidance for agent decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_request_adoptionAInspect
Ask a chosen Authority to adopt this operator (deferred courtship).
RESTRICTED to the operator — requires proof the caller controls this
operator's npub. Resolves the Authority's MCP endpoint from the
community registry, mints an inline ownership proof with this
operator's nsec, and delivers the request MCP-to-MCP. The Authority
records it as pending; its owner approves on their own time. Poll
adoption_status for progress; the operator flips to ready
once the Authority provisions it.
Args: authority_npub: npub of the Authority to request adoption from. dpop_token: operator-npub ownership proof (inline kind-27235 or cached token). service_url: this operator's MCP endpoint (advertised to the Authority). note: optional message for the Authority owner.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | ||
| dpop_token | No | ||
| service_url | No | ||
| authority_npub | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses key behaviors: restricted to operator, requires npub proof, resolves endpoint, mints proof, delivers MCP-to-MCP. It does not detail error scenarios or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is detailed but well-structured with paragraphs and bullet points. Slightly verbose but clear and front-loaded with key purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists (not shown), description does not need to cover return values. It covers the full flow, parameters, and next steps (poll adoption_status). Complete for a request tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but description includes an Args section explaining each parameter (authority_npub, dpop_token, service_url, note), adding essential meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool's purpose: requesting adoption of an operator by an Authority, using a deferred courtship metaphor. It distinguishes from siblings like 'adoption_status' which polls for progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description explains the process and suggests polling 'adoption_status' for progress, but lacks explicit when-to-use vs alternatives or conditions to avoid.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_request_credential_channelAInspect
Open a Secure Courier channel for credential delivery.
This is the CREDENTIAL-DELIVERY flow — use it to hand over a service
secret (API keys, tokens). To merely prove you control an npub (the
usual answer to a proof_required error), use request_npub_proof
instead. Note: dynamic/OAuth2 services (e.g. Schwab) need NO couriered
secret — check service_status first.
Sends a welcome DM with a credential template. The recipient must read the DM in their Nostr client, fill in the fields, and reply manually. This is a human-in-the-loop flow.
After calling this tool, STOP and tell the user what to do.
Wait for the user to confirm they have replied before calling
receive_credentials. Do NOT poll or retry — each
receive_credentials call destructively drains the relay
mailbox.
Args: sender_npub: Required. The npub to send the template to. service: Required. The credential service name (e.g., from get_operator_onboarding_status or get_patron_onboarding_status). Free.
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | ||
| sender_npub | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: it sends a welcome DM, is a human-in-the-loop flow, instructs to stop and tell the user, wait for confirmation, and warns that 'receive_credentials' destructively drains the relay mailbox. All key behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough but somewhat verbose, with multiple paragraphs. Key information is front-loaded, and the structure is logical. However, it could be more concise, e.g., the note about 'Dynamic/OAuth2 services' could be shorter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (human-in-the-loop, destructive polling), the description fully covers the required context: sibling differentiation, prerequisites, user interaction steps, and post-call instructions. The presence of an output schema reduces the need to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and both parameters have defaults but no descriptions. The description explains 'sender_npub' (required npub) and 'service' (credential service name, referencing other tool outputs). It adds meaningful context beyond schema, though could detail accepted values or format.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: opening a secure courier channel for credential delivery. It uses a specific verb (Open) and resource, and distinguishes itself from the sibling tool 'request_npub_proof' by explaining when each is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use (credential delivery for API keys/tokens) and when not to (dynamic/OAuth services, use 'request_npub_proof' for npub proof). It also advises checking 'service_status' first, providing clear usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_request_npub_proofAInspect
Request npub ownership proof from a patron via Nostr DM.
This is the npub-OWNERSHIP-PROOF flow — use it when a call returns
proof_required. It proves the caller controls an npub; it does
NOT deliver any service secret. To hand an operator its API keys or
OAuth secrets, use request_credential_channel instead.
Sends a challenge DM that the patron must sign and reply to using their Nostr client. This is a human-in-the-loop flow.
After calling this tool, STOP and tell the user to check their
Nostr client and reply to the challenge. Wait for the user to
confirm they have replied before calling receive_npub_proof.
Do NOT poll or retry — each receive_npub_proof call
destructively drains the relay mailbox.
Returns a dpop_token — the demonstrated-proof-of-possession
token that the calling application MUST remember and pass as the
dpop_token parameter on every subsequent paid tool call. The MCP
does not retain this value across restarts.
Lifecycle: The cached proof expires after the patron's
chosen duration. When it expires, call request_npub_proof
again for a fresh challenge, then wait for the user, then
call receive_npub_proof.
Free.
Args: patron_npub: Required. The patron's npub to request proof from.
| Name | Required | Description | Default |
|---|---|---|---|
| patron_npub | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full transparency burden. It thoroughly discloses that it sends a challenge DM, is human-in-the-loop, requires user confirmation, and that receive_npub_proof destructively drains relay. It also explains the returned dpop_token's persistence requirement and expiry behavior. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with clear sections: purpose, flow, warnings, return value, lifecycle. Uses formatting (bold, code) to emphasize key points. Every sentence adds value without redundancy. Front-loaded with essential action and differentiator.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (human-in-the-loop, asynchronous flow, token lifecycle), the description covers all necessary context: trigger, alternatives, next steps, return value handling, expiry, and free nature. The existence of an output schema likely documents the dpop_token structure, so the description need not elaborate further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It explains patron_npub is required and its meaning. Though it doesn't provide format details or examples, the single parameter is adequately described for agent usage. A slight inconsistency: schema shows default empty string and no required flag, but description says required; this is minor and likely intended.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool requests npub ownership proof via Nostr DM, explicitly distinguishes from sibling request_credential_channel, and identifies the trigger condition (proof_required). The verb-noun pair 'request npub proof' is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use: 'use it when a call returns proof_required'. Clearly specifies alternative: 'use request_credential_channel instead' for API keys/secrets. Also gives lifecycle instructions and warns against polling, effectively guiding appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_reset_pricing_modelAInspect
Erase all pricing models and restore a viable default.
Deletes every stored model, then self-initializes a fresh one from the tool registry — all tools at 0 sats with proper UUIDs. Returns the new model.
RESTRICTED to operator — requires proof (nsec-signed).
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that it deletes all stored models, initializes a fresh one with 0 sats, returns the new model, and requires operator authentication. It could mention if there are side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (two sentences) and front-loaded with the action. Every sentence adds value with no fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the process (delete and create), return value, and restrictions. An output schema exists so return details are not needed. It is complete enough for a reset tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one optional parameter 'dpop_token' with no description, and the tool description does not explain its purpose. Given 0% schema description coverage, the description should compensate but fails to add meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool resets pricing models by erasing all and restoring a default, using specific verbs like 'Erase', 'restore', 'Deletes', and 'self-initializes'. It distinguishes from siblings like 'excalibur_set_pricing_model' and 'excalibur_get_pricing_model'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use (reset to default) and specifies that it's restricted to operator requiring nsec-signed proof. However, it lacks explicit guidance on when not to use or mention of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_resolve_dynamic_blockAInspect
Start resolving a dynamic post block with Claude — returns a CLAIM CHECK.
A dynamic block's prompt is run by Claude (with web search + web fetch for
live data) and woven into the surrounding post context in the author's
voice. The author's instruction governs length — there is no character cap
(X supports long-form posts). The operator's Anthropic key stays in the vault
and never leaves the server.
Because that work (paginated fetches + generation) can outlast a client
timeout, this returns immediately with a claim check instead of the text:
{"success": true, "claim_check": "...", "status": "pending", "poll_after_seconds": N}. Redeem it with the free companion
fetch_dynamic_block(claim_check) until status == "done" (then read
result.text). (The scheduler resolves blocks directly server-side at fire
time and does not use this tool.)
Paid: the AI cost is metered as a tollbooth fare on THIS start call, refunded if no Anthropic key is configured or the job ultimately fails.
Args: prompt: The dynamic block's prompt to run. context: The surrounding composed post (may contain the ⟨HERE⟩ marker). voice: Voice-profile text fed to the model (optional). bans: Banned constructions — JSON array or comma-separated (optional). allowed_domains: Author allowlist for web_fetch — JSON array or comma-separated. Blank = fetch any URL the prompt references. max_fetches: Author budget for web lookups (search + fetch), 1..25. runtime_limit_seconds: Author's time budget (clamped 60..900). Sets the job's runtime ceiling and the poll cadence (first poll ~75% of it), and is available to the operator's pricing model for ad-valorem fares. npub: Your DPYC patron npub for credit billing.
| Name | Required | Description | Default |
|---|---|---|---|
| bans | No | ||
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| voice | No | ||
| prompt | Yes | ||
| context | No | ||
| dpop_token | No | ||
| max_fetches | No | ||
| allowed_domains | No | ||
| runtime_limit_seconds | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully discloses behavior: Claude execution with web search/fetch, async pattern with claim check, cost metered on this call and refunded on failure, key vaulting. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear lead sentence, behavioral explanation, async pattern, billing note, and parameter list. Each sentence is valuable, though slightly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (async, billing, param details, companion tool), the description covers all essential aspects: claim check format, polling instructions, billing policy, and parameter explanations. Output schema is implied, not needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning for 8 of 9 parameters (prompt, context, voice, bans, allowed_domains, max_fetches, runtime_limit_seconds, npub), compensating for low schema coverage (22%). However, 'dpop_token' is omitted entirely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Start resolving a dynamic post block with Claude — returns a CLAIM CHECK.' It uses a specific verb ('resolve') and identifies the resource ('dynamic block'), distinguishing it from siblings like excalibur_fetch_dynamic_block.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (to initiate resolution) and when not to (the scheduler resolves directly server-side). It explicitly tells the agent to use the companion fetch_dynamic_block to poll for results, providing clear alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_restore_creditsAInspect
Credit a patron's ledger from a BTCPay-settled invoice.
RESTRICTED to the operator — the operator owns the books and is the only party who can issue a manual credit grant. Patrons who believe they paid but never got credits must escalate to the operator's support, who then invokes this tool on their behalf.
Use cases: cold-start vault races during check_payment, ncred delivery hiccups, patrons closing Top-Off sheets before settle, any infrastructure incident that left an invoice settled at BTCPay but uncredited on the operator's ledger.
Idempotent — if the invoice is already credited (in the patron's
credited_invoices), returns success with credits_granted=0.
Args: invoice_id: The BTCPay invoice ID to verify and credit. patron_npub: The patron's npub whose ledger receives the grant. dpop_token: A kind-27235 Nostr event signed by the OPERATOR's nsec for this tool. Patron proofs are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | Yes | ||
| invoice_id | Yes | ||
| patron_npub | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully handles behavioral disclosure. It states the tool is idempotent and explains behavior when an invoice is already credited (returns success with credits_granted=0). It also reveals the dpop_token authentication requirement. However, it does not mention potential side effects like ledger updates beyond the grant.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear one-sentence summary. It then organizes information predictably: restrictions, use cases, idempotency note, and parameter definitions. Every sentence serves a purpose; no redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (handling return value documentation), the description covers all critical aspects: purpose, security restrictions, use cases, idempotency, and parameter semantics. It is complete for an agent to decide when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It includes an 'Args' section that explains each parameter: invoice_id (BTCPay invoice ID to verify and credit), patron_npub (whose ledger receives the grant), and dpop_token (Nostr event signed by operator). This adds crucial meaning beyond the bare property declarations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Credit a patron's ledger from a BTCPay-settled invoice.' It clearly distinguishes from siblings like 'purchase_credits' (which is likely for initial purchase) and 'notarize_ledger' (verification) by specifying the trigger (settled invoice) and action (manual credit grant).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states the tool is 'RESTRICTED to the operator' and lists concrete use cases like 'cold-start vault races', 'ncred delivery hiccups', and 'infrastructure incidents'. It implies when not to use (patrons should escalate instead of invoking directly) but does not explicitly exclude other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_restore_neon_schemaAInspect
Re-run ensure_schema() on every NeonVault this operator uses.
Diagnostic / recovery tool for the case where the Neon HTTP SQL API
is returning persistent 4xx errors and the operator suspects the
schema isn't there or grants are wrong. Idempotent — uses
CREATE TABLE IF NOT EXISTS so a successful re-run is harmless.
Returns the per-step result. If any step raises, surfaces the Neon
error message inline (0.31.0 reads the SQL error body that earlier
wheels swallowed behind raise_for_status).
RESTRICTED to operator — requires proof (nsec-signed).
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses idempotency (CREATE TABLE IF NOT EXISTS), return of per-step results, error message surfacing, and restricted access (nsec-signed proof). Could further detail schema creation behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is concise and front-loaded with purpose, but includes a code block (backticks) that is unnecessary and slightly verbose. Each sentence adds value, except the inline code reference could be simplified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given tool complexity (diagnostic, auth, error handling), description covers idempotency, error behavior, and returns. Output schema exists, so no return value explanation needed. Missing parameter context reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only parameter dpop_token has no description in schema or description. Description mentions required proof but does not link it to the parameter. 0% schema coverage and no parameter explanation leaves the agent uninformed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool re-runs ensure_schema() on NeonVault instances, and it is a diagnostic/recovery tool for Neon HTTP SQL API 4xx errors. This distinguishes it from sibling tools that are unrelated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description specifies when to use: when Neon HTTP SQL API returns persistent 4xx errors and schema is suspected wrong. It notes idempotency and harmlessness, but does not explicitly mention when not to use or provide alternative tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_save_snippetAInspect
Save a reusable post snippet (opening/footer/CTA). Omit snippet_id to
create a new one; pass it to update an existing snippet in place (name/text/
favorite/doc). On update only the fields you pass change — omit favorite
(leave it null) to keep it as-is, so a doc-only patch (e.g. toggling a snippet
dynamic) doesn't reset it. doc is the same block/flag document a post
carries, so the editor is identical for both. Free and owner-scoped. Returns
{"success": true, "snippet": …}.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | No | ||
| name | No | ||
| npub | No | Required. Your Nostr public key (npub1...). | |
| text | No | ||
| favorite | No | ||
| dpop_token | No | ||
| snippet_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. It discloses partial update behavior for favorite, explains doc is the same block/flag document used in posts, states 'free and owner-scoped', and provides the exact return format. This exceeds expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences packed with critical information, no filler. Front-loaded purpose, then explains update semantics, then context on doc and return value. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters and no visible output schema (though context says it exists), the description covers the main behavioral aspects and return format. Could mention npub and dpop_token briefly, but overall quite complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14%, but the description adds crucial meaning for snippet_id (create vs. update), favorite (null to preserve), and doc (identical to post document). It does not explain npub or dpop_token, but the overall value is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates or updates a reusable post snippet, and distinguishes from sibling tools like get_snippet, list_snippets, and delete_snippet. It specifies the resource (snippet) and verb (save) with examples (opening/footer/CTA).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use the tool vs. when not: omit snippet_id to create, pass it to update. It also provides guidance on partial updates (omit favorite to keep unchanged). No explicit when-not-to-use beyond that, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_save_voiceAInspect
Save your writing Voice (replaces the previous one — it is a per-npub
singleton). profile is free text. bans is a list of {text, on}
objects: text is the construction to avoid, on whether it is an active
constraint. Blank/duplicate entries are dropped server-side. Owner-scoped;
priced by the operator's pricing model (use check_price). Returns
{"success": true, "voice": {...}}.
| Name | Required | Description | Default |
|---|---|---|---|
| bans | No | ||
| npub | No | Required. Your Nostr public key (npub1...). | |
| profile | No | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the voice replaces previous, drops blank/duplicate bans, and is owner-scoped and priced. Could mention side effects or authentication requirements more explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is one paragraph but concise. It front-loads the purpose and then details parameters. Could be improved with bullet points or more structured formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given missing annotations and low schema coverage, the description covers key aspects: purpose, parameter details for two params, return format, and behavioral notes. Missing explanation for dpop_token and npub usage when empty. Good but not exhaustive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%). Description adds meaning for profile and bans, but not for npub or dpop_token. Npub's schema description is provided but dpop_token is unexplained. Partial compensation for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool saves a writing voice and replaces the previous one (per-npub singleton). This distinguishes it from sibling tools like excalibur_get_voice and excalibur_save_snippet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description indicates it is owner-scoped and priced, and directs users to check_price. It also explains bans behavior. However, it does not explicitly contrast with alternatives or specify when to use this over other save tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_service_statusBInspect
Check the health and configuration of this service. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only adds 'Free,' which hints at no cost but does not disclose behavioral traits like read-only status, side effects, or required permissions. The agent must infer from the verb 'check' that it is likely safe.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two very short sentences with no redundancy. Every word earns its place, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless health check tool with an output schema, the description is minimally adequate. It tells what it does and that it's free, but misses context like typical usage scenarios or output highlights.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters, the schema already fully covers parameter semantics. Baseline is 4; description adds no parameter information but does not need to.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks health and configuration of the service. It distinguishes from siblings like 'excalibur_adoption_status' and 'excalibur_session_status' by focusing on the service itself, though not explicitly differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives. There are sibling tools for other status checks, but description does not mention exclusions or preferences.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_session_statusAInspect
Check operator readiness. Returns the operator lifecycle state and clear guidance on what to do next. Free.
Lifecycle states:
ready: Operator is warm and fully operational — vault AND pricing model verified. Proceed with tool calls.
warming_up: Operator is initializing (cold start). Try a tool call — it will warm up on demand.
misconfigured: Persistence rejected a query with a permanent SQL error (permission denied, missing relation). Paid tools will fail until the operator repairs the database — retrying does not help.
not_registered: Operator has no Authority relationship yet. Call register_operator first.
no_identity: Operator nsec is not configured. Deployment issue.
Args:
patron_npub: Optional. If supplied, the response includes an
upstream_oauth block with the patron's stored OAuth
token expiry (runtime-derived from vault state) so a
client can refresh proactively rather than reactively
after a stale-token failure.
| Name | Required | Description | Default |
|---|---|---|---|
| patron_npub | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description effectively discloses behavioral traits: it's free, returns state and guidance, and explains the optional parameter effect. Since no annotations exist, this level of detail is good, though it does not explicitly state idempotency or lack of side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with clear sections: purpose, states, and parameter details. It is somewhat verbose for the state descriptions, but overall front-loaded and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the existence of an output schema, the description sufficiently explains the conceptual output (lifecycle state, guidance, optional OAuth data). It could be more complete by noting the return format, but the output schema covers this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description extensively explains the optional parameter, detailing the response behavior (inclusion of upstream_oauth block) and its runtime derivation. This adds significant value beyond the bare schema, which only specifies type and default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks operator readiness, with a breakdown of lifecycle states. It distinguishes itself from sibling status tools like excalibur_service_status and excalibur_adoption_status by focusing on the operator's lifecycle, but does not explicitly compare with siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear action guidance for each lifecycle state (e.g., 'call register_operator first' for not_registered, 'try a tool call' for warming_up). However, it lacks explicit when-not-to-use or alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_set_pricing_modelBInspect
Set the active pricing model. RESTRICTED to operator.
Requires a valid proof (Schnorr-signed kind-27235 event) proving the caller holds the operator's nsec.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No | ||
| model_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses authentication requirement (Schnorr-signed proof) and operator restriction, but omits failure behavior, reversibility, or side effects. Without annotations, description carries burden but is incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise two-sentence structure with purpose front-loaded. Could integrate param hints without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Output schema exists, but param format/constraints and error handling are missing. Incomplete for a mutation tool with auth complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Neither description nor schema explains 'model_json' format or purpose of 'dpop_token'. With 0% schema coverage, this is a critical gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Set') and the resource ('active pricing model'), distinguishing it from siblings like 'get' and 'reset'. It also highlights the restricted operator role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use when changing pricing model and requires operator status, but lacks explicit when-not or comparison to alternatives like 'reset_pricing_model'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_update_couponAInspect
Patch a coupon's editable fields.
Pass only the fields you want to change. To set a cap to
unlimited (NULL in the schema), pass clear_uses_per_patron=true
or clear_total_uses=true. Renaming the code is allowed —
existing patron redemption rows survive (they key on coupon id).
RESTRICTED to operator — requires proof.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| coupon_id | Yes | ||
| dpop_token | No | ||
| total_uses | No | ||
| valid_from | No | ||
| valid_until | No | ||
| uses_per_patron | No | ||
| clear_total_uses | No | ||
| discount_percent | No | ||
| clear_uses_per_patron | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behaviors: renaming the code is allowed and existing patron redemption rows survive, and how to clear caps via boolean flags. Missing details on side effects for other fields, but the provided context is valuable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at 4 sentences, front-loaded with the core purpose, followed by usage instructions, behavioral note, and restriction. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the output schema exists, the description lacks complete context for all 10 parameters, especially format details for dates and the dpop_token. For a tool with no schema descriptions, more parameter guidance is needed for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so description must compensate. It adds meaning for the clear booleans and mentions the name field, but does not explain other parameters like valid_from, valid_until, discount_percent, or dpop_token. Partial coverage, leaving many parameters undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Patch a coupon's editable fields' with a specific verb and resource. This distinguishes it from sibling tools like mint, delete, forget, and list coupons, which have different actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides some guidance like 'Pass only the fields you want to change' and 'RESTRICTED to operator — requires proof.' However, it does not explicitly compare to alternatives or state when not to use this tool, so usage context is implied but not fully elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_update_patron_credentialAInspect
Add or update a single patron credential field.
Merges into existing stored credentials without affecting other fields. Useful for setting an account identifier after OAuth, changing a default brain, etc. Free. Proof of npub ownership is required — this is a write to the patron's sensitive credential vault.
Args: npub: The patron's Nostr public key (npub1...). dpop_token: A kind-27235 Nostr event signed by npub for this tool. field: The credential field name to set. value: The value to store.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| field | Yes | ||
| value | Yes | ||
| dpop_token | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description covers the write operation's nature (sensitive credential vault), merge behavior (doesn't affect other fields), and requirement of ownership proof. Lacks details on idempotency or failure modes, but adequate given context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a concise intro, merge behavior, use cases, requirement, and parameter list. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all essential aspects: what it does, how it works, when to use, prerequisites, and parameter details. Output schema exists, so return value explanation is not needed. Missing error scenarios but overall complete for a simple upsert tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description provides clear parameter explanations in the Args section: npub (Nostr public key), dpop_token (kind-27235 event), field (credential field name), value (value to store). Adds meaning beyond bare types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Add or update a single patron credential field' with a specific verb and resource. It distinguishes from siblings like delete and get tools, and explains merging behavior.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides example use cases (setting account identifier after OAuth, changing default brain) and mentions prerequisite (proof of npub ownership), but does not specify when not to use or explicitly contrast with alternatives like delete_patron_credential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_update_postAInspect
Patch a stored post. patch may set doc, publish_at, recurrence, cease_at, status (omit a field to leave it unchanged). text_cache is
written when supplied (alongside a doc change). client_req_id dedupes
debounced autosave retries — a repeat is a no-op with no second charge.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| patch | Yes | ||
| post_id | Yes | ||
| dpop_token | No | ||
| text_cache | No | ||
| client_req_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains that patch can set specific fields, text_cache is written with doc changes, and client_req_id dedupes autosave retries with no second charge. However, it does not disclose error handling, idempotency beyond dedup, or authentication details beyond the npub parameter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with front-loaded action and field list. No unnecessary words. Could be slightly more structured (e.g., bullet points) but is efficient and clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (6 params, nested object, dedup logic), the description covers key behavior but omits details like error responses, required permissions, and atomicity. The output schema exists, so return values are covered, but the description could be more comprehensive for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17%, so the description compensates by explaining the patch object's allowed fields (doc, publish_at, recurrence, cease_at, status) and the behavior of text_cache and client_req_id. It adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool patches a stored post, which is a specific verb-resource pair. It distinguishes from sibling tools like excalibur_create_post, excalibur_delete_post, and excalibur_get_post by implying an update operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. The description implies usage for updating existing posts, but does not mention alternatives or conditions (e.g., post must exist). This is adequate but leaves the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!