Skip to main content
Glama

Server Details

FastMCP server for posting formatted content to X (Twitter) — Tollbooth-monetized, DPYC-native

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
lonniev/excalibur-mcp
GitHub Stars
3
Server Listing
eXcalibur MCP

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

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.

100% free. Your data is private.
Tool DescriptionsA

Average 4.1/5 across 72 of 72 tools scored. Lowest: 2.6/5.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct operation and domain (account, posts, coupons, credentials, scheduling, oracle, etc.), with clear differentiation even for similar-sounding tools like check_balance vs check_authority_balance or list_coupons vs list_my_coupons. There is no ambiguity.

Naming Consistency5/5

All tools follow a consistent verb_noun snake_case pattern (e.g., create_post, delete_coupon, list_posts), with no mixing of styles. The excalibur_ prefix is uniform.

Tool Count1/5

With 72 tools, the server far exceeds the typical well-scoped range (3–15). While the functionality is broad, the sheer number feels excessive for a single MCP server, leading to an extreme mismatch.

Completeness5/5

The tool surface covers the full lifecycle for core domains: CRUD for posts, snippets, coupons, credentials; complete flows for OAuth, npub proof, scheduling, notarization, and payments. No obvious gaps are present.

Available Tools

76 tools
excalibur_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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase. days: Number of days of daily usage history to include (default 30).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
npubYes
dpop_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. Explains free operation, authentication requirement (dpop_token), and security measure to prevent scraping. Describes token format and constraints (e.g., nonce recommended, time window).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear purpose first, then details, then argument specifications. Slightly verbose but each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema exists, but description still enumerates returned data types. Mentions what is not included (Authority tax balance). Additional context like 'Free' and authentication helps agent decide.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description adds full meaning: npub is Nostr public key, dpop_token is a kind-27235 event with specific requirements (not base64, must contain tool name, within 60s, etc.), days defaults to 30.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States 'Generate a patron's account statement at this operator' and lists returned data (purchase history, credit tranches, usage breakdown, daily logs). Distinguishes from sibling 'excalibur_check_balance' and clarifies it is not the Authority tax balance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clearly states it's free, requires proof of npub ownership via dpop_token, and warns against statement-scraping. However, does not explicitly compare to alternative tools for similar tasks.

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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase. days: Number of days of daily usage history to include (default 30).

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNo
npubYes
dpop_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses cost (1 api_sat), verification mechanism (debited_or_deny), and detailed dpop_token requirements. It does not mention side effects, but as a read-like operation, this is acceptable. Provides good transparency on security and cost.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a clear one-liner, then what the infographic contains, then cost/verification, then parameter details. It is slightly lengthy but each sentence adds value. Good front-loading of key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and an output schema exists, the description is fairly complete. It covers purpose, all parameters with details, cost, and verification. It could mention error handling or output format (SVG) but is sufficient for an 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.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description adds significant meaning: npub format (npub1...), dpop_token detailed constraints (raw JSON, kind-27235, time limit, tags), and days defaults to 30. This goes well beyond the schema's bare definitions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate a visual SVG infographic of your account statement' with a specific verb and resource. It distinguishes from sibling excalibur_account_statement by noting it returns the same data rendered as an SVG graphic with specific components.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides detailed guidelines for the dpop_token parameter, including format and constraints. It mentions cost (1 api_sat) and verification process. While it doesn't explicitly compare with alternatives, the distinction from account_statement is clear. No explicit when-not-to-use but sufficient context.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo
authority_npubYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Given no annotations, the description must disclose behavior. It mentions 'free' and 'polls the Authority MCP-to-MCP' and lists possible statuses (pending/approved/rejected/provisioned). However, it does not discuss idempotency, permissions, or whether the operation is 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences and a bullet list. The main purpose is front-loaded. However, it could be slightly more structured by adding parameter explanations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema and only 2 parameters, the description lacks essential context: no parameter descriptions, no authentication requirements, no explanation of the polling behavior or expected response format. The tool's purpose is clear but incomplete for reliable agent usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema parameter coverage is 0%, and the description does not explain any parameters. 'authority_npub' is implied by 'chosen Authority' but not explicitly described, and 'dpop_token' is entirely omitted. This is a critical gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'check', the resource 'operator's adoption-request status', and the scope 'at a chosen Authority'. It distinguishes from siblings like excalibur_request_adoption and 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (checking adoption status) but does not provide explicit when-to-use or when-not-to-use guidance, nor mentions alternatives among the many sibling tools.

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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
dpop_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description discloses important behavioral traits: it is free, requires proof of npub to prevent DOS, and implies idempotency. Does not detail rate limits or exact side effects, but covers the core safety aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is front-loaded with core action and contains well-structured parameter explanations. Although somewhat verbose, every sentence adds value and clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 guidelines, parameter semantics, and behavioral transparency. Relates well to sibling tools in the OAuth flow.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

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 provides detailed semantics for both parameters: 'npub' is a patron npub, and 'dpop_token' is a raw kind-27235 Nostr event JSON with specific formatting constraints (not base64, not NIP-98).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Start the OAuth2 authorization flow' with verb+resource, explains it returns an authorization URL, and distinguishes from sibling 'check_oauth_status' by mentioning the completion step.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly instructs 'Do NOT call this pre-emptively' and specifies when to use: only when a live tool fails with 'upstream_auth_refresh_needed'. Provides exclusion context about pending check_oauth_status not indicating session lapse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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 a critical behavioral trait: when the balance reaches zero, patron top-ups cannot be certified and the operator must call purchase_credits. It also notes the operation is free. However, it does not explicitly state that it is read-only, though the verb 'check' 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of four sentences, each adding essential information. The first sentence states the high-level purpose, the second describes the return value, the third explains the consequence of a zero balance, and the fourth clarifies ownership. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists, the description provides sufficient context: it explains the return value (sats available), the significance of the balance, and the next step if zero. It could marginally improve by explicitly stating it is a read-only operation, but overall it is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4. The description does not need to add parameter information since none exist. It correctly avoids mentioning parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool checks the operator's tax balance at the Authority, specifying it returns sats available for certifying patron credit purchases. It distinguishes itself from sibling tools like excalibur_check_balance by explicitly noting this is the operator's own funding, not a patron balance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 check sats available for patron credit certification. It also provides guidance on what to do when the balance reaches zero (call purchase_credits). However, it does not explicitly mention when not to use it or provide alternatives, leaving some room for improvement.

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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
dpop_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so description carries full burden. It discloses that the tool is free (no credits required) and requires a Proof-of-Possession token to prevent enumeration. However, it does not explicitly state that the tool is read-only or has no side effects, missing a chance to clarify safety.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with an intro, key notes, and parameter details. It is front-loaded with purpose and usage guidance. However, the dpop_token explanation is quite lengthy; while necessary, it could be slightly condensed without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 params, output schema provided), the description covers purpose, cost, authentication requirement, parameter details, and differentiation from a sibling. The presence of an output schema reduces the need to describe return values, so the description is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema provides no descriptions (0% coverage), but the description fully explains both parameters: npub as the Nostr public key whose balance to check, and dpop_token in detail (raw JSON of a specific Nostr event, constraints on 'u' tag, content, created_at, nonce). 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it checks a patron's credit balance at the operator, specifies it's the spending balance, and distinguishes from authority_check_balance. The verb 'check' and resource 'balance' are precise, and the description differentiates from siblings like 'excalibur_check_authority_balance'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use this tool (check patron balance) and when not to (use authority_check_balance for operator's own balance). Also mentions the prerequisite of proof of npub ownership to prevent unauthorized enumeration, providing clear context for usage.

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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
dpop_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Transparent about the scope: reports only this authorization attempt, not existing session validity. Details proof of npub ownership requirement and exact dpop_token format. Minor lack of idempotency mention.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with front-loaded purpose, then usage context, then parameter details. Each sentence adds value without redundancy. Appropriate length for a technical auth tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, description doesn't need to document return values. It covers the overall flow, edge cases, and error handling. Provides complete context for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but description fully compensates: explains npub as same one used in begin_oauth, and provides detailed, precise instructions for constructing dpop_token including tags, content, and time constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it checks OAuth2 authorization flow completion. It distinguishes from siblings like begin_oauth and session_status by specifying the exact purpose and relation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to call: after authorization URL from begin_oauth and login. Also clarifies when not to interpret 'pending' as session lapse, and recommends fallback to begin_oauth only on specific error.

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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
dpop_tokenYes
invoice_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It details auth requirements and token construction but does not explicitly confirm read-only behavior or mention any side effects. Output schema exists but is not described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and usage context, then detailed args. Slightly lengthy but every sentence adds value. Could be more concise, but structure is good.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers flow, auth requirements, and parameter sources. Does not explain output format, but output schema exists. For a payment status check with complex auth, it is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% coverage, so description fully explains each parameter: invoice_id from purchase_credits, npub as Nostr public key, dpop_token with detailed construction instructions, compensating for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Check the payment status of a Lightning invoice' and specifies that it should be called after paying the invoice from purchase_credits, which distinguishes it from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Call after paying the invoice from purchase_credits' and that it is free with no credits required, providing clear usage context. Could be improved by explicitly stating when not to use it, but current guidance is strong.

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"}').

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNo
tool_idYes
dpop_tokenNo
tool_kwargsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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 discloses the tool is free, requires no credits, and previews cost including constraint effects. It does not mention side effects, but the read-only nature is implied. Additional context on any destructive effects 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two clear paragraphs plus an Args section. It is well-structured, front-loads the main purpose, and every sentence adds value. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the main purpose and key parameters, but misses documenting npub and dpop_token. With 4 parameters and an output schema, the description should cover all parameters for completeness. The missing parameter documentation is a gap given the tool's complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains the two key parameters (tool_id and tool_kwargs) with examples and usage details, covering 50% of the 4 parameters. However, the schema has 0% coverage, and the parameters npub and dpop_token are not described. The description adds value beyond the schema but is incomplete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool previews the effective cost of a tool call, specifying it shows base cost and constraint effects (discounts, free trials, surge pricing). The name 'excalibur_check_price' and description uniquely identify its purpose among many sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 preview cost) and mentions it is free with no credits required. It does not explicitly state when not to use or list alternatives, but the context of siblings with distinct names makes the usage clear.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo
patron_npubNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states 'Free, no side effects — does not evict the cache or touch relays', clearly indicating read-only, safe behavior. However, it does not specify what happens if the token is not found or expired, which is minor.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, starting with a direct purpose sentence, then adding contextual comparison, usage guidance, side effects, and parameter details. No superfluous information; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has an output schema, so return values do not need to be described. The description covers purpose, usage context, side effects, and parameters. It is complete for a check tool, though it could mention the result when the token is expired.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so description must compensate. The Args section explains both parameters (patron_npub and dpop_token) meaningfully, referencing related tools. However, the description marks them as 'Required' while the schema has defaults and no required constraint, creating a slight inconsistency.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 'whether a previously-cached dpop_token is still valid'. It distinguishes itself from the sibling 'excalibur_check_oauth_status' by noting it mirrors that tool for the npub-proof flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit context: agents can use it before a paid call to avoid wasting credits on a guaranteed failure. It differentiates from check_oauth_status, but does not explicitly state when not to use it or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

excalibur_create_postAInspect

Store a new post (draft or scheduled). Returns its post_id.

Args: doc: The editable Doc — a JSON object whose consumed key is blocks, a list of block objects. A minimal static post is one block: {"blocks": [{"text": "gm. stack sats.", "flags": []}]}. Blocks are joined with a blank line between them to form text_cache. Each block: - text (str): the block's copy (for a dynamic block, a prompt). - flags (list): editor highlight regions, each {"start": int, "end": int, "note": str, "colorIdx": int} (char offsets into text) — pass [] when there are none. - dynamic (bool, optional): when true text is a prompt the server resolves with an LLM at post time; fallback (str) is posted if it fails, and domains/maxFetches/runtimeLimit bound its web access. Voice/bans live in your separate Voice profile and the schedule in publish_at/recurrence/cease_at — neither belongs in doc. 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
docYes
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
titleNo
statusNodraft
cease_atNo
tweet_urlNo
dpop_tokenNo
publish_atNo
recurrenceNo
text_cacheNo
client_req_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full burden. It explains idempotency via client_req_id and return of post_id. However, it omits side effects like credit charges, authentication requirements, or error handling. Some behavioral info is present but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but well-organized, with a clear opening sentence and bullet-like parameter explanations. It front-loads the purpose and is mostly concise, though some redundancy exists. Overall, it is effectively structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (11 parameters, nested objects), the description is quite thorough, covering key parameters and providing examples. An output schema exists, so return details are not required. However, it could mention prerequisites or error cases for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 9%, but the description provides extensive detail for most parameters (doc, text_cache, publish_at, recurrence, etc.), including format and examples. Not all parameters are covered (e.g., tweet_url, dpop_token), but the major ones are well explained, compensating for low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Store a new post (draft or scheduled). Returns its post_id.' This specifies the verb (store), resource (post), and distinguishes between draft and scheduled. It also differentiates from sibling tools like excalibur_update_post and excalibur_delete_post.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly provide when to use or alternative tools. While the purpose is clear, there is no guidance such as 'use this to create a new post; for updates use excalibur_update_post.' An agent can infer usage but lacks explicit context.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
coupon_idYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description fully discloses the cascading deletion to patron redemptions, the no-op behavior for chain steps referencing the deleted coupon, and the operator restriction. With no annotations provided, this transparency is critical and well-executed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of three short sentences. It front-loads the main action and uses additional sentences to add necessary behavioral and access context without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core functionality, side effects, and access restrictions. An output schema exists (per context signals), so return values are not needed. Minor omissions like error handling or prerequisites are acceptable given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description does not mention or explain the two parameters (coupon_id and dpop_token) despite 0% schema coverage. The meaning of coupon_id is implicit from the tool name, but dpop_token remains unexplained, leaving the agent with insufficient guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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, distinguishing it from other coupon tools like excalibur_mint_coupon, excalibur_list_coupons, and excalibur_update_coupon. The mention of cascading behavior and operator restriction further clarifies the tool's unique role.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is restricted to operators, providing some usage context. However, it does not explicitly compare with similar siblings like excalibur_forget_coupon or state when to use this tool over alternatives, leaving some ambiguity.

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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase. field: The credential field name to remove.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
fieldYes
dpop_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that this is a write operation to a sensitive credential vault, requires ownership proof via a detailed dpop_token format, and that it removes only one field without affecting others. This adds significant context beyond the name and schema, though it omits potential side effects or failure modes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a clear header, a brief summary paragraph, and an Args list. The essential information is front-loaded. The dpop_token description is lengthy but necessary given its complexity. No wasted sentences, though could be slightly more compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has only 3 parameters and an output schema exists, the description covers the core functionality, authentication, and parameter details. It explains the cost ('Free') and scope. It does not describe error cases or behavior when field doesn't exist, but for a deletion tool the description is quite complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description compensates well. It explains each parameter: npub is a Nostr public key, dpop_token is a Raw JSON with specific constraints (kind-27235, u tag, timing, etc.), and field is the credential field name. The dpop_token details are especially helpful. Minor improvement could list valid field values.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Remove a single patron credential field' and 'Deletes one field from stored credentials without affecting other fields.' This provides a specific verb-resource action, but does not explicitly differentiate from siblings like update or forget credentials, which reduces clarity slightly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 such as excalibur_update_patron_credential or excalibur_forget_credentials. The description mentions 'Proof of npub ownership is required' and that it's a write operation, but does not advise on selection criteria or contraindications.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
hardNo
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
post_idYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses the core behavioral difference between soft and hard delete, but lacks details on reversibility, authentication requirements, or cascading effects. 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with purpose, second sentence explains the key parameter. No unnecessary words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the availability of an output schema, return values are covered. However, the description omits authentication context (despite 'npub' and 'dpop_token' parameters) and prerequisites. For a delete tool, this is a moderate gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With only 25% schema description coverage, the description is needed to explain parameters. It explains 'hard' well but does not describe 'npub', 'dpop_token', or 'post_id' beyond implication. Insufficient compensation for low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete), the resource (stored post), and distinguishes between soft and hard deletion. It differentiates from sibling tools like excalibur_delete_coupon or excalibur_delete_snippet by specifying the resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use hard vs soft delete with the 'hard' parameter, but does not provide guidance on prerequisites (e.g., ownership, authentication) or alternatives (e.g., update tool). No explicit when-not-to-use info.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...).
dpop_tokenNo
snippet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It states the destructive nature ('Delete') and owner-scoping, but omits crucial details: whether deletion is irreversible, any side effects, permission requirements beyond npub, or error handling. The lack of annotation support makes this description insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, front-loading the action and ownership. However, it may be too brief, omitting important behavioral and parameter details. Every sentence earns its place, but more could be added without verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 does not explain what the tool returns (e.g., success message, deleted snippet). It lacks constraints, idempotency, and error scenarios. Given the simplicity of a delete operation, the description is incomplete for reliable agent use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33% (only npub has a description). The tool description does not add meaning to the snippet_id parameter beyond 'by id', nor does it clarify format or constraints. Since coverage is low, the description should compensate but fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (delete) and the resource (saved snippets by id). The phrase 'Free and owner-scoped' further specifies who can use it and at what cost. This distinguishes it from sibling tools like excalibur_save_snippet and excalibur_get_snippet.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for deleting one's own snippets ('owner-scoped'), but does not explicitly state when to use this tool versus alternatives. No 'when not to use' or direct comparisons to siblings are provided, leaving the agent to infer appropriateness.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...).
dpop_tokenNo
claim_checkYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries full burden. It discloses polling behavior, status transitions, owner-scoping, and watchdog re-kick of stalled jobs. It lacks mention of rate limits or potential side effects but covers key 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a short, well-structured paragraph that front-loads the primary purpose and then details statuses and behavior. Every sentence adds value, with no unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With output schema present, the description covers polling protocol, status meanings, and watchdog behavior. It is nearly complete for a polling tool, though it omits details like maximum poll intervals or timeouts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (npub only). The description adds context for claim_check by linking it to resolve_dynamic_block, but does not explain npub or dpop_token beyond schema descriptions. It provides some added value but not full compensation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: redeeming a claim check from resolve_dynamic_block. It specifies it is free and proof-gated, and explicitly contrasts with the initial resolve_dynamic_block call, distinguishing it from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear when-to-use guidance: poll with the claim_check until status is 'done'. It outlines different response statuses and mentions owner-scoping and watchdog behavior. It does not explicitly state when not to use, but 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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
coupon_idYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description takes on full burden. It discloses key traits: cosmetic-only effect, re-redeemability, and authentication requirement. This goes beyond a simple action statement, though it omits idempotency or error handling details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no fluff. The most critical information (what it does, cosmetic nature, requirement) is front-loaded. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema (handling return values), the description covers the effect and prerequisite for a simple mutation. It lacks mention of edge cases (e.g., coupon not in list) but is sufficient for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must explain parameters. It only mentions npub as 'proof', ignoring coupon_id and dpop_token. This leaves significant gaps in understanding parameter purpose, especially for dpop_token.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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') and specifies the resource and scope. It distinguishes itself from sibling tools like delete_coupon by emphasizing the cosmetic nature and that the coupon still exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context ('cosmetic only', 'requires proof of npub') but does not explicitly guide when to use this tool versus alternatives like delete_coupon or redeem_coupon. The usage is implied, not explicit.

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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
serviceYes
dpop_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It explicitly states that deletion is "as destructive as a write" and requires proof of npub ownership. It also details the dpop_token format requirements, adding transparency beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and uses a clear structure. However, the dpop_token explanation is quite lengthy and could be condensed. Given the necessity due to schema lack, it remains reasonably concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers authentication, parameter details, and usage hints. An output schema exists, so return values are likely covered there. It does not explicitly mention success/failure behavior or error handling, but the destructive hint mitigates that gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description compensates fully. It explains each parameter: service (credential service), npub (Nostr public key), and dpop_token (raw JSON event with specific constraints on time, tags, and format), providing critical meaning absent from the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with "Delete vaulted credentials for a specific service and npub." clearly specifying the verb (delete) and resource (vaulted credentials). The unique resource and action distinguish it from siblings like excalibur_delete_patron_credential or excalibur_delete_post.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for which npub to use (operator vs. patron) and emphasizes the need for proof of ownership. However, it does not explicitly state when to use this tool versus other deletion tools or mention any exclusions.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses the read-only nature, public data source, and return fields including empty profile case. However, it does not explain handling of default empty npub or potential errors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise with two sentences, front-loaded with the main purpose, and every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple one-parameter tool with output schema, the description sufficiently covers what the tool does and returns. It lacks error information but is adequate for a straightforward read operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so description must add context. It explains npub is a Nostr public key, but doesn't clarify the default empty value or expected format. More detail on the parameter's role would be helpful.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a public Nostr profile for a given npub, specifies NIP-01 kind-0 metadata, and distinguishes from sibling write tools like excalibur_publish_nostr_profile and other read tools like excalibur_get_x_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that the tool is free and requires no proof, but does not explicitly state when to use it versus alternatives or exclude cases. The differentiation from siblings is implicit through naming and context.

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...).

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
notarization_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It states the tool generates a proof (implying read-only), but does not explicitly confirm no side effects or disclose any behavioral traits like idempotency 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short and front-loaded with the main purpose. The Args section adds clarity but could be integrated. No wasted sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return format details are not needed. The description covers the tool's purpose and required parameters adequately. However, it could mention that the proof is used for verification purposes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds meaningful explanations for both parameters: 'notarization_id' is the record ID, 'npub' is the patron's Nostr public key with format hint. This goes beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Generate a Merkle inclusion proof that a patron's balance was included in a Bitcoin-notarized snapshot.' This is a specific verb+resource combination, distinguishing it from sibling tools like excalibur_list_notarizations or excalibur_notarize_ledger.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit guidance on when to use this tool versus alternatives (e.g., excalibur_check_proof_status, excalibur_receive_npub_proof). No prerequisites or context for invocation are provided.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Although no annotations are provided, the description discloses the tool's behavior: it shows which settings are configured/missing and how to deliver missing values. This adds context beyond the name, but does not explicitly state whether it is read-only or any other traits. Given its simple nature, it 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three short sentences: first states purpose, second details output, third gives alternative. No fluff, every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 sufficiently explains what the tool does and what it returns (configured/missing settings and delivery guidance). It is complete for a status tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so schema coverage is 100%. The description does not need to add parameter meaning, and the baseline of 3 is appropriate as no additional insight is required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'reports configuration readiness' for the operator, specifying verb+resource. It distinguishes itself from the sibling tool 'get_patron_onboarding_status' by noting the different scope (operator vs. patron-level).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly tells when to use this tool (for operator configuration readiness) and when not (for patron-level credential status, directing to 'get_patron_onboarding_status'). This provides clear guidance on 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, plus each field's delivered_at ISO-8601 timestamp when known (null for secrets vaulted before timestamps were recorded). Values are never exposed — use this to verify which fields are configured and how old each one is. 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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
dpop_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full responsibility. It transparently states that values are never exposed, the list itself is sensitive, and provides detailed authentication requirements and timestamp behavior. This covers key behavioral aspects for a read-only tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the main purpose and structured into paragraphs with an 'Args:' section. It is not overly verbose, but the dpop_token explanation could be slightly more concise. Overall, it is well-organized and each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (auth requirements, sensitivity) and the presence of an output schema (context signals: true), the description is complete. It explains what is returned (field names and timestamps) and the security implications, leaving no major gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description fully compensates by defining npub as the patron's Nostr public key and providing extensive detail on dpop_token: raw JSON of a kind-27235 event with constraints on tags, content, created_at, and nonce. This adds critical meaning beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists patron credential field names, not values, using the verb 'List' and specifying the resource. It distinguishes from sibling tools like excalibur_delete_patron_credential by focusing on reading field names only.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context for when to use the tool (to verify configured fields and their age) and prerequisites (proof of npub ownership). It does not explicitly exclude alternatives, but the purpose is clear enough that an agent can infer when to use this vs. other credential tools.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenYes
patron_npubYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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 discloses that credential presence is sensitive, requires proof of ownership, and is free. It also explains behavior for different service types. Could mention if it is read-only or has no side effects, but overall good transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a purpose paragraph followed by parameter definitions. It is not overly verbose but contains necessary details. Could be slightly tighter, but overall concise and front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the parameter count of 2 and presence of an output schema, the description covers the tool's purpose, prerequisites, and parameter semantics adequately. It explains the two service types and the sensitive nature. Doesn't describe return values, but that is acceptable due to output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must explain parameters. It does so in the Args section, defining patron_npub as the Nostr public key and dpop_token as a signed event. This adds meaning beyond the schema's type-only definitions, helping the agent understand the inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'Report a patron's credential readiness for this operator.' It distinguishes between set-once and dynamic/OAuth2 services and explains what is shown for each, making it specific and differentiating from 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides context on when to use the tool, including that proof of npub ownership is required. However, it does not explicitly mention alternatives or when not to use this tool, so it lacks explicit usage boundaries. Still, 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_postCInspect

