Skip to main content
Glama

brain_get_modifications

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.

Input Schema

TableJSON 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

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.9/5.0
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.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

B3.3/5.0
Disambiguation2/5

Multiple tools have overlapping purposes. For example, `brain_request_credential_channel` and `brain_request_patron_credentials` serve similar roles, and `brain_receive_credentials`, `brain_receive_npub_proof`, and `brain_receive_patron_credentials` all handle receiving data from a courier flow. While descriptions help, the sheer number of tools (83) with similar-sounding purposes (check_ vs get_ vs request_ vs receive_ prefixes) makes it hard to quickly distinguish which tool to use.

Naming Consistency3/5

The tools mostly follow a `brain_verb_noun` pattern (e.g., `brain_create_thought`, `brain_delete_link`), which provides some consistency. However, there are inconsistencies with prefixes like `brain_oracle_` (e.g., `brain_oracle_about`, `brain_oracle_how_to_join`) which are more like static pages than actions. Additionally, 'check' and 'get' seem interchangeable (e.g., `brain_check_balance` vs `brain_get_thought`), and 'list' is used alongside 'get' in a way that sometimes means the same thing (e.g., `brain_list_brains` vs `brain_get_brain`).

Tool Count2/5

83 tools is an extremely large and unwieldy surface area. While the server aims to be a comprehensive 'operating system' for a specific ecosystem (DPYC/Nostr), this many tools will lead to agent confusion and high latency. Tools like `brain_oracle_about`, `brain_oracle_how_to_join`, and `brain_oracle_network_advisory` could easily be combined into a single tool or served as function parameters.

Completeness4/5

For its stated domain (managing a 'brain' with credits, payments, and Nostr integration), the tool set is remarkably complete. It covers CRUD operations, payment flows (purchase, check, restore), coupon management, credential handling, and even notarization. Minor gaps are hard to identify, though some flows feel overly complex (e.g., the multiple `request_`/`receive_` patterns could arguably be simplified). The high number of tools is a result of this extreme specialization.