Skip to main content
Glama

Server Details

FastMCP server for TheBrain API — AI access to a personal knowledge graph, Tollbooth-monetized

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

Glama MCP Gateway

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

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4/5 across 70 of 81 tools scored. Lowest: 2.7/5.

Server CoherenceB
Disambiguation4/5

Most tools target distinct resources and actions, but several near-overlaps exist: account_statement vs account_statement_infographic, get_thought_graph vs get_thought_graph_paginated, and the receive_credentials vs receive_patron_credentials pair. The detailed descriptions largely mitigate confusion, but the boundaries between balance-checking tools (check_balance, check_authority_balance, account_statement) are subtle enough to risk misselection.

Naming Consistency4/5

The brain_ prefix is applied consistently with a mostly verb_noun pattern (create_thought, get_thought, update_thought, delete_thought). Minor deviations include brain_brain_query (redundant prefix), brain_event_for_person (prepositional phrase), and mixed verbs like add_file_attachment vs create_thought, plus compound nouns like account_statement_infographic. Overall readable and predictable.

Tool Count1/5

81 tools is far beyond the typical well-scoped range of 3-15. Even accounting for the multi-domain scope (TheBrain API, billing, credentials, coupons, oracle, operator lifecycle), the sheer number overwhelms agent tool selection and creates unnecessary complexity. This is an extreme mismatch for an MCP server.

Completeness4/5

The tool surface is remarkably comprehensive for the domains covered: full CRUD for thoughts, links, attachments, notes, tags/types; complete billing and credit lifecycle; credentials send/receive/update/delete; coupon mint/redeem/update/delete; and operator onboarding/status. Minor gaps include no explicit list-all-thoughts tool (relies on graph traversal) and no separate note deletion (likely coupled to thought deletion), but these are workable.

Available Tools

82 tools
brain_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days of daily usage history to include (default 30).
npubYesThe patron's Nostr public key (npub1...).
dpop_tokenYesRaw 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description carries full burden. It states that the tool is free ('no credits consumed'), requires proof of npub ownership, and explains the anti-scraping motive. It also clarifies data scope (purchase history, credit tranches, etc.) and what it is not (Authority tax balance), providing strong behavioral transparency.

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

Conciseness5/5

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

Three sentences, each serving a purpose: the first states the function and contents, the second clarifies scope vs Authority tax balance, the third covers cost and auth. No filler or repetition.

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

Completeness5/5

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

Complexity is moderate with 3 params and an output schema present. Description covers return contents, cost, authentication requirement, and scope distinction. Given the output schema handles detailed return structure, no significant gaps remain.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents all three parameters (days, npub, dpop_token) thoroughly. The description adds only general mention that proof of npub ownership is required (matching dpop_token) and doesn't add per-parameter semantics beyond the schema's detailed dpop_token documentation.

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

Purpose5/5

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

Description opens with 'Generate a patron's account statement at this operator' – a specific verb and resource. It enumerates contents (purchase history, credit tranches, per-tool usage breakdown, daily usage logs) and explicitly distinguishes from Authority tax balance, which differentiates it from sibling tools like brain_check_authority_balance.

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

Usage Guidelines4/5

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

The description provides context: it's for the patron's spending account, not the operator's Authority tax balance, and notes that proof of npub ownership is required. This implies when-not and a prerequisite, but it doesn't name alternative tools for the excluded case (e.g., brain_check_authority_balance) or state explicit 'use this when' scenarios.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
daysNoNumber of days of daily usage history to include (default 30).
npubYesThe Nostr public key (npub1...) whose statement to render.
dpop_tokenYesRaw 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses the cost ('Costs 1 api_sat per call'), the authentication flow ('Proof is verified by debit_or_deny before any cost is incurred'), and the output composition ('balance hero, metrics cards, health gauge, tranche table, and tool usage breakdown'). This goes beyond the schema, though it doesn't explicitly state whether the tool is read-only or describe failure modes.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the main purpose, followed by output details and cost/verification. Each sentence earns its place with zero waste. It is concise and well-structured.

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

Completeness5/5

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

The description is complete for a tool with an output schema and 3 parameters. It explains the return value (SVG with specific sections), the cost, the proof verification, and differentiates from a sibling tool. Given the output schema exists, the description need not elaborate on return value structure, and it doesn't omit critical context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description does not add any parameter-specific meaning; it only describes the overall output. Since the schema already documents each parameter thoroughly, no additional semantic value is provided, meriting a baseline score.

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

Purpose5/5

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

The description opens with a specific verb + resource: 'Generate a visual SVG infographic of your account statement.' It clearly distinguishes itself from the sibling brain_account_statement by stating that it 'Returns the same data as account_statement, rendered as a dark-themed SVG graphic,' making the purpose unambiguous.

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

Usage Guidelines4/5

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

The description implies when to use this tool by comparing it to account_statement: it provides the same data but in a visual SVG form. However, it doesn't explicitly say 'use account_statement for raw data' or list when-not conditions. The context is clear but not fully explicit, so a 4 is appropriate.

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

brain_add_file_attachmentBInspect

Add a file attachment to a thought. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
file_nameNoName for the attachment (optional)
file_pathYesPath to the file to attach
dpop_tokenNo
thought_idYesThe ID of the thought

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations, the description must bear the burden of behavioral disclosure. It does add the non-obvious detail that npub is required for credit billing, which implies a metered operation. However, it lacks other important behaviors like whether the file must exist locally, whether the operation is reversible, or any 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.

Conciseness5/5

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

The description is two sentences long, front-loaded with the core action, and contains no fluff. Every word contributes value.

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

Completeness2/5

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

Despite having an output schema and decent parameter coverage, the description is too sparse for a 6-parameter tool with no annotations. It omits context about default brain behavior, file requirements, and the exact nature of the attachment operation, leaving the agent with significant gaps.

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

Parameters3/5

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

The schema already covers 83% of parameters with descriptions, including npub's billing purpose. The description reinforces the npub requirement but adds no new parameter semantics beyond what the schema provides, 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.

Purpose5/5

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

The description states a specific verb and resource: 'Add a file attachment to a thought.' This clearly distinguishes it from sibling tools like brain_add_url_attachment or brain_delete_attachment, as it focuses on attaching a local file to a thought.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The close sibling brain_add_url_attachment is not mentioned, and there is no explanation of prerequisites or typical scenarios beyond the implicit need for a file attachment.

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

brain_add_url_attachmentAInspect

Add a URL attachment to a thought. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to attach
nameNoName for the URL attachment (auto-fetched if not provided)
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
thought_idYesThe ID of the thought

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

No annotations are provided, so the description carries the burden. It discloses a key behavioral requirement: 'Requires npub for credit billing,' which is non-obvious and useful. However, it does not describe the operation's side effects, error behavior, or expected return (though output schema exists). This is adequate but has gaps.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the action, and contains no fluff. Every word earns its place.

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

Completeness4/5

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

Given the tool's simplicity and the presence of an output schema, the description covers the essential purpose and a critical prerequisite (npub). It does not explain all parameters, but the schema covers those. Minor gap: it doesn't mention how the active brain is used, but that is not critical.

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

Parameters3/5

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

Schema coverage is 83%, so baseline is 3. The description emphasizes npub as required, which aligns with the property description, but adds no new semantic meaning beyond the schema. It does not explain dpop_token or the optional brain_id behavior beyond what schema already provides.

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

Purpose5/5

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

The description states a specific action: 'Add a URL attachment to a thought.' This clearly identifies the resource (URL attachment) and target (thought), and distinguishes it from sibling tools like brain_add_file_attachment. The additional npub billing note doesn't obscure the primary purpose.

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

Usage Guidelines4/5

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

The description clearly implies usage: to attach a URL to a thought. It also provides an important prerequisite: 'Requires npub for credit billing.' However, it does not explicitly mention alternatives or exclusions (e.g., when to use brain_add_file_attachment instead), so it lacks explicit when-not guidance.

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

brain_adoption_statusAInspect

Check this operator's adoption-request status at a chosen Authority.

Free. Polls the Authority MCP-to-MCP for the status of this operator's request (pending / approved / rejected / provisioned).

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo
authority_npubYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations, the description carries the full burden. It discloses that the operation is free, that it polls MCP-to-MCP, and lists possible statuses. However, it omits authentication expectations, error behavior, and the meaning of the dpop_token parameter, so transparency is only partial.

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

Conciseness5/5

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

The description is compact and front-loaded with the primary purpose. The 'Free' note and the polling mechanism are essential and distinct, and the status list adds concrete value without unnecessary verbosity.

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

Completeness3/5

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

The output schema covers return values, so that is not needed here. The tool is simple, and the description conveys purpose and mechanism. However, missing parameter semantics and lack of explicit usage guidance make it only minimally complete for a tool with multiple sibling status-checkers.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It only indirectly references 'authority_npub' via 'chosen Authority' and does not explain 'dpop_token' at all. This fails to adequately document the two parameters, leaving the agent to guess their roles.

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

Purpose5/5

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