Read one stored post by id (owner-scoped).

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
post_idYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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 does not disclose whether the operation is read-only, safe, or idempotent. Error conditions (e.g., post not found) and authorization requirements beyond 'owner-scoped' are absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. However, it could benefit from brevity-relevant details (e.g., auth hint) without becoming verbose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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, return format is covered, but the description lacks usage guidance, behavioral disclosure, and parameter elaboration. The tool is simple, yet the description feels incomplete for an AI agent to invoke correctly in all contexts.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 33% (npub documented). The description adds no semantics for post_id or dpop_token beyond implying post_id is the identifier. The phrase 'by id' does not clarify format or constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Read one stored post by id (owner-scoped)' clearly states the action (Read), the resource (stored post), and the scope (by id, owner-scoped). It distinguishes from sibling tools like list_posts (multiple posts) and create/delete (write operations).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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. The phrase 'owner-scoped' hints at access restrictions, but does not state when to choose get_post over list_posts, nor any prerequisites or limitations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

excalibur_get_post_metricsAInspect

Patron: raw metrics snapshot series for one owned post.

Returns the append-only post_metrics_snapshot rows (impressions, likes, clicks, cadence_key, t_offset, link_placement, snippet_ids) ordered by capture time. Empty when the post has not been harvested yet.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoYour npub (npub1...).
post_idYesThe post UUID whose snapshot series to return.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It discloses that data is append-only, ordered by capture time, and empty if not yet harvested. This is strong behavioral context, though it skips auth details (but 'Patron' implies ownership).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise: three sentences that front-load the purpose and add only essential behavioral details. No redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description doesn't need to detail return shape. It adds ordering, emptiness semantics, and ownership, providing enough context for a simple read-only getter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67%, and the description adds no parameter details. The post_id is well-described in schema, but dpop_token is undocumented in both schema and description, leaving a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns an append-only snapshot series for one owned post, listing specific fields and ordering. This specific verb+resource+scope distinguishes it from siblings like post_performance.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It provides clear context: use for raw metric snapshots of one owned post, and notes that an empty result means the post hasn't been harvested yet. It doesn't explicitly name alternatives, but the context is unambiguous.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, the description fully discloses key behavioral traits: it is free, self-initializes a scaffold if no model exists, and explicitly states 'No economic data from code.' This is comprehensive for a getter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. First sentence states purpose, second clarifies a special case. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and existence of an output schema, the description covers the essential behavioral aspects (initialization, cost, data source). No further info needed for a low-complexity tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. The description does not add parameter info beyond the schema, but the baseline for zero-parameter tools is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Get the active pricing model for this operator', which is a specific verb-noun combination. Distinguishes from sibling tools like set_pricing_model and reset_pricing_model by being the getter operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly clear when to use: querying the pricing model. Mentions free cost and self-initialization behavior, but does not explicitly state when not to use or list alternatives. However, the description provides enough 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}.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoYour npub (npub1...).
limitNoHow many recent runs to return (1..100).
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses key behaviors: the tool is owner-scoped, requires npub proof, and returns different data based on user role. It also describes the return structure and auth requirement ('Free; npub proof required'). No contradictory information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded. It explains the tool's purpose, use case, scope rules, and return format. Every sentence adds value, though slightly verbose in places. Overall, it is concise for the amount of information conveyed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is nearly complete for a read tool with three parameters and no output schema. It explains what the tool does, who can use it, what data is returned, and auth requirements. Sibling tool comparison is absent but not critical given the clear purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already covers two of three parameters with descriptions (npub and limit). The description adds context about how npub determines scope but does not elaborate on dpop_token. Given 67% schema coverage, the description provides marginal additional value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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, distinguishing it from siblings like excalibur_process_scheduled_posts and excalibur_scheduler_status. It specifies the output is for debugging and shows heartbeat per tick and per-post outcomes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 debug worker behavior) and what it shows. It lacks explicit when-not-to-use or alternative tools, but the context signals and sibling list provide implicit guidance. The scope differentiation (owner vs other patrons) is clearly stated.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...).
dpop_tokenNo
snippet_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the operation is read-only ('Read'), free, and owner-scoped. It also specifies the return format (success with snippet or error) but does not detail potential errors or side effects beyond 'snippet_not_found'. This is reasonably transparent 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long with no redundancy. It efficiently conveys purpose, scope, and return format. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 (indicated) and 3 parameters, the description covers core purpose and return format. However, it lacks parameter details and does not mention sibling tools or alternatives. It is functional but not fully comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 33%, and the description does not add any extra meaning to the parameters. The snippet_id parameter lacks format details in both schema and description. The npub and dpop_token parameters are not explained beyond the schema defaults. For low coverage, the description should compensate, but it does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a saved snippet by ID, and distinguishes it from sibling tools like excalibur_save_snippet, excalibur_delete_snippet, and excalibur_list_snippets. The verb 'read' and resource 'snippet' are specific, and the scope 'owner-scoped' adds clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Free and owner-scoped', implying it should be used by the owner for their own snippets. However, it does not explicitly state when to use this tool versus alternatives like excalibur_list_snippets or excalibur_get_post. No direct exclusions or scenarios are provided.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...).
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that an empty Voice is returned if none saved, that it is owner-scoped, and that pricing applies. It does not detail authentication or error states but covers the key behavioral traits 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loaded with the core action, and contains no verbose or redundant phrases. Every sentence adds value: purpose, return behavior, and pricing context.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 does not need to details return fields but explains the empty case and structure. It covers ownership and pricing adequately. Minor gap: no mention of error scenarios, but acceptable given output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (npub has a description; dpop_token does not). The description does not add meaning for either parameter, missing a chance to explain dpop_token or clarify usage. With moderate coverage, the description should compensate but fails to do so.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool reads a saved writing Voice, including its components (profile blur and banned chips). It distinguishes from siblings like excalibur_save_voice and mentions owner-scoping and default empty return, 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context: owner-scoped and priced via check_price. It implies when to use (when needing to read the Voice) but does not explicitly exclude alternatives or state when not to use it. The guidance is clear but lacks direct comparison with other tools.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...).
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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 discloses the use of vaulted OAuth token, X API call, and return format including the unconnected state. However, it omits potential issues like token expiration, rate limits, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, each earning its place: first states purpose, second explains mechanism and return format, third gives concrete use case. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the low complexity and presence of output schema (return format explicitly listed), the description covers purpose, input (vaguely), mechanism, output, and use case. It lacks prerequisite guidance (e.g., OAuth must be linked) but is otherwise sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: only `npub` is described as 'Required. Your Nostr public key'. The description does not clarify `dpop_token` at all, leaving it undocumented. The description 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool fetches the connected X account's handle and name, specifying the resource (X account) and the action (fetch). It distinguishes itself from siblings like excalibur_get_nostr_profile (Nostr profile) and excalibur_check_oauth_status (OAuth status check).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for tweet-card preview and mentions OAuth token, indicating a prerequisite, but lacks explicit when-not-to-use or alternatives. It does not guide the agent to check OAuth status first or compare with similar tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

excalibur_harvest_metricsAInspect

Operator-only: one cadence-aware metrics harvest sweep.

Drains due metrics_harvest_job rows (t+15m … t+28d), fetches X non_public_metrics / organic_metrics under each patron's OAuth context, and appends post_metrics_snapshot rows. A missed cadence is permanent data loss — failed jobs retry up to 5 attempts then land in the dead-letter queue; pass requeue_dead_id to retry one. Also runs as phase 3 of every process_scheduled_posts tick.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoThe OPERATOR's npub (npub1...); this tool is operator-only.
dpop_tokenNo
requeue_dead_idNoOptional dead-letter job UUID to requeue before the sweep.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full responsibility and does so richly. It discloses the tool's draining behavior (mutating job rows), the data loss risk on missed cadence, the retry mechanism (5 attempts), dead-letter queue handling, the ability to requeue via requeue_dead_id, and the OAuth context requirement. These are significant behavioral traits beyond simple operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact but dense: a one-line summary, a detailed operation sentence, a failure-mode sentence, and an integration sentence. Every sentence adds critical information (scope, process, risk, retry, automation context) without fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the presence of an output schema, the description is remarkably complete. It covers the full operational flow, error handling, dead-letter queue, manual requeue option, and integration with process_scheduled_posts. No missing critical context is apparent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67% (npub and requeue_dead_id are described; dpop_token is not). The description adds context for requeue_dead_id as a dead-letter job UUID, but does not clarify dpop_token's purpose. This is above 50% coverage, so baseline 3 applies, with only marginal added value for parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a 'cadence-aware metrics harvest sweep' and details its specific actions: draining due metrics_harvest_job rows, fetching non_public_metrics/organic_metrics under OAuth context, and appending post_metrics_snapshot rows. It distinguishes itself from siblings by noting it runs as phase 3 of process_scheduled_posts, separating it from single-post metric fetchers.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly marks the tool as 'Operator-only' and describes its cadence-aware batch behavior, implying when it should be used (for harvest sweeps) vs. per-post metric retrieval. It also mentions it runs automatically as phase 3 of process_scheduled_posts, giving context on manual vs. automatic usage. However, it does not explicitly list alternative tools or exclusion criteria.

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 tool the wheel exposes.

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.

Includes both ToolIdentity-seeded tools and any UUID recorded by @paid_tool that is missing from the registry. The latter appear with registered: false (and in the top-level unregistered array) so Reconcile can flag deploy drift instead of silently reporting clean when a live tool was never seeded (#174).

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.

Also diffs the live FastMCP wire surface against the registry. Tools exposed on the wire but absent from the registry appear in unregistered so Reconcile can flag deploy drift instead of silently under-reporting (issue #175).

Free, no side effects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations being provided, the description fully discloses behavior: it notes 'Free, no side effects,' explains that renamed functions change mcp_name but keep tool_id, and details the registered:false/unregistered semantics for deployment drift detection. It even references issue numbers (#174, #175) for context. This is rich behavioral disclosure that carries the entire burden absent annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear paragraphs covering purpose, consumers, canonical-UUID design, and wire-surface diffing, ending with 'Free, no side effects.' It's slightly verbose with some redundancy ('flag deploy drift' appears twice, the canonical-UUID point is reiterated), but each sentence earns its place and there's no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with an output schema present, the description is thorough. It explains the return structure (registered flags, unregistered array), the semantics of tool_id stability across renames, and the drift-detection value. Given no params to document and an output schema exists, the description fully covers what an agent needs to use this correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and 100% schema coverage (effectively empty schema, nothing to document). With 0 params, the baseline is 4. The description adds value by explaining what the output contains (registered:false, unregistered array) which orients expectations even though no parameter semantics are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns canonical (tool_id, mcp_name, ...) for every exposed tool, which is a specific verb+resource+deliverable. It distinguishes itself from siblings by directly positioning it as the authoritative source for identity resolution, unlike list_coupons, list_posts, etc. which list domain data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description names concrete consumers ('Studio, agents, FE') and specific use cases ('Reconcile uses this output to UUID-join against the stored pricing model'). It explicitly states when NOT to use it ('no name-based UUID derivation, no guessing') and explains what the authoritative-canonical design solves. This gives an agent clear decision context for when this tool is the appropriate choice.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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 the tool is free and does not consume credits, which is valuable beyond the obvious 'list' operation. It does not mention authentication or potential errors, but given the simplicity, this is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: first states the purpose, second adds details about output. No redundant words, front-loaded for quick understanding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with no parameters and an output schema. The description explains what is returned and that it is free. This is complete for a query tool of this nature.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, and schema coverage is 100%. The description does not need to add parameter meaning, and it briefly lists what each constraint includes (type, category, etc.), adding context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists all available constraint types and their parameter schemas, specifying what data is returned (type, category, description, parameter specs). It distinguishes itself from sibling tools by focusing on constraint enumeration for pricing pipelines.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates the tool is for listing constraints usable in a pricing pipeline, providing clear context. While it does not explicitly mention when not to use it or alternatives, there are no closely related sibling tools that might cause confusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

excalibur_list_couponsBInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses ordering and the auth restriction, but does not mention read-only nature, rate limits, or other behavioral details. Adds some value beyond the name.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with no redundancy. Purpose, data field, and restriction are efficiently conveyed. Highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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, return values are not needed. However, the description lacks details on error conditions, pagination, or the meaning of 'requires proof'. For a simple list tool, it is adequate but not thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter (dpop_token) has 0% schema description coverage, and the tool description does not explain its purpose or usage. The description adds no value for parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states it lists coupons minted by the operator, ordered newest first. Provides context about the 'times_redeemed' field. However, does not distinguish from the sibling tool 'excalibur_list_my_coupons', which likely has a different scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Mentions 'RESTRICTED to operator – requires proof', indicating a prerequisite. No explicit when-to-use or when-not-to-use guidance, and no alternatives referenced. The constraint is noted but not elaborated.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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 that both active and exhausted redemptions are returned, and explains the status field values. It also notes it is free, providing clear 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three sentences, front-loaded with the main action, and each sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 sufficiently covers purpose, usage, behavior, and parameter requirement, providing complete context for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 mentions the npub parameter as required, but does not explain the dpop_token parameter. This partially adds meaning but lacks full parameter documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'list' and resource 'coupons', and specifies the scope 'this patron has redeemed on this operator', distinguishing it from similar tools like 'excalibur_list_coupons'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions the prerequisite 'requires proof of npub', which guides usage, but does not explicitly state when not to use or list alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

excalibur_list_notarizationsAInspect

List recent Bitcoin notarization records.

Args: limit: Maximum records to return (default 20). status: Optional filter (e.g., 'submitted', 'confirmed').

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It states it lists records but omits behavioral traits like read-only nature, authentication needs, rate limits, or default ordering. The term 'recent' implies ordering but is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: one sentence for purpose and two lines for parameter definitions. Every word is informative with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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 and only two optional parameters, the description is adequate but lacks details on ordering ('recent' is ambiguous) and pagination limits beyond 'limit'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no descriptions (0% coverage), but the description explains each parameter: 'limit' as maximum records (with default), and 'status' as optional filter with examples. This adds necessary meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list) and the resource (Bitcoin notarization records). It distinguishes from siblings like excalibur_get_notarization_proof and excalibur_notarize_ledger.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool vs alternatives. It does not mention when not to use it or suggest other tools for specific scenarios.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
pageNo
searchNo
statusNo
date_toNo
sort_colNocreated
sort_dirNodesc
date_fromNo
page_sizeNo
date_fieldNocreated
dpop_tokenNo
template_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It explains server-side processing, pagination (0-indexed, page_size range), sorting, filtering (status as set, regex search, date bounds), and the returned structure. However, it does not mention potential rate limits, idempotency, or authentication requirements beyond npub.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is relatively long but each sentence adds value. It is front-loaded with the core purpose and then details parameters. Could be slightly more structured (e.g., bulleted list) but remains concise without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, output schema exists), the description covers filtering, sorting, pagination, and response format. It lacks mention of error cases, prerequisites (e.g., authentication flow with dpop_token), and potential edge cases. Still very thorough.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 8%, so the description compensates well. It explains most parameters in detail: status filter (comma-separated set), sort_col and sort_dir choices, search (regex, case-insensitive), date_from/to (format and inclusivity), date_field linkage, template_id, page, page_size. Only dpop_token lacks explanation, but overall exceeds expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'List your stored posts' with specific verb and resource. It distinguishes from sibling tools like excalibur_get_post by emphasizing listing, filtering, sorting, and pagination.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving filtered lists of posts, but does not explicitly mention when not to use it (e.g., for a single post use get_post) or compare with other list tools. The context is clear, but exclusions are absent.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...).
pageNo
searchNo
date_toNo
sort_colNofavorite
sort_dirNodesc
date_fromNo
page_sizeNo
date_fieldNocreated
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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 discloses server-side sorting, filtering, offset pagination, owner-scoping, and the return format. It does not mention potential performance limits or errors, but it adequately describes the behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the purpose and then lists parameters efficiently. It is somewhat lengthy but every sentence adds necessary detail without redundancy. Could be slightly more concise, but well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists (context signals indicate true), so the description does not need to detail return values beyond what it provides. It covers all key aspects: filtering, pagination, scope, and the response shape. Complete for a listing tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 10%, so the description must compensate. It does so by detailing each parameter's meaning: sort_col values, sort_dir, search as regex, date range format, page indexing, page size range. This adds substantial value beyond the sparse schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'List your saved post snippets,' which is a specific verb+resource pair. Among sibling tools, there are delete, get, and save snippet, but only this one lists snippets, making it clearly distinguishable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the filtering and pagination parameters and states 'Free, owner-scoped,' which implies it's for the user's own snippets. It does not explicitly say when not to use it or compare with siblings, 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).

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
dpop_tokenNo
total_usesNo
valid_fromYes
valid_untilYes
uses_per_patronNo
discount_percentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses the creation behavior, operator-only restriction, and auth requirement. It does not mention idempotency or error handling, but the primary behavior is clear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear purpose statement followed by a list of parameters. Every sentence adds value, and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of 7 parameters and existence of an output schema, the description adequately covers creation, restrictions, auth, and parameter meanings. It lacks details on return value fields and error conditions, but remains functional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description explains 6 of 7 parameters with details like uniqueness, range, ISO-8601 format, and defaults. The dpop_token parameter is omitted, leaving a minor gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Create a new operator-owned discount coupon,' specifying the verb and resource. It distinguishes from sibling tools like list, delete, update, and redeem by focusing on creation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly restricts usage to operators and mentions required authentication. However, it does not provide explicit guidance on when to use this tool versus alternatives like update_coupon or redeem_coupon, though the action is self-evident.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Given no annotations, the description fairly discloses the key behavioral traits: it's a background task, Bitcoin confirmation takes 1-6 hours, and it's free. However, it doesn't mention idempotency or potential 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three concise sentences with zero wasted words, efficiently conveying purpose, usage context, and cost.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the purpose, timing, and who can use it. With an output schema available, it doesn't need to detail return values, but could mention what triggers the task or if it's idempotent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the baseline of 4 applies; the description adds no parameter info which is acceptable.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool builds a Merkle tree of patron balances and submits the root to Bitcoin via OpenTimestamps, with a specific verb and resource, distinguishing it from the many sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It specifies it's an operator-only background task, indicating who should use it, but lacks explicit guidance on 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_oracle_aboutCInspect

Describe the DPYC ecosystem via the Oracle. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior1/5

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 says 'Free', which hints at no cost but does not address side effects, authentication needs, rate limits, or whether the description is static or dynamic. This is insufficient for a tool with no annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with no wasted words, but it is under-specified. It could be expanded to add more clarity without becoming verbose. A sentence that explains what the output contains would improve it.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters and an output schema exists, the description is minimal. It does not explain what the Oracle provides or what the output format is. While the output schema may fill gaps, the description should offer more context for users to understand the tool's purpose.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, and schema coverage is trivially 100%. The description adds no meaning beyond the schema, which already declares no parameters. A baseline of 3 is appropriate because the schema covers everything.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Describe the DPYC ecosystem via the Oracle', which clearly indicates the verb 'describe' and the resource 'DPYC ecosystem'. However, it lacks specificity about what aspect of the ecosystem is covered, and the term 'Oracle' is not explained. It distinguishes from sibling tools like excalibur_oracle_get_tax_rate or excalibur_oracle_lookup_member, but 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.

Usage Guidelines2/5

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. Among many sibling oracle tools (e.g., excalibur_oracle_how_to_join, excalibur_oracle_network_advisory), the description provides no context for when to choose this one.

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_rateBInspect

Get the current DPYC certification tax rate. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It only mentions 'Free' which hints at no cost, but lacks details on read-only nature, idempotency, or any side effects. For a tool with no annotations, more behavioral context is expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with a single sentence. Every word is meaningful and there is no extraneous content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity (no parameters, simple output), the description is adequate but could be improved by stating what the tax rate is applied to or any prerequisite conditions. The mention of 'Free' adds value, but more context like 'read-only' or 'call anytime' would enhance completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has zero parameters, so there is no need for parameter descriptions. According to the baseline rule for 0 parameters, a score of 4 is appropriate as the description doesn't need to add extra meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: getting the current DPYC certification tax rate. The word 'Free' provides additional context. However, it does not explicitly distinguish this tool from sibling tools like excalibur_oracle_network_advisory or excalibur_check_price.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. There is no mention of prerequisites, typical contexts, or situations where a different tool would be more appropriate.

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_joinBInspect

Get DPYC onboarding instructions from the Oracle. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It only mentions the tool returns instructions and is 'Free', but does not disclose any behavioral traits like whether it requires authentication or how it behaves.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Extremely concise: 6 words in one sentence. Front-loaded with the key action and resource. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters and an output schema, the description adequately identifies the tool's purpose. However, it could briefly clarify what 'DPYC' stands for or what type of instructions are provided.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so baseline is 4. The description adds no parameter meaning but is not required to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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 'DPYC onboarding instructions from the Oracle'. It distinguishes itself from sibling Oracle tools like 'oracle_about' and 'oracle_lookup_member' by focusing on onboarding instructions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidelines on when to use this tool versus alternatives. The description does not mention prerequisites, context, 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_oracle_lookup_memberBInspect

Look up a DPYC community member by npub. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior. It only mentions it's free, but omits authentication requirements, rate limits, error handling (e.g., invalid npub, member not found), and whether it has 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence, front-loaded with the core action. However, it could include additional context without becoming verbose, so it doesn't achieve absolute efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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, lookup), the description covers the basics. However, it lacks context on input validation, response format (though output schema exists), and edge cases. It is minimally viable but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no description for npub). The description merely repeats the parameter name without explaining what an npub is or its expected format (e.g., hex, bech32). This fails to compensate for the missing schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'Look up', the resource 'DPYC community member', the key identifier 'npub', and adds a bonus feature 'Free'. It effectively distinguishes from sibling tools like excalibur_oracle_about or excalibur_get_nostr_profile.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. With a large set of sibling tools, the agent would benefit from conditions like 'Use this for DPYC members, use excalibur_get_nostr_profile for general Nostr profiles.'

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavioral traits. It only mentions that the tool is 'Free', implying no cost, but provides no information on idempotency, side effects, permissions, or error handling. This is insufficient for informed invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, consisting of two short sentences. Key information (action, resource, cost) is front-loaded with no filler. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of parameters and the presence of an output schema, the description does not need to explain return values. However, it fails to clarify what 'network advisories' entail or how the output is structured, leaving some contextual gaps for a tool with many siblings.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema coverage is trivially 100%. Per the baseline rule, a score of 4 is appropriate since there is no need for the description to add parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (get) and resource (active network advisories), identifying the tool's primary function. It distinguishes from sibling oracle tools like 'oracle_about' and 'oracle_get_tax_rate', but does not define what constitutes a 'network advisory', leaving some ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The description lacks any conditions, prerequisites, or exclusions, forcing the agent to rely solely on the tool name and context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

excalibur_post_nostr_messageAInspect

Publish a public Nostr note (kind 1) authored by your proven npub.

eXcalibur cannot sign a note as you — a Nostr event must be signed by the key it claims to come from, and eXcalibur never holds your nsec. So for this one note it mints a fresh, ephemeral "scribe" keypair, signs with it, and p-tags YOUR npub as the author. The p-tag renders the note as a real mention and places it in your own Nostr mentions, so you can see — and disown — anything published in your name.

The author is always your proven npub from this session (the same npub you pass for billing); it is never a free-form argument, so no caller can scribe as anyone else.

The note publishes to the DPYC relay set. The call succeeds if at least one relay accepts it; the response lists every relay's accept/reject and the accepted/attempted counts so you can see the note's real reach — a one-relay publish never reads as a clean broadcast.

Args: message: The note text to publish. npub: Your DPYC patron npub (npub1...) — proven, billed, and recorded as the note's author.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your PROVEN Nostr public key (npub1...). You are recorded as the note's author.
messageYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses key behaviors: uses a fresh scribe keypair, p-tags user's npub as author, publishes to DPYC relays, succeeds if at least one relay accepts, and lists relay responses. It honestly clarifies that the note is not truly signed by the user's key.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy (5 paragraphs) and includes technical details. While informative, it could be more concise. It is front-loaded with purpose but has room for trimming.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of Nostr protocol, the description covers scribe key, author assignment, relay acceptance logic, and response format. Missing minor details like error handling and dpop_token purpose, but output schema presumably covers return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning beyond schema: 'message' is the note text, 'npub' is the proven DPYC patron npub. Schema covers npub description, but dpop_token is not explained in description. Overall, it compensates for 33% schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool publishes a public Nostr note (kind 1) authored by the user's proven npub. It distinguishes from siblings like excalibur_create_post (different post type) and excalibur_publish_nostr_profile (profile update).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use: to publish a Nostr note from your proven npub. It details the scribe key mechanism and relay acceptance. However, it does not explicitly state when not to use or list alternatives, though context makes it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

excalibur_post_performanceBInspect

Patron: derived reach scores across your harvested post corpus.

Computes escape velocity (t+15m vs rolling median), breakout ratio (impressions ÷ followers), link-placement cohort medians, and snippet/voice attribution from the durable snapshot store — signals that come from owning the curve, not proxying a single X endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoYour npub (npub1...).
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden of behavioral disclosure. It does add context about the data source (durable snapshot store) and the derived nature of the output, but it does not explicitly confirm read-only behavior, authentication requirements, rate limits, or side effects. The 'Patron:' prefix hints at access restrictions but is not explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is moderately concise and front-loads the main purpose, but it includes jargon-heavy flourishes like 'signals that come from owning the curve' that add little practical value. A tighter, less poetic phrasing would improve clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains what metrics are computed and notes the data source, and an output schema exists to cover return values. However, it lacks explicit usage guidance, auth context, and side-effect clarity, and relies on undefined jargon that may hinder an agent's full understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes npub but leaves dpop_token with an empty description, and the tool description does not explain either parameter. With schema description coverage at 50%, the description needed to compensate for dpop_token's meaning but did not, leaving the auth token's role ambiguous.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool computes derived reach scores across the user's harvested post corpus and enumerates specific metrics (escape velocity, breakout ratio, cohort medians, snippet/voice attribution). It distinguishes this from simple X endpoint proxying, and the sibling infographic tool is implicitly separated by focusing on raw derived scores rather than visual output.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the tool is for analyzing derived performance metrics from one's own stored corpus, but it does not explicitly state when to use it versus alternatives like excalibur_get_post_metrics or excalibur_post_performance_infographic. There is no mention of conditions, prerequisites, or exclusions, so usage guidance is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

excalibur_post_performance_infographicCInspect

Patron: SVG infographic of post performance (gold-steel theme).

Mirrors account_statement_infographic — a dark-themed SVG of corpus size, median t+15m impressions, top posts, and link-placement cohorts.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoYour npub (npub1...).
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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 mentions it 'Mirrors account_statement_infographic' and lists included metrics (corpus size, median t+15m impressions, etc.), but it does not state whether the tool is read-only, whether it requires OAuth or patron credentials, what side effects occur, or how the SVG is returned. The 'Patron:' prefix hints at access restrictions but is ambiguous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences that front-load the purpose and then add relevant detail about theme and content. Every sentence contributes value, with no redundant filler or vague jargon.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives a good overview of the output content and theme, but it omits critical context about authentication, prerequisites, and parameter usage. While the presence of an output schema reduces the need to describe return values, the tool still requires npub and dpop_token, and the description doesn't explain how these are used or why they are needed. This leaves the tool somewhat incomplete for an agent to invoke confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description provides no explanation of the 'npub' and 'dpop_token' parameters beyond what the schema already gives for npub. The 'dpop_token' parameter is entirely undocumented in both the schema and description, leaving a significant gap. Since schema coverage is only 50%, the description should have clarified the role of the token but did not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states this tool produces an 'SVG infographic of post performance' with a specific gold-steel theme, which identifies the resource and output type. It also references the sibling 'account_statement_infographic' to give context, but it doesn't explicitly state the action verb (e.g., 'generate' or 'create') nor directly contrast with 'excalibur_post_performance' for data vs. infographic.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies similarity to 'account_statement_infographic' but provides no explicit guidance on when to use this tool versus alternatives like 'excalibur_post_performance' or other infographic tools. There is no mention of scenarios, prerequisites (e.g., being a patron), or exclusions, leaving the agent to infer usage context.

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`       -> monospace

Args: text: Tweet content with optional markdown formatting. npub: Your DPYC patron Nostr public key (npub1...) for credit attribution.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
textYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided; description discloses markdown conversion and npub for credit attribution but does not mention failure modes, rate limits, or authorization beyond npub.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Relatively concise with a clear intro, helpful markdown table, and args list. The args list repeats schema info slightly but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

No output schema in description; no mention of return values (e.g., tweet ID), character limits, or error handling. Leaves agent guessing about post-output behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Describes text and npub clearly but omits dpop_token entirely. Schema coverage is 33%, so description partially compensates but leaves a gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states action (post) and resource (tweet) with a specific feature (markdown to Unicode rich text). Distinguishes from siblings like excalibur_post_tweet_image.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Describes markdown conversion and npub requirement but lacks explicit guidance on when to use vs alternatives like excalibur_post_tweet_image or excalibur_create_post.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
textYes
image_urlNo
banner_svgNo
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes that image_url is fetched and attached, banner_svg is rendered to PNG, and npub is for credit attribution. However, it does not disclose authentication requirements, side effects (e.g., duplicate detection), rate limits, or what happens on failure. The dpop_token parameter is completely unexplained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly concise with two paragraphs. The first paragraph states purpose and parameter alternatives. The second paragraph repeats parameter info in an args style, which adds minimal value. Overall, it is efficient but could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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, return values need not be described. The description covers the main functionality (post tweet with image) and the two image sources. However, it lacks context on authentication (likely requiring OAuth, given sibling tools like excalibur_begin_oauth), and does not explain whether posts are immediate or scheduled. The dpop_token parameter's role is unclear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 20%, so the description adds significant value by explaining text (markdown), image_url vs banner_svg alternatives, and npub for attribution. However, it misstates npub as required when it has a default and is not in the required array. The dpop_token parameter is not mentioned at all.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it posts a tweet with a hero banner image to X/Twitter, specifying the action, resource, and platform. The name and description distinguish it from sibling tools like excalibur_post_tweet (which presumably posts without an image) and excalibur_post_nostr_message (for Nostr).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly provides guidance on using either image_url or banner_svg, and notes that text supports the same markdown as post_tweet. However, it does not explicitly state when to prefer this tool over post_tweet (e.g., when an image is needed), but this is implied by the name and description.

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

Launch a publisher for every due post (operator-only).

Selects scheduled posts whose publish_at has arrived, claims each atomically, and starts one background publisher per post. It does NOT publish: composing content, billing the owner, posting to X and recording the outcome all belong to the publisher, which runs on the async job queue and so may take the minutes a dynamic block needs. This call returns as soon as the work is dispatched — expect it to be fast even when the publishing itself is slow, and read per-post outcomes from get_scheduler_log or the post rows.

Requires the operator's npub proof; the trigger itself is free. Returns {kind: "tick", processed, launched, contended}.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoThe OPERATOR's npub (npub1...); this tool is operator-only.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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 discloses that the tool claims posts atomically, starts background publishers, returns immediately, and that the actual publishing may take minutes. It also specifies the return format and the operator requirement. This is highly transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is succinct and front-loaded with the core action. Each sentence adds essential information (operator-only, atomic claim, async behavior, outcome retrieval, return format). No unnecessary words or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the presence of an output schema (implied by description of return format), the description covers all critical aspects: purpose, prerequisites, behavior, outcomes, and caveats. It is complete for an agent to select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, with only npub having a description. The description adds value by stating 'Requires the operator's npub proof', reinforcing the schema. However, dpop_token is undocumented in both the schema and description. The description compensates partially but not fully for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool launches a publisher for every due post, operator-only. It specifies the action (selecting, claiming, starting publishers) and distinguishes from the actual publishing process, which is done by a separate publisher. This differentiates it from sibling tools that handle other tasks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (for due scheduled posts) and what it does not do (publishing). It also mentions that outcomes can be read from get_scheduler_log or post rows, providing guidance for follow-up. While it does not explicitly list alternatives, the context is sufficient for an AI agent to understand usage.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNo
signed_eventNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: the wheel verifies the signature, relays to public relays, and operates without key custody. It also notes the tool is free, adding important context for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear lead, explanatory paragraphs, and an Args list. It is slightly verbose but every sentence adds value; no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has two parameters, no required params, and an output schema exists, the description covers the entire flow: input, verification, relay broadcast, and security model. It is complete for an agent to understand and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

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 clearly explains that npub is the patron's public key and signed_event is a JSON-encoded, client-signed kind-0 event, adding crucial meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool publishes a kind-0 Nostr profile to relays for an npub. It distinguishes from siblings like 'excalibur_get_nostr_profile' and 'excalibur_post_nostr_message' by specifying the action and resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use this tool (when a client-signed event is available), explicitly states that the wheel never holds a patron nsec, and clarifies that the signature is authorization. It provides clear guidance on prerequisites and security model.

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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase. amount_sats: Satoshis to purchase (default 1000).

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
dpop_tokenYes
amount_satsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behaviors: creates a Lightning invoice, requires npub ownership proof, is free to call, and that payment must be confirmed via check_payment. No annotations exist, so the description carries full burden. It doesn't detail failure scenarios or side effects, but the core flow 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured: a one-line summary, a brief process paragraph, a free call note, and a clear 'Args' section. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, the description does not need to explain return values. It covers input parameters thoroughly and mentions the follow-up call to check_payment. However, it lacks error handling or prerequisite details, which would make it more complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description thoroughly explains each parameter: npub (what it is), dpop_token (detailed format and requirements), and amount_sats (unit and default). This 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Buy credits via Bitcoin Lightning', clearly stating the tool's purpose. It explains the process of creating a Lightning invoice and the need to call check_payment, distinguishing it from related tools like check_payment. The free call mention is an additional clear benefit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says 'then call check_payment to confirm', providing a clear after-use action. It implicitly tells when to use: when buying credits via Lightning. However, it does not explicitly exclude alternatives like redeem_coupon, so it lacks full usage boundaries.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceNo
dpop_tokenNo
sender_npubNo
credential_cardNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Despite no annotations, description fully discloses behavior: deterministic one-shot retrieval, draining only the pinned relay, deletion of wrong DMs with NACK, acceptance of first matching DM with ACK, and reinitialization of payment processor on success. Disposition of 'courier_not_found' is also described.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with a lead sentence, process steps, and a parameter list. Every sentence adds value, no redundancy. The front-loaded purpose and clear instructions make it efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a complex tool with no annotations and 4 parameters, the description is thoroughly complete: covers all behaviors, edge cases (no match, credential_card alternative), and post-conditions. Output schema exists, so return values are not needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Although schema covers 0% of parameter descriptions, the description provides an 'Args' section explaining each parameter's purpose and requirement (e.g., sender_npub required, credential_card optional). It adds critical context beyond the schema's defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Pick up credentials from the Secure Courier' and identifies it as the counterpart to 'receive_npub_proof', differentiating sibling tools. It specifies the CREDENTIAL-DELIVERY flow and provides unique details.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'Call this only after the user confirms they have replied' and warns 'Do NOT poll, loop, or retry'. It also explains when the credential_card path bypasses relay access, providing clear guidance on when to use and not use.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo
patron_npubNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: deterministic one-shot retrieval, draining only the pinned relay, deleting mismatched DMs without revealing the expected phrase, and that it never stores the raw token (only a hash). It also notes the tool is free.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear opening sentence, a bullet-like list of constraints, and a separate 'Args' section. Every sentence adds value, with no fluff. It is informational yet compact.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity and that an output schema exists, the description covers when to call, prerequisites (user must have replied), behavioral details, parameter meanings, and post-condition (returns dpop_token to remember). No gaps are apparent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 0% description coverage, so the description's 'Args' section is crucial. It explains that 'patron_npub' is the patron's npub and 'dpop_token' is the token returned by 'request_npub_proof'. This adds meaning beyond the schema's type and default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with a clear verb+resource: 'Receive npub ownership confirmation from a patron.' It distinguishes itself from the sibling 'receive_credentials' by stating it completes the npub-OWNERSHIP-PROOF flow. This makes the tool's purpose unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to call: 'Call this only after the user confirms they have replied.' It also warns against polling, looping, or retrying. This provides clear usage boundaries and prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
npubYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavior: it validates the coupon window and cap, records per-patron redemption, auto-applies discount on subsequent calls, requires npub proof, and is idempotent. This is comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured paragraph that starts with the action and provides necessary details (validation, idempotency, cost) without unnecessary words. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (redemption with side effects and auto-application of discount), the description covers the essential behavioral aspects. The existence of an output schema excuses missing return value details. No gaps identified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description explains 'code' as the coupon name and 'npub' as required for proof. The dpop_token parameter defaults to '' and is not explained, but overall the key parameters are well-described despite 0% schema coverage, exceeding the baseline for low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Claim a coupon by its name' and outlines the process of looking up a coupon by code, validating constraints, and recording a redemption. It distinguishes from siblings like mint_coupon (creation), list_coupons (listing), etc., and mentions idempotency.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context: it is free, requires npub, and subsequent paid calls auto-apply discount. It does not explicitly list when not to use but contrasts well with sibling tools, making the appropriate use case clear.

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 an LLM — server-side.

The operator's LLM 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 LLM 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bansNo
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
voiceNo
regionYes
full_textNo
dpop_tokenNo
instructionNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the burden and does so exceptionally: discloses server-side LLM execution, key security ('never leaves the server'), return format (success + 3 suggestions), billing model (tollbooth fare, refund conditions), and requirement for npub. This is comprehensive behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized with paragraphs and a bullet-like Args list. It front-loads the core action and each sentence adds value. Slightly longer than minimal but still efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters and no annotations, the description fully covers required context: parameter roles, return structure, security, billing, and even mention of an output schema. It leaves no critical gap for an AI agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite only 14% schema coverage, the description's Args section provides clear, functional explanations for each parameter (region, full_text, instruction, voice, bans, npub), adding meaningful context beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states 'Refine a flagged region of a post with an LLM' - a specific verb and resource. Among sibling tools like update_post or create_post, this is uniquely distinguished for AI-assisted text refinement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies usage for refining flagged regions but does not explicitly state when to use this tool versus alternatives like update_post or delete_post. No guidance on prerequisites or exclusions is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

excalibur_report_issueAInspect

File a field report about this service as a GitHub issue on the operator's repo.

Found a tool's metadata or response wrong or confusing? Report it where the tool lives. The author of record is your npub — no npub / no proof, no issue — and it is stamped into the issue so the report is attributed to you, not the operator. Costs a small fee (a free write to an issue tracker would be abused). The report is PUBLIC and goes to the maintainers' normal triage; nothing is verified here.

Returns the filed issue's repo, number, and url. If this operator has not enabled field reports, returns an "issue reporting not configured" situation and you are not charged.

Args: npub: Your Nostr public key (npub1...); the report's author of record. dpop_token: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase. title: One-line summary of the problem. body: The details — which tool, what was wrong, what you expected. tool_name: Optional: the specific tool the report is about (e.g. "schwab_get_option_chain").

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
npubYes
titleYes
tool_nameNo
dpop_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description details behavioral traits: dpop_token is a signed Nostr event, npub is author of record, issue is public, cost occurs only on success, and returns repo, number, url. It does not cover rate limits or invalid token handling, but overall is thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is fairly long but structured: opening one-liner, then contextual paragraphs, and a bulleted 'Args' section. It front-loads the purpose and each paragraph adds value, though minor trimming could improve conciseness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (5 params, 4 required, no nested objects, has output schema), the description provides complete context: behavior, edge cases (not configured), return values, and parameter details. It enables an agent to use the tool correctly without external documentation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description adds extensive meaning to each parameter. For 'dpop_token', it explains the exact format (raw JSON, not base64, not NIP-98 framing, with specific tags and timing). For 'npub', it clarifies it's the author of record. Other parameters are also well-explained beyond the schema's type and default.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the purpose: 'File a field report about this service as a GitHub issue on the operator's repo.' It uses a specific verb ('File') and resource ('field report', 'GitHub issue'), distinguishing it from sibling tools like other Excalibur tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 tool metadata or response is wrong/confusing), prerequisites (npub, dpop_token, etc.), and a behavior if not configured (no charge). It implicitly guides the agent's decision, though it lacks explicit alternatives.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNo
dpop_tokenNo
service_urlNo
authority_npubYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description fully discloses the tool's behavior: resolves Authority's MCP endpoint, mints ownership proof, delivers request MCP-to-MCP, records pending, and flips to ready on provision. It omits explicit error conditions or auth details beyond npub proof, but is otherwise transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a brief headline, detailed process explanation, and bullet-style parameter list. It is front-loaded but slightly verbose in technical details (e.g., 'Resolves the Authority's MCP endpoint from the community registry'), which could be condensed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity and existence of an output schema, the description covers key aspects: purpose, restrictions, process, and follow-up (poll adoption_status). It lacks explicit error handling or what happens if Authority not found, but is largely complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description provides detailed explanations for all 4 parameters: explains dpop_token as an ownership proof (kind-27235 or cached), service_url as the operator's MCP endpoint, and note as optional message. This fully compensates for the sparse schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Ask a chosen Authority to adopt this operator (deferred courtship).' It uses a specific verb (ask) and resource (Authority for adoption), and distinguishes from sibling tool excalibur_adoption_status which polls progress.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly restricts usage to the operator ('RESTRICTED to the operator — requires proof the caller controls this operator's npub') and advises polling 'adoption_status' for progress. It provides clear context on when to use, though it does not explicitly state 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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceNo
sender_npubNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses the human-in-the-loop flow, the requirement for manual reply, the destructive nature of 'receive_credentials' calls, and the prohibition on polling or retrying. It sets clear behavioral expectations for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded, but includes some redundant text like 'Free.' at the end and could be slightly more terse. Overall, it is clear and organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity of a human-in-the-loop credential delivery, the description covers purpose, usage, behavioral expectations, parameter sources, and next steps. It references related tools and leverages the output schema for return values, making it highly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates by explaining 'sender_npub: Required. The npub to send the template to' and 'service: Required. The credential service name (e.g., from get_operator_onboarding_status)'. It adds value beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Open a Secure Courier channel for credential delivery,' specifying the action and resource. It distinguishes from the sibling tool 'request_npub_proof' and notes exceptions for OAuth2 services, making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use (for handing over service secrets) and when not (for npub proof or OAuth2 services), directing to alternatives like 'request_npub_proof' and 'service_status'. It also provides post-call instructions to stop and wait for user confirmation.

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. reason: Optional. A human-readable purpose for the request ("I'm working on your request XYZ and need the Operator to do ABC for you"). Signed into the provenance attestation and shown in the DM, so the recipient sees why they are being asked — especially useful when the signer is unknown to them. verify_at: Optional. A free-form statement of WHERE you (the initiating agent) already showed this proof's one-time code to the user — a URL, or "your Claude.ai conversation", "the Grok session". The OAuth 2.0 Device Grant verification_uri, generalized: the user approves only if the code in the DM matches the one you displayed there, so an unsolicited request they've never seen is refused. Signed into the attestation.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNo
verify_atNo
patron_npubNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavioral traits: human-in-the-loop, destructive drain on receive_npub_proof, dpop_token not retained across restarts, free cost, and lifecycle expiration. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections, front-loaded with purpose. Some redundancy in lifecycle explanation, but overall every sentence earns its place. Slightly verbose but still focused.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Thoroughly covers all aspects: input parameters, return value (dpop_token), lifecycle, cost, and integration with receive_npub_proof. No gaps for a human-in-the-loop tool. Output schema exists but not needed for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description goes beyond by explaining each parameter: patron_npub as required, reason as optional with purpose for provenance, and verify_at as optional verification location. Adds meaningful context not in schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Describes the tool as requesting npub ownership proof via Nostr DM, with a specific verb and resource. Distinguishes itself from similar tool request_credential_channel, clearly defining its unique role in the proof flow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when to use (when proof_required), alternative (request_credential_channel for credentials), and provides step-by-step instructions including stopping, waiting for user, and not polling. Also covers lifecycle and expiration handling.

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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 clearly explains the destructive behavior: deleting every stored model and initializing a fresh one, and notes that it returns the new model. This goes beyond a simple mutation statement.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise with four short sentences. The most critical information (destructive reset, operator restriction) is front-loaded. Every sentence adds value without any fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is destructive and has an output schema. The description explains the high-level effect and return value. It is fairly complete for a simple tool, though it could detail the default model shape. The operator restriction mitigates need for extensive caveats.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

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 0% schema description coverage. The description does not mention this parameter at all, failing to add meaning beyond the schema. Given the low coverage, the description should compensate but does not.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: erasing all pricing models and restoring a viable default. The verb 'Erase' and resource 'pricing models' is specific, and it is distinct from siblings like 'set_pricing_model' and '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.

Usage Guidelines4/5

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 operators and requires proof (nsec-signed). This provides clear context on when to use it, though it does not explicitly mention when not to use it or list alternatives, which is acceptable given the restriction.

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 an LLM — returns a CLAIM CHECK.

A dynamic block's prompt is run by the model (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 LLM 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 LLM 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
bansNo
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
voiceNo
promptYes
contextNo
dpop_tokenNo
max_fetchesNo
allowed_domainsNo
runtime_limit_secondsNoAuthor'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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, description fully discloses async behavior, client timeout handling, server-side vaulting of LLM key, metered cost, refund conditions, and claim check result format. Could add error scenarios but strong overall.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear paragraphs and an Args list. Front-loaded critical info (async, claim check). Slightly lengthy but every sentence adds value. No redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers the full async flow, result format, cost model, and parameter semantics. Lacks explicit error handling beyond refund, but given output schema exists and companion tool usage is described, it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is low (22%), but description provides detailed explanations for all 9 parameters (prompt, context, voice, bans, allowed_domains, max_fetches, runtime_limit_seconds, npub), adding meaning beyond schema types and defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states 'Start resolving a dynamic post block with an LLM — returns a CLAIM CHECK.' It identifies the verb (start resolving), resource (dynamic block), and distinguishes from sibling 'fetch_dynamic_block' by explaining the async handoff.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when to use: to initiate async block resolution. Mentions that the scheduler does not use this tool. Describes the companion tool for polling. Lacks explicit 'when not to use' but covers key usage context effectively.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenYes
invoice_idYes
patron_npubYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavioral traits, including idempotent behavior, operator-only restriction, authentication via dpop_token, and return value credits_granted=0 for already credited invoices. It provides rich context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and concise, starting with the core action, then restrictions, use cases, idempotency note, 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.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (different scenarios, security restrictions, idempotency), the description covers all necessary aspects. The output schema is implied to exist, but the description still outlines return behavior adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 0% schema description coverage, the description explains each parameter's purpose: invoice_id (BTCPay invoice ID), patron_npub (recipient), and dpop_token (operator-signed Nostr event). This adds crucial semantic meaning beyond the bare schema types.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Credit a patron's ledger from a BTCPay-settled invoice,' providing a specific verb and resource. It distinguishes from sibling tools like excalibur_purchase_credits and excalibur_check_payment by focusing on manual credit restoration after infrastructure incidents.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly restricts usage to the operator and lists precise use cases (cold-start vault races, delivery hiccups, etc.). It also clarifies idempotency, indicating when the tool returns success without granting new credits, thus 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_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).

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries the full burden. It discloses idempotency, that it runs on all NeonVaults, returns per-step results, surfaces Neon error messages for errors, and requires operator-level authentication. This is comprehensive for a recovery tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with four sentences covering purpose, usage, behavior, and return/error handling. It is well-structured and front-loaded with the primary action. Minor improvement could be more explicit parameter explanation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity as a database recovery operation, the description covers purpose, usage, idempotency, error handling, and restrictions. The output schema exists but is not described, which is acceptable. The only gap is the undocumented dpop_token parameter.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, dpop_token, has no description in the schema (0% coverage). The tool description does not explain this parameter, its purpose, or its format, leaving the agent uninformed. The description mentions 'proof (nsec-signed)' but does not connect it to dpop_token.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool re-runs ensure_schema() on every NeonVault, specifies it is a diagnostic/recovery tool for persistent 4xx errors, and mentions idempotency. It distinguishes itself from siblings by its specific recovery purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: when Neon HTTP SQL API returns persistent 4xx errors and schema/grants are suspected. It states it's restricted to operators with nsec-signed proof. However, it does not explicitly state when not to use it or list alternatives.

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": …}.

ParametersJSON Schema
NameRequiredDescriptionDefault
docNo
nameNo
npubNoRequired. Your Nostr public key (npub1...).
textNo
favoriteNo
dpop_tokenNo
snippet_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses that the tool is 'Free and owner-scoped', explains update behavior (fields only change if passed, favorite null keeps as-is), and mentions the return format. The doc field is described as 'same block/flag document a post carries'. This provides sufficient behavioral context for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three well-organized sentences: first sentence states purpose and create/update distinction, second details update behavior, third clarifies doc and scope. 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.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 7 parameters, no annotations, and an output schema, the description covers the core logic, update rules, scope, and return type. It mentions doc parity with posts, aiding context. The only minor gap is dpop_token meaning, but that is likely standard across tools. Overall, it's nearly complete for safe agent invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 14% (only npub has a description). The description adds critical semantics for snippet_id (omit to create, pass to update) and favorite (null to keep as-is), and notes doc is identical to post. However, dpop_token, name, and text lack elaboration, partially compensating but not fully covering all params.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Save a reusable post snippet (opening/footer/CTA)' and explicitly distinguishes creation (omit snippet_id) from update (pass it). Among siblings like excalibur_create_post and excalibur_get_snippet, this tool is uniquely for snippets with both create and update capabilities, making its purpose well-defined.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance: omit snippet_id to create, pass it to update, and notes that on update only passed fields change with special handling for favorite. While it doesn't explicitly state when to avoid using this tool, the context and siblings imply its scope is for snippet management, which 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": {...}}.

ParametersJSON Schema
NameRequiredDescriptionDefault
bansNo
npubNoRequired. Your Nostr public key (npub1...).
profileNo
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses that the tool is destructive (replaces previous voice), owner-scoped, priced, and drops blank/duplicate ban entries server-side. This provides essential 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with 3-4 sentences, front-loads the main purpose, and each sentence adds value. No redundant content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description is fairly complete given 4 parameters and an output schema. It covers the singleton behavior, replacement effect, bans details, pricing hint, and return format. Could mention dpop_token briefly, but overall sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to 'profile' and 'bans' parameters beyond the sparse schema (25% coverage). It explains bans structure and server-side behavior. Only 'dpop_token' is left undescribed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 highlights it replaces the previous one (per-npub singleton), distinguishing it from read tools like excalibur_get_voice and other save tools like 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.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description indicates when to use (to set or update the voice), mentions owner-scoped and priced nature, and advises using check_price for pricing. It lacks explicit when-not-to-use, but the context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

excalibur_scheduler_check_nowAInspect

Run one scheduler tick now (operator-only).

Pokes the Worker's /tick — the same work the ~30-minute cron does: it claims a pending proof reply (completing your authorization) and fires any due posts. Use it right after approving in Studio so you don't wait for the next tick. The Worker runs the tick in the background and returns immediately; re-read scheduler_status a few seconds later to see the phase flip. Returns {started: true} or {started: false} if the Worker couldn't be reached.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoThe OPERATOR's npub (npub1...); this tool is operator-only.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses that the tool pokes /tick, runs in background, returns immediately, and gives possible return values. Also notes operator-only restriction. No annotations provided, so description fully covers behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured, front-loaded with action and audience, then explains effects, usage timing, and return value. No redundant sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given output schema exists, description adequately explains return values and behavior. All necessary context for correct invocation is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, but description only adds context for npub (operator-only) without further detail. dpop_token is not elaborated, and no param-specific usage guidance beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool runs a single scheduler tick, specifies it's operator-only, and explains the effects (claim pending proof, fire due posts). It distinguishes from siblings like excalibur_scheduler_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage context: use after approving in Studio to avoid waiting. Advises checking scheduler_status after. No explicit when-not-to-use or alternatives, but sufficient 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_scheduler_pendingAInspect

What is the scheduled-post cron Worker waiting on? (operator-only).

When the Worker's authorization lapses it DMs the operator a challenge phrase and parks. This returns that pending phrase so the operator can match it against the DM before approving in Studio — the Device-Grant second surface for a headless actor. The phrase lives only in the Worker's KV (an impostor can't inject it); we read it AS the operator (a kind-27235 signed with the operator key), so the human never signs anything in the browser.

restricted: gated to the operator npub, free. Never returns the active session token. Returns {phase, code, reason, requestedAt}phase is pending / active / idle, or unavailable if the Worker can't be reached.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoThe OPERATOR's npub (npub1...); this tool is operator-only.
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: phrase lives in Worker's KV, read as operator using kind-27235 signed key, never returns active token, and gives output structure. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Concise and front-loaded with purpose. Uses formatting effectively. The 'restricted' line is slightly redundant but not harmful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Complete for the tool's complexity: explains trigger, security, and return format. Output schema exists and description covers fields.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%; description repeats npub detail from schema but does not explain dpop_token at all. No added semantic meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool returns the pending challenge phrase from the Worker when authorization lapses. Specifies it is operator-only and distinguishes from sibling tools like excalibur_scheduler_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains the scenario (Worker authorization lapses, DM challenge, parking) and that it is operator-only. Notes it never returns active session token, implying when not to use. No explicit alternative, 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_scheduler_statusAInspect

The scheduler's configuration and current status (free; any proven patron).

Relays the cron Worker's public /status — cadence, version, renewal window, and current authorization phase (pending / active / idle, no challenge phrase) — and adds the operator npub it acts for. No secrets: the pending phrase (operator-only) is scheduler_pending; the per-tick traffic log is get_scheduler_log. Returns the merged config, or {worker: "unavailable"} merged in if the Worker can't be reached.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoYour npub (npub1...).
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses behavior: returns cadence, version, renewal window, authorization phase, operator npub, and handles worker unavailability with an error object. It also explicitly states what is not returned (pending phrase, traffic log).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single dense paragraph that packs a lot of information without excess, but could benefit from clearer separation of sections.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

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 and the detailed description covering return values, error handling, and related tools, the description is complete and sufficient for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50% (npub described, dpop_token not), and the description adds no parameter details. It does not compensate for the missing dpop_token description or clarify usage of the two parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it retrieves the scheduler's configuration and current status, using the verb 'relays' and specifying the resource (cron Worker's /status). It distinguishes from sibling tools by directing the pending phrase to scheduler_pending and traffic log to get_scheduler_log.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly suggests when to use this tool (to get status) and mentions alternatives (scheduler_pending, get_scheduler_log) for specific data, but does not explicitly state when not to use it or prerequisites.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden for behavioral disclosure. It only says 'Free' (likely meaning no cost) but does not reveal if the tool is idempotent, has side effects, or requires authentication. The word 'health' implies a read-only check but is not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very short and front-loaded, with no wasted words. However, it could be more informative without losing conciseness, e.g., by explaining what health/configuration means.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

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 but no parameters, the description should clarify what 'health' and 'configuration' entail, especially amid sibling status tools. The current description is too vague and lacks completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and schema coverage is 100% (empty schema). The description adds no param-level detail, but baseline for 0-param tools is 4, as there are no parameters to explain.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

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, using specific verbs and resource. However, it does not distinguish from sibling tools like excalibur_adoption_status or excalibur_session_status, which also perform checks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternative status-checking tools among siblings. The description lacks any context for when this specific health check is appropriate.

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.

  • quota_exceeded: The persistence provider (Neon) answered HTTP 402 — the operator's database has exhausted its compute/storage quota, so the books are locked for billing. Paid tools fail; retrying does NOT help. The operator's Authority must restore capacity (upgrade the plan or wait for the quota reset). Free tools remain available.

  • 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.

ParametersJSON Schema
NameRequiredDescriptionDefault
patron_npubNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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 that the tool is free and remains available even when quota_exceeded. It details the behavior of the optional patron_npub parameter and the response format. 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullet points for lifecycle states, making it easy to parse. It is slightly lengthy but front-loads the purpose and each sentence adds value. Could be tightened by removing the 'Free.' standalone sentence, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that an output schema exists (not shown here), the description covers essential aspects: states, guidance, optional parameter effect, and pricing behavior. It is complete for a status check tool with rich contextual detail.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter (patron_npub) has 0% schema description coverage. The description fully explains its purpose: if supplied, the response includes an upstream_oauth block with token expiry details. 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Check operator readiness' and enumerates specific lifecycle states (ready, warming_up, misconfigured, etc.), distinguishing this tool from sibling status tools like excalibur_service_status or excalibur_scheduler_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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 operator readiness) and provides clear guidance per state (e.g., 'Proceed with tool calls' for ready, 'Try a tool call' for warming_up). It does not explicitly contrast with siblings, but 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_set_pricing_modelAInspect

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo
model_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the restriction and proof requirement, which are key behavioral traits. However, it does not mention any side effects or success/failure responses.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the purpose. Every sentence provides essential information without unnecessary fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 2 parameters and an output schema. The description covers the auth requirement and purpose, but lacks parameter explanations and return value details. It is minimally adequate but leaves gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, meaning the description must explain the parameters. It mentions `model_json` in the schema but not in the description, and `dpop_token` is not explained. The description adds no semantic value to the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description starts with 'Set the active pricing model', providing a clear verb and resource. It distinguishes itself from sibling tools like `excalibur_get_pricing_model` and `excalibur_reset_pricing_model` by focusing on setting rather than getting or resetting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description states the tool is 'RESTRICTED to operator' and requires a proof, implying only operators should use it. However, it does not explicitly mention when not to use it or provide alternative tools for non-operators.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
coupon_idYes
dpop_tokenNo
total_usesNo
valid_fromNo
valid_untilNo
uses_per_patronNo
clear_total_usesNo
discount_percentNo
clear_uses_per_patronNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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 renaming keeps existing redemption rows, that it requires operator proof, and how clear flags work. However, it lacks details on side effects of other fields, validation behavior, or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with four sentences, each adding value. It front-loads the core purpose and then covers specific behaviors. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (10 params, no schema descriptions), the description covers essential behavior but omits details on the output (though output schema exists) and error handling. It is adequate but not exhaustive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, but the description only explains two parameters (clear_uses_per_patron, clear_total_uses). The rest (e.g., name, discount_percent, valid_from) are not described. The general note 'Pass only the fields you want to change' is insufficient for the 10 parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses 'Patch a coupon's editable fields' which clearly identifies the tool as an update operation on coupon fields, distinguishing it from siblings like excalibur_mint_coupon (create) and excalibur_delete_coupon (delete).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It instructs to pass only fields to change and explains how to set values to unlimited using clear flags. It also notes that renaming the code is allowed and that the tool is restricted to operators with proof. However, it does not explicitly state when not to use it or mention alternatives.

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: Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr ' framing. Its u tag must hold THIS tool's exact name (from tools/list), not the endpoint URL; content:"", created_at within 60s of now, and a random nonce tag recommended. Or a cached dpop_token phrase. field: The credential field name to set. value: The value to store.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
fieldYes
valueYes
dpop_tokenYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully discloses write nature, sensitive vault access, npub ownership proof requirement, and free cost, as well as detailed dpop_token format.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with front-loaded purpose and organized Args, but slightly lengthy due to parameter details; could be trimmed without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers tool purpose, parameter semantics, and credential sensitivity, but does not mention response or error handling; output schema may compensate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description's Args section explains each parameter in detail, including dpop_token format constraints, adding significant meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

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 merge behavior, clearly distinguishing it from sibling tools like delete or get credential fields.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear usage examples ('after OAuth, changing default brain') and implies when-to-use, but lacks explicit alternatives or 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_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
patchYes
post_idYes
dpop_tokenNo
text_cacheNo
client_req_idNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description explains the patch behavior, dedup via client_req_id, and conditional text_cache writing, providing good transparency beyond basic read/write.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences with backtick formatting for clarity; no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers core update behavior but lacks description of return values (output schema exists) and does not compare to sibling tools, leaving some contextual gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 17% schema coverage; description explains patch fields (doc, publish_at, etc.) and client_req_id dedup, but omits details for npub, dpop_token, and post_id, leaving gaps.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Patch a stored post' with a verb and resource, and distinguishes from create/delete siblings by focusing on partial updates.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for updating posts but does not explicitly state when to use this vs. create_post or other tools, nor 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.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.