excalibur-mcp
Server Details
FastMCP server for posting formatted content to X (Twitter) — Tollbooth-monetized, DPYC-native
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- 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.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.1/5 across 72 of 72 tools scored. Lowest: 2.6/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.
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.
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.
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
78 toolsexcalibur_account_statementAInspect
Generate a patron's account statement at this operator.
Returns the patron's purchase history, active credit tranches, per-tool usage breakdown, and recent daily usage logs. This is the patron's spending account — not the operator's Authority tax balance.
Free — no credits consumed. Proof of npub ownership is required to prevent statement-scraping of arbitrary patrons.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days of daily usage history to include (default 30). | |
| npub | Yes | The patron's Nostr public key (npub1...). | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses key behaviors: it is free (no credits consumed), requires proof of npub ownership to prevent scraping, and returns specific data. It does not explicitly state read-only behavior, but the content and the return-value description strongly imply it.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, each with a clear role: what it does, what it returns, what it is not, cost, and auth requirement. Front-loaded with the primary verb and object; no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the rich input schema plus output schema, the description covers the essential context: purpose, return contents, exclusion of tax balance, cost, and authentication. It is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema thoroughly documents all parameters (days, npub, dpop_token) including detailed dpop_token format and requirements. The description adds contextual flavor (e.g., 'proof of npub ownership') but does not add parameter-level semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Generate') and resource ('patron's account statement'), and clearly lists what's included (purchase history, credit tranches, per-tool usage, daily logs). It also distinguishes itself from related tools by explicitly stating it is the patron's spending account, not the operator's 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context by contrasting with the Authority tax balance, implying when this statement tool is appropriate versus a balance-checking tool. However, it does not name alternative tools explicitly, so it stops short of full when/when-not guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days of daily usage history to include (default 30). | |
| npub | Yes | The Nostr public key (npub1...) whose statement to render. | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses significant behaviors: it costs 1 api_sat per call, and proof is verified by debit_or_deny before cost is incurred. It also describes the content of the SVG (balance hero, metrics cards, health gauge, tranche table, tool usage breakdown). While it doesn't detail error cases or rate limits, the most important behavioral traits (cost and verification flow) are clearly communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exceptionally concise: two sentences that front-load the core purpose, followed by a compact list of return contents and cost/proof details. Every sentence earns its place, and there is zero fluff or repetition. It serves as a model of efficient, informative tool documentation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (generates an SVG, incurs a cost, requires proof verification), the description covers all critical aspects: what it produces, how it relates to the sibling data tool, the cost, and the verification step. The output schema is separate, so return-value details are already available. The description is complete for an agent to decide when and how to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already thoroughly documents all three parameters (days, npub, dpop_token) with detailed descriptions. The tool description itself does not add parameter-level semantics beyond what the schema provides. Per the scoring guide, a baseline of 3 is appropriate when schema coverage is high and the description doesn't need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Generate a visual SVG infographic of your account statement.' It clearly distinguishes from the sibling excalibur_account_statement by stating it returns the same data but rendered as an SVG graphic. This makes the tool's purpose immediately clear and differentiates it from the likely data-only variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly references the sibling tool excalibur_account_statement, saying 'Returns the same data as account_statement, rendered as a dark-themed SVG graphic.' This implies when to use this tool (when a visual infographic is needed) versus the alternative (raw data). It also provides practical usage context by mentioning the cost and proof verification. However, it doesn't explicitly state exclusions or conditions when not to use the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_adoption_statusBInspect
Check this operator's adoption-request status at a chosen Authority.
Free. Polls the Authority MCP-to-MCP for the status of this operator's request (pending / approved / rejected / provisioned).
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No | ||
| authority_npub | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | Your DPYC patron npub (npub1...). | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It reveals that the tool is free, requires proof of npub ownership, and explains the anti-DOS rationale. It also clarifies that a 'pending' check_oauth_status does not indicate a lapsed session. These details go well beyond a basic function statement and provide security-conscious transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and front-loaded with the purpose. It contains several sentences of necessary guidance (flow, security, usage conditions). While slightly verbose, each sentence earns its place and avoids redundancy. It is not excessively long for the complexity of the OAuth flow.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of an OAuth flow and the presence of an output schema, the description is remarkably complete. It covers the authorization URL, the follow-up step, cost, security/privacy considerations, and when to invoke the tool. The mention of 'upstream_auth_refresh_needed' and the pending-status caveat addresses edge cases, making this fully sufficient for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds no new details about parameter syntax or semantics beyond what the schema already documents. It mentions using the 'same npub' but the schema already defines both parameters comprehensively. The description does not need to compensate, thus a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear action verb and resource: 'Start the OAuth2 authorization flow.' It unambiguously states the tool's primary function and distinguishes it from the related 'check_oauth_status' by explaining the sequential relationship. This exceeds a vague purpose statement and clearly differentiates from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use and when-not-to-use instructions: 'Do NOT call this pre-emptively... attempt the live tool call first and only begin OAuth when it fails with upstream_auth_refresh_needed.' It also names the alternative (check_oauth_status) and explains the completion flow, offering strong guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_check_authority_balanceAInspect
Check this operator's tax balance at the Authority.
Returns the sats available for certifying patron credit purchases. When this balance reaches zero, patron top-ups cannot be certified and the operator must call purchase_credits on the Authority.
This is the operator's own funding — not a patron balance. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | The Nostr public key (npub1...) whose balance to check. | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses that the operation is free, requires proof of npub ownership, and explains the security rationale against enumeration. This goes beyond a simple read operation and gives the agent actionable behavioral expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: one line for the core action, then a clarifying distinction, then cost and auth constraints. No filler or redundant repetition of schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and the operation is a simple balance check, the description covers all essential context: what the balance is, which sibling tool to use for the other balance type, cost, and authentication. No critical gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters have detailed descriptions. The tool description adds the context that npub ownership proof is required, which reinforces the dpop_token's purpose, but does not substantially improve on the schema's own parameter explanations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Check a patron's credit balance at this operator', naming a specific verb and resource. It immediately distinguishes this from the operator-side balance check by pointing to 'authority_check_balance', making the tool's scope unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool (patron spending balance) and when not to ('For the operator's own balance... use authority_check_balance instead'). It also notes the free/no-credit requirement, which helps an agent decide cost implications.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | The same Nostr public key (npub1...) used in begin_oauth. | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility. It discloses that the tool exposes which upstream services a patron has connected, requires proof of npub ownership, and clarifies the meaning of 'pending.' While it doesn't mention error conditions or rate limits, the provided behavioral nuances are valuable and go beyond a basic read-operation description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary purpose and then provides focused usage guidance. The second paragraph is somewhat dense but every sentence contributes critical nuance about result interpretation and fallback behavior. It is appropriately sized for the complexity of an OAuth status check.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the OAuth flow complexity and the presence of an output schema, the description is complete. It covers the prerequisite (begin_oauth), the required proof of npub ownership, the meaning of 'pending,' and explicit fallback logic. This gives an agent all necessary context to use the tool correctly without redundant return-type details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both npub and dpop_token already well-documented. The description adds a brief security context ('Proof of npub ownership is required') but doesn't further explain the parameters since the schema handles them. This matches the baseline of 3 for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence clearly states the tool's function: 'Check whether the OAuth2 authorization flow has completed.' It uses a specific verb and resource, and explicitly references the begin_oauth tool to establish a clear sequence, distinguishing it from sibling tools like excalibur_begin_oauth and excalibur_session_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides precise when-to-use instructions: call after opening the authorization URL from begin_oauth and completing browser login. It also gives explicit exclusions and fallback logic, noting that a 'pending' result does not imply session lapsed and directing the agent to attempt the live call, falling back to begin_oauth only on an explicit upstream_auth_refresh_needed error. This is exemplary usage guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | The Nostr public key (npub1...) that purchased the invoice. | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. | |
| invoice_id | Yes | The invoice ID returned by purchase_credits. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the auth requirement ('Proof of npub ownership is required') and its purpose, plus the free cost. However, it does not mention whether the operation is read-only, any side effects, or behavior on failure/pending statuses. The 'check' verb implies read-only, but not explicitly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short paragraphs, front-loaded with the main purpose and followed by essential usage and auth context. Every sentence earns its place with no verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description covers the essential pieces: purpose, timing, cost, and auth. It doesn't discuss error states or return value interpretation, but those are less critical given the output schema and the 'check' semantics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds marginal context: it links invoice_id to purchase_credits and explains the npub/dpop_token auth purpose. But it doesn't add syntax-level detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Check the payment status of a Lightning invoice' — a specific verb and resource that clearly distinguishes it from sibling tools like check_balance or check_price. It leaves no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to call: 'Call after paying the invoice from purchase_credits,' and provides cost context ('Free — no credits required'). It does not explicitly mention alternatives or when not to use, but the usage 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_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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | ||
| tool_id | Yes | 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. | |
| dpop_token | No | ||
| tool_kwargs | No | Optional JSON object with tool call parameters for ad valorem / categorical-multiplier pricing preview (e.g. '{"amount_sats": 5000}' or '{"difficulty": "sovereign", "mode": "live"}'). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly states that the operation is free ('Free — no credits required') and uses 'Preview' and 'Shows' to indicate a read-only, non-mutating behavior. This is valuable context beyond what a schema would provide, though edge cases and side effects are not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences with no fluff. The first sentence states the core purpose, the second elaborates on what is shown, and the third adds a key behavioral note about cost. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and the presence of an output schema, the description adequately covers the purpose, key behavior, and cost implications. It does not explain return values (not needed due to output schema) but provides enough context for an agent to understand when and how to use it. Missing details about parameter formats are partly covered by the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 50%; tool_id and tool_kwargs have useful descriptions in the schema, but npub and dpop_token are undocumented. The description adds some context by mentioning constraint effects, which aligns with tool_kwargs usage, but it does not explain the parameters explicitly or compensate for the undocumented ones. Overall it neither enhances nor detracts from the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Preview') and resource ('the effective cost of a tool call'). It also lists what the preview includes (base cost, constraint effects like discounts, free trials, surge pricing). This distinguishes it from sibling tools like get_pricing_model, which returns the pricing model configuration rather than a call-specific cost.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys that this tool is used to preview costs before making a tool call, but it does not explicitly state when to use it versus alternatives. There is no mention of exclusions or alternative tools for similar purposes. The context is clear enough for basic use but lacks explicit guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No | Required. The dpop_token phrase returned by ``request_npub_proof`` / ``receive_npub_proof``. | |
| patron_npub | No | Required. The patron's npub (npub1...). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on the burden. It clearly states 'Free, no side effects — does not evict the cache or touch relays,' which is valuable safety information. It doesn't explain potential edge cases like missing tokens or cache misses, but for a simple check tool the disclosed behavior is largely sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences: purpose, use-case, and safety. It is front-loaded with the main action, every sentence adds distinct value, and there is no redundant text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity, the description covers purpose, usage scenario, side-effect safety, and its relationship to a sibling tool. The input schema is fully documented and an output schema exists, so the description provides sufficient context for an agent to select and invoke this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds minimal param semantics beyond the schema, only implying the dpop_token is used for paid calls. It does not elaborate on parameter formats or relationships beyond what the schema already documents.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Check whether a previously-cached dpop_token is still valid.' It clearly distinguishes itself from the sibling 'check_oauth_status' by stating it mirrors that tool but for the npub-proof flow, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides usage context: 'a calling agent can ask "will my next paid call accept this dpop_token?" before burning credits on a guaranteed failure.' It also mentions the alternative 'check_oauth_status' and positions this tool as the right choice for the npub-proof flow, offering both when-to-use and exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_create_postCInspect
Store a new post (draft or scheduled). Returns its post_id.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | Yes | 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``. | |
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| title | No | Optional human label for the post; the list falls back to the first body line when it is blank. | |
| status | No | ``draft`` or ``scheduled``. | draft |
| cease_at | No | ISO-8601 stop time for recurrence; null = open-ended. | |
| tweet_url | No | ||
| dpop_token | No | ||
| publish_at | No | ISO-8601 first/next publish time; required when status='scheduled'. | |
| recurrence | No | ``{"freq": "daily|weekly|monthly", "interval": n}`` or null. | |
| text_cache | No | Composed text (blocks joined) for scheduler + list excerpts. | |
| client_req_id | No | Idempotency key — re-sending the same id returns the same post without a second charge. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'Store a new post' and returns post_id, but does not disclose potential credit charges, the need for authentication via npub, idempotency behavior, or side effects beyond storing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that clearly conveys the primary action and return value. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite a rich schema, the minimal description omits critical context such as the need for npub for credit billing, the requirement of publish_at for scheduled posts, and idempotency via client_req_id. The output schema exists, but the description itself is too sparse for a complex creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 82%, so most parameters have detailed descriptions. The tool description itself adds no parameter semantics, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool stores a new post (draft or scheduled) and returns the post_id. The word 'new' distinguishes it from update_post, though it does not explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like excalibur_post_nostr_message or excalibur_update_post. It does not mention prerequisites such as npub being required or that scheduled posts need publish_at.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_delete_couponAInspect
Delete a coupon. Cascades to all patron redemptions.
Any chain step referencing the deleted coupon_id becomes a no-op (the constraint returns neutral on unknown ids) — the Studio surfaces orphan references as warnings.
RESTRICTED to operator — requires proof.
| Name | Required | Description | Default |
|---|---|---|---|
| coupon_id | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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_operator_credentialAInspect
Remove a single operator secret field.
Deletes one key from the operator's encrypted credential blob without
touching the others — the field-level counterpart to
forget_credentials, which wipes the whole row. Use it to retire a
leftover after an SDK cutover (a Prefect key after Modal, or a stored
but untemplated orphan like anthropic_api_key) without taking the
operator down for a full re-delivery.
Stored-but-untemplated fields are first-class: the delete is keyed on
what is vaulted, not on what the current template declares. Idempotent
— already-absent fields report removed: false without rewriting
the vault. RESTRICTED to the operator — requires proof (nsec-signed
kind-27235 or a cached dpop_token phrase); patron proofs are rejected.
A deletion is as destructive as a write.
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | The operator credential field to remove (templated or not). | |
| dpop_token | Yes | Operator proof for this tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full transparency burden. It discloses idempotency (already-absent fields report `removed: false`), auth requirements (nsec-signed kind-27235 or cached dpop_token), and the destructive nature ('as destructive as a write'). It also explains the keyed-on-vaulted behavior, going well beyond a minimal statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a clear purpose, then uses exactly four additional sentences to cover distinctions, use cases, edge cases, auth, and destructive warnings. No filler — every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (destructive, auth-gated, field-level vs row-level), the description addresses all critical aspects: what, when, auth requirements, idempotency, and return behavior (`removed: false`). Since an output schema exists, return-structure details are unnecessary. It is thorough for both new and returning agents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters at 100% coverage, so the baseline is 3. The description adds extra semantic nuance: for `field`, it clarifies that stored-but-untemplated fields are first-class and deletion is keyed on what is vaulted, not template declarations. For `dpop_token`, it details accepted proof types and rejects patron proofs. This pushes it above baseline, though not to a 5 since it doesn't provide exhaustive parameter syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Remove a single operator secret field' — a specific verb and resource that clearly differentiates it from `forget_credentials` (which wipes the whole row) and other siblings. The focus on field-level deletion and the use-case example make the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states it is the 'field-level counterpart to forget_credentials' and gives a concrete scenario (retiring a leftover after an SDK cutover) where this tool is preferred over full re-delivery. Also notes that patron proofs are rejected, which sets the audience boundary.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | The patron's Nostr public key (npub1...). | |
| field | Yes | The credential field name to remove. | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that this is a write to a sensitive credential vault, requires ownership proof, is free, and does not affect other fields. This is solid behavioral transparency, though it omits details like error handling or idempotency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, each earning its place: the first states the purpose, the second adds scope, cost, and authentication requirements. Front-loaded and free of fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, side-effect scope, cost, and a key prerequisite. The presence of an output schema covers return values. For a simple single-field delete, this is adequately complete, though it could mention irreversibility or what happens if the field does not exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for all three parameters, so the description adds no additional parameter-level meaning. It indirectly references the dpop_token requirement but does not explain any parameter beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Remove a single patron credential field' – a specific verb and resource. It clarifies scope ('Deletes one field... without affecting other fields') and explicitly uses 'patron' to distinguish from sibling tools like delete_operator_credential.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (removing a single field) and includes a prerequisite ('Proof of npub ownership is required'), but does not mention alternatives or exclusions. Sibling tools like delete_operator_credential and forget_credentials are not referenced, leaving the agent to infer the correct choice from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_delete_postAInspect
Delete a stored post. Default is a soft delete (status='archived');
pass hard=True to remove the row permanently.
| Name | Required | Description | Default |
|---|---|---|---|
| hard | No | ||
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| post_id | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| dpop_token | No | ||
| snippet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| dpop_token | No | ||
| claim_check | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| coupon_id | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | The Nostr public key (npub1...) whose credentials to forget. | |
| service | Yes | The credential service to forget. | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It explicitly states 'always requires proof of npub ownership' and 'a deletion is as destructive as a write', disclosing destructive and auth requirements. The detailed dpop_token schema further describes exact token requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short paragraphs front-load the core action ('Delete vaulted credentials') and immediately follow with usage details. Every sentence provides necessary information without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and a detailed auth parameter, the description covers what, when, and how. It explains the two credential contexts and the required proof, while the 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3; description enriches npub semantics by explaining operator vs patron credential use. It also reinforces the dpop_token requirement via the 'always requires proof' note, adding meaning beyond raw parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Delete vaulted credentials for a specific service and npub', using a specific verb and resource. It distinguishes from generic 'delete' siblings by scoping to service/npub and explaining operator/patron variants.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by specifying which npub to pass for operator vs patron credentials. It doesn't explicitly mention alternatives like delete_operator_credential or delete_patron_credential, but the instructions imply it handles both cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_nostr_profileAInspect
Read an npub's public Nostr profile (NIP-01 kind-0 metadata).
Free, no proof — the data is already public on relays. Returns the latest metadata fields (name, display_name, about, picture, banner, nip05, website, lud16) or an empty profile if none is published.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | The patron's Nostr public key (npub1...). | |
| notarization_id | Yes | The notarization record ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only or has side effects, nor does it mention any prerequisites or error conditions. The word 'Generate' could suggest mutation, though it likely just computes a proof, leaving the safety profile unclear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that directly conveys the tool's purpose without any redundant or extraneous information. It is front-loaded and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple with two well-documented parameters and an output schema. However, the description omits important context such as the requirement that a notarization must already exist, and it doesn't clarify the relationship to 'request_npub_proof' or 'receive_npub_proof'. This leaves some practical gaps, though the presence of an output schema mitigates the need to describe return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides complete descriptions for both parameters (npub and notarization_id), covering 100% of the schema. The description adds no additional semantic information beyond what the schema fields already state, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: generating a Merkle inclusion proof for a patron's balance in a Bitcoin-notarized snapshot. It uses a specific verb ('Generate'), identifies the resource ('Merkle inclusion proof'), and provides context, making it distinct from sibling tools like list_notarizations or request_npub_proof.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the name and parameter requirements (a notarization_id and npub) but not explicitly stated. It does not mention when to use this tool instead of alternatives, nor any prerequisites like an existing notarization. The description leaves the agent to infer the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_get_operator_onboarding_statusAInspect
Report this operator's configuration readiness.
Shows which operator settings are configured, which are missing, and how to deliver each missing value. For patron-level credential status, use get_patron_onboarding_status instead. Free.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | The patron's Nostr public key (npub1...). | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It reveals that the tool is free, requires proof of npub ownership, never exposes values, and returns null delivered_at timestamps for vaulted secrets before timestamp recording—details beyond the schema and annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the main purpose. Each sentence earns its place: clarifying 'not values,' describing output timestamps, noting the free tier, and explaining the auth requirement and sensitivity. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low parameter count and the presence of an output schema, the description is remarkably complete. It covers purpose, output semantics, cost, authentication prerequisites, and the sensitivity rationale. There is no missing critical context typically needed for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so a baseline of 3 is appropriate. The description adds a brief note that npub ownership proof is required, which relates to dpop_token, but this is more behavioral context than parameter semantics. The schema's own dpop_token description is already highly detailed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and resource: 'List stored patron credential field names (not values).' It clearly distinguishes this read-only listing tool from sibling mutation tools like excalibur_delete_patron_credential and excalibur_update_patron_credential, and specifies the output scope (field names plus delivered_at timestamps).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states an explicit use case: 'use this to verify which fields are configured and how old each one is.' It also implies a when-not by noting 'Values are never exposed,' but it does not explicitly name alternative tools for retrieving values, so it falls short of full when/when-not coverage.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | Yes | A kind-27235 Nostr event signed by patron_npub for this tool. | |
| patron_npub | Yes | The patron's Nostr public key (npub1...). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool is free, requires proof of npub ownership via dpop_token, and mentions that credential presence is sensitive information. It also describes the different behavior for set-once vs dynamic services. This goes beyond the schema and gives the agent a clear picture of the tool's operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each earning its place. It front-loads the primary purpose, then provides behavior details, and ends with cost and authentication notes. No filler or repetition of schema information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (2 params, output schema provided), the description fully covers the necessary context: what it does for each service type, the cost, and authentication requirements. It does not need to explain return values because the output schema exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already covers 100% of the parameters with descriptions, so the baseline is 3. The description adds meaningful context by explaining that dpop_token is proof of ownership and that it is required because the information is sensitive, which enhances understanding of why the parameter exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb and object: 'Report a patron's credential readiness for this operator.' It then differentiates between set-once and dynamic/OAuth2 services, which distinguishes it from sibling tools like excalibur_get_operator_onboarding_status and excalibur_check_oauth_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when the tool is relevant by distinguishing between service types, indicating that for set-once services it shows configured/missing secrets, and for dynamic services it reports no credentials needed. It also notes that proof of npub ownership is required, which is a usage prerequisite. However, it does not explicitly name alternative tools or state when not to use this tool.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| post_id | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Your npub (npub1...). | |
| post_id | Yes | The post UUID whose snapshot series to return. | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Your npub (npub1...). | |
| limit | No | How many recent runs to return (1..100). | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| dpop_token | No | ||
| snippet_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | The OPERATOR's npub (npub1...); this tool is operator-only. | |
| dpop_token | No | ||
| requeue_dead_id | No | Optional dead-letter job UUID to requeue before the sweep. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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_notarizationsBInspect
List recent Bitcoin notarization records.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum records to return (default 20). | |
| status | No | Optional filter (e.g., 'submitted', 'confirmed'). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description has the full burden of behavioral disclosure. It only states 'List recent,' implying a read-only operation, but does not disclose scope (e.g., own records vs all), ordering, pagination behavior, authentication requirements, or any side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that uses every word meaningfully: verb, object, and scope. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with an output schema and complete parameter schema, the description covers the core purpose but leaves gaps in usage guidance and behavioral context. It does not explain what qualifies as 'recent' or how this tool relates to other notarization lookup tools, which would be expected given the lack of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage: both 'limit' and 'status' have descriptions with defaults and examples. The description adds no parameter semantics, but the baseline is 3 because the schema fully documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' and a clear resource 'Bitcoin notarization records,' with 'recent' scoping. This distinguishes it from sibling tools like exacalibur_get_notarization_proof, which targets a single proof, and exacalibur_notarize_ledger, which creates a record.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance is provided, and no alternatives are mentioned. The description does not indicate when to choose this tool over related ones like exacalibur_get_notarization_proof or exacalibur_check_proof_status, nor any exclusions.
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 accept bare YYYY-MM-DD
(UTC-calendar day, end-inclusive) or an ISO instant (patron-local midnight from
the FE — exclusive upper bound when instant). Bound the date_field column,
one of created|updated|scheduled|sent
(default created). template_id filters to the sent occurrences a recurring
template fired. sent_hour (0–23) with time_zone (IANA) keeps only posts
whose last_sent_at local wall hour in that zone matches — used by the
Performance time-of-day chart deep-link. page is 0-indexed; page_size
is 1..100. Each row carries is_recurring, has_dynamic, and
template_id (set on sent occurrences).
Returns {posts:[…], total, page, page_size} reflecting the filtered set.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| page | No | ||
| search | No | ||
| status | No | ||
| date_to | No | ||
| sort_col | No | created | |
| sort_dir | No | desc | |
| date_from | No | ||
| page_size | No | ||
| sent_hour | No | ||
| time_zone | No | ||
| date_field | No | created | |
| dpop_token | No | ||
| template_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden — and it excels. It discloses precise edge-case semantics: UTC-calendar day is end-inclusive while ISO instants impose an exclusive upper bound, status is set-membership matched, sent_hour matches local wall-hour in a timezone, and page is 0-indexed. It also reveals the filter-reflected total behavior in the return contract — substantive behavioral detail far beyond what structured fields could convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with an excellent one-sentence summary before diving into parameter details, and every sentence earns its place given the tool's complexity. However, the body is a dense wall-of-text with minor grammatical slips ('Bound the date_field column' should be 'Bounds...'), and the sent_hour sentence crams three clauses into one long construction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 14-parameter tool with zero annotations and minimal schema help, the description is remarkably complete: it covers defaults, allowed values, edge cases, timezone behavior, and result shape across all meaningful dimensions. The output schema existing means the return value explanation is unnecessary. Minor deduction for the unaddressed dpop_token parameter and silence on pagination edge cases (e.g., behavior past the last page).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With schema coverage at a paltry 7% (only npub documented), the description carries the entire semantic burden and succeeds admirably. It explains 12 of 14 parameters with exact allowed values (created|updated|status|scheduled), defaults, validation constraints (page_size 1..100, sent_hour 0-23), date-format disambiguation (bare YYYY-MM-DD vs ISO instant), and matching rules (regex, set membership, wall-hour equality). Only dpop_token is left undocumented in both schema and prose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence — 'List your stored posts, server-side sorted, filtered, and offset-paginated' — uses a specific verb+resource and clearly scopes the tool to user posts with rich server-side processing. It implicitly distinguishes itself from sibling list tools (list_coupons, list_snippets, list_notarizations) by resource type, though it never explicitly names alternatives or contrasts itself the way the get_calls example does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative tools are named (e.g., nothing like 'for a single post, use get_post'). However, the extensive parameter semantics strongly imply the tool's use cases (time-of-day deep-links, template filtering, date-range queries), giving clear contextual usage context without ever stating exclusions or alternatives.
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 accept bare YYYY-MM-DD (UTC-calendar day,
end-inclusive) or an ISO instant (patron-local midnight from the FE). Bound
the date_field column, one of created|updated (default created).
page is 0-indexed; page_size is 1..200. Free, owner-scoped. Returns
{snippets:[…], total, page, page_size} reflecting the filtered set.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...). | |
| page | No | ||
| search | No | ||
| date_to | No | ||
| sort_col | No | favorite | |
| sort_dir | No | desc | |
| date_from | No | ||
| page_size | No | ||
| date_field | No | created | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It thoroughly discloses behavior: server-side sorting/filtering, sort column and direction options, case-insensitive regex search, date parsing rules (including end-inclusive behavior), date field binding, pagination specifics (0-indexed page, page_size range), and the return shape. It also notes 'Free, owner-scoped,' which is useful context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with its primary purpose and contains dense, relevant information. However, it is a single lengthy paragraph that could benefit from bullet points or section breaks for readability. Every sentence earns its place, but the structure is slightly overwhelming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there are no annotations, low schema coverage (10%), and an output schema that is not shown, the description provides a complete picture for a list operation. It covers all parameters, return shape, filtering semantics, pagination, and scope, making it quite complete for the task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 10% (only npub has an inline description). The description compensates fully by explaining every meaningful parameter: sort_col, sort_dir, search, date_from/date_to, date_field, page, page_size, and even mentions dpop_token indirectly as part of the auth context. It provides valid values, defaults, and semantic details like case-insensitivity and date formats.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'List your saved post snippets, server-side sorted, filtered, and offset-paginated.' It uses a specific verb and resource, and the context of listing snippets clearly distinguishes it from sibling tools like excalibur_get_snippet, excalibur_save_snippet, and excalibur_delete_snippet.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool—for listing, searching, and paginating through saved post snippets—and adds scope details ('owner-scoped'). However, it does not explicitly name alternative tools or say when not to use it, so it lacks explicit exclusion guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_mint_couponBInspect
Create a new operator-owned discount coupon.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | The catchy code patrons type to redeem (operator-scoped uniqueness). | |
| dpop_token | No | ||
| total_uses | No | Aggregate cap across all patrons (default None = unlimited). | |
| valid_from | Yes | ISO-8601 datetime when the coupon becomes active. | |
| valid_until | Yes | ISO-8601 datetime when the coupon expires. | |
| uses_per_patron | No | How many tool calls one patron can claim the discount on (default 1; pass null/None for unlimited within the window). | |
| discount_percent | Yes | Percentage off the base price (0-100). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It mentions 'operator-owned' but does not explain side effects, permissions, idempotency, or error behavior. The description is too vague for a mutation tool, providing minimal context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with zero wasted words. It efficiently conveys the core purpose without redundancy, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having 7 parameters and an output schema, the description is minimal and lacks critical contextual details such as ownership implications, authentication requirements, or lifecycle context. Compared to similar tools, this description under-delivers for a creation tool with no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 86%, which is high, so the baseline is 3. The description itself adds no parameter-specific details beyond what the schema already provides, so it does not exceed the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Create a new operator-owned discount coupon' clearly specifies a creation action, the resource (discount coupon), and ownership (operator-owned). It distinguishes from sibling tools like 'excalibur_update_coupon' and 'excalibur_delete_coupon' 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage via the verb 'Create' but does not explicitly state when to use this tool versus alternatives like 'excalibur_update_coupon' or 'excalibur_redeem_coupon'. It lacks explicit context about prerequisites or scenarios where this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_notarize_ledgerAInspect
Build a Merkle tree of all patron balances and submit the root to Bitcoin via OpenTimestamps.
Operator-only background task. Bitcoin confirmation takes 1-6 hours. Free — no credits required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your PROVEN Nostr public key (npub1...). You are recorded as the note's author. | |
| message | Yes | The note text to publish. | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and delivers exceptionally: it discloses that eXcalibur cannot sign as the user, mints an ephemeral scribe keypair, p-tags the user's npub, publishes to the DPYC relay set, and succeeds if at least one relay accepts. It also explains the response contents and the disowning ability.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four paragraphs and somewhat repetitive about the author being the proven npub, but each sentence carries meaningful behavioral or contextual information. It is not bloated with irrelevant details, though a more condensed version could earn a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description thoroughly covers signing, authorship provenance, relay behavior, and the success/failure condition, which is impressive for a complex tool. Minor gaps include no explanation of dpop_token, no explicit statement about zero-relay failure behavior, and no mention of prerequisites like authentication or billing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description already covers npub and message, and the description adds valuable context for npub (proven, session-bound, billing correlation, never free-form). However, dpop_token is completely unexplained in both schema and description, and with 67% coverage, the description does not fully compensate for that gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Publish a public Nostr note (kind 1) authored by your proven npub,' which is a specific verb+resource+scope. It clearly distinguishes this from sibling tools like excalibur_post_tweet or excalibur_create_post by specifying Nostr note, kind 1, and the author constraint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains constraints and mechanics, but never explicitly says when to use this tool versus alternatives such as excalibur_post_tweet or excalibur_create_post. It implies usage through the name and context, but provides no exclusions or direct comparisons to sibling tools.
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 (final reach ÷ rolling-median final reach; suppressed below 5 posts), 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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Your npub (npub1...). | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility. It discloses the data source (durable snapshot store), a data limitation (suppressed below 5 posts), and clarifies that it is derived rather than a direct API proxy. This is substantial behavioral context, though it omits auth requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively short (two sentences) and the first sentence front-loads the purpose. However, the second sentence is dense with jargon and includes marketing fluff like 'owning the curve', which does not add functional clarity. Some phrases could be simplified without loss of meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers key computational aspects and mentions a suppression threshold, and an output schema exists so return values need not be described. Yet it is vague about the overall output structure, data freshness, and prerequisites beyond having a harvested corpus, leaving some gaps for a complex analytics tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about the two parameters (npub, dpop_token) and does not explain dpop_token's role. Schema coverage is only 50% (npub described, dpop_token not), so the description fails to compensate for the gap, leaving the token parameter ambiguous.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes derived reach scores across a harvested post corpus, enumerating specific metrics (escape velocity, breakout ratio, link-placement cohort medians, snippet/voice attribution). The verb+resource are present, and the mention of 'not proxying a single X endpoint' distinguishes it from direct metric tools, though it could be more explicit about the overall 'post performance' scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for aggregated, derived analytics across multiple posts and contrasts with 'proxying a single X endpoint', giving a sense of when it's appropriate. However, it does not explicitly name alternative tools or state when to use this instead of excalibur_get_post_metrics or excalibur_harvest_metrics, and no exclusions are mentioned.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Your npub (npub1...). | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations 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.
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.
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.
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.
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.
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| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| text | Yes | Tweet content with optional markdown formatting. | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the transparency burden. It discloses the markdown-to-Unicode conversion behavior and gives examples, which is valuable. However, it omits any mention of authentication requirements, credit billing, or the fact that tweeting is a permanent public action. The npub billing detail appears only in the schema, not the description.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded, leading with the core purpose and following with a concise explanation and examples. Every sentence earns its place, and the use of a code block makes the markdown conversion rules clear without unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values need no description. The main behavior (markdown conversion) is thoroughly explained. However, for a mutation tool with billing implications, one might expect mention of prerequisites like authentication or credit balance, though the npub parameter in the schema hints at billing. The description is mostly complete for its intended use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67% (npub and text described, dpop_token not). The description adds meaningful semantics for the 'text' parameter by explaining markdown formatting and showing conversion examples. However, it provides no help for the undocumented dpop_token, and the npub description is already in the schema. Overall, the description adds some value but does not fully compensate for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Post') with a clear resource ('text tweet') and adds the unique behavior of converting markdown to Unicode Mathematical Alphanumeric Symbols. This clearly distinguishes it from sibling tools like excalibur_post_tweet_image (image tweet) and excalibur_create_post.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for text tweets requiring markdown formatting, but it does not explicitly state when to choose this tool over alternatives like excalibur_create_post or excalibur_post_nostr_message. No exclusions or alternative comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_post_tweet_imageAInspect
Post a tweet with a hero banner image to X/Twitter.
Provide either an image_url (fetched and attached) or banner_svg (rendered to PNG and attached). Text supports the same markdown formatting as post_tweet.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| text | Yes | Tweet content with optional markdown formatting. | |
| image_url | No | URL of an image to attach to the tweet. | |
| banner_svg | No | Self-contained SVG markup string, converted to PNG. | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It reveals that image_url is fetched and attached, and banner_svg is rendered to PNG, adding value beyond the schema. However, it does not disclose authentication requirements, side effects, or behavior when both image parameters are provided, which is a gap for a mutating tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary purpose and immediately followed by actionable image option instructions. Every sentence earns its place without fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters, an output schema, and a large sibling set, the description provides the core workflow and references post_tweet for formatting. It does not mention the npub billing requirement (though the schema does) or what happens if both image_url and banner_svg are supplied, but overall it is sufficiently complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is high (80%), so the baseline is 3. The description adds meaningful semantics for the two image parameters by explaining they are 'fetched and attached' and 'rendered to PNG and attached', which goes beyond the schema's simple 'URL of an image to attach' and 'SVG markup string'. It does not explain dpop_token, but that is a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Post a tweet with a hero banner image to X/Twitter' with a specific verb and resource, clearly distinguishing itself from the sibling post_tweet by the hero banner image addition. It also specifies the two image source options, 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage instructions: 'Provide either an image_url (fetched and attached) or banner_svg (rendered to PNG and attached)' and references post_tweet for formatting. It clearly implies this is the image-attaching variant, but does not explicitly state when not to use it or compare it to alternatives beyond the format reference.
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}.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | The OPERATOR's npub (npub1...); this tool is operator-only. | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | The patron's Nostr public key the event must be signed by. | |
| signed_event | No | A JSON-encoded, client-signed kind-0 event. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well: it discloses the server never holds the nsec, verifies the event signature against the npub, relays to public relays, and that authorization comes purely from the signature. It stops short of describing failure modes or relay selection, but the core behaviors are transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the main purpose. The three sentences each add essential information: what it does, how the signed event is provided, and why the signature is sufficient. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and the presence of an output schema, the description covers the key aspects: the publishing flow, the security model, and the authorization mechanism. It does not explain return values or error cases, but the output schema likely handles that, and the description is adequate for a straightforward publish action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both npub and signed_event are already clearly described in the schema. The description adds context about the signature-checking relationship between them, but does not offer significant new parameter-level semantics beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool publishes a client-signed kind-0 Nostr profile to relays for a given npub. It uses a specific verb ('publish') and resource ('kind-0 profile'), and the client-signed nature distinguishes it from other Nostr publishing tools like excalibur_post_nostr_message.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the expected workflow: the frontend signs the kind-0 event and passes it here, with the server verifying the signature. It also clarifies the security constraint ('The wheel never holds a patron nsec'), implying this tool is for scenarios where key custody is avoided. However, it does not explicitly name alternatives or state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | The Nostr public key (npub1...) the credits will fund. | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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 | No | Satoshis to purchase (default 1000). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool creates an invoice (not immediate credit), requires proof of npub ownership, and is free. It also indicates that payment is confirmed via check_payment, which is important behavioral context not in 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: first sentence states the purpose, followed by a concise workflow and cost note. Every sentence adds value with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the entire flow: creates invoice, payment via any wallet, follow-up with check_payment, and the auth requirement. It also notes the cost. Output schema exists, so return details are not needed. Given the tool's simplicity, this is complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and parameter descriptions are already detailed. The tool description reinforces that dpop_token is proof of ownership but does not add syntax or format details beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Buy credits via Bitcoin Lightning' with a specific verb and resource. It clearly distinguishes from siblings by explaining it creates a Lightning invoice and leads to a check_payment workflow, unlike balance checks or other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context on when to use: to purchase credits, and it names check_payment as the next step, implying a workflow. It also notes 'Free — no credits required to call,' which clarifies a prerequisite. However, it does not explicitly mention alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_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.
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | Required. The credential service name (must match the service used in request_credential_channel). | |
| dpop_token | No | Required. The session phrase returned by request_credential_channel for this exact channel. | |
| sender_npub | No | Required. The npub that sent the credentials. | |
| credential_card | No | Optional. An ncred1... card to redeem directly (bypasses the relay drain; dpop_token not needed). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and delivers: wrong-session DMs are deleted and sender NACK'd, scanning stops at first match, queue is drained on no match, coupon card bypasses relay, and the payment client is reinitialized without restart. This is rich, specific 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a one-sentence purpose, then flows logically through call conditions, deterministic behavior, failure handling, and optional card path. Every sentence earns its place; the detail is necessary for a destructive one-shot operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex, side-effect-heavy tool with no annotations, the description covers when to call, what happens on success/failure, destructive side effects, and the no-retry rule. An output schema exists, so return-value details are not required. It is fully contextual.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds relational meaning by grouping `(sender_npub, service, dpop_token)` as the response identifier and explaining that `credential_card` bypasses relay access and makes `dpop_token` unnecessary. However, the schema says 'Required' in prose but has no actual `required` array, which creates minor ambiguity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function ('Pick up credentials from the Secure Courier') and explicitly positions it as completing the CREDENTIAL-DELIVERY flow. It differentiates from the sibling `receive_npub_proof` by naming it as the ownership-proof counterpart.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit timing guidance ('Call this only after the user confirms they have replied') and clear prohibitions ('Do NOT poll, loop, or retry'). It names the counterpart tool, but does not fully enumerate all alternative scenarios or when not to use the tool beyond these constraints.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No | Required. The dpop_token returned by request_npub_proof. | |
| patron_npub | No | Required. The patron's npub to receive proof from. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, description discloses deterministic one-shot retrieval, relay scoping, deletion/NACK of mismatched DMs, proof semantics (signed DM proves ownership), no raw token storage, and free pricing – far beyond baseline.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense and layered: starts with a one-line purpose, then flow context, critical call timing, behavior, and storage facts. No filler; each sentence adds necessary guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers prerequisites, timing, failure behavior, security model, return value, and downstream usage expectations. Even with an output schema present, the description provides full operational context for a nuanced one-shot protocol tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters described. Description reinforces that dpop_token comes from request_npub_proof and that both must be supplied, but adds no new parameter-specific format or constraints beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it receives npub ownership confirmation from a patron, names the flow (npub-OWNERSHIP-PROOF), and identifies receive_credentials as the credential-delivery counterpart, differentiating 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit when-to-use: 'Call this only after the user confirms they have replied.' Explicit prohibitions: 'Do NOT poll, loop, or retry.' Explains consequence if called too early and names the alternative tool receive_credentials.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_redeem_couponAInspect
Claim a coupon by its name (the code the operator shared).
Looks up the operator's coupon by code, validates the window
and total cap, and records a per-patron redemption row.
Subsequent paid tool calls on this MCP auto-apply the discount
until uses_per_patron is exhausted.
Free — no credits required. Requires proof of npub.
Idempotent: redeeming the same code twice returns the existing
redemption.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| npub | Yes | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bans | No | Banned constructions — JSON array or comma-separated (optional). | |
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| voice | No | Voice-profile text fed to the model (optional). | |
| region | Yes | The flagged span to rewrite. | |
| full_text | No | The whole tweet, for context. | |
| dpop_token | No | ||
| instruction | No | What the editor wants changed (optional). |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses server-side processing, that the LLM key never leaves the vault, the metered billing as a tollbooth fare, and refund conditions (no LLM key or empty upstream response). It also clearly states that the tool returns suggestions rather than applying edits directly, which is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. It uses three short paragraphs: what it does, how to use it, and billing/refund policy. Every sentence contributes useful information with no filler. It could be slightly tighter, but it is appropriately sized for a paid, multi-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (paid, 7 parameters, output schema), the description covers the key aspects: input semantics, return value with exact structure, and billing implications. It leaves some gaps, such as the purpose of dpop_token and explicit error handling, but the output schema and sibling context fill some of these. Overall it is complete enough for an 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 86%, with most parameters described in the schema. The description adds cohesion by explaining how region, full_text, instruction, voice, and bans fit together in the workflow. It also clarifies the bans format and the billing role of npub. While the schema already provides parameter-level details, the description adds cross-parameter context that helps the agent construct a correct request.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear verb-object: 'Refine a flagged region of a post with an LLM.' It specifies the exact scope (flagged region) and method (LLM, server-side), distinguishing it from siblings like update_post or create_post. It also states the return format, reinforcing the tool's purpose as a suggestion generator rather than a direct editor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use this tool: when a post region is flagged and needs LLM-based refinement. It explains what inputs to send and what to expect in return. However, it does not explicitly mention alternatives or exclusions, such as 'for full post edits use update_post' or 'when no LLM key is configured, use something else.' The context is clear but not exhaustive.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | The details — which tool, what was wrong, what you expected. | |
| npub | Yes | Your Nostr public key (npub1...); the report's author of record. | |
| title | Yes | One-line summary of the problem. | |
| tool_name | No | Optional: the specific tool the report is about (e.g. "schwab_get_option_chain"). | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses the fee ('Costs a small fee'), public visibility ('The report is PUBLIC'), attribution to npub, lack of verification ('nothing is verified here'), and the return payload (repo, number, url). These are important behavioral traits beyond any structured metadata.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is multi-sentence but each sentence contributes essential information—purpose, trigger condition, npub requirement, fee, publicity, return values, and unconfigured fallback. It is well-structured and front-loaded with the core purpose, with no fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 params, output schema, fee, auth requirement), the description is comprehensive. It explains return values, error/unconfigured behavior, costs, and attribution while relying on the output schema for structural details. This is complete for an agent to decide when and how to invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so the baseline is 3, but the tool description adds meaningful context for parameters like npub ('author of record') and the fee implication. The schema itself already extensively documents dpop_token requirements, so the description does not need to repeat those details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'File a field report about this service as a GitHub issue on the operator's repo,' providing a specific verb and resource. It clearly distinguishes this tool from the many sibling tools by focusing on reporting issues with tool metadata or responses, which no other sibling does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool: 'Found a tool's metadata or response wrong or confusing?' and describes the expected outcome (GitHub issue on the operator's repo). It also covers the non-configured case with 'issue reporting not configured,' giving clear context for conditional use.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| note | No | optional message for the Authority owner. | |
| dpop_token | No | operator-npub ownership proof (inline kind-27235 or cached token). | |
| service_url | No | this operator's MCP endpoint (advertised to the Authority). | |
| authority_npub | Yes | npub of the Authority to request adoption from. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the restriction to the operator, the requirement to prove control of the npub, the use of the operator's nsec to mint an inline ownership proof, the MCP-to-MCP delivery, and the post-condition that the Authority records it as pending. This is substantial behavioral disclosure, though it does not mention potential side effects like external network calls or reversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence contributes unique information: the action, restrictions, process steps, and follow-up. It is somewhat long, but the complexity of the operation justifies the length. The use of a metaphor ('deferred courtship') adds flavor without being wordy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, output schema, no annotations), the description covers the purpose, usage context, security implications, process, and expected outcome. It also references the sibling tool 'adoption_status' for progress tracking. The only minor gap is not explicitly stating what happens if the caller is not the operator, but the 'RESTRICTED' flag implies it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, but the description adds semantic context about parameters. It explains why dpop_token is required ('requires proof the caller controls this operator's npub'), what service_url is ('this operator's MCP endpoint'), and the overall role of authority_npub. This goes beyond the schema by explaining the underlying purpose of each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Ask') and resource ('Authority to adopt this operator') and clearly distinguishes this from siblings like 'adoption_status' by framing the adoption request as a deferred courtship process. It clearly states the action and outcome, making it unambiguous which tool to call.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it is restricted to the operator, describes the flow of resolving the Authority's endpoint, minting a proof, and delivering the request. It explicitly points to 'Poll adoption_status for progress' as a follow-up, which serves as guidance for the next step. It does not explicitly state when not to use it, but the context strongly implies the use case.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| service | No | Required. The credential service name (e.g., from get_operator_onboarding_status or get_patron_onboarding_status). | |
| sender_npub | No | Required. The npub to send the template to. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses key behaviors: sends a welcome DM, requires human-in-the-loop action, and warns that `receive_credentials` destructively drains the relay mailbox. It also explicitly says not to poll or retry, providing actionable transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is multi-paragraph but every sentence earns its place: the first line gives the core purpose, later lines add critical alternatives, behavioral flow, and operational warnings. Formatting with bold and line breaks improves readability without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having an output schema, the description goes beyond structured data to explain the human-in-the-loop workflow, the need to wait for user confirmation, and the destructive nature of the downstream receive call. This level of context is complete for a tool with such operational nuance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters already described in the input schema. The description does not add new parameter-level meaning beyond the schema, so the baseline score of 3 is appropriate. The description mentions the source of the service name (e.g., from onboarding status), which slightly reinforces but does not extend the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Open a Secure Courier channel for credential delivery.' It uses specific verb+resource and immediately distinguishes itself from the sibling `request_npub_proof`, noting that flow is for proving npub control, not credential delivery. The scope is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides usage guidance: use for delivering service secrets, use `request_npub_proof` instead for npub proof, and check `service_status` for OAuth2 services that need no courier. It also gives step-by-step after-call instructions (stop, inform user, wait for confirmation) and warns against polling or retrying.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | 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 | No | 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. | |
| patron_npub | No | Required. The patron's npub to request proof from. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and does so thoroughly. It discloses the human-in-the-loop nature, the returned dpop_token that must be remembered, the fact that MCP does not retain it across restarts, the lifecycle expiry, and the destructive drain on receive calls. It clearly states what the tool does and does not do, providing complete behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, flow, return, lifecycle) and every sentence adds value except for the trailing 'Free.' which appears to be extraneous. It is longer than average, but the complexity of the tool and the need for workflow clarity justify the length. The front-loading of the primary purpose and the clear separation of concepts make it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, usage trigger, workflow, return value, lifecycle, and safety warnings. It references the output schema implicitly by explaining the dpop_token return. Given the tool's complexity and the lack of annotations, the description provides complete contextual information for an agent to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not add parameter-specific detail beyond the schema, but the schema already thoroughly explains reason, verify_at, and patron_npub. The description's flow-level context (e.g., why verify_at is used) is helpful but not required for parameter understanding. Note: description says patron_npub is Required, but the schema doesn't mark it required—though this is a minor inconsistency, not a contradiction.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific verb+resource: 'Request npub ownership proof from a patron via Nostr DM.' It also distinguishes from the sibling tool request_credential_channel, explicitly stating what this tool does NOT do (deliver service secrets) and naming the alternative. This is a specific, well-differentiated purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: 'use it when a call returns ``proof_required``.' It also provides exclusions with alternatives ('To hand an operator its API keys or OAuth secrets, use ``request_credential_channel`` instead') and detailed workflow steps: stop, ask user, wait for confirmation, then call receive_npub_proof. It also warns against polling/retrying, explaining the destructive nature of receive calls.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_reset_pricing_modelAInspect
Erase all pricing models and restore a viable default.
Deletes every stored model, then self-initializes a fresh one from the tool registry — all tools at 0 sats with proper UUIDs. Returns the new model.
RESTRICTED to operator — requires proof (nsec-signed).
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| bans | No | Banned constructions — JSON array or comma-separated (optional). | |
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| voice | No | Voice-profile text fed to the model (optional). | |
| prompt | Yes | The dynamic block's prompt to run. | |
| context | No | The surrounding composed post (may contain the ⟨HERE⟩ marker). | |
| dpop_token | No | ||
| max_fetches | No | Author budget for web lookups (search + fetch), 1..25. | |
| allowed_domains | No | Author allowlist for web_fetch — JSON array or comma-separated. Blank = fetch any URL the prompt references. | |
| runtime_limit_seconds | No | Author's time budget for this block in seconds (60–1800). Bounds how long the job may run AND sets the poll cadence; the operator may price it ad valorem. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals the immediate claim-check return, the async nature ('work can outlast a client timeout'), the billing model ('metered as a tollbooth fare... refunded if no LLM key is configured or the job ultimately fails'), and security ('LLM key stays in the vault and never leaves the server'). This is rich, actionable context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three tight paragraphs: purpose, async rationale with the claim-check flow, and billing. Every sentence earns its place, and the most critical fact (returns a claim check) is front-loaded. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the full lifecycle: how to start, the claim-check format, how to poll with the companion tool, when it's not used (scheduler), security, and cost implications. It also clarifies there is no character cap. For a complex async tool, this is comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 89%, so the schema already documents most parameters. The description adds semantic meaning by explaining how prompt, context, and voice interrelate: 'A dynamic block's prompt is run by the model... woven into the surrounding post context in the author's voice.' This helps the agent understand the purpose of these fields beyond their names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Start resolving a dynamic post block with an LLM — returns a CLAIM CHECK.' This clearly identifies the verb (start resolving), resource (dynamic post block), and key behavior (returns a claim check), distinguishing it from the sibling fetch_dynamic_block.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly instructs to 'Redeem it with the free companion fetch_dynamic_block(claim_check)' and notes that 'The scheduler resolves blocks directly server-side at fire time and does not use this tool.' This provides clear alternatives and exclusions, telling the agent when to use this tool versus others.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | Yes | A kind-27235 Nostr event signed by the OPERATOR's nsec for this tool. Patron proofs are rejected. | |
| invoice_id | Yes | The BTCPay invoice ID to verify and credit. | |
| patron_npub | Yes | The patron's npub whose ledger receives the grant. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden. It discloses the operator-only access restriction, idempotency (returns credits_granted=0 if already credited), and the context of BTCPay-settled invoices. This gives the agent a clear safety and idempotency profile beyond the basic write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a bold opening sentence, operator restriction callout, bullet-style use cases, and a concise idempotency note. Every sentence adds value, and the length is appropriate for the tool's sensitivity and complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an operator-restricted credit tool with an output schema, the description covers purpose, authorization requirements, use cases, and repeat-safety. It omits failure modes, but the output schema and clear operator role make this complete enough 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.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with detailed descriptions for all three parameters (dpop_token requires an operator-signed Nostr event, invoice_id is the BTCPay invoice, patron_npub is the recipient). The tool description adds no additional parameter-level meaning, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with 'Credit a patron's ledger from a BTCPay-settled invoice,' which uses a specific verb and clearly identifies the resource and source. It distinguishes itself from sibling tools like excalibur_check_payment and excalibur_purchase_credits by focusing on manual restoration of credits.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states the tool is RESTRICTED to the operator and provides clear escalation guidance for patrons. It lists concrete use cases (cold-start vault races, ncred delivery hiccups, early Top-Off sheet closure) that tell an agent exactly when to invoke this tool versus alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_restore_neon_schemaAInspect
Re-run ensure_schema() on every NeonVault this operator uses.
Diagnostic / recovery tool for the case where the Neon HTTP SQL API
is returning persistent 4xx errors and the operator suspects the
schema isn't there or grants are wrong. Idempotent — uses
CREATE TABLE IF NOT EXISTS so a successful re-run is harmless.
Returns the per-step result. If any step raises, surfaces the Neon
error message inline (0.31.0 reads the SQL error body that earlier
wheels swallowed behind raise_for_status).
RESTRICTED to operator — requires proof (nsec-signed).
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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": …}.
| Name | Required | Description | Default |
|---|---|---|---|
| doc | No | ||
| name | No | ||
| npub | No | Required. Your Nostr public key (npub1...). | |
| text | No | ||
| favorite | No | ||
| dpop_token | No | ||
| snippet_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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": {...}}.
| Name | Required | Description | Default |
|---|---|---|---|
| bans | No | ||
| npub | No | Required. Your Nostr public key (npub1...). | |
| profile | No | ||
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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
Ask the scheduler to run one tick now (free; any proven patron).
Pokes the Worker's /tick — the same work the ~30-minute cron does: it
claims a pending proof reply (completing the operator's authorization) and
fires any due posts. Use it right after the operator approves in Studio so
nobody waits for the next tick.
Deliberately NOT operator-only. Approving is the operator's act; noticing
that they approved is anyone's, and a patron watching a parked scheduler is
often the one who notices first. The poke carries no authority — it cannot
approve anything, only ask the Worker to look. The challenge phrase stays
operator-gated (scheduler_pending).
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Your npub (npub1...). | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
There are no annotations, so the description carries the full burden, and it delivers thoroughly. It states side effects (claims pending proof reply, fires due posts), the asynchronous background execution, immediate return behavior, and the exact return payload. It also explicitly cautions that the poke carries no authority and that the challenge phrase remains operator-gated, preventing a common misunderstood privilege.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fully front-loaded with the decisive clause and then expand with important context. It uses clear paragraph breaks for visibility. Every sentence adds something meaningful, though it is slightly long for a simple trigger action. Still, the length is justified by the nuanced authorization semantics.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple trigger tool with no annotations, the description fully covers identity/authorization context, when to call it, side effects, asynchronous behavior, output, and follow-up guidance. It also clarifies how this differs from cron and operator-only actions. The agent has everything needed to invoke and interpret the result correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only npub has a schema description, and the tool description adds no guidance for the dpop_token. With 2 params and 50% schema coverage, the description fails to explain the auth token's purpose or how an agent should obtain or supply it. Even though npub is briefly described in the schema, the overall parameter guidance is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise, specific statement: 'Ask the scheduler to run one tick now,' and then details the exact action (poking /tick and performing due work). It distinguishes the tool from nearby scheduler tools by clarifying it only triggers a tick and cannot approve anything. This goes well beyond restating the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives strong situational guidance: use it right after the operator approves in Studio, or when a patron notices a pending authorization while the scheduler is parked. It also explains who can use it ('deliberately NOT operator-only'), but it does not enumerate explicit alternatives or a 'when not to use' section. This is clear context with no exclusions, but slightly below the 5 bar.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | The OPERATOR's npub (npub1...); this tool is operator-only. | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Your npub (npub1...). | |
| dpop_token | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| patron_npub | No | 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so thoroughly. It discloses that the tool is free, explains each state's consequences (e.g., paid tools fail, free tools remain available), and mentions 'vault AND pricing model verified' for readiness. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and cost, then uses a clear bulleted list for lifecycle states. Each bullet is concise and essential, and the length is justified by the complexity of the states.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers all lifecycle states and gives actionable next steps. With an output schema present, return values do not need to be detailed. No annotation means the description also covers cost and failure modes, making it complete for a status-check tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single optional parameter, so the baseline is 3. The tool description itself does not mention the parameter, but the schema provides sufficient semantics. The description adds no additional parameter context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb and resource: 'Check operator readiness.' It clearly distinguishes this from sibling tools like service_status or scheduler_status by focusing on operator lifecycle. The lifecycle state list further clarifies what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance for each lifecycle state, including when to proceed, when retrying is useless, and when to call a specific alternative (e.g., 'Call register_operator first'). It also states the tool is free, which helps decide when 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_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.
| Name | Required | Description | Default |
|---|---|---|---|
| dpop_token | No | ||
| model_json | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | ||
| coupon_id | Yes | ||
| dpop_token | No | ||
| total_uses | No | ||
| valid_from | No | ||
| valid_until | No | ||
| uses_per_patron | No | ||
| clear_total_uses | No | ||
| discount_percent | No | ||
| clear_uses_per_patron | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses 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.
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.
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.
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.
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.
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_operator_credentialAInspect
Add or update a single operator secret field.
Merges into the operator's stored credentials without touching the
others — the field-level counterpart to re-delivering the whole
bundle over Secure Courier. Use it to rotate one secret (a reissued
btcpay_api_key, say) without restating the six you did not
change, where any field omitted from a courier reply is destroyed.
The value is never echoed back. RESTRICTED to the operator — requires proof (nsec-signed kind-27235 or a cached dpop_token phrase); patron proofs are rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| field | Yes | The operator credential field to set. Must be declared in the operator's credential template. | |
| value | Yes | The value to store. | |
| dpop_token | Yes | Operator proof for this tool. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It discloses that the operation merges without touching other fields, that the value is never echoed back, and that restricted operator proof (nsec-signed kind-27235 or cached dpop_token) is required. It also explains the destructive alternative, adding safety context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficient and well-structured. The first sentence states the purpose, subsequent sentences cover behavioral nuances, usage context, and security constraints. Every sentence earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description fully addresses the tool's complexity: merge behavior, use case, security restrictions, and proof requirements. With an output schema present, omission of return details is acceptable. It is comprehensive for a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaning beyond the schema by giving a concrete example ('btcpay_api_key'), clarifying the merge semantics for 'field', and elaborating on the 'dpop_token' proof types (nsec-signed kind-27235 or cached phrase). This exceeds the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Add or update a single operator secret field,' which precisely states the verb (add/update), resource (operator secret field), and scope (single field). It distinguishes itself from sibling tools like excalibur_update_patron_credential by focusing on operator credentials and from whole-bundle delivery by noting it is field-level.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly explains when to use this tool: to rotate one secret without restating unchanged fields and avoiding the destructive behavior of omitted fields in a courier reply. It also states a clear exclusion: patron proofs are rejected, implying this is only for operator use. This is strong usage guidance.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | Yes | The patron's Nostr public key (npub1...). | |
| field | Yes | The credential field name to set. | |
| value | Yes | The value to store. | |
| dpop_token | Yes | Raw JSON of a kind-27235 Nostr event signed by npub — not base64, not NIP-98 'Authorization: Nostr <b64>' 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. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears the full transparency burden. It openly discloses that this is a write to a 'sensitive credential vault,' requires proof of ownership, is free, and merges without affecting other fields. This goes beyond a generic 'update' statement. It doesn't mention rate limits or idempotency, but the critical behavioral traits are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short paragraphs with the main action in the first sentence. Every sentence adds value: merge behavior, use cases, cost, security requirement, and vault sensitivity. No fluff or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 required params, no annotations, output schema present), the description covers essential context: purpose, merge semantics, use cases, cost, and proof requirement. The output schema exists, so return-value details are not needed. Minor gaps like accepted field names are not covered, but the description is sufficiently complete for an agent to select and invoke the tool safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with detailed descriptions for all four parameters, including a thorough explanation of the dpop_token format. The description adds only the concept of a 'single field' and merge semantics, which is relevant but not necessary for understanding individual parameters. Since the schema does the heavy lifting, a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Add or update a single patron credential field,' which clearly states the action (add/update), the resource (patron credential field), and the scope ('single'). This distinguishes it from siblings like 'delete_patron_credential' or 'update_operator_credential.' The merge behavior further clarifies it's a partial update, not a wholesale replacement.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides concrete use cases ('setting an account identifier after OAuth, changing a default brain'), making it clear when this tool is appropriate. It also includes practical constraints: 'Free' and 'Proof of npub ownership is required.' However, it does not explicitly name alternatives or state when not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
excalibur_update_postAInspect
Patch a stored post. patch may set doc, publish_at, recurrence, cease_at, status (omit a field to leave it unchanged). text_cache is
written when supplied (alongside a doc change). client_req_id dedupes
debounced autosave retries — a repeat is a no-op with no second charge.
| Name | Required | Description | Default |
|---|---|---|---|
| npub | No | Required. Your Nostr public key (npub1...) for credit billing. | |
| patch | Yes | ||
| post_id | Yes | ||
| dpop_token | No | ||
| text_cache | No | ||
| client_req_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description 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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA minimal MCP server for posting tweets to X (Twitter) via API v2, supporting tweet creation, replies, and quote tweets.10MIT
- AlicenseAqualityAmaintenanceMCP server to read X (Twitter) posts, threads, replies, quotes, and search using your own logged-in session, no API key required.83MIT
- AlicenseBqualityDmaintenanceMCP server for interacting with the X platform (Twitter) via MCP clients like Claude, Cursor AI, and Windsurf AI.20146MIT
- AlicenseCqualityDmaintenanceA Model Context Protocol (MCP) server for managing social media posts, currently supporting X (formerly Twitter).37MIT
Your Connectors
Sign in to create a connector for this server.