The description clearly states the specific action ('Check') and resource ('this operator's adoption-request status') with a scoping location ('at a chosen Authority'). It differentiates from sibling status tools by explicitly naming 'adoption-request' and enumerating possible statuses.

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

Usage Guidelines3/5

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

The description provides some usage context: it is free, it polls the Authority MCP-to-MCP, and it targets adoption requests. However, it does not explicitly state when to use this instead of other status-checking sibling tools (e.g., brain_get_operator_onboarding_status, brain_check_proof_status) or mention any exclusions.

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

brain_append_to_noteAInspect

Append content to an existing note. Requires npub for credit billing.

Note style. Prefer plain prose. Reserve bold for rare critical flags only — a ⚠️ caution, an unconfirmed-status note — never for ordinary emphasis, labels, or whole clauses. Overusing bold buries the links and makes notes hard to scan; let thought-links and source links carry the visual emphasis. Put web sources on a quiet "Sources:" line rather than bolding labels like "TL;DR" or "Source". Linking to other thoughts. To link from inside a note to another thought, write a wikilink: [[Thought Name]] or [[Thought Name|display text]]. The tool resolves it to the correct in-plex thought link automatically — do not hand-write brain:// URLs or paste GUIDs. If a name is ambiguous or not found, the tool leaves the [[...]] literal and returns it in unresolved; disambiguate by pinning the id with [[#]]. For external web pages, use normal markdown links: text.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
markdownYesMarkdown content to append
dpop_tokenNo
thought_idYesThe ID of the thought

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description discloses useful behavioral details: it auto-resolves wikilinks, leaves unresolved [[...]] literals and returns them, supports [[#<thoughtId>]] disambiguation, and specifies the credit-billing prerequisite. It does not mention idempotency or what happens if the target note does not exist, but the provided behavior is meaningfully beyond the schema.

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

Conciseness4/5

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

The core purpose is front-loaded, and the longer guidance is organized under 'Note style' and 'Linking to other thoughts' headings. Each section earns its place by providing necessary formatting rules for a tool that generates note content, though it is slightly verbose.

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

Completeness4/5

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

Given the output schema and 80% schema coverage, the description covers the operation, prerequisite, and content-formatting conventions well. It would benefit from an explicit comparison to create/update siblings and a little more detail on edge-case behavior, but it is essentially complete for an append-to-note tool.

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

Parameters4/5

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

Schema description coverage is 80%, so baseline is 3. The description adds substantial value for the markdown parameter by explaining wikilink syntax, external link formatting, bold usage, and unresolved-link handling, and it clarifies npub's role for billing. The dpop_token parameter remains unexplained, but the description goes well beyond schema basics.

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

Purpose4/5

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

The description opens with 'Append content to an existing note', which clearly states the verb, resource, and scope. It differentiates from sibling create/update tools through the word 'append', though it does not explicitly name those alternatives.

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

Usage Guidelines3/5

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

The description gives a prerequisite ('Requires npub for credit billing') and implies the tool is for appending to a note that already exists. However, it does not explicitly state when to prefer this over brain_create_or_update_note or brain_update_thought, and the style guidance concerns content formatting rather than tool selection.

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

brain_brain_queryAInspect

Primary tool for pattern-based operations on TheBrain. Requires npub for credit billing.

Accepts BrainQuery (BQL) -- a Cypher subset supporting MATCH, WHERE, CREATE, SET, MERGE, DELETE, and RETURN.

⚠️ Name-based matching (MATCH by name, WHERE CONTAINS/STARTS WITH/=~) resolves through the vendor's search/name index, which is incomplete on large brains (TheBrainTech/thebrain-api-quickstart-python#1): a query may fail to match a thought that provably exists. An empty match set is NOT proof of absence — do not CREATE/MERGE a node on the assumption it is missing without an ID-based check (get_thought). Matching by ID is reliable; matching by name inherits the index's blind spots.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
queryYesA BrainQuery string (Cypher subset).
confirmNoSet to true to confirm and execute a DELETE operation.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations provided, the description fully discloses critical behaviors: incomplete name index can cause false negatives, empty match sets don't prove absence, and ID matching is reliable. It also warns against unsafe CREATE/MERGE without ID verification, and supports a limited Cypher subset.

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

Conciseness4/5

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

The description is moderately lengthy but well-structured, front-loading the purpose and credit billing requirement, then detailing syntax and important limitations/warnings. Each sentence adds value, though the warning could be slightly more concise.

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

Completeness4/5

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

For a complex tool with write/delete capabilities, the description covers billing, syntax, safety caveats, and confirmation for DELETE. An output schema exists, so return values need not be described. It lacks details on dpop_token or transaction behavior, but is otherwise thorough.

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

Parameters4/5

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

Schema coverage is 80%, but the description enriches the 'query' parameter by explaining BQL syntax and the unreliability of name matching. It adds meaningful context beyond the schema, though other parameters like dpop_token remain undocumented.

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

Purpose5/5

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

The description clearly identifies the tool as the 'Primary tool for pattern-based operations on TheBrain' and specifies it accepts BrainQuery (BQL), a Cypher subset. This distinguishes it from sibling CRUD tools by emphasizing general pattern-based operations.

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

Usage Guidelines4/5

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

Provides explicit guidance on when not to rely on name-based matching and recommends using get_thought for ID-based checks to avoid erroneous CREATE/MERGE. Also notes the billing requirement (npub). However, it does not directly compare use cases with most sibling tools.

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

brain_check_authority_balanceAInspect

Check this operator's tax balance at the Authority.

Returns the sats available for certifying patron credit purchases. When this balance reaches zero, patron top-ups cannot be certified and the operator must call purchase_credits on the Authority.

This is the operator's own funding — not a patron balance. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that this is a check (read-only) that returns 'the sats available' and is 'Free.' It also explains the operational consequence of a zero balance and directs the operator to purchase_credits. This is solid behavioral transparency, though it doesn't describe the output structure (output schema exists).

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

Conciseness5/5

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

The description is four sentences, each adding meaningful context: the core purpose, what the balance represents, the consequence of zero, and a key distinction from patron balances. It is front-loaded and free of filler, making it easy for an agent to parse.

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

Completeness5/5

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

The tool is simple with no parameters, and the description covers what it returns (sats available), what it is for (certifying patron top-ups), what to do when it's exhausted (purchase_credits), and a critical distinction (operator vs. patron balance). This fully addresses the agent's needs for invocation and decision-making.

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

Parameters4/5

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

The tool takes zero parameters, and the schema has no properties. The description adds meaning by explaining that the 'balance' refers to operator funding for certifying patron purchases, not a patron balance. Since there are no parameters to document, the description adequately conveys the semantic of what is being checked.

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

Purpose5/5

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

The description opens with a specific verb+resource ('Check this operator's tax balance at the Authority') and further clarifies the exact meaning of the balance (sats available for certifying patron credit purchases). It explicitly states it is the operator's own funding, not a patron balance, which distinguishes it from siblings like brain_check_balance. This is a clear, unambiguous purpose.

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

Usage Guidelines4/5

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

The description provides context for when this tool is relevant: when the balance reaches zero, patron top-ups cannot be certified and the operator must call purchase_credits. It also differentiates this from a patron balance check, implying when to prefer this tool over alternatives. However, it does not explicitly name sibling tools or provide a 'when not to use' statement.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe Nostr public key (npub1...) whose balance to check.
dpop_tokenYesRaw 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description carries the full burden and does well: it states the tool is free (no credits required), requires proof of npub ownership to prevent enumeration, and clarifies this is a balance check rather than a write operation. It doesn't disclose failure modes or rate limits, but the disclosed behaviors are valuable.

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

Conciseness5/5

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

The description is three short paragraphs with the main purpose front-loaded. Each sentence earns its place: purpose, distinction from alternative, and cost/auth requirements. No wasted words.

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

Completeness5/5

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

Given only 2 parameters and the presence of an output schema, the description covers all essential context: what the balance represents, when to use this tool vs the sibling, cost implications, and authentication requirements. This is sufficient for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, and the schema already includes detailed descriptions for both npub and dpop_token (including dpop_token format and constraints). The description adds no parameter-specific details beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Check a patron's credit balance at this operator' with a specific verb and resource, and explicitly distinguishes it from the operator's own balance tool by naming the alternative. This makes the tool's purpose unambiguous and differentiates it from siblings like brain_check_authority_balance.

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

Usage Guidelines5/5

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

The description provides explicit guidance: 'For the operator's own balance at the Authority... use authority_check_balance instead.' It also explains the context of the patron's spending balance and notes the tool is free and requires proof of npub ownership, giving clear when-to-use and cost/auth context.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe Nostr public key (npub1...) that purchased the invoice.
dpop_tokenYesRaw 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_idYesThe invoice ID returned by purchase_credits.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations provided, the description discloses important behavioral traits: 'Free — no credits required' and the security rationale for npub ownership proof. It adds context beyond the basic check operation, though it doesn't describe potential error responses or specific statuses returned. This is valuable but not exhaustive.

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

Conciseness5/5

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

The description is only three sentences, front-loaded with the main purpose, and includes critical caveats without any fluff. Every sentence earns its place, making it very concise and well-structured.

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

Completeness5/5

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

Given the tool's moderate complexity, full schema coverage, and presence of an output schema, the description covers the essential workflow (when to call), prerequisites (npub proof), and cost (free). It is complete for an agent to correctly select and invoke the tool.

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

Parameters4/5

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

Schema coverage is 100% with detailed parameter descriptions, so baseline is 3. The description adds additional meaning by tying invoice_id to purchase_credits output and explaining why npub ownership proof is needed. This goes slightly beyond the schema, justifying a 4.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Check the payment status of a Lightning invoice.' It distinguishes itself from siblings by specifying the exact resource (Lightning invoice) and the workflow context (after purchase_credits). This is specific with a verb and resource, making it easily distinguishable.

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

Usage Guidelines4/5

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

The description gives explicit usage context: 'Call after paying the invoice from purchase_credits.' It also mentions the requirement of npub ownership proof. However, it does not explicitly state when not to use this tool or mention alternatives, so it doesn't reach a 5.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNo
tool_idYesEither 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_tokenNo
tool_kwargsNoOptional 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description must carry behavioral disclosure. It reveals key traits: the call is a 'preview' (non-executing), shows base cost and constraint effects, and is free (no credits required). It does not fully describe limitations or authentication needs, but the essentials 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.

Conciseness5/5

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

The description is two sentences: the first front-loads the purpose, the second elaborates on output and cost. Every part is informative, with no fluff or repetition of schema details.

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

Completeness4/5

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

The description provides enough context for an agent to understand the tool's purpose, output, and cost implications. Since an output schema exists, return values are covered. However, it does not explicitly distinguish from brain_get_pricing_model, which could raise confusion in the sibling tool list.

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

Parameters3/5

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

Schema coverage is 50% (tool_id and tool_kwargs have descriptions). The description adds context about 'constraint effects' and 'tool call parameters,' which hints at tool_kwargs usage. However, it does not explain npub or dpop_token, which have no schema descriptions, leaving a gap for optional but potentially relevant parameters.

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

Purpose5/5

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

The description clearly states the tool's function: 'Preview the effective cost of a tool call.' It specifies the verb (preview), resource (cost of a tool call), and what it outputs (base cost and constraint effects). This distinguishes it from siblings like brain_get_pricing_model or brain_check_balance.

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

Usage Guidelines4/5

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

The description conveys clear usage context: use this to preview cost before executing a tool call. It also notes 'Free — no credits required,' implying a safe, low-cost way to estimate pricing. However, it does not explicitly mention alternatives or when not to use it, which stops it from being a 5.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNoRequired. The dpop_token phrase returned by ``request_npub_proof`` / ``receive_npub_proof``.
patron_npubNoRequired. The patron's npub (npub1...).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description handles transparency well by stating 'Free, no side effects — does not evict the cache or touch relays.' This clarifies cost and side-effect profile, though it doesn't detail error handling or return shape (but an output schema exists).

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

Conciseness5/5

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

Three short, purposeful sentences. Every sentence contributes: what, when, and side-effect profile. No redundant phrasing or filler, and the key info is front-loaded.

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

Completeness5/5

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

For a simple check tool with a complete output schema, the description fully covers intent, usage, and side effects. It also provides relevant sibling context (check_oauth_status) and is sufficiently complete for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema coverage is 100%, with both 'dpop_token' and 'patron_npub' already having meaningful descriptions. The tool description does not add additional parameter semantics beyond what the schema provides, so baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb and resource: 'Check whether a previously-cached dpop_token is still valid.' It clearly identifies the tool's function and distinguishes it from siblings by framing it as the npub-proof counterpart to '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.

Usage Guidelines5/5

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

Explicit when-to-use: 'a calling agent can ask "will my next paid call accept this dpop_token?" before burning credits on a guaranteed failure.' It also names the alternative tool (check_oauth_status) and differentiates the flow, fully covering usage context.

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

brain_create_or_update_noteBInspect

Create or update a note with markdown content. Requires npub for credit billing.

Note style. Prefer plain prose. Reserve bold for rare critical flags only — a ⚠️ caution, an unconfirmed-status note — never for ordinary emphasis, labels, or whole clauses. Overusing bold buries the links and makes notes hard to scan; let thought-links and source links carry the visual emphasis. Put web sources on a quiet "Sources:" line rather than bolding labels like "TL;DR" or "Source". Linking to other thoughts. To link from inside a note to another thought, write a wikilink: [[Thought Name]] or [[Thought Name|display text]]. The tool resolves it to the correct in-plex thought link automatically — do not hand-write brain:// URLs or paste GUIDs. If a name is ambiguous or not found, the tool leaves the [[...]] literal and returns it in unresolved; disambiguate by pinning the id with [[#]]. For external web pages, use normal markdown links: text.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
markdownYesMarkdown content for the note
dpop_tokenNo
thought_idYesThe ID of the thought

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses key behavioral traits: requires npub for credit billing, automatically resolves wikilinks, leaves unresolved [[...]] literals and returns them, and advises against hand-writing brain:// URLs. This adds significant context beyond a simple 'create or update' statement.

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

Conciseness3/5

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

The description is well-structured with clear paragraphs for note style and linking, but it is longer than strictly necessary. The style guidance is useful but somewhat opinionated and could be condensed without losing core tool usage information.

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

Completeness3/5

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

Given the presence of an output schema, return values need not be described. The description covers purpose, requirements, and detailed content formatting, but omits create-vs-update semantics (e.g., whether it overwrites) and lacks tool-selection guidance. It is adequate but leaves gaps for a tool with this many siblings.

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

Parameters4/5

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

With 80% schema description coverage, the baseline is 3. The description substantially enriches the meaning of the 'markdown' parameter by detailing note style, bold usage, wikilink syntax, and disambiguation via [[#thoughtId]]. It does not add to dpop_token or thought_id, but the markdown additions are meaningful and compensate partially for the missing dpop_token description.

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

Purpose4/5

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

The description states a clear action and resource: 'Create or update a note with markdown content.' This distinguishes it from siblings like brain_append_to_note (append-only) and brain_get_note (read-only), though it does not explicitly name alternatives or contrast with brain_update_thought.

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

Usage Guidelines2/5

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

The description provides no guidance on when to choose this tool over alternatives such as brain_append_to_note or brain_update_thought. The extensive style and linking instructions relate to content formatting, not tool selection, leaving the agent to infer usage context from the tool name alone.

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

brain_create_thoughtAInspect

Create a new thought with optional type, color, label, and parent link. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoKind of thought to create — 1=Normal (default) or 2=Type. Tags and Events are NOT created via kind (the API rejects those values); model them as Normal thoughts carrying the appropriate type_id from get_types (e.g. the "Event" type).
nameYesThe name of the thought
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
labelNoOptional label for the thought
ac_typeNoAccess type (0=Public, 1=Private)
type_idNoID of the thought type to assign
brain_idNoThe ID of the brain (uses active brain if not specified)
relationNoRelation type if linking (1=Child, 2=Parent, 3=Jump, 4=Sibling)
dpop_tokenNo
background_colorNoBackground color in hex format (e.g., "#0000ff")
foreground_colorNoForeground color in hex format (e.g., "#ff0000")
source_thought_idNoID of the source thought to link from

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

No annotations are present, so the description carries the full burden. It discloses a key behavioral trait: 'Requires npub for credit billing,' indicating a paid operation. However, it does not mention other behaviors such as kind restrictions (Tags/Events rejected) or that it creates a node in the active brain.

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

Conciseness5/5

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

Two concise sentences with the action front-loaded. No filler or redundant information. Every word earns its place.

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

Completeness4/5

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

Given the rich schema (92% coverage) and existence of an output schema, the description provides a sufficient high-level overview of the tool. It could mention the kind restriction or linking details, but those are covered by the schema; overall it is complete enough for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is high (92%), so baseline is 3. The description summarizes some parameters ('optional type, color, label, and parent link') and highlights the required npub, but these details are already present in the schema. It adds little new semantic meaning beyond the schema.

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

Purpose5/5

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

The description clearly states the action 'Create' and the resource 'a new thought', and lists optional attributes (type, color, label, parent link). This distinguishes it from siblings like brain_create_link (creates links) and brain_update_thought (updates existing thoughts).

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

Usage Guidelines3/5

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

The description implies usage via the verb 'Create' and resource 'thought', but does not explicitly state when to use it versus alternatives like brain_create_link or brain_morph_thought. No exclusions or alternative guidance are provided.

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

brain_delete_attachmentBInspect

Delete an attachment. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
attachment_idYesThe ID of the attachment

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It discloses that npub is required for credit billing, which hints at a billing side-effect, but it does not mention whether deletion is permanent, whether it affects associated content, or any permissions needed. The description also contradicts the input schema by claiming npub is required while the 'required' array only lists attachment_id.

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

Conciseness5/5

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

The description is extremely concise: two short sentences that front-load the core action and then the key requirement. Every word adds value, with no redundancy or filler.

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

Completeness2/5

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

For a delete operation with no annotations and an output schema, the description is quite sparse. It does not explain the return value (although output schema exists, so that is mitigated), nor does it provide context about consequences, permissions, or the role of brain_id and dpop_token. Given the complexity of the parameter set and the absence of annotations, more behavioral context would be expected.

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

Parameters3/5

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

Schema description coverage is 75% (npub, brain_id, attachment_id have descriptions; dpop_token lacks one). The description adds a slight clarification that npub is for credit billing, but this mostly repeats the schema's npub description. It does not add semantics for attachment_id, brain_id, or dpop_token.

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

Purpose5/5

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

The description clearly states the action ('Delete') and the resource ('an attachment'), with a specific and unambiguous verb+resource structure. It naturally distinguishes from sibling tools like brain_add_url_attachment, brain_list_attachments, and brain_get_attachment.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, nor any mention of prerequisites beyond the npub requirement. There is no indication of ownership checks, active brain behavior, or scenarios where deletion is appropriate or forbidden.

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

brain_delete_couponAInspect

Delete a coupon. Cascades to all patron redemptions.

Any chain step referencing the deleted coupon_id becomes a no-op (the constraint returns neutral on unknown ids) — the Studio surfaces orphan references as warnings.

RESTRICTED to operator — requires proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
coupon_idYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description carries the full burden. It discloses critical behaviors: cascading deletion to patron redemptions, orphan references becoming no-ops with warnings, and operator-only restriction requiring proof. This is rich, specific context beyond a simple 'deletes a coupon'.

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

Conciseness5/5

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

The description is concise and front-loaded: the first sentence states the core action, the second explains the cascade, and the third gives the access restriction. Every sentence adds value with no filler or redundancy.

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

Completeness4/5

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

For a deletion tool, the description explains the core behavior, side effects, and access control, which is sufficient for most usage. It lacks details on how to obtain dpop_token or what 'proof' entails, but since an output schema exists, return values are not required. It is nearly complete, though the dpop_token gap prevents a perfect score.

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

Parameters2/5

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

Schema coverage is 0%, so the description must explain parameters. It implicitly identifies coupon_id as the identifier of the coupon to delete (via 'deleted coupon_id'), but it does not explain the format or origin. dpop_token is completely unexplained, despite being a required parameter for operator proof. The description fails to compensate for the missing schema descriptions.

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

Purpose5/5

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

The description clearly states the action ('Delete a coupon') and specifies the resource (coupon) with a distinctive side effect ('Cascades to all patron redemptions'). This distinguishes it from other deletion tools like brain_delete_thought or brain_forget_coupon, which likely have different scopes or behaviors.

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

Usage Guidelines4/5

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

The description provides clear context for when to use the tool: it is RESTRICTED to operators and requires proof, and it cascades to redemptions, implying it should be used only when that effect is intended. However, it does not explicitly mention alternatives (e.g., brain_forget_coupon) or state when not to use it, so it lacks explicit exclusions.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe patron's Nostr public key (npub1...).
fieldYesThe credential field name to remove.
dpop_tokenYesRaw 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses that this is a write to a sensitive credential vault, that proof of ownership is required, and that it is free. It also notes a non-destructive effect on other fields. It does not mention reversibility or failure behavior, but the output schema likely covers return details; overall this is solid for a delete operation.

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

Conciseness5/5

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

The description is concise and front-loaded with the core action. Each sentence adds value: the action, the scope guarantee, cost, and the auth/sensitivity warning. No filler or repetition of schema details.

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

Completeness4/5

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

Given the tool's moderate complexity (3 required params, output schema present, many siblings), the description covers the essential purpose, scope, sensitivity, and prerequisite. It could add more about error cases or what happens if the field does not exist, but the output schema likely handles return semantics. Overall, it is sufficiently complete for typical usage.

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

Parameters3/5

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

The input schema provides 100% coverage, including detailed descriptions for npub, field, and dpop_token. The description adds no new parameter-level syntax or examples beyond what the schema already offers, so it stays at the baseline for good schema coverage.

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

Purpose5/5

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

The description uses a specific verb ('Remove') and resource ('single patron credential field') and further clarifies scope by noting it deletes one field without affecting others. This clearly distinguishes it from sibling tools like update (brain_update_patron_credential), bulk delete (brain_forget_credentials), or read (brain_get_patron_credential_fields).

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

Usage Guidelines4/5

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

The description conveys clear context: this tool is for deleting a single credential field while preserving other fields. It also states proof of npub ownership is required, which signals a prerequisite. However, it does not explicitly name alternatives or state when not to use it (e.g., for deleting all credentials), so it misses the higher bar of explicit exclusions.

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

brain_delete_thoughtAInspect

Permanently delete a thought by ID. Cannot be undone. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
confirmNoIf True, verify the deletion against the authoritative change-log (a logged DELETED entry) and attach a ``confirmation`` block. The command store already 404s a deleted thought; this adds an audit-grade log proof. Costs one extra billed read.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
thought_idYesThe ID of the thought

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations provided, the description carries the burden of disclosure. It does disclose the irreversible nature ('Cannot be undone') and the billing prerequisite ('Requires npub'), which are significant. However, it omits behavioral details like the optional `confirm` parameter's audit-grade verification and the extra billable read it costs, which is a gap for a delete operation.

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

Conciseness5/5

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

The description is a single, front-loaded sentence that states the action, irreversibility, and a key precondition with no redundant words. Every phrase earns its place.

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

Completeness3/5

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

The output schema exists so return values are handled. The description covers the essential destructive context and billing requirement, but it omits significant nuances like the `confirm` parameter's audit-proof behavior and the cost of an extra read. For a tool with 5 parameters and no annotations, a more complete overview would help, but the core usage is clear.

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

Parameters3/5

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

Schema description coverage is 80% (four of five parameters documented), so the schema already explains most params. The description adds only that npub is for credit billing, which is redundant with the schema's description. It does not clarify the undocumented `dpop_token` parameter or add syntax/format details, so the description adds little value beyond the schema.

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

Purpose5/5

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

The description clearly states 'Permanently delete a thought by ID', with a specific verb and resource, and clearly distinguishes from siblings like brain_create_thought and brain_update_thought. The additional warning 'Cannot be undone' reinforces the destructive purpose.

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

Usage Guidelines3/5

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

The description implies usage: it's for deleting a thought, and notes the requirement of npub for credit billing. However, it does not explicitly contrast with alternatives or state when not to use it, leaving the usage context to be inferred from the tool name and the 'permanent' warning.

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

brain_event_for_personBInspect

Create an Event+Person+Day in one action. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesFlexible date string (ISO, natural language, relative)
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
notesNoOptional markdown note for the Event
personYesFull name or thought ID (UUID)
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
event_nameNoCustom event name (auto-generated if omitted)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

With no annotations, the description carries the full burden. It discloses one key behavioral trait: the need for npub for credit billing, implying a paid operation. But it does not mention whether the operation is idempotent, what happens if the person or day already exists, or any side effects beyond creation. The description is too sparse for a mutation tool.

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

Conciseness5/5

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

The description is only two sentences, front-loaded with the main action and followed by the key requirement. Every word is efficient with no redundancy or filler.

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

Completeness3/5

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

The description is brief and does not explain what 'Event+Person+Day' conceptually means or what the output will be (though an output schema exists). The schema fills in parameter details, but the composite nature of the operation and its relationship to other tools (e.g., why not create separately) are not elaborated. 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.

Parameters3/5

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

Schema coverage is high (86%), with parameter descriptions already explaining most fields. The tool description adds 'Requires npub for credit billing,' but this duplicates the schema's explanation for npub ('Required... for credit billing'). It does not clarify parameters like date, person, or event_name beyond what the schema provides, so it adds little value.

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

Purpose4/5

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

The description states a clear action: 'Create an Event+Person+Day in one action.' This specifies the verb (Create) and the composite resource, distinguishing it from single-entity creation tools like brain_create_thought. However, 'Event+Person+Day' could be clearer, and it doesn't explicitly name alternatives, so it falls short of a 5.

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

Usage Guidelines3/5

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

The phrase 'in one action' implies this is for combining multiple creations, providing a basic usage context. However, there is no explicit guidance on when to use this versus creating events, persons, or days separately, nor any exclusions or alternatives. This is implied usage, not clear guidance.

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

brain_forget_couponAInspect

Remove a coupon from this patron's redemption list.

Cosmetic only — the coupon itself still exists at the operator, and the patron can re-redeem the same code later while the window allows. Free — requires proof of npub.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
coupon_idYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations provided, the description carries the full burden. It openly discloses the cosmetic-only nature, the coupon's persistence at the operator, re-redemption possibility, and the npub proof requirement. This is strong transparency for a simple mutation tool, though it doesn't cover potential error conditions 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.

Conciseness5/5

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

The description is three sentences with no wasted words. The primary action is front-loaded, followed by key caveats (cosmetic, free, npub proof). Every sentence contributes unique information.

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

Completeness4/5

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

For a simple tool, the description covers the core action, side effects, and auth requirement. The output schema is present, so return values are presumably covered. However, the parameter gaps (especially coupon_id) prevent a perfect score, as the description relies on the user's prior knowledge of the domain.

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

Parameters2/5

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

Schema coverage is 0%, so the description must compensate, but it only adds meaning for npub ('requires proof of npub'). It does not explain coupon_id or dpop_token, leaving two of three parameters ambiguous. This under-compensates for the lack of schema descriptions.

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

Purpose5/5

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

The description clearly states the action: 'Remove a coupon from this patron's redemption list.' The qualifier 'Cosmetic only' distinguishes it from related tools like brain_delete_coupon, preventing ambiguity about its non-destructive nature.

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

Usage Guidelines4/5

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

The description provides clear context by stating that the coupon still exists and can be re-redeemed, implicitly indicating this is for non-destructive removal. It also mentions the 'requires proof of npub' prerequisite. However, it does not explicitly name alternative tools, so it lacks an explicit when-not-to-use instruction.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe Nostr public key (npub1...) whose credentials to forget.
serviceYesThe credential service to forget.
dpop_tokenYesRaw 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses that the operation requires proof of npub ownership and is 'as destructive as a write', which is critical safety context. It does not detail irreversibility or rate limits, but the key behavioral trait is well communicated.

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

Conciseness5/5

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

The description is three concise sentences: purpose, usage distinction, and safety note. Every sentence adds value, and the most critical information is front-loaded.

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

Completeness4/5

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

For a destructive 3-parameter tool with a rich input schema and an output schema present, the description covers purpose, usage nuance, and a safety warning. It does not explicitly differentiate from the sibling brain_delete_patron_credential, but overall it provides enough context for correct invocation.

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

Parameters4/5

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

Schema coverage is 100% with descriptive parameter details. The description adds extra meaning by clarifying how to select the correct npub (operator vs patron) and reiterates the proof requirement tied to dpop_token. This goes beyond the schema's generic npub description.

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

Purpose5/5

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

The description clearly states the tool 'Delete vaulted credentials for a specific service and npub', which is a specific verb+resource. It also distinguishes operator vs patron credential deletion, differentiating it from sibling tools like brain_delete_patron_credential.

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

Usage Guidelines4/5

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

The description explains when to use the tool by specifying that for operator credentials pass the operator's own npub, and for patron credentials pass the patron's npub. It also warns that proof of npub ownership is always required. It does not explicitly name alternatives, but the context is clear.

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

brain_get_attachmentAInspect

Get metadata about an attachment. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
attachment_idYesThe ID of the attachment

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It adds that credit billing applies and npub is required, which is a meaningful side-effect disclosure. However, it does not mention other behaviors such as whether the operation is strictly read-only, pagination, or error cases. The billing mention provides partial transparency.

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

Conciseness5/5

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

The description is two short sentences: the first gives the core purpose, the second adds a key requirement. It is front-loaded and every word contributes value. No redundancy or verbose phrasing.

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

Completeness4/5

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

Given the tool's simplicity (get metadata) and the presence of a detailed schema (75% parameter coverage) and an output schema, the brief description adequately covers the essential context. It mentions the billing prerequisite and the action. It could be slightly more explicit about the distinction from content retrieval, but the name and sibling context make this inferable.

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

Parameters3/5

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

The description adds no new parameter semantics beyond what the schema already provides. Schema description coverage is 75% (three of four parameters are documented in the schema), and the only parameter it hints at, npub, is already described as required for credit billing. The description does not clarify the undocumented dpop_token, and brain_id and attachment_id are already well-described in the schema.

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

Purpose5/5

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

The description states 'Get metadata about an attachment' with a specific verb and resource, clearly distinguishing it from sibling brain_get_attachment_content, which likely retrieves content. This gives an immediate, unambiguous purpose.

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

Usage Guidelines3/5

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

The description notes 'Requires npub for credit billing,' implying a prerequisite and cost. However, it does not explicitly state when to use this tool versus alternatives like brain_get_attachment_content or brain_list_attachments. Usage context is implied but not made explicit.

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

brain_get_attachment_contentBInspect

Get the binary content of an attachment. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
save_to_pathNoOptional path to save the file locally
attachment_idYesThe ID of the attachment

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It mentions the npub requirement for credit billing, which is a useful behavioral trait, but omits other important aspects such as side effects (e.g., whether save_to_path writes to disk), return format, or potential size limitations. This is insufficient for a tool that retrieves binary data.

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

Conciseness5/5

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

The description is extremely concise: two sentences, first states the core purpose, second adds the billing requirement. There is zero waste, and the key action is front-loaded.

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

Completeness3/5

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

The tool is relatively simple, and the schema covers most parameters. However, the description lacks important context about how the binary content is returned (e.g., base64, file download) and does not clarify the relationship to the sibling tool brain_get_attachment. It also doesn't explain the behavior of the optional save_to_path parameter, despite that being a notable feature.

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

Parameters3/5

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

The input schema covers 80% of parameters with descriptions, so the baseline is 3. The description's mention of 'Requires npub' adds no new information because the schema already describes npub as required for billing. It does not clarify the purpose of dpop_token or elaborate on save_to_path behavior beyond the schema.

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

Purpose4/5

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

The description clearly states the tool retrieves the binary content of an attachment, which is a specific verb+resource action. While it implicitly distinguishes from the sibling tool 'brain_get_attachment' via the modifier 'binary', it does not explicitly differentiate them, leaving a small ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like brain_get_attachment or brain_list_attachments. The only additional information is the npub requirement for billing, which is a prerequisite rather than usage context, so the agent gets no direction on selecting this tool.

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

brain_get_brainBInspect

Get details about a specific brain. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idYesThe ID of the brain
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

With no annotations provided, the description carries the full burden. It adds one useful behavioral detail (npub required for credit billing) but fails to disclose aspects like whether the operation is read-only, what happens without npub, or any rate limits. The description is too sparse to give the agent confidence about side effects or requirements beyond the billing note.

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

Conciseness5/5

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

The description is only two sentences, with the core purpose first and the billing requirement second. Every word earns its place, and there is no redundancy or fluff.

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

Completeness3/5

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

The tool is a simple get-by-ID operation with an output schema present, so return values are likely covered by the schema. The description adds the billing context, but lacks guidance on when to use it versus sibling tools, and the npub requirement is stated without explaining whether it is mandatory at the API level despite not being listed as a required schema property. This leaves some ambiguity for a low-complexity tool.

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

Parameters3/5

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

Schema coverage is 67% (npub and brain_id have descriptions; dpop_token does not). The description adds context that npub is required for credit billing, which supplements the schema's note on npub. However, brain_id is described only as 'The ID of the brain' with no additional semantic value, and dpop_token remains unexplained. This is adequate but not exceptional.

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

Purpose4/5

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

The description clearly states the action: 'Get details about a specific brain.' The verb 'get' and resource 'specific brain' distinguish it from sibling tools like brain_list_brains (which lists brains) and brain_get_brain_stats (which gets stats). However, it does not explicitly mention that it retrieves by brain_id, though the schema covers that.

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

Usage Guidelines3/5

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

The description provides a prerequisite ('Requires npub for credit billing') but does not state when to use this tool vs alternatives or any exclusions. It implies use when you need details of a single brain, but there is no explicit guidance about preferring this over brain_list_brains or other getters.

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

brain_get_brain_statsBInspect

Get statistics about a brain. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits. It does reveal the credit billing requirement, which is a notable operational cost. However, it doesn't clarify whether the operation is read-only, whether credits are actually deducted, or what side effects might occur, leaving some ambiguity.

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

Conciseness5/5

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

The description is exceptionally concise, consisting of two short sentences that state the core purpose and the key prerequisite. No fluff or redundancy.

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

Completeness3/5

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

The output schema likely covers return values, so the description needn't explain that. However, the tool involves credit billing, which presents financial implications. The description only hints at this via the npub requirement. For a tool with billing side effects and many siblings, the description would benefit from more context, such as typical use cases or confirmation that it's a read-only operation.

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

Parameters3/5

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

The schema already documents npub and brain_id with descriptions, so the description adds marginal value here. The mention that npub is required for credit billing reinforces the schema's description of npub, but the dpop_token parameter remains completely unexplained, and the description doesn't clarify how brain_id interacts with the active brain beyond what the schema states.

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

Purpose4/5

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

The description clearly states the action ('Get statistics') and the resource ('brain'), making it distinct from sibling tools like brain_get_brain or brain_get_attachment. However, it doesn't specify exactly which statistics are returned, which would add further clarity.

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

Usage Guidelines2/5

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

The description only notes the npub requirement, which is a prerequisite rather than guidance on when to use this tool versus alternatives. No contextual usage scenarios or exclusions are provided, leaving the agent without clear decision criteria.

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

brain_get_modificationsAInspect

The brain's authoritative, uncached change-log. Requires npub for credit billing.

Unlike get_thought_graph and search (Azure-cached, stale for recent writes), this feed reflects every operation promptly — CREATED (101), DELETED (102), CHANGED_NAME (103), SET_TYPE (203), MOVED_LINK (402), etc. — with old→new values and timestamps. Use it for two things:

  1. Confirm a write landed — after a mutation, query with start_time set to just before it and check for the matching entry. This is the authoritative read-after-write check (stronger than the cached graph, and it confirms deletes and type/link changes the graph hides). The heavy mutating tools also expose a confirm=True flag that does this for you.

  2. Discover recent / peer activity — "what changed since T" so an agent can pick up where others left off.

⚠️ userId is the TheBrain account owner, shared by every agent using this operator's key — it distinguishes human-desktop vs API activity, NOT one agent from another. Peer discovery here is by time + content, not by author.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
end_timeNoEnd time for logs (ISO format)
max_logsNoMaximum number of logs to fetch from the API (pre-filter)
mod_typesNoOnly return entries whose modType is in this list (e.g. [102] for deletes)
source_idNoOnly return entries for this thought/link ID
dpop_tokenNo
start_timeNoStart time for logs (ISO format)
source_typeNoOnly return entries of this SourceType (2=Thought, 3=Link)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations provided, the description carries the full burden and excels: it discloses credit billing via npub, uncached latency behavior, inclusion of operation codes (CREATED/DELETED/etc.) with old→new values and timestamps, and clarifies the subtle semantics of userId distinguishing desktop vs API activity. 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.

Conciseness5/5

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

The description is well-structured with a strong opening definition, bulleted use cases, and a warning sub-section. Every sentence adds necessary context; the length is justified by the tool's complexity and the need to distinguish from siblings.

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

Completeness5/5

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

Given the tool's complexity and the existence of an output schema, the description covers all key context: billing, uncached nature, operation types, use cases, peer discovery, and userId semantics. It fully addresses when and why to use this over alternatives.

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

Parameters4/5

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

Schema description coverage is 89%, so baseline is 3, but the description adds value beyond the schema: it explains how to use mod_types (e.g., [102] for deletes) with specific operation codes, and gives context for start_time in read-after-write verification. The npub requirement for billing is also clarified beyond the schema's default.

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

Purpose5/5

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

The description clearly identifies the tool as the brain's authoritative, uncached change-log, with a specific verb+resource+scope. It distinguishes itself from siblings by explicitly naming get_thought_graph and search as cached alternatives that are stale for recent writes.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: confirming writes after mutations (with a start_time strategy) and discovering recent/peer activity. It also mentions alternative tool behavior (heavy mutating tools with confirm=True) and contrasts with cached graph/search use cases.

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

brain_get_nostr_profileAInspect

Read an npub's public Nostr profile (NIP-01 kind-0 metadata).

Free, no proof — the data is already public on relays. Returns the latest metadata fields (name, display_name, about, picture, banner, nip05, website, lud16) or an empty profile if none is published.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description carries the full burden. It discloses return behavior (fields or empty profile) and the lack of proof requirements, which is useful context. It does not cover edge cases like invalid npub or rate limits, but given it's a simple read, transparency is good.

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

Conciseness5/5

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

The description is two sentences, front-loaded with the core purpose, and lists specific fields. No redundant information is present.

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

Completeness4/5

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

The description covers purpose, usage context, and return behavior, and an output schema exists. However, it doesn't clarify behavior for an empty or invalid npub parameter, which is a minor gap given the schema marks it optional with a default.

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

Parameters3/5

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

The lone parameter 'npub' has no schema description (0% coverage), so the description must compensate. It mentions 'npub' in the first sentence, indicating it's the public key, but lacks format details or default behavior. The description partially clarifies the parameter's role.

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

Purpose5/5

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

The description clearly states the tool reads a public Nostr profile, specifying it's NIP-01 kind-0 metadata. It also lists the exact fields returned, distinguishing it from sibling write tools like brain_publish_nostr_profile.

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

Usage Guidelines3/5

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

The description notes the tool is 'Free, no proof' and that the data is already public, implying it can be used without authentication. However, it does not explicitly name alternatives or state when not to use it, leaving usage guidance implied.

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

brain_get_notarization_proofAInspect

Generate a Merkle inclusion proof that a patron's balance was included in a Bitcoin-notarized snapshot.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe patron's Nostr public key (npub1...).
notarization_idYesThe notarization record ID.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It explains the operation (compute a proof from a snapshot) but does not disclose whether it is read-only, any prerequisites (e.g., existing notarization), error conditions, or what the proof can be used for. It implies a safe computation but lacks explicit guarantees.

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

Conciseness5/5

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

The description is a single, well-structured sentence that leads with the verb and object, immediately conveying the tool's purpose without any filler or redundant information. It earns its place with every word.

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

Completeness4/5

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

Given the tool's simplicity (two required parameters, no nested objects, and an output schema present), the description adequately covers what the tool does. However, it could be more complete by explicitly stating when to use it relative to sibling proof-related tools, but this is not a critical gap for a straightforward proof generation tool.

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

Parameters3/5

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

Since schema coverage is 100% and both parameters have clear descriptions (npub as Nostr public key, notarization_id as record ID), the description adds minimal semantic value beyond linking the two parameters: the proof is for a specific patron and a specific notarization. No additional format or constraint details are provided.

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

Purpose5/5

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

The description clearly states the tool generates a Merkle inclusion proof that a patron's balance was included in a Bitcoin-notarized snapshot. The verb 'generate' and the specific resource 'Merkle inclusion proof' distinguish it from related tools like brain_notarize_ledger (creates the snapshot) and brain_check_proof_status (checks status).

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

Usage Guidelines3/5

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

The description implies the tool is used when one needs a proof of inclusion for a patron's balance in a notarized snapshot, but it does not explicitly state when to use it over alternatives such as brain_check_proof_status or brain_receive_npub_proof. No exclusions or comparable scenarios are mentioned.

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

brain_get_noteAInspect

Get the note content for a thought. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
formatNoOutput format (markdown, html, or text)markdown
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
thought_idYesThe ID of the thought

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations provided, the description carries the transparency burden. It discloses that npub is required for credit billing, which is a valuable behavioral note. But it does not mention potential side effects, whether it is read-only, or what happens if required inputs are missing.

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

Conciseness5/5

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

The description is two sentences with no wasted words. It leads with the primary action and follows with the key requirement, making it easy to parse quickly.

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

Completeness4/5

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

Given that an output schema exists and this is a simple getter, the description is nearly complete. It covers the main purpose and billing constraint. The only gap is the lack of clarification on how format and brain_id interact, but these are adequately described in the schema.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already documents most parameters. The description adds that npub is needed for credit billing, which enriches the schema's note, but does not clarify ambiguous fields like dpop_token. Overall, it provides marginal added value beyond the schema.

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

Purpose4/5

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

The description 'Get the note content for a thought' uses a specific verb and resource, clearly identifying what the tool does. It does not explicitly distinguish from siblings, but 'note content' narrows the scope versus other thought-related tools.

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

Usage Guidelines3/5

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

The description implies usage by stating 'Requires npub for credit billing,' which signals a prerequisite. However, it provides no guidance on when to use this tool versus alternatives like brain_get_thought, nor does it mention exclusions or conditions.

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

brain_get_operator_onboarding_statusAInspect

Report this operator's configuration readiness.

Shows which operator settings are configured, which are missing, and how to deliver each missing value. For patron-level credential status, use get_patron_onboarding_status instead. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations are provided, so the description carries the full burden. It clearly indicates a read-only reporting operation ('Report', 'Shows') with no mention of side effects or mutations. The inclusion of 'Free' adds useful behavioral context about pricing. It does not disclose permissions, but for a non-mutating status check, the lack of explicit side-effect disclosure is acceptable given the strong read-only implication.

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

Conciseness5/5

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

The description is four short sentences, each earning its place: purpose, details, alternative, and cost. It is front-loaded with the main action and avoids fluff or repetition of the tool name.

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

Completeness5/5

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

Given the tool's simplicity (no params, output schema present, no annotations), the description covers all essential aspects: what it does, what information it provides, when to use an alternative, and cost. The output schema defines the return structure, so no return-value explanation is needed. It is fully adequate for an agent to select and invoke this tool correctly.

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

Parameters4/5

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

The tool has zero parameters, so the baseline per the rubric is 4. The description does not need to explain any parameters, and the empty input schema is self-explanatory.

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

Purpose5/5

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

The description opens with 'Report this operator's configuration readiness,' a specific verb+resource statement that clearly identifies the tool's function. It then elaborates that it shows which operator settings are configured, which are missing, and how to deliver each missing value, distinguishing it from the patron-level sibling tool via an explicit reference.

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

Usage Guidelines5/5

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

The description explicitly says 'For patron-level credential status, use get_patron_onboarding_status instead,' providing a clear alternative and when-not-to-use condition. The main use case is obvious from the purpose statement, and the 'Free' note adds context about cost, making usage conditions sufficiently clear.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe patron's Nostr public key (npub1...).
dpop_tokenYesRaw 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description carries full burden. It discloses that values are never exposed, that timestamps may be null for older vaulted secrets, that the tool is free, and that proof of npub ownership is required due to the sensitivity of the field list. This is rich, useful behavioral context.

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

Conciseness5/5

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

The description is concise and well-structured. It front-loads the core purpose in the first line, followed by two short paragraphs with valuable details (timestamp behavior, sensitivity, auth requirement). Every sentence earns its place.

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

Completeness5/5

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

The description is complete for its complexity. It explains what is returned (field names, timestamps), what is never returned (values), why auth is needed, and the cost (free). With an output schema present, there is no need to describe return format in detail.

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

Parameters3/5

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

Schema description coverage is 100%, so the parameters are already well-documented in the schema. The description adds no additional parameter-specific semantics beyond what the schema provides (e.g., npub and dpop_token details are fully explained in the schema). Baseline 3 is appropriate.

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

Purpose5/5

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

The description opens with 'List stored patron credential field names (not values)', using a specific verb and resource. It clearly distinguishes itself from siblings like brain_update_patron_credential by focusing on read-only field name listing and explicitly excluding value exposure.

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

Usage Guidelines4/5

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

It states an explicit use case: 'use this to verify which fields are configured and how old each one is.' It also implies when not to use it by noting 'Values are never exposed'. However, it does not name alternative tools for value retrieval, so it falls slightly 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.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenYesA kind-27235 Nostr event signed by patron_npub for this tool.
patron_npubYesThe patron's Nostr public key (npub1...).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description carries the full burden of disclosing behavioral traits. It discloses that the tool is free, requires proof of npub ownership (D PoP token), and explains why (credential presence is sensitive). It implies read-only behavior via 'Report' and describes how different service types are handled. It could mention error conditions or side effects, but the provided details are strong.

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

Conciseness5/5

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

The description is three sentences with no waste. It front-loads the core purpose, then adds necessary context about service types, cost, and authorization. Every sentence earns its place, making it appropriately concise and well-structured.

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

Completeness4/5

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

The tool has an output schema, so return format doesn't need to be in the description. The description covers purpose, service-specific behavior, cost, and auth requirements, making it fairly complete for a read-only status tool. It doesn't mention failure scenarios or edge cases, but given the simplicity and output schema, the information provided is sufficient.

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

Parameters4/5

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

Schema coverage is 100%, so baseline is 3. The description adds extra meaning by explaining why dpop_token is required ('Proof of npub ownership is required') and why the data is sensitive, which gives the agent deeper understanding of the parameters beyond their schema definitions. This justifies a score above baseline.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Report a patron's credential readiness for this operator.' It uses a specific verb ('Report') and names a distinct resource (patron credential readiness), and it differentiates from sibling tools by specifying patron-level vs. operator-level status and service-specific behavior (set-once vs. OAuth2).

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

Usage Guidelines4/5

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

The description provides clear context on when to use the tool: to report credential readiness for a patron, with distinctions between service types. It does not explicitly name alternatives or state when not to use it, but the context is strong enough to guide an agent. A small gap is the lack of explicit comparison to similar tools like brain_get_operator_onboarding_status.

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

brain_get_pricing_modelAInspect

Get the active pricing model for this operator. Free.

If no model exists, self-initializes a scaffold with all registered tools at 0 sats. No economic data from code.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations provided, the description carries full weight. It openly discloses a significant side effect: self-initializing a scaffold with all tools at 0 sats when no model exists. It also reveals a constraint ('No economic data from code'). This is exceptional transparency for a read-like operation, exceeding typical expectations.

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

Conciseness5/5

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

The description is three concise sentences, front-loaded with the primary action. It efficiently packs the core purpose, a cost signal ('Free'), and two important behavioral details without any filler. Every sentence earns its place.

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

Completeness4/5

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

Given the zero-parameter schema and presence of an output schema, the description covers the essential action, side effects, and constraints. It could have added a note about when to prefer this over brain_check_price or brain_set_pricing_model, but that's not critical for a simple getter. Overall, it's 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.

Parameters4/5

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

There are zero parameters, so schema coverage is 100% and no parameter explanations are needed. The description adds context about the implicit operator scope ('for this operator') and self-initialization behavior, which enriches understanding beyond the empty schema. Baseline 4 is appropriate.

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

Purpose4/5

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

The description clearly states 'Get the active pricing model for this operator' with a specific verb and resource. It distinguishes from siblings like brain_set_pricing_model and brain_reset_pricing_model through the verb, though it doesn't explicitly name alternatives. The extra 'Free' is ambiguous but doesn't obscure the core purpose.

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

Usage Guidelines3/5

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

The description implies it is used to retrieve the pricing model but provides no explicit guidance on when to use this over alternatives like brain_check_price or brain_set_pricing_model. It does mention a behavioral condition ('If no model exists') which hints at a scenario, but not a clear call-to-action.

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

brain_get_tagsAInspect

Get all tags in a brain. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the credit billing requirement, and 'get' implies a read-only operation. However, it lacks details on potential costs, pagination, or side effects.

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

Conciseness5/5

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

Two short sentences, front-loaded with the action, contain no unnecessary information.

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

Completeness3/5

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

The description is adequate for a simple getter with an output schema, but it lacks context regarding when to use this tool compared to siblings and omits behavioral caveats beyond billing.

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

Parameters3/5

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

Schema coverage is high (67%) and already describes npub and brain_id. The description merely repeats the npub requirement without adding new meaning, and dpop_token remains undocumented.

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

Purpose5/5

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

The description 'Get all tags in a brain' uses a specific verb (get), resource (tags), and scope (brain), making it clear and distinct from sibling tools like brain_get_types or brain_get_brain.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool vs alternatives. The only extra information is the billing prerequisite (npub), which is a constraint rather than a usage recommendation.

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

brain_get_thoughtCInspect

Get details about a specific thought. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
thought_idYesThe ID of the thought

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It only repeats the npub billing requirement already in the schema, and does not mention read-only nature, return behavior, or side effects.

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

Conciseness5/5

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

The description is a single sentence that front-loads the purpose and includes only the essential billing note. It is concise without wasted words.

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

Completeness2/5

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

Despite having an output schema, the description lacks sufficient behavioral and usage context. It does not explain when to use this tool, how billing works, or what happens with missing optional parameters, leaving the agent with significant ambiguity.

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

Parameters2/5

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

Schema coverage is 75%, leaving dpop_token undocumented. The description adds no new meaning for any parameter beyond what the schema already states, such as npub's billing purpose or brain_id's default behavior.

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

Purpose4/5

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

The description clearly states the tool retrieves details about a specific thought, using a specific verb and resource. It does not explicitly differentiate from similar siblings like brain_get_thought_by_name, but the purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternative retrieval tools. The mention of npub for credit billing is a prerequisite, not a usage context, so it offers minimal help for tool selection.

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

brain_get_thought_by_nameAInspect

Exact name lookup — returns the first thought matching the name exactly. Requires npub for credit billing.

⚠️ NOT AUTHORITATIVE. Backed by the vendor's name index, which is known to be incomplete on large brains (upstream: TheBrainTech/thebrain-api-quickstart-python#1): a hit is real, but a MISS is NOT proof the thought is absent. Never conclude a thought does not exist from a null result here — verify by ID with get_thought, or by graph traversal from a known neighbour, before creating a duplicate.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
name_exactYesThe exact name to match (case-sensitive)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

No annotations exist, so the description carries full burden. It discloses the vendor index's incompleteness (with upstream issue link), explains false-negative behavior, and mentions billing requirements—valuable context beyond the schema.

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

Conciseness5/5

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

Two tight paragraphs: one-line purpose, then a clearly marked warning. Every sentence earns its place—no fluff, critical caveat front-loaded in a dedicated section.

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

Completeness5/5

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

Given the tool's simplicity and the presence of an output schema, the description covers essential pitfalls (authoritativeness, credit billing, verification paths) and provides complete guidance for a safe usage. No gaps.

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

Parameters4/5

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

Schema coverage is 75% and the description adds meaning for npub ('for credit billing') and clarifies name_exact ('case-sensitive' in schema, exact match in description). It does not add detail for brain_id or dpop_token, but schema likely covers those sufficiently.

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

Purpose5/5

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

The description states a specific verb and resource: 'Exact name lookup — returns the first thought matching the name exactly.' It clearly distinguishes this tool from siblings like brain_search_thoughts (fuzzy search) and brain_get_thought (by ID).

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

Usage Guidelines5/5

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

Provides explicit when-not-to-trust: a miss is not proof of absence, and names alternative verification methods (get_thought, graph traversal) before creating duplicates. Also notes the required npub for credit billing.

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

brain_get_thought_graphAInspect

Get a thought's full connection graph. Requires npub for credit billing.

⚠️ NOT AUTHORITATIVE FOR RECENT CHANGES. Served through the vendor's cached graph layer (Azure App Service response cache), which lags writes by hours-to-days and reflects creates but NOT updates or deletes — it can return renamed/retyped thoughts with their old values and even serve thoughts that were already deleted (upstream: TheBrainTech/thebrain-api-quickstart-python#2). Use this for fast traversal of established structure and for finding older thought IDs. Do NOT use it to verify a recent write — confirm mutations by ID with get_thought, which reads the authoritative command store.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
thought_idYesThe ID of the thought
include_siblingsNoInclude sibling thoughts in the graph

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

Despite no annotations, the description fully discloses its non-authoritative nature, cache lag hours-to-days, that it reflects creates but NOT updates/deletes, and that it can return stale or deleted thoughts. This exceeds typical transparency and directly addresses the most important behavioral trait an agent needs to know.

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

Conciseness5/5

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

The description is compact and front-loaded with the purpose, followed by the critical warning and usage guidance. Every sentence adds value, with no fluff. The use of the warning symbol and clear formatting aids readability.

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

Completeness5/5

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

Given the tool's complexity (cached layer, mutation caveats) and no annotations, the description is highly complete. It covers the key caveats, provides an upstream issue link, and clarifies when to use an alternative. Output schema exists, so return value details are not needed. This is a model description.

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

Parameters3/5

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

Schema description coverage is 80%, so the schema already explains most parameters. The description adds nothing about individual parameters beyond the npub requirement for billing, which is also in the schema. It does not compensate for the one undocumented parameter (dpop_token), but since most are covered, the baseline 3 is appropriate.

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

Purpose5/5

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

The description clearly states 'Get a thought's full connection graph' with a specific verb and resource. It distinguishes this from related tools by contrasting it with get_thought for verifying writes, and the 'full' qualifier implies the non-paginated variant. Sibling differentiation is implicit through the explicit warning against using it for recent writes and the reference to get_thought as authoritative.

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

Usage Guidelines5/5

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

Provides explicit when-to-use and when-not-to-use guidance: 'Use this for fast traversal of established structure and for finding older thought IDs. Do NOT use it to verify a recent write — confirm mutations by ID with get_thought.' This names the alternative tool and the exact context where this tool is appropriate, which is exceptional.

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

brain_get_thought_graph_paginatedAInspect

Cursor-based paginated traversal of a thought's connections. Requires npub for credit billing.

⚠️ NOT AUTHORITATIVE FOR RECENT CHANGES. Same cached graph layer as get_thought_graph (upstream: TheBrainTech/thebrain-api-quickstart-python#2) — lags writes by hours-to-days and does not reflect updates or deletes. Use for traversal/ID discovery, never as read-after-write verification; confirm mutations by ID with get_thought.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
cursorNoPagination cursor from a previous response
brain_idNoThe ID of the brain (uses active brain if not specified)
directionNo"older" (newest first) or "newer" (oldest first)older
page_sizeNoNumber of results per page (default 10)
dpop_tokenNo
thought_idYesThe ID of the thought
relation_filterNoFilter by relation: "child", "parent", "jump", "sibling"

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

The description reveals critical behavioral traits: the cached layer lags writes by hours-to-days, does not reflect updates/deletes, and requires npub for credit billing. With no annotations provided, this disclosure is essential and well-handled.

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

Conciseness5/5

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

The description is concise and well-structured: a one-sentence purpose, a one-sentence requirement, then a clear warning block. Every sentence provides value without redundancy.

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

Completeness5/5

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

Given the output schema exists and the input schema has high coverage, the description covers all necessary context: purpose, usage constraints, data freshness limitations, and billing requirement. It is fully sufficient for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 88%, so parameters are well-documented in the schema. The description adds minimal parameter-specific meaning beyond noting npub is required and that pagination is cursor-based, which is already implied by the schema fields.

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

Purpose5/5

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

The description clearly states the tool performs 'Cursor-based paginated traversal of a thought's connections', which is specific and distinguishes it from non-paginated get_thought_graph. It also clarifies it is for traversal/ID discovery, not authoritative verification.

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

Usage Guidelines5/5

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

Explicitly states when to use ('traversal/ID discovery') and when not to ('never as read-after-write verification'), with a clear alternative ('confirm mutations by ID with get_thought'). This provides strong guidance beyond the schema.

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

brain_get_typesAInspect

List all thought types defined in the brain. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations are provided, so the description carries the disclosure burden. It explicitly discloses that the operation requires npub and incurs credit billing, which is a significant behavioral trait. It does not detail other aspects like output format, but the 'List' verb implies a read-only action and output schema covers return values.

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

Conciseness5/5

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

The description is two focused sentences with no fluff. It front-loads the core purpose and adds the critical billing requirement efficiently.

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

Completeness3/5

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

The description covers the essential action and a key prerequisite, and output schema handles return values. However, it lacks guidance on alternatives, does not define what 'thought types' are, and fails to address the undocumented dpop_token parameter, leaving some gaps for a complete understanding.

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

Parameters2/5

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

The description only repeats the npub requirement from the schema and does not add meaning for brain_id or dpop_token. With 67% schema description coverage, the dpop_token parameter remains undocumented in both the schema and the description, leaving a gap.

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

Purpose5/5

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

The description clearly states a specific verb ('List') and resource ('all thought types defined in the brain'), distinguishing this tool from siblings by focusing on 'thought types' as a unique concept. The scope ('all') is unambiguous.

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

Usage Guidelines3/5

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

The description provides a prerequisite (npub required for credit billing) but does not explicitly state when to use this tool over alternatives like brain_get_tags or brain_list_constraint_types. Usage is implied rather than clearly guided.

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

brain_list_attachmentsAInspect

List all attachments for a thought. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
thought_idYesThe ID of the thought

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses that an npub is required for credit billing, which is a meaningful cost-related behavioral trait. However, it does not describe other aspects such as whether the operation is read-only, potential side effects, or output format, though the output schema covers the latter.

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

Conciseness5/5

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

The description is two sentences and every word adds value: the first states the core action, the second states a critical requirement. It is front-loaded with the purpose.

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

Completeness4/5

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

For a simple list operation with an output schema, this description provides adequate context. It states the primary purpose and the credit billing requirement, which is the key non-obvious aspect. The optional brain_id and dpop_token are documented in the schema, so their absence from the description is not a significant gap.

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

Parameters3/5

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

The schema already documents 75% of parameters, including npub, brain_id, and thought_id. The description reinforces that npub is required but adds no new parameter semantics beyond the schema. With high schema coverage, a baseline of 3 is appropriate.

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

Purpose5/5

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

The description uses a specific verb 'List' and a clear resource 'attachments for a thought', which distinguishes it from sibling tools like brain_get_attachment (singular retrieval) and brain_add_file_attachment (adding). The scope is explicit and unambiguous.

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

Usage Guidelines4/5

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

The description clearly states the context for use: listing all attachments for a thought. While it doesn't explicitly name alternatives, the operation's purpose is unambiguous, and the npub requirement provides practical usage context. It lacks explicit exclusions or when-not-to-use guidance, but this is a simple listing operation.

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

brain_list_brainsCInspect

List available brains.

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

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states the action without mentioning any side effects, authentication requirements, rate limits, or return format. It fails to convey that this is likely a read-only operation or that the npub parameter is tied to credit billing, which is only revealed 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.

Conciseness4/5

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

The description is a single concise sentence that is front-loaded with the primary verb and object. It avoids unnecessary words, which is good for conciseness, though it may be too sparse to provide full context. No structural issues.

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

Completeness2/5

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

Despite having an output schema, the description lacks sufficient context for a tool with two parameters and no annotations. It does not mention the billing requirement, the purpose of the parameters, or any behavioral details. For a tool that lists brains, the description is minimal but functional; however, the lack of additional context makes it incomplete for agents that need to know how to invoke it correctly.

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

Parameters2/5

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

The description adds no parameter information beyond the input schema. Schema description coverage is only 50% (npub has a description, dpop_token does not), so the description should compensate, but it does not. The dpop_token parameter remains completely unexplained, and the tool description does not clarify the billing context of npub.

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

Purpose4/5

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

The description 'List available brains.' clearly states the action (list) and the resource (brains), making it easy to understand the tool's basic function. However, it does not distinguish this from sibling tools like brain_get_brain or specify the scope of 'available brains' (e.g., user's own vs all accessible), so it lacks sibling differentiation.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. With many sibling tools for brain-related operations, the description gives no indication of prerequisites, context, or exclusions, leaving the agent without sufficient information to choose it confidently.

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

brain_list_canonical_identitiesAInspect

Return canonical (tool_id, mcp_name, …) for every tool the wheel exposes.

The authoritative source for any client (Studio, agents, FE) that needs to know how this MCP identifies its tools. Reconcile uses this output to UUID-join against the stored pricing model — no name-based UUID derivation, no guessing.

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

If the operator renames a function or rebrands a slug, the mcp_name in this output changes but tool_id stays. That's the whole point of the canonical-UUID design.

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

Free, no side effects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

No annotations are provided, so the description carries the full burden. It explicitly discloses 'Free, no side effects,' explains the two sources of identity (ToolIdentity-seeded and @paid_tool recorded UUIDs), and describes the unregistered/deploy-drift detection behavior including the mcp_name-change-vs-tool_id-stability design point. Very transparent about return semantics.

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

Conciseness4/5

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

Slightly long with some redundancy — the unregistered/deploy-drift concept is explained twice (once for @paid_tool UUIDs and again for wire-surface diff). Could be tightened, but every sentence adds meaningful context and the key points are front-loaded in the first line.

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

Completeness5/5

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

Output schema exists, so return format doesn't need explanation. The description thoroughly covers sourcing, edge cases (missing registry UUIDs, wire-only tools), the canonical-UUID design intent, and lack of side effects. Complete for a zero-parameter introspection tool.

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

Parameters4/5

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

The schema has 0 parameters with 100% coverage, so baseline is 4 per rubric. Nothing needed here; the description correctly focuses on behavior rather than inventing parameter semantics. No issue.

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

Purpose5/5

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

Clear specific verb+resource: 'Return canonical (tool_id, mcp_name, …) for every tool the wheel exposes.' Unambiguous scope. It's a list/metadata introspection tool clearly distinct from siblings like brain_list_brains, brain_list_attachments, etc. which all return domain resources — this one describes registry identity mapping, functionally unique.

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

Usage Guidelines5/5

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

Explicitly names the consumer ('any client (Studio, agents, FE) that needs to know how this MCP identifies its tools') and gives concrete use context (Reconcile UUID-join against pricing model, no name-based derivation). Even mentions issue numbers (#174, #175). Strong behavioral guidance about when to reach for this tool.

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

brain_list_constraint_typesAInspect

List all available constraint types and their parameter schemas.

Returns the type, category, description, and parameter specs for every constraint that can be used in a pricing pipeline. Free — no credits required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations are provided, so the description carries the transparency burden. It discloses the return contents (type, category, description, parameter specs) and adds a notable cost detail ('Free — no credits required'). It does not mention side effects or permissions, but for a read-only listing this is adequate.

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

Conciseness5/5

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

The description is two short paragraphs, front-loaded with the main action, and contains no filler. Every sentence adds value: purpose, return details, and cost note.

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

Completeness5/5

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

For a zero-parameter list tool with an output schema present, the description is complete. It specifies what the output contains and provides the context of pricing pipeline usage. No additional behavioral or operational details are necessary.

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

Parameters4/5

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

The tool has zero parameters, so the input schema is trivially covered. Per rubric, the baseline is 4. The description correctly focuses on the output rather than parameters, and no further clarification is needed.

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

Purpose5/5

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

The description uses a specific verb ('List') and identifies the resource ('constraint types') while clarifying the scope ('used in a pricing pipeline'). It is distinct from sibling tools like brain_list_brains or brain_list_coupons by focusing on constraint schemas.

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

Usage Guidelines4/5

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

The description clearly indicates this is for listing constraints relevant to a pricing pipeline, which gives context for when to use it. However, it does not explicitly mention alternatives or exclusions, though the specificity of 'pricing pipeline' helps differentiate.

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

brain_list_couponsAInspect

List every coupon this operator has minted (newest first).

Each row carries the current times_redeemed counter — the Studio renders a progress bar from this against total_uses. RESTRICTED to operator — requires proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations provided, the description carries the full behavioral burden. It discloses the newest-first ordering, that each row includes the 'times_redeemed' counter, and the operator/proof restriction. It adds context about how the Studio renders a progress bar from this counter. It stops short of explicitly stating read-only semantics or pagination behavior, but for a list operation the key behavioral traits are covered.

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

Conciseness5/5

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

The description is two sentences long, front-loaded with the primary action ('List every coupon this operator has minted'), followed by a useful field detail and a clear restriction. Every sentence earns its place with no filler.

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

Completeness3/5

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

The tool is simple (one optional parameter, no nested objects) and has an output schema, which reduces the burden on the description. However, the description leaves the 'dpop_token' parameter unexplained and does not differentiate from the sibling 'brain_list_my_coupons'. It provides adequate context for the core operation but misses these important points.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for the single parameter 'dpop_token'. The description mentions 'requires proof' but never explains that this parameter is the proof token, nor how to obtain or use it. It adds no direct meaning to the parameter, leaving the agent without essential guidance for a required-looking auth token.

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

Purpose4/5

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

The description states a specific verb and resource: 'List every coupon this operator has minted (newest first).' It clearly identifies the scope (operator-minted coupons) and ordering (newest first). However, it does not explicitly distinguish itself from the sibling tool 'brain_list_my_coupons', which could be seen as overlapping.

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

Usage Guidelines3/5

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

The description includes a usage restriction: 'RESTRICTED to operator — requires proof.' This tells the agent when the tool can be used (by operators with proof) but does not provide explicit guidance on when to use this tool versus alternatives like 'brain_list_my_coupons' or other list tools. No exclusions or alternative pointers are given.

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

brain_list_my_couponsAInspect

List the coupons this patron has redeemed on this operator.

Returns both active and exhausted redemptions with a per-row status (active / window_closed / patron_limit / total_limit). Free — requires proof of npub.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It explicitly states that both active and exhausted redemptions are returned, enumerates possible statuses, and notes that it is free and requires npub proof. This adds meaningful context, though it does not explicitly confirm read-only behavior, which is strongly implied by the verb 'list'.

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

Conciseness5/5

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

Two sentences where every word earns its place: the first states the purpose with scope, the second packs return statuses and cost/auth requirements with zero filler.

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

Completeness4/5

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

For a simple list tool with two parameters and an output schema, the description covers the what, scope, status values, cost, and authentication. It omits details on dpop_token and explicit alternative guidance, but these are minor gaps given the low complexity.

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

Parameters2/5

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

The input schema has 0% description coverage for parameters. The description mentions npub in the context of proof, offering some hint of its role, but it does not explain dpop_token at all. This fails to adequately compensate for the schema's silence, especially for the optional parameter.

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

Purpose5/5

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

Clearly states the action: list redeemed coupons for a specific patron on a specific operator. The patron-specific scope distinguishes it from sibling brain_list_coupons, which likely lists all coupons.

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

Usage Guidelines4/5

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

Provides clear context that this tool is for viewing a patron's redeemed coupons, implying when it should be used. However, it does not explicitly mention alternatives or when not to use it, though the patron-scoped wording effectively separates it from broader coupon-listing tools.

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

brain_list_notarizationsBInspect

List recent Bitcoin notarization records.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum records to return (default 20).
statusNoOptional filter (e.g., 'submitted', 'confirmed').

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It only says 'List recent Bitcoin notarization records,' which implies a read-only operation but gives no details on ordering, time window, side effects, or requirements. It does not add meaningful context beyond what the tool's name and schema already suggest.

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

Conciseness5/5

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

The description is a single, tightly worded sentence that immediately states the action and object. There is no fluff or repetitive phrasing. It is appropriately sized for a simple list operation and front-loads the key verb.

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

Completeness3/5

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

The tool is relatively simple, with an output schema covering return values and full schema descriptions for parameters. However, the description lacks usage guidance relative to sibling tools and does not explain what 'recent' means in terms of sorting or time range. While it is adequate for basic invocation, it could be more complete by mentioning alternatives or clarifying behavior, so it earns a mid-range score.

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

Parameters3/5

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

Schema description coverage is 100%, so both parameters (limit and status) are already well documented in the schema. The description does not add any new meaning about parameters; it merely uses 'recent' informally, which could relate to limit but is not explicitly connected. Per the rubric, this is a baseline 3 because the schema does the heavy lifting.

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

Purpose5/5

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

The description uses a specific verb 'list' and resource 'Bitcoin notarization records,' clearly distinguishing it from sibling tools like brain_get_notarization_proof (gets a specific proof) and brain_notarize_ledger (creates a notarization). The qualifier 'recent' adds some context about the scope. It is a clear, direct statement of the tool's function.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention that brain_get_notarization_proof should be used for a single record, nor does it indicate any exclusions or prerequisites. The only implicit usage is the verb 'list,' which is not enough to help an agent choose between this and related notarization tools.

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

brain_mint_couponBInspect

Create a new operator-owned discount coupon.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesThe catchy code patrons type to redeem (operator-scoped uniqueness).
dpop_tokenNo
total_usesNoAggregate cap across all patrons (default None = unlimited).
valid_fromYesISO-8601 datetime when the coupon becomes active.
valid_untilYesISO-8601 datetime when the coupon expires.
uses_per_patronNoHow many tool calls one patron can claim the discount on (default 1; pass null/None for unlimited within the window).
discount_percentYesPercentage off the base price (0-100).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It only states 'Create a new operator-owned discount coupon' without mentioning validation rules (e.g., name uniqueness), side effects, or authorization requirements. The operator-owned qualifier hints at scope but does not explain implications.

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

Conciseness5/5

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

The description is a single sentence that immediately states the action ('Create') and the object ('discount coupon'), with no unnecessary words. It is well-structured and front-loaded.

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

Completeness2/5

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

For a create operation with 7 parameters and no annotations, the description is too sparse. It does not explain what happens on duplicate names, date validation, or ownership constraints. The output schema exists but the description does not set expectations about return values or errors.

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

Parameters3/5

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

Schema description coverage is 86%, meaning nearly all parameters are already documented in the schema. The description adds no additional parameter context, so the baseline score of 3 is appropriate.

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

Purpose5/5

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

The description uses the specific verb 'Create' and identifies the resource as a 'discount coupon' with the qualifier 'operator-owned,' clearly distinguishing it from sibling tools like brain_update_coupon, brain_delete_coupon, and brain_redeem_coupon.

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

Usage Guidelines2/5

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

The description provides no explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or related tools like brain_update_coupon for modifying existing coupons. Usage is only implied by the verb 'Create.'

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

brain_morph_thoughtAInspect

Atomically reparent and/or retype a thought in one operation. Requires npub for credit billing.

Reparenting replaces the thought's existing parent link (the old parent child-link is deleted and a new one created); it does not add an additional parent. To also set the thought's name or label in the same call, use update_thought (which now accepts new_parent_id).

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
confirmNoIf True, verify the reparent/retype against the authoritative change-log (MOVED_LINK / SET_TYPE) instead of the cached graph, and attach a ``confirmation`` block. Costs one extra billed read.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
thought_idYesThe ID of the thought to morph
new_type_idNoID of the new type to assign
new_parent_idNoID of the new parent thought (replaces all current parents)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals critical traits: atomicity, replacement semantics (old parent link deleted, not added), the requirement for npub for billing, and the extra billed read when confirm=True. These are substantive details beyond the schema fields.

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

Conciseness5/5

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

The description is three sentences with no redundancy. It front-loads the purpose, then delivers the most important behavioral caveat (replacement), and ends with a practical pointer to the alternative tool. Every sentence earns its place.

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

Completeness5/5

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

For a mutation tool with 7 parameters and no annotations, the description covers the essential context: what the operation does, how it behaves (atomic, destructive to old parent link), authentication/billing requirements, and a pointer to alternatives. The presence of an output schema means return values need not be explained, and the description is sufficiently complete for an agent to select and invoke the tool correctly.

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

Parameters3/5

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

Schema description coverage is 86%, so the baseline is 3. The description adds little parameter-specific meaning beyond the schema; the only addition is the mention of npub for billing, but that is already in the schema. The replacement semantics for new_parent_id are also already described in the schema ('replaces all current parents'). Thus the description does not significantly enhance parameter understanding.

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

Purpose5/5

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

The description opens with 'Atomically reparent and/or retype a thought in one operation,' which uses specific verbs and identifies the resource (a thought) and the operation (reparent/retype). It distinguishes itself from sibling tools by explicitly referencing update_thought as the alternative for setting name/label, clarifying its unique scope.

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

Usage Guidelines5/5

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

The description provides clear when-to-use guidance by stating the operation's specificity (reparent/retype in one atomic call) and explicitly directs users to update_thought for setting name/label, including the note that update_thought now accepts new_parent_id. This gives an explicit alternative and exclusion criterion.

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

brain_notarize_ledgerAInspect

Build a Merkle tree of all patron balances and submit the root to Bitcoin via OpenTimestamps.

Operator-only background task. Bitcoin confirmation takes 1-6 hours. Free — no credits required.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description carries full burden and discloses several behavioral traits: operator-only access, background execution, time expectation, and cost. It goes beyond the tool name by explaining the Bitcoin/OpenTimestamps submission and the 'free' aspect, though it could additionally mention idempotency or side effects.

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

Conciseness5/5

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

The description is extremely concise, leading with the core action then adding only highly relevant constraints (operator, latency, cost). Every sentence earns its place with no redundant phrases or filler, making it efficiently informative.

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

Completeness5/5

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

The tool is a simple, no-parameter background operation. The description covers its purpose, operational context (operator-only, background), timing (1-6 hours), and cost (free), which is sufficient for an agent to decide when and how to invoke it. With an output schema present, return values need not be described.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description correctly implies no input is needed, and the schema coverage is vacuously complete. There is no additional parameter information required.

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

Purpose5/5

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

The description uses a specific verb ('Build a Merkle tree... and submit the root') and clear resource ('all patron balances'), directly stating the tool's action. It clearly distinguishes from sibling tools that retrieve proofs or list notarizations, making its unique role unambiguous.

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

Usage Guidelines4/5

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

The description provides clear context for use: it is an 'Operator-only background task' with a noted 1-6 hour confirmation delay and zero cost. While it doesn't explicitly mention alternatives or when-not-to-use, the context is strong enough for an agent to recognize this is a special maintenance action, not a routine query.

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

brain_oracle_aboutBInspect

Describe the DPYC ecosystem via the Oracle. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. 'Describe' implies a read-only operation, but this is not explicitly stated. The word 'Free' adds a cost-related behavioral trait, but it does not disclose whether authentication is needed, what the output contains, or any side effects. This is a significant gap for a tool that might interact with an external Oracle service.

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

Conciseness4/5

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

The description is very short: 'Describe the DPYC ecosystem via the Oracle. Free.' Both sentences are succinct and the first clearly conveys the purpose. The second sentence, though a fragment, adds the cost detail. No words are wasted, but the fragment style is slightly awkward.

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

Completeness3/5

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

Given the tool's simplicity (zero parameters, output schema present), the description is minimally adequate. However, it does not explain what 'DPYC ecosystem' or 'Oracle' refers to, and it omits any context about the return value or how this tool fits among the many sibling oracle tools. The output schema covers return structure, but the description lacks sufficient conceptual context for an agent to confidently invoke it.

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

Parameters4/5

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

The tool has zero parameters, so the schema is fully covered (100% vacuously). The baseline for 0 parameters is 4, and the description does not need to add parameter information. There is nothing missing here.

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

Purpose4/5

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

The description clearly states the tool's function: 'Describe the DPYC ecosystem via the Oracle.' It uses a specific verb ('Describe') and a resource ('DPYC ecosystem'), which distinguishes it from sibling oracle tools that focus on specific lookups or tax rates. However, the phrase 'via the Oracle' is vague and could be clearer.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this tool versus alternatives. It does not mention any exclusions, prerequisites, or compare with sibling tools like brain_oracle_network_advisory or brain_oracle_lookup_member. The only hint is 'Free,' which implies it can be used without cost, but this is not a usage guideline.

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

brain_oracle_get_tax_rateAInspect

Get the current DPYC certification tax rate. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations, the description carries the full burden. It states 'Free' and implies a read-only operation via 'Get', but doesn't explicitly disclose side effects, permissions, or any caveats. For a simple getter, this is adequate but minimal.

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

Conciseness5/5

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

The description is extremely concise: two short sentences that convey both purpose and a free-of-cost note. Every word earns its place with no redundancy.

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

Completeness5/5

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

Given the tool's simplicity (no parameters) and the presence of an output schema, the description fully captures what an agent needs to know. It doesn't need to explain return values or further details.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description correctly identifies what the tool retrieves, and there is no parameter ambiguity to clarify.

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

Purpose5/5

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

The description uses a specific verb ('Get') and resource ('DPYC certification tax rate'), clearly distinguishing it from sibling tools. The purpose is immediately evident and unambiguous.

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

Usage Guidelines3/5

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

Usage is implied by the tool's function: when you need the current DPYC certification tax rate. However, there is no explicit guidance on when to use this vs. other oracle tools like brain_oracle_about or brain_oracle_network_advisory, nor any exclusions.

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

brain_oracle_how_to_joinAInspect

Get DPYC onboarding instructions from the Oracle. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

With no annotations, the description adds 'Free' as a useful behavioral trait (likely no cost), but otherwise does not disclose output format, auth requirements, or side effects. The read-only nature is implied by 'Get' but not explicitly stated.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core purpose, and no unnecessary words. Every word earns its place.

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

Completeness4/5

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

For a zero-parameter instruction-retrieval tool with an output schema, the description is largely complete. It lacks background on DPYC or the Oracle, but that is not essential for an agent to call this tool correctly.

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

Parameters4/5

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

The tool has zero parameters, so the description need not explain parameter details. The baseline score of 4 applies since there are no parameters to clarify.

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

Purpose5/5

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

The description clearly states the verb 'Get' and the resource 'DPYC onboarding instructions from the Oracle', making the tool's purpose specific and distinct from siblings like brain_oracle_about or brain_oracle_network_advisory.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The word 'Free' only hints at cost, not usage context or exclusions.

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

brain_oracle_lookup_memberAInspect

Look up a DPYC community member by npub. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only notes 'Free' and the lookup action, but does not disclose whether it is read-only, rate limits, authentication needs, or any other behavioral traits that could affect the agent's decision.

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

Conciseness5/5

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

The description is extremely concise: two short sentences with zero fluff. It delivers the core purpose and a notable benefit ('Free') efficiently.

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

Completeness3/5

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

The tool is simple with one parameter and an output schema that presumably covers returns. However, given no annotations, the description is relatively thin on behavioral context and usage alternatives. It is adequate but leaves gaps in when/how to use it.

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

Parameters3/5

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

The description clarifies that the 'npub' parameter is the identifier used to look up the member, which adds meaning beyond the bare schema. However, it does not explain the format (e.g., bech32) or acceptable values, given the schema description coverage is 0%.

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

Purpose5/5

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

The description clearly states the action ('Look up') and the specific resource ('DPYC community member'), with the key identifier ('by npub'). It distinguishes this tool from siblings by scoping to DPYC community members, and the addition of 'Free' provides extra clarity.

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

Usage Guidelines3/5

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

The usage context is implied: use this tool when you need to look up a DPYC community member by npub. However, there is no explicit guidance on when to use this over alternatives, nor any exclusions or alternative tool references.

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

brain_oracle_network_advisoryAInspect

Get active network advisories from the Oracle. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only adds that the service is 'Free' and provides no information about authentication, rate limits, data format, or any other behavioral characteristics.

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

Conciseness5/5

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

The description is extremely concise: two short sentences, front-loaded with the key action. 'Get active network advisories from the Oracle. Free.' contains no unnecessary words.

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

Completeness3/5

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

For a simple 0-parameter tool with an output schema, the description is minimally adequate. However, it lacks context on what constitutes a 'network advisory' or when users would need this information, making it slightly incomplete.

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

Parameters4/5

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

The tool has zero parameters, so the baseline is 4. The description does not need to explain parameter semantics, and it does not attempt to, which is appropriate.

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

Purpose5/5

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

The description clearly states the verb (Get), the resource (active network advisories), and the source (the Oracle). This distinguishes it from sibling Oracle tools like brain_oracle_about, which are about different topics.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. The description merely states what it does, without mentioning when it is appropriate or when another tool should be used instead.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoThe patron's Nostr public key the event must be signed by.
signed_eventNoA JSON-encoded, client-signed kind-0 event.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description carries the full burden. It discloses that the wheel never holds the nsec, signature is the authorization, and the event is relayed to public relays. It also notes it's free. This is solid behavioral disclosure, though it doesn't mention failure modes or rate limits.

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

Conciseness4/5

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

The description is front-loaded with the main purpose and then provides essential security context. It is longer than a single sentence but each part adds value, making it appropriately concise without redundancy.

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

Completeness4/5

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

The description addresses key contextual aspects: security model (no nsec custody), authorization (signature), cost (free), and effect (relay to public relays). An output schema exists, so return values don't need to be explained. It could mention failure conditions (e.g., signature mismatch), but overall it's well-rounded.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description mentions the two parameters in the flow but does not add significant semantic detail beyond what the schema already provides (e.g., format of signed_event is already stated as 'JSON-encoded, client-signed kind-0 event').

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

Purpose5/5

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

The description clearly states 'Publish a CLIENT-SIGNED kind-0 profile to relays for an npub', specifying the exact action, resource (kind-0 profile), and target (relays). It distinguishes this from siblings like get_nostr_profile by focusing on the publish operation and client-signed input.

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

Usage Guidelines4/5

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

The description explains the intended usage context: the frontend signs the event and passes it here, and the wheel verifies and relays. This clearly implies when to use it, but it does not explicitly mention alternatives or when-not-to-use cases, so it falls 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.

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

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe Nostr public key (npub1...) the credits will fund.
dpop_tokenYesRaw 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_satsNoSatoshis to purchase (default 1000).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations provided, the description carries the full burden. It discloses the main behavior (invoice creation), a key precondition (proof of npub ownership), and the follow-up action (call check_payment). It also clarifies cost ('Free — no credits required to call'), which is a useful behavioral caveat, though it omits details like invoice expiration 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.

Conciseness5/5

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

The description is four concise sentences, front-loaded with the main purpose, followed by the usage flow and a free-to-call note. Every sentence earns its place with no redundancy or filler.

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

Completeness5/5

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

Given the overall complexity, the schema richness (including output schema and detailed parameter descriptions), and the description's clear explanation of the invoice-payment-confirm flow, the tool definition is complete. The description covers the essential context: what it does, how to use it, prerequisites, and cost, without needing to explain return values because an output schema exists.

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

Parameters3/5

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

The input schema has 100% coverage, including extremely detailed descriptions for all three parameters, especially the dpop_token format and requirements. The description adds only a general note about npub ownership but does not repeat or enhance parameter-level details; baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose5/5

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

The description opens with 'Buy credits via Bitcoin Lightning,' which clearly states the action (buy), the resource (credits), and the method (Lightning). It distinguishes this tool from siblings by describing the specific invoice-payment flow and next step (check_payment).

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

Usage Guidelines4/5

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

Provides explicit steps: creates a Lightning invoice, pay it, then call check_payment to confirm. Also notes that proof of npub ownership is required and that the call is free, which helps the agent decide when to use it. However, it does not explicitly name alternative tools or when-not-to-use scenarios.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceNoRequired. The credential service name (must match the service used in request_credential_channel).
dpop_tokenNoRequired. The session phrase returned by request_credential_channel for this exact channel.
sender_npubNoRequired. The npub that sent the credentials.
credential_cardNoOptional. An ncred1... card to redeem directly (bypasses the relay drain; dpop_token not needed).

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description fully carries the behavioral burden. It discloses important traits: drains only the rendezvous relay, deletes wrong DMs and NACKs senders, accepts first matching DM and stops, returns courier_not_found if no match, and explains the credential_card bypass behavior. This is comprehensive and honest about side effects.

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

Conciseness5/5

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

The description is moderately long but every sentence carries essential information. It is structured into paragraphs, front-loads the purpose, and avoids filler. The instructions (e.g., do not poll) are direct and actionable, making it efficient for an AI to parse.

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

Completeness5/5

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

Given the complexity (4 params, two operational paths), the description is remarkably complete. It covers the flow, edge cases (no match), side effects (reinitialization), and explicitly states what happens in the credential_card path. An output schema exists, so return values are defined, and the description is sufficient for an agent to invoke it correctly.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds semantic nuance beyond the schema: it explains that sender_npub, service, and dpop_token identify the response, and clarifies that dpop_token is not required for the credential_card path. This conditional logic is not fully evident from the schema, so the description adds real value.

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

Purpose5/5

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

The description clearly states the tool's function: 'Pick up credentials from the Secure Courier' and defines it as completing the CREDENTIAL-DELIVERY flow. It also distinguishes from the sibling tool by explicitly referencing receive_npub_proof as the ownership-proof counterpart, so an agent knows exactly what this tool does and how it differs.

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

Usage Guidelines5/5

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

It provides explicit when-to-use guidance: 'Call this only after the user confirms they have replied.' It also explains the deterministic one-shot nature and warns 'Do NOT poll, loop, or retry,' and names the alternative tool (receive_npub_proof), giving clear context for choosing this over siblings.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNoRequired. The dpop_token returned by request_npub_proof.
patron_npubNoRequired. The patron's npub to receive proof from.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations provided, the description fully bears the transparency burden. It discloses destructive behavior (mismatched DMs deleted and NACK'd), one-shot deterministic retrieval, relay draining, the proof mechanism via signed DM, and sensitive token storage details (only hashed, never raw). This is comprehensive behavioral disclosure.

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

Conciseness4/5

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

The description is long but structured and information-dense. It front-loads the core purpose, then uses bolded warnings and clear paragraphs for usage constraints, behavior, and token handling. Minor redundancy exists (e.g., 'the same token' and the trailing 'Free.'), but the length is largely justified by the tool's complexity and security sensitivity.

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

Completeness5/5

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

This is a complex, one-shot, destructive, credential-bearing flow, and the description covers all critical operational aspects: timing constraints, relay scoping, DM deletion/NACK behavior, ownership proof, token handling, and cost. The presence of an output schema means return-value formatting need not be described. The description is complete enough for an agent to safely and correctly invoke the tool.

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

Parameters4/5

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

The input schema already documents both parameters with 100% coverage, so the description does not need to repeat them. It adds meaningful context by explaining that dpop_token is the value returned by request_npub_proof, how the parameters pair together, and the token's critical reuse expectation on subsequent paid calls.

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

Purpose5/5

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

The description clearly states the tool's purpose: receiving npub ownership confirmation from a patron. It names the specific flow (npub-OWNERSHIP-PROOF), identifies receive_credentials as the counterpart, and contextualizes its role relative to request_npub_proof, distinguishing it from sibling receive tools.

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

Usage Guidelines5/5

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

The description provides explicit usage timing ('Call this only after the user confirms they have replied'), explicit prohibitions ('Do NOT poll, loop, or retry'), and differentiates from the alternative tool receive_credentials. This gives an agent clear guidance on when and how to invoke the tool.

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

brain_receive_patron_credentialsAInspect

Pick up patron credentials from the Secure Courier.

Deterministic, one-shot retrieval: name the response with (sender_npub, dpop_token) and the tool drains ONLY the pinned rendezvous relay for that channel, stopping at the matching DM. Provide an ncred1... credential_card to redeem directly instead (dpop_token not required for that path). Do NOT poll or retry. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo
sender_npubNo
credential_cardNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

With no annotations, the description carries full behavioral disclosure. It states determinism, one-shot retrieval, that it drains ONLY the pinned rendezvous relay, stops at the matching DM, and is free. It doesn't detail failure modes or permission needs, but it provides substantive behavioral context beyond the schema.

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

Conciseness5/5

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

The description is compact (about 4 sentences) and front-loaded with the primary action. Each sentence adds essential information: core purpose, retrieval mechanics, alternative path, and usage warning. No filler or repetition.

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

Completeness5/5

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

The tool has an output schema (present), so return values are covered elsewhere. The description explains the two retrieval modes, the deterministic one-shot nature, the relay draining behavior, and the no-retry constraint. For a tool with 3 optional parameters, this is sufficiently complete.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It meaningfully explains that sender_npub and dpop_token are used as a pair, that credential_card is an alternative requiring no dpop_token, and even gives a format hint ('ncred1...'). This adds value over the bare schema properties.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Pick up patron credentials from the Secure Courier.' It specifies the resource (patron credentials) and the action (pick up), and distinguishes itself from siblings like brain_receive_credentials by emphasizing the 'Secure Courier' channel and the two distinct retrieval modes.

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

Usage Guidelines4/5

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

The description provides clear usage context: it explains two alternative input paths (sender_npub+dpop_token or credential_card) and explicitly warns 'Do NOT poll or retry.' While it doesn't name sibling tools as alternatives, it gives sufficient conditions for use within the tool itself.

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

brain_redeem_couponAInspect

Claim a coupon by its name (the code the operator shared).

Looks up the operator's coupon by code, validates the window and total cap, and records a per-patron redemption row. Subsequent paid tool calls on this MCP auto-apply the discount until uses_per_patron is exhausted.

Free — no credits required. Requires proof of npub. Idempotent: redeeming the same code twice returns the existing redemption.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes
npubYes
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations present, the description carries the full burden and excels. It discloses validation of window and cap, per-patron redemption recording, auto-application of discounts until uses_per_patron is exhausted, free operation, npub proof requirement, and idempotent behavior—far beyond a simple tool summary.

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

Conciseness5/5

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

The description is front-loaded with a concise one-liner, then expands into necessary details. Each sentence adds value—behavior, pricing, prerequisites, idempotency—without redundancy or fluff.

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

Completeness5/5

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

Given the tool's complexity and the presence of an output schema, the description covers all essential behavioral aspects: what it does, validation logic, side effects, cost, prerequisites, and idempotency. It is sufficiently complete for an agent to decide when and how to invoke it.

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

Parameters3/5

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

The description explains 'code' (the operator-shared code) and 'npub' (patron proof) in context, adding meaning beyond raw schema names. However, with 0% schema coverage, the third parameter 'dpop_token' is completely unmentioned, leaving a gap in full parameter understanding.

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

Purpose5/5

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

The description opens with a specific verb 'Claim' and identifies the resource as a coupon identified by code. It distinguishes from sibling tools like brain_mint_coupon, brain_update_coupon, and brain_delete_coupon by focusing on the redemption workflow, not coupon management.

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

Usage Guidelines4/5

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

The description clearly implies when to use the tool: when a patron has received a coupon code from an operator and wants to claim it. It mentions prerequisites (proof of npub) and idempotency, but does not explicitly state exclusions or alternatives such as 'use brain_list_coupons to view coupons instead.'

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesThe details — which tool, what was wrong, what you expected.
npubYesYour Nostr public key (npub1...); the report's author of record.
titleYesOne-line summary of the problem.
tool_nameNoOptional: the specific tool the report is about (e.g. "schwab_get_option_chain").
dpop_tokenYesRaw 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description carries the full burden and does so comprehensively. It discloses the fee, public nature, attribution to the caller's npub, lack of verification, return values (repo, number, url), and the 'not configured' situation where the user is not charged. This goes well beyond a basic tool description.

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

Conciseness5/5

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

The description is three short paragraphs, each earning its place. The first sentence gives the core purpose; the second adds key context; the third explains return values and error handling. No redundant or vague phrasing.

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

Completeness5/5

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

For a tool with 5 parameters and no annotations, the description covers all critical aspects: when to use, cost, attribution, public/private behavior, not-configured error, and return payload. An output schema exists, but the description still summarizes return values appropriately. It leaves no significant gaps.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds valuable context: it explains why npub is required ('author of record', 'no npub / no proof, no issue'), and reinforces the fee implication. It does not repeat schema details but provides rationale that helps agents understand parameter importance.

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

Purpose5/5

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

The description opens with a clear verb+resource+scope: 'File a field report about this service as a GitHub issue on the operator's repo.' It immediately distinguishes itself from sibling tools by being the only one that reports issues, and it adds specifics about attribution, cost, and public visibility.

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

Usage Guidelines4/5

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

It explicitly tells when to use the tool: 'Found a tool's metadata or response wrong or confusing? Report it where the tool lives.' It also mentions the not-configured fallback, but does not state explicit 'when not to use' or name alternatives; however, no sibling offers similar functionality, so the context is clear.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
noteNooptional message for the Authority owner.
dpop_tokenNooperator-npub ownership proof (inline kind-27235 or cached token).
service_urlNothis operator's MCP endpoint (advertised to the Authority).
authority_npubYesnpub of the Authority to request adoption from.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations provided, the description fully carries the burden and exceeds it. It discloses the process (resolving endpoint, minting proof, delivering MCP-to-MCP), the security restriction, and the outcome (pending until owner approves), giving a complete picture of the tool's behavior.

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

Conciseness5/5

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

The description is three dense sentences that front-load the purpose, state the restriction, and outline the process and follow-up. Every sentence earns its place; no wasted words or redundant information.

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

Completeness4/5

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

Given the tool's complexity and the existence of an output schema, the description covers purpose, prerequisites, process, and follow-up. It doesn't explain return values (handled by output schema) or error conditions, which is a minor gap for a request tool.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds little param-specific detail beyond what the schema already provides, only contextualizing the flow by mentioning the proof and endpoint, but not adding new semantics.

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

Purpose5/5

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

The description clearly states the action: 'Ask a chosen Authority to adopt this operator.' It uses a specific verb and resource, and distinguishes from sibling tools like brain_adoption_status by describing the initiation of the request rather than checking its status.

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

Usage Guidelines4/5

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

It provides clear context: RESTRICTED to the operator, requires proof of npub control, and directs the user to poll adoption_status for progress. This implies the appropriate use case and follow-up, though it doesn't explicitly enumerate exclusions or alternatives beyond adoption_status.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
serviceNoRequired. The credential service name (e.g., from get_operator_onboarding_status or get_patron_onboarding_status).
sender_npubNoRequired. The npub to send the template to.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations are provided, so the description bears full responsibility for behavioral disclosure. It clearly explains the human-in-the-loop flow: sends a welcome DM, recipient must fill and reply manually, and warns that 'receive_credentials' destructively drains the relay mailbox. It also notes that the flow requires waiting for user confirmation. While it doesn't mention rate limits or auth requirements, it covers the most critical behavioral traits for this type of tool.

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

Conciseness4/5

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

The description is structured logically: core purpose, usage differentiation, flow explanation, and post-call actions. It is front-loaded with the main verb phrase and every sentence contributes meaning. It is slightly verbose with redundant emphasis (e.g., '**This is a human-in-the-loop flow.**'), but remains efficient and well-organized for the amount of critical information conveyed.

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

Completeness5/5

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

Given that an output schema exists (so return values are covered elsewhere), the description is remarkably complete. It explains the credential-delivery flow, the human-in-the-loop nature, the need to check service_status for OAuth2 services, and the correct sequencing with 'receive_credentials'. It also warns about the destructive behavior of the follow-up call. No significant gaps remain.

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

Parameters3/5

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

The input schema has 100% coverage with descriptions for both 'service' and 'sender_npub', so the baseline is 3. The description adds minimal extra param semantics beyond the schema, though it does hint at the service parameter's origin ('e.g., from get_operator_onboarding_status or get_patron_onboarding_status') in the schema itself. The description doesn't introduce new parameter details, so a 3 is appropriate.

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

Purpose5/5

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

The description opens with a specific verb+resource: 'Open a Secure Courier channel for credential delivery.' It clearly states this is for handing over service secrets like API keys and tokens, and explicitly distinguishes it from the sibling tool 'request_npub_proof' for merely proving npub control. This fully clarifies its unique purpose.

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

Usage Guidelines5/5

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

Provides explicit when-to-use guidance: use it to deliver service secrets, use 'request_npub_proof' instead for npub control, and check 'service_status' first for dynamic/OAuth2 services (e.g., Schwab). Also gives detailed post-call instructions: STOP, tell the user, wait for confirmation, and do NOT poll or retry. This is exemplary usage guidance with clear alternatives and exclusions.

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

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

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonNoOptional. 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_atNoOptional. 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_npubNoRequired. The patron's npub to request proof from.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations, the description carries the full burden. It discloses critical behavioral traits: the human-in-the-loop nature, that receive_npub_proof 'destructively drains the relay mailbox', that the dpop_token is not retained across restarts, and that the proof expires. This goes well beyond a minimal description.

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

Conciseness5/5

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

Although longer than typical descriptions, every sentence earns its place: it covers what, when, flow, return value, and lifecycle. It is well-structured with line breaks and front-loaded with the core action. The stray 'Free.' at the end is minor and does not detract from clarity.

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

Completeness5/5

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

The tool is part of a complex, stateful human-in-the-loop flow. The description covers the trigger condition, the exact sequence of steps, the return token's handling, and expiration behavior. It even notes the alternative tool. An agent has everything needed to execute this tool safely and effectively.

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

Parameters3/5

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

Schema coverage is 100%, so the baseline is 3. The description does not add parameter-specific details beyond what the schema already provides, but it does contextualize the overall flow. The schema descriptions for reason, verify_at, and patron_npub are already thorough, so 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.

Purpose5/5

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

The description opens with a specific verb+resource: 'Request npub ownership proof from a patron via Nostr DM.' It clearly identifies the tool's function and distinguishes it from the sibling tool by stating that for handing over API keys or OAuth secrets, one should use 'request_credential_channel' instead.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'use it when a call returns proof_required.' It provides a step-by-step flow (call, STOP, tell user, wait, then receive_npub_proof) and warns against polling/retrying. It also names an alternative tool for a different use case, giving clear when-to-use vs. when-not-to guidance.

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

brain_request_patron_credentialsCInspect

Open a Secure Courier channel for patron credential delivery.

Sends a welcome DM with a credential template to the patron. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault
sender_npubNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

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

With no annotations, the description must carry the burden of behavioral disclosure. It states that a channel is opened and a welcome DM is sent, and notes it is 'Free', but omits any side effects, prerequisites, or security implications. The 'Free' disclosure is a useful addition, but overall transparency is limited.

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

Conciseness5/5

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

The description is extremely concise with two sentences, both of which communicate essential information: the primary action and a secondary action with a cost note. There is no redundancy or filler, making it efficiently front-loaded.

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

Completeness2/5

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

Despite having an output schema, the description does not explain the return value or the effect of the optional sender_npub parameter. It does not mention prerequisites or disambiguate from closely related tools like brain_request_credential_channel. The description is too sparse to provide complete context for a tool with no annotations.

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

Parameters1/5

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

The input schema has one parameter (sender_npub) with 0% description coverage and no parameter-related explanation in the description. The description adds no meaning to the parameter, leaving its role and format entirely unspecified. This is a significant gap since schema coverage is at 0%.

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

Purpose4/5

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

The description clearly states the tool's purpose using specific verbs ('Open', 'Sends') and a specific resource ('patron credential delivery'). It distinguishes from siblings like brain_receive_patron_credentials by focusing on opening a courier channel, though it does not explicitly name alternatives.

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

Usage Guidelines2/5

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

No guidance is given on when to use this tool versus alternatives such as brain_request_credential_channel. The only context is 'for patron credential delivery', which implies but does not explicitly state usage conditions or exclusions.

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

brain_reset_pricing_modelAInspect

Erase all pricing models and restore a viable default.

Deletes every stored model, then self-initializes a fresh one from the tool registry — all tools at 0 sats with proper UUIDs. Returns the new model.

RESTRICTED to operator — requires proof (nsec-signed).

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations providing a safety profile, the description fully discloses the destructive behavior: every stored model is deleted, a fresh model is self-initialized from the registry, and the new model is returned. It also highlights the need for operator proof, adding valuable transparency.

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

Conciseness5/5

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

The description is very concise, front-loaded with the primary action, and each sentence adds essential context: the default model, registry details, return value, and access restriction. No fluff or redundant phrasing.

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

Completeness3/5

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

The description covers the tool's behavior, return value, and access restriction, but leaves the dpop_token parameter entirely undocumented. Since there is an output schema, the return is covered, yet the missing parameter semantics makes the invocation incomplete. The tool also lacks any note about side effects beyond deletion, which is already implicit.

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

Parameters2/5

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

The sole parameter dpop_token is not mentioned in the description, and schema coverage is 0%. The description mentions 'nsec-signed' proof but does not connect it to the token parameter, leaving the agent to guess how to supply the required proof. This is a significant gap that the description should have filled.

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

Purpose5/5

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

The description uses specific verbs ('Erase', 'restore') and names the resource ('pricing models'), clearly differentiating this reset/wipe tool from siblings like brain_set_pricing_model and brain_get_pricing_model. It states the outcome: restore a viable default with all tools at 0 sats.

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

Usage Guidelines4/5

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

The description clearly restricts use to the operator and requires signed proof, giving strong context for when this tool is appropriate. It does not explicitly list alternatives or exclusions, but the destructive reset nature is self-evident, so this is a minor gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brain_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenYesA kind-27235 Nostr event signed by the OPERATOR's nsec for this tool. Patron proofs are rejected.
invoice_idYesThe BTCPay invoice ID to verify and credit.
patron_npubYesThe patron's npub whose ledger receives the grant.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden for behavioral disclosure. It clearly states the operator-only restriction and idempotency (returns success with credits_granted=0 if already credited). However, it does not describe what happens if the invoice is not settled or other error conditions, though the output schema may cover those.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded with purpose, then restriction, use cases, and idempotency. It is slightly verbose in the restriction paragraph, but each sentence contributes useful context. The use of bold for the restriction and separate paragraphs improves scannability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the existing output schema and fully described input parameters, the description covers the essential context: purpose, authority model, typical failure scenarios, and idempotent behavior. It is sufficiently complete for an agent to select and invoke this tool correctly in the intended situations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with clear descriptions for all three parameters (dpop_token, invoice_id, patron_npub). The tool description adds contextual framing around operator involvement and idempotency, but does not meaningfully enhance the parameter-level semantics beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource+source: 'Credit a patron's ledger from a BTCPay-settled invoice.' This clearly distinguishes it from sibling tools like brain_purchase_credits or brain_redeem_coupon by framing it as a manual reconciliation action for settled-but-uncredited invoices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists concrete use cases (cold-start vault races, ncred delivery hiccups, etc.) and explicitly restricts usage to the operator, with escalation guidance for patrons. While it does not name alternative tools to use first, it clearly implies this is a last-resort after normal payment verification has failed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brain_restore_neon_schemaAInspect

Re-run ensure_schema() on every NeonVault this operator uses.

Diagnostic / recovery tool for the case where the Neon HTTP SQL API is returning persistent 4xx errors and the operator suspects the schema isn't there or grants are wrong. Idempotent — uses CREATE TABLE IF NOT EXISTS so a successful re-run is harmless.

Returns the per-step result. If any step raises, surfaces the Neon error message inline (0.31.0 reads the SQL error body that earlier wheels swallowed behind raise_for_status).

RESTRICTED to operator — requires proof (nsec-signed).

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full transparency burden. It discloses idempotency ('CREATE TABLE IF NOT EXISTS'), harmlessness on success, restricted operator access requiring nsec-signed proof, per-step result returns, and inline error surfacing behavior—all beyond what the schema reveals.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is organized into four paragraphs, each addressing a distinct aspect: action, use case, idempotency/behavior, and access restriction. It is somewhat verbose (e.g., the 0.31.0 error-body detail) but every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fully covers purpose, trigger conditions, safety profile, return behavior, error handling, and authentication requirements. With an output schema present, it need not explain return shapes in detail; the provided context is enough to safely invoke the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description does not mention dpop_token at all. The sole parameter remains unexplained beyond its name and default value. The description's mention of 'nsec-signed' proof hints at authentication but does not connect it to dpop_token, leaving a semantic gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource: 'Re-run ensure_schema() on every NeonVault this operator uses.' It clearly identifies the tool as a diagnostic/recovery mechanism for persistent 4xx Neon HTTP SQL API errors, which distinguishes it from sibling tools like brain_scan_orphans or brain_service_status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use it: 'persistent 4xx errors and the operator suspects the schema isn't there or grants are wrong.' It provides a clear context for invocation but does not name alternatives or exclusion criteria, so it falls slightly 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.

brain_scan_orphansBInspect

Scan for orphaned thoughts with zero connections and optionally rescue them. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
dry_runNoIf true, only report orphans without rescuing them
brain_idNoThe ID of the brain (uses active brain if not specified)
batch_sizeNoNumber of orphans to process per batch
dpop_tokenNo
orphanage_nameNoName of the orphanage thought to rescue orphans underOrphanage

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It discloses that rescue is optional and that npub is needed for billing, but it does not explain what 'rescue' entails, the default dry_run behavior, potential side effects, or whether the operation is reversible. This leaves significant behavioral ambiguity for a tool that can mutate data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences, front-loading the core purpose and immediately stating the key prerequisite. Every word earns its place, with no unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having an output schema, the description lacks contextual depth for a tool with both read and write modes. It fails to mention the dry_run default, the meaning of rescue, batch processing behavior, or how orphanage_name is used. This is insufficient for a 6-parameter tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (83%), so the baseline is 3. The description adds minimal semantic value by reinforcing that npub is required for billing, but it does not explain parameters like batch_size or orphanage_name beyond what the schema already provides. It neither significantly compensates nor conflicts with the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific language: 'Scan for orphaned thoughts with zero connections and optionally rescue them.' It clearly identifies the resource (orphaned thoughts), the action (scan, optionally rescue), and the scope (zero connections), distinguishing it from sibling tools like brain_adoption_status or brain_get_thought_graph.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage by stating the tool scans and optionally rescues orphans, and it provides a prerequisite ('Requires npub for credit billing'). However, it does not explicitly state when to use this tool versus alternatives or mention any exclusions, so the guidance is present but implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brain_search_thoughtsAInspect

Full-text search across thought names and content. Requires npub for credit billing.

⚠️ NOT AUTHORITATIVE. Backed by the vendor's search index, which is incomplete on large brains (upstream: TheBrainTech/thebrain-api-quickstart-python#1) — it returns empty for the majority of thoughts that provably exist. A hit is real; an empty result is NOT proof of absence. Use for discovery of older/established thoughts, not as an existence check — verify by ID with get_thought before acting on "not found".

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
query_textYesSearch query text
max_resultsNoMaximum number of results
only_search_thought_namesNoOnly search in thought names (not content)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and excels. It discloses the search index is incomplete on large brains, empty results are NOT proof of absence, and a hit is real. It also warns about the upstream issue and billing requirement, giving the agent essential context to avoid false conclusions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, front-loaded with the core purpose, then followed by the critical caveat and usage guidance. Every sentence earns its place; no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (search with known limitations) and the abundance of sibling tools, the description is complete: it states purpose, usage boundaries, and alternatives. The presence of an output schema means return values need not be explained. It leaves no critical information unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high (83%), so the baseline is 3. The description adds value by clarifying the default search scope ('across thought names and content') and requiring npub for credit billing, which complements the schema. However, it doesn't explain each parameter deeply beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs 'Full-text search across thought names and content,' using a specific verb and resource. It distinguishes itself from siblings like brain_get_thought and brain_get_thought_by_name by emphasizing it is a search for discovery, not an authoritative existence check.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit guidance: 'Use for discovery of older/established thoughts, not as an existence check — verify by ID with get_thought before acting on "not found".' It names the alternative tool (get_thought) and clearly states when NOT to use it, which is exemplary.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brain_service_statusAInspect

Check the health and configuration of this service. Free.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It states the tool checks health and configuration and notes 'Free,' but does not clarify read-only nature, authentication needs, rate limits, or potential side effects. The read-only aspect is implied by 'check' but not explicitly stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, containing one meaningful sentence plus a standalone 'Free.' It is front-loaded and under 20 words, but the 'Free' fragment adds minimal value and could be ambiguous. Otherwise, it is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple no-parameter health check with an output schema, the description is largely complete. It clearly states what the tool does, and the output schema covers return details. However, it lacks any information about usage frequency or cost implications beyond 'Free,' which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the input schema already reflects this with an empty object. Per the rubric, 0 params yields a baseline of 4, and since no parameters exist, the description need not add anything further. The baseline is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'check' with the resource 'health and configuration of this service,' making the purpose unambiguous. It distinguishes itself from sibling tools like brain_session_status or brain_check_balance by focusing on service-level health and configuration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It does not mention any exclusions, complementary tools, or typical scenarios, leaving the agent to infer usage 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.

brain_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
patron_npubNoOptional. 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of behavioral disclosure. It discloses that the tool is free, and each lifecycle state explicitly describes the implications for other tools (e.g., 'Paid tools will fail', 'retrying does NOT help', 'Free tools remain available'). This provides substantial behavioral context beyond the schema, though it does not cover rate limits or auth details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured and front-loaded, with a brief summary sentence followed by a clean bulleted list of lifecycle states. Each state is explained in a single, information-dense line, and there is no redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers all possible lifecycle states and provides actionable guidance for each, making it complete for an agent to decide whether to call this tool and what to do with its output. The presence of an output schema covers return format details, so the description focuses on the semantics of each state, which it does thoroughly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter (patron_npub) has a thorough description in the input schema, so the tool description's silence on it is acceptable. Since schema coverage is 100%, the baseline score of 3 applies; the description adds no additional 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with a specific verb ('Check') and resource ('operator readiness'), and immediately explains what it returns: lifecycle state and guidance. The enumerated lifecycle states further differentiate it from sibling status tools by focusing specifically on operator readiness.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context on when to use this tool: as a readiness check before proceeding with tool calls. It provides per-state next actions (e.g., 'Call register_operator first' for not_registered, and notes that retrying does not help for misconfigured/quota_exceeded). However, it does not explicitly mention alternative sibling tools or state when not to use it, so a 4 is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brain_set_active_brainAInspect

Set the active brain for subsequent operations. Requires npub for credit billing.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
brain_idYesThe ID of the brain to set as active
dpop_tokenNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It adds context by noting 'Requires npub for credit billing', but it does not disclose error behavior, persistence of the active brain state, or other side effects beyond the inherent 'set' action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the primary purpose, no unnecessary words. Every sentence contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple setter tool with an output schema, the description covers the essential purpose and key prerequisite, but given the lack of annotations and a large sibling list, more behavioral and usage context would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 67% (high), so baseline is 3. The description adds minimal new meaning, mostly reinforcing npub's billing role already stated in the schema, and leaves dpop_token undocumented.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Set') and resource ('active brain') with a clear purpose ('for subsequent operations'), making it distinct from sibling getters and other brain-related tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'for subsequent operations' implies when to use the tool (before other operations), but it does not explicitly mention exclusions or alternative tools. Still, the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brain_set_pricing_modelAInspect

Set the active pricing model. RESTRICTED to operator.

Requires a valid proof (Schnorr-signed kind-27235 event) proving the caller holds the operator's nsec.

ParametersJSON Schema
NameRequiredDescriptionDefault
dpop_tokenNo
model_jsonYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses the operator restriction and authentication requirement, going beyond the absent annotations. It does not describe side effects, reversibility, or exactly how the proof is supplied, leaving some behavioral ambiguity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise, front-loaded sentences convey purpose and restriction with no wasted words. Each sentence contributes essential information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a restricted mutation tool with undocumented parameters, the description fails to cover input semantics or behavior details. The output schema exists but does not compensate for missing parameter guidance and proof mechanics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% and the description does not explain either parameter. 'model_json' format or content is unstated, and 'dpop_token' is entirely unexplained, leaving the agent guessing about valid inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses a specific verb+resource construction: 'Set the active pricing model.' This clearly identifies the action and distinguishes it from siblings like brain_get_pricing_model and brain_reset_pricing_model.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'RESTRICTED to operator' and requires a specific Schnorr-signed proof, providing clear when-to-use and when-not-to-use guidance. However, it does not mention alternative tools for viewing or resetting pricing, so it lacks full alternative comparison.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brain_update_couponAInspect

Patch a coupon's editable fields.

Pass only the fields you want to change. To set a cap to unlimited (NULL in the schema), pass clear_uses_per_patron=true or clear_total_uses=true. Renaming the code is allowed — existing patron redemption rows survive (they key on coupon id).

RESTRICTED to operator — requires proof.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameNo
coupon_idYes
dpop_tokenNo
total_usesNo
valid_fromNo
valid_untilNo
uses_per_patronNo
clear_total_usesNo
discount_percentNo
clear_uses_per_patronNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses partial-update semantics, the special clear flags for NULL values, the side effect that redemption rows survive renames (keying on coupon id), and the operator authentication requirement. These are meaningful behavioral traits beyond a generic 'update'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four sentences, each earning its place: operation statement, partial-update instruction, NULL-clear mechanism, and rename side-effect plus auth restriction. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 10 parameters, mutation behavior, and side effects, yet the description covers the key aspects an agent needs: editable fields, partial updates, clear flags, rename semantics, and operator restriction. An output schema exists, so return-value details aren't needed. Missing edge cases like invalid dates or not-found handling, but overall adequate for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds value for clear_uses_per_patron and clear_total_uses, and implies 'name' is the coupon code. However, it doesn't explain semantics for valid_from, valid_until, discount_percent, uses_per_patron, or total_uses beyond their names, leaving a gap for those parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Patch a coupon's editable fields'—a specific verb and resource that clearly distinguishes it from sibling tools like brain_delete_coupon and brain_mint_coupon. It also explicitly mentions renaming the code is allowed, further clarifying the tool's scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides actionable guidance: 'Pass only the fields you want to change' and explains how to set caps to unlimited using clear flags. It also warns that the operation is RESTRICTED to operator, indicating prerequisites. It doesn't explicitly contrast with alternatives, but the coupon-specific context makes appropriate use clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brain_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldYesThe operator credential field to set. Must be declared in the operator's credential template.
valueYesThe value to store.
dpop_tokenYesOperator proof for this tool.

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description fully shoulders behavioral disclosure. It reveals merge behavior (doesn't touch other fields), the destructive consequence of omitting fields in courier replies, non-echoing of values, and authentication requirements. This is comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then flows logically into usage and security. Each sentence adds value, and the description remains compact despite covering multiple behavioral nuances. No fluff or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a credential-update tool with output schema available, the description covers purpose, usage, merge semantics, destructive risks, security constraints, and authentication. No critical context seems missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description enriches parameter meaning by clarifying that 'field' is a secret field in a template, giving a concrete example (btcpay_api_key), and detailing the dpop_token requirement with specific proof mechanisms. This exceeds baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with 'Add or update a single operator secret field,' which states the exact action and target. It also distinguishes itself from sibling credential tools by specifying 'operator' and 'single field,' and further contrasts with the whole-bundle alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly explains when to use it ('Use it to rotate one secret...') and contrasts with re-delivering the entire bundle over Secure Courier. It also states restrictions (operator-only, patron proofs rejected), giving clear guidance on who can use it and when.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brain_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
npubYesThe patron's Nostr public key (npub1...).
fieldYesThe credential field name to set.
valueYesThe value to store.
dpop_tokenYesRaw 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

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description shoulders the full burden of behavioral disclosure. It explicitly states that this is a write to a sensitive vault, that proof of npub ownership is required, that it merges rather than overwrites, and that it is free. These are valuable behavioral traits beyond the basic operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose in the first sentence. Each subsequent sentence adds a distinct piece of information (merge behavior, use cases, cost, auth requirement, sensitivity), with no wasted words or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the essential operational context: what it does (add/update single field), how it behaves (merge), when to use it (examples), prerequisites (proof of ownership), cost (free), and its sensitive nature. Since an output schema exists, return values need not be explained, and no critical gaps remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides 100% coverage with detailed descriptions for all four parameters, including the intricate dpop_token requirements. The tool description does not add additional parameter-level semantics beyond reinforcing that the operation merges into existing credentials, which is the baseline expectation given full schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb+resource pair: 'Add or update a single patron credential field.' This clearly distinguishes it from sibling tools like brain_delete_patron_credential, brain_get_patron_credential_fields, and brain_receive_patron_credentials, and the 'single field' qualifier sets it apart from batch operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides concrete use cases ('setting an account identifier after OAuth, changing a default brain') and explains the merge behavior ('without affecting other fields'), which gives context for when to use it. However, it does not explicitly mention when not to use it or name alternative tools, so it falls short of a 5 by the rubric.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

brain_update_thoughtAInspect

Update a thought's properties and/or its parent in one call. Requires npub for credit billing.

Sets any subset of {name, label, colors, kind, ac_type, type, parent} on a single thought. Reparenting via new_parent_id replaces the existing parent link (the old parent child-link is deleted and a new one created); it does not add an additional parent.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoNew kind
nameNoNew name
npubNoRequired. Your Nostr public key (npub1...) for credit billing.
labelNoNew label
ac_typeNoNew access type
confirmNoIf True, verify type/parent changes against the authoritative change-log (SET_TYPE / MOVED_LINK) instead of the cached graph, and attach a ``confirmation`` block. Costs one extra billed read.
type_idNoNew type ID
brain_idNoThe ID of the brain (uses active brain if not specified)
dpop_tokenNo
thought_idYesThe ID of the thought to update
new_parent_idNoNew parent thought ID (replaces all current parents)
background_colorNoNew background color in hex
foreground_colorNoNew foreground color in hex

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosing behavior. It explicitly states the billing requirement (npub) and the destructive reparenting behavior (old parent link deleted, new one created; not additive). This adds important context beyond the bare 'update' concept, though it does not cover all edge cases like error handling or confirmation semantics.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (about 60 words) and front-loaded with the main purpose. It includes the essential subset semantics and the reparenting caveat without unnecessary fluff. Every sentence contributes valuable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with 13 parameters and an output schema, the description covers the most critical non-obvious behaviors (partial update, billing, and destructive reparenting). It does not explain confirmation logic or error scenarios, but those are partially covered by the schema and output schema, preventing a lower score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is high (92%) and the description adds meaningful semantics by explaining that any subset of properties can be set and, critically, that new_parent_id replaces the existing parent rather than adding one. This goes beyond the schema descriptions for individual parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates a thought's properties and/or parent, using a specific verb and resource. It distinguishes itself from sibling tools like brain_create_thought and brain_delete_thought by focusing on updating existing thoughts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies when to use the tool (when updating thought properties or reparenting) and notes the npub billing requirement. It does not explicitly mention alternatives or exclusions, but the context is clear enough for the agent to select this tool over create/delete siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

  • A
    license
    -
    quality
    B
    maintenance
    MCP server that connects GFT (Git for Thought) thought graphs to AI agents, enabling them to read your confirmed thought chains and incrementally save new insights back to the graph. Uses zero AI tokens, with all reasoning done by your agent.
    0
    MIT

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.