Skip to main content
Glama

TheBrain MCP Server

An MCP (Model Context Protocol) server that enables AI assistants to interact with TheBrain's knowledge management system. This server provides comprehensive access to TheBrain's API, focusing on natural language interaction with TheBrain's powerful knowledge management capabilities.

🔧 What's an MCP Server?

MCP (Model Context Protocol) is a standard that lets AI assistants like Claude connect to external tools and services. Think of it as a translator between natural language and software APIs.

How It Works:

You → Claude → MCP Server → TheBrain API → Your Brain
  1. You say: "Create a project with three phases"

  2. Claude understands what you want to accomplish

  3. MCP Server translates this into specific TheBrain API calls

  4. TheBrain API creates the thoughts and connections

  5. Your Brain updates with the new structure

The magic is that you don't need to know any technical details - just describe what you want in plain English!

Related MCP server: Brain MCP Server

🚀 What Actually Works

Core Functionality (Working)

  • Content Management: Create, update, delete thoughts and notes

  • File Attachments: Upload images, PDFs, documents to thoughts

  • Web References: URL attachments with auto-title extraction

  • Rich Notes: Full Markdown support with embedded content

  • Relationship Mapping: Connect thoughts with meaningful relationships

  • Search: Full-text search across thoughts, notes, and attachments

  • Brain Management: Switch between multiple brains seamlessly

  • Natural Language Interface: Describe what you want, Claude handles the details

❌ Current Issues & Limitations

🚨 Major Visual Styling Problems

The biggest limitation: Visual properties don't actually apply despite API success responses.

  • ❌ Thought colors: API accepts colors but they don't appear in TheBrain

  • ❌ Link colors: Similar issue - accepted but not applied

  • ❌ Link thickness: API reports success but thickness doesn't change

  • ❌ Visual formatting: All visual styling features are currently non-functional

🐛 Other Known Issues

  • Intermittent connection problems: "Field required" errors after successful operations

  • Long notes limitations: Issues with very long markdown content (keep under 10k characters)

  • File path sensitivity: Requires absolute file paths; relative paths can fail

  • Connection timing: MCP initialization race condition causing sporadic failures

  • Memory constraints: Large file attachments can cause timeouts

  • Search limitations: Complex queries sometimes return incomplete results

📋 API Dependencies & Constraints

  • Single-user operations: No real-time collaboration features

  • No bulk operations: Can't import/export large datasets efficiently

  • API connectivity required: No offline mode available

  • TheBrain API limitations: Bound by existing API capabilities

  • Authentication required: Must have valid TheBrain API key

🛠 Current Workarounds

Until visual styling is fixed, use these alternatives:

  • Emojis for distinction: 🟢🟡🔴⚪🔵 instead of colors

  • Descriptive names: "🔴 Urgent Task" instead of colored thoughts

  • Rich markdown notes: Use formatting within notes for visual organization

  • Hierarchical structure: Rely on parent/child relationships for organization

Installation

  1. Clone this repository:

git clone https://github.com/redmorestudio/thebrain-mcp.git
cd thebrain-mcp
  1. Install dependencies:

npm install
  1. Create a .env file with your API key:

THEBRAIN_API_KEY=your_api_key_here
THEBRAIN_DEFAULT_BRAIN_ID=optional_default_brain_id

Configuration

For Claude Desktop

Add to your Claude Desktop configuration:

{
  "mcpServers": {
    "thebrain": {
      "command": "node",
      "args": ["/absolute/path/to/thebrain-mcp/index.js"],
      "env": {
        "THEBRAIN_API_KEY": "your_api_key_here"
      }
    }
  }
}

⚠️ Important: Use absolute file paths in the configuration and for file attachments.

Debugging & Troubleshooting

Common Issues & Solutions

"Field required" errors:

  • Restart Claude Desktop

  • Verify .env file has correct API key

  • Always set active brain first: "Set my active brain to [name]"

File upload failures:

  • Use absolute file paths: /Users/username/Documents/file.pdf

  • Check file permissions and existence

  • Keep file sizes reasonable (< 50MB)

Long note problems:

  • Keep notes under 10,000 characters

  • Break large content into multiple thoughts

  • Use attachments for lengthy documents

Debug mode:

VERBOSE=true node index.js

Available Tools (25+ Functions)

Brain Management

  • list_brains - List all available brains

  • get_brain - Get brain details

  • set_active_brain - Set the active brain for operations

  • get_brain_stats - Get comprehensive brain statistics

Thought Operations

  • create_thought - Create thoughts (visual properties don't work)

  • get_thought - Retrieve thought details

  • update_thought - Update thought properties

  • delete_thought - Delete a thought

  • search_thoughts - Search across the brain

  • get_thought_graph - Get thought with all connections

  • get_types - List all thought types

  • get_tags - List all tags

  • create_link - Create links between thoughts (styling doesn't work)

  • update_link - Modify link properties

  • get_link - Get link details

  • delete_link - Remove a link

Attachment Operations

  • add_file_attachment - Attach files/images to thoughts ✅

  • add_url_attachment - Attach web URLs ✅

  • get_attachment - Get attachment metadata

  • get_attachment_content - Download attachment content

  • delete_attachment - Remove attachments

  • list_attachments - List thought attachments

Note Operations

  • get_note - Retrieve notes in markdown/html/text ✅

  • create_or_update_note - Create or update notes ✅

  • append_to_note - Append content to existing notes ✅

Advanced Features

  • get_modifications - View brain modification history

Usage Examples (What Actually Works)

Project Organization

You: "Create a project called 'Kitchen Renovation'"
Claude: Creates central project thought

You: "Add phases for planning, demolition, and installation"  
Claude: Creates connected sub-thoughts for each phase

You: "Attach my contractor quotes to the planning phase"
Claude: Uploads files to the planning thought

You: "Add a detailed note about the timeline to the project"
Claude: Creates rich markdown note with your timeline

Research & Knowledge Management

You: "Create a research topic about sustainable energy"
Claude: Sets up main research thought

You: "Add sub-topics for solar, wind, and hydro power"
Claude: Creates organized thought hierarchy

You: "Attach relevant papers and web articles"
Claude: Adds file and URL attachments

You: "Search for everything related to efficiency"
Claude: Finds all relevant thoughts and content

🔮 Roadmap & Future Development

Immediate Priorities (v1.2.0)

  • 🚨 Fix visual styling: Investigate why colors/thickness don't apply

  • 🔧 Connection stability: Resolve MCP timing/race condition issues

  • 📝 Long notes support: Better handling of extensive markdown content

  • 🛡️ Error handling: More graceful failures and recovery

Future Enhancements

  • Bulk operations for large-scale organization

  • Enhanced templates for common workflows

  • Performance optimizations for complex brains

  • Offline capabilities and caching

Technical Architecture

What Makes This Server Special

  • Natural language interface: No technical knowledge required

  • Complete API coverage: 25+ tools spanning all TheBrain operations

  • Robust error handling: Graceful failures and clear error messages

  • Modular design: Clean, maintainable code architecture

  • Production ready: Proper logging, testing, and documentation

Current Status

  • Version: 1.1.0 (June 2025)

  • Core functionality: ✅ Complete and working

  • Visual properties: ❌ Major issues need investigation

  • Stability: 🟡 Generally stable with intermittent connection issues

Contributing

Contributions are welcome! Areas where help is especially needed:

  • Visual styling investigation: Why don't colors/thickness apply?

  • Connection stability: Debugging MCP race conditions

  • Performance optimization: Large brain handling

  • Documentation: More usage examples and tutorials

Please feel free to submit issues or pull requests.

License

MIT License - see LICENSE file for details.

Support


⚠️ Current Recommendation: Use this server for content management and organization with natural language interaction. Don't rely on visual styling features until they're fixed. The core functionality is solid and very useful for managing TheBrain content through conversation!

Available Tools

26 tools
add_file_attachmentB

Add a file attachment (including images) to a thought

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
fileNameNoName for the attachment (optional, uses filename if not provided)
filePathYesPath to the file to attach
thoughtIdYesThe ID of the thought

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose behavioral traits beyond the basic action. Important details such as file size limits, overwrite behavior, or permissions are omitted.

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 with no extraneous words. It is concise and to the point.

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 file attachment operation with 4 parameters and no output schema or annotations, the description is too sparse. It lacks information about return values, error handling, and usage 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 parameters are fully documented in the schema. The description adds the note about including images, but this is minor. Baseline 3 applies.

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 adds a file attachment, including images, to a thought. The verb 'add' and resource 'file attachment' are specific, and the mention of images distinguishes it from the sibling 'add_url_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 like 'add_url_attachment' or when not to use it. The description only states what the tool does, with no contextual usage instructions.

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

add_url_attachmentB

Add a URL attachment to a thought

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to attach
nameNoName for the URL attachment (auto-fetched from page title if not provided)
brainIdNoThe ID of the brain
thoughtIdYesThe ID of the thought

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, and the description adds no behavioral details beyond the bare action. Does not disclose side effects, authentication needs, or error handling.

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

Conciseness5/5

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

One sentence, no wasted words. Appropriate length for a simple action.

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?

Minimal but adequate. Could mention that the attachment is added to a thought and that 'name' can be auto-fetched, but schema covers that. Missing output guidance.

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 describes all parameters, including the auto-fetching behavior of 'name'. The description adds no additional meaning.

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

Purpose4/5

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

The description clearly states the action (add), resource (URL attachment), and target (thought). It implicitly distinguishes from sibling 'add_file_attachment' by specifying URL versus file.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'add_file_attachment' or 'create_link'. No context about prerequisites or exclusions.

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

append_to_noteC

Append content to an existing note

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
markdownYesMarkdown content to append
thoughtIdYesThe ID of the thought

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so the description must convey behavioral traits. It only states 'append content' without specifying whether the note must exist, whether it overwrites or adds, or if it's idempotent. This is insufficient.

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

Conciseness4/5

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

The description is a single, front-loaded sentence with no superfluous words. It is concise, though some might argue it is too brief.

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

Completeness2/5

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

Given the lack of output schema, annotations, and the presence of sibling tools with overlapping functionality, the description is incomplete. It does not clarify behavior when the note is missing or the exact effect of appending.

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 descriptions for all three parameters, so the description adds no extra meaning. Baseline score of 3 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 states the specific verb 'append' and resource 'existing note', which is clear. It distinguishes from siblings like 'create_or_update_note' by implying modification rather than creation, but could be more explicit about the operation'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 Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'create_or_update_note' or 'update_thought'. The agent must infer from the name and description.

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

create_or_update_noteC

Create or update a note with markdown content

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
markdownYesMarkdown content for the note
thoughtIdYesThe ID of the thought

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as whether it performs an upsert, overwrites existing content, or requires specific permissions. The agent has no insight into side effects.

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

Conciseness4/5

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

The description is a single concise sentence with no fluff. However, it could be restructured to include more context without adding length.

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

Completeness2/5

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

Given no output schema and the presence of sibling tools, the description is incomplete. It does not explain return values or behavior on update vs create, which is necessary for correct tool selection and 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 100%, so parameters are already documented. The description adds no additional meaning beyond what's in the schema, so baseline score of 3 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 'Create or update a note with markdown content', specifying verb (create/update), resource (note), and content type (markdown). However, it doesn't differentiate from sibling 'append_to_note', which could be confusing.

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 'append_to_note'. There is no mention of prerequisites, conditions for update vs create, or when not to use it.

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

create_thoughtC

Create a new thought with optional visual properties

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoKind of thought: 1=Normal, 2=Type, 3=Event, 4=Tag, 5=System
nameYesThe name of the thought
labelNoOptional label for the thought
acTypeNoAccess type: 0=Public, 1=Private
typeIdNoID of the thought type to assign
brainIdNoThe ID of the brain (uses active brain if not specified)
relationNoRelation type if linking: 1=Child, 2=Parent, 3=Jump, 4=Sibling
backgroundColorNoBackground color in hex format (e.g., "#0000ff")
foregroundColorNoForeground color in hex format (e.g., "#ff0000")
sourceThoughtIdNoID of the source thought to link from

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states 'Create a new thought with optional visual properties,' omitting critical traits such as whether existing thoughts are overwritten, permission requirements, return values, or side effects. The low behavioral transparency could lead to incorrect invocations.

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, concise sentence that front-loads the core purpose. Every word is informative, with no redundancy. It earns its place by conveying the action, resource, and a distinguishing feature (visual properties) efficiently.

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 tool with 10 parameters and no output schema, the description is too brief. It fails to mention what the tool returns, error scenarios, or dependencies (e.g., brainId default behavior). Important aspects like linking behavior (sourceThoughtId+relation) are not described, leaving gaps for the agent.

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 schema already documents all parameters well. The description adds minimal value by referring to 'optional visual properties' (backgroundColor, foregroundColor), but this is already evident from the schema. The description does not explain parameter interdependencies like sourceThoughtId and relation.

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 'Create a new thought with optional visual properties' clearly states the action (create) and resource (thought), and distinguishes from siblings like update_thought by mentioning optional visual properties. However, it does not specify what a 'thought' is in this context, which might be unclear to an agent unfamiliar with the domain.

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 like update_thought or create_link. Given the sibling tools, the agent would benefit from explicit conditions (e.g., 'Use this to create a new thought; for linking existing thoughts, use create_link instead'). The absence of such guidance forces the agent to rely on heuristics.

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

delete_attachmentC

Delete an attachment

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
attachmentIdYesThe ID of the attachment

TDQS

C2.7/5.0
Behavior2/5

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

No annotations provided, and the description lacks disclosure of behavioral traits such as irreversibility, permission requirements, or side effects of deletion. This is a critical gap for a destructive operation.

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?

Description is extremely concise (three words), but at the cost of missing important context. It is front-loaded but under-specified, so a middle score is appropriate.

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

Completeness1/5

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

Given the tool's destructive nature, lack of output schema, and no annotations, the description is woefully incomplete. It provides no return value, effects, or prerequisites, leaving the agent with insufficient information.

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%, with both parameters having descriptions. The tool description adds no additional meaning beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

The description clearly states the verb (delete) and resource (attachment), making the action unambiguous. However, it does not differentiate from sibling tools that operate on different resources, but the resource type alone is sufficient for basic distinction.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no prerequisites mentioned, and no mention of common use cases or exclusions. The agent is left to infer usage from context.

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

delete_thoughtC

Delete a thought

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
thoughtIdYesThe ID of the thought

TDQS

C2.4/5.0
Behavior1/5

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

The description lacks any behavioral details beyond the deletion action; no mention of side effects, permanence, or requirements. No annotations are present to supplement.

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

Conciseness2/5

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

The description is extremely brief (one sentence) but fails to convey important context, making it under-specified rather than appropriately concise.

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

Completeness1/5

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

Given the lack of annotations and output schema, the description is far too minimal; it does not cover return values, error conditions, or behavioral implications of deletion.

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 fully describes parameters. The description adds no additional meaning beyond what the schema provides.

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 (delete) and resource (thought), but does not differentiate from sibling tools like delete_attachment or delete_link.

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 provided on when to use this tool versus alternatives, nor any prerequisites or context for usage.

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

get_attachmentC

Get metadata about an attachment

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
attachmentIdYesThe ID of the attachment

TDQS

C2.8/5.0
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 implies read-only by 'get' but does not confirm side effects, error handling, or permission requirements. Minimal 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.

Conciseness3/5

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

The single sentence is concise, but it may be too brief, lacking structural elements like examples or context. It is front-loaded but does not earn its place with additional helpful 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?

No output schema, so the description should clarify what metadata is returned. It does not, leaving agents uninformed. Simple tool but incomplete for reliable selection and invocation.

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

Parameters3/5

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

Schema coverage is 100%, so parameters are fully documented structurally. The description adds no extra meaning or context for 'brainId' or 'attachmentId', providing no 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 clearly states the action ('get') and resource ('metadata about an attachment'). It distinguishes from siblings like 'get_attachment_content' and 'delete_attachment', but lacks explicit differentiation from other 'get' siblings like 'get_brain' or 'get_note'.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not specify prerequisites, exclusions, or context, leaving the agent to infer 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.

get_attachment_contentC

Get the binary content of an attachment (e.g., download an image)

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
saveToPathNoOptional path to save the file locally
attachmentIdYesThe ID of the attachment

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It does not disclose return format (binary stream, base64, etc.), authentication needs, or potential side effects. Minimal behavioral info beyond the 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?

Single sentence, front-loaded with key action, no superfluous words. Highly concise.

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 tool with 3 parameters and no output schema, the description is too sparse. It lacks details on handling binary data, size limits, or example usage. More context needed for effective use.

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 parameter descriptions exist. The tool description adds context about binary content but does not elaborate on parameter semantics 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 action 'get binary content' and provides an example 'download an image'. It differentiates from sibling tools like 'get_attachment' (likely metadata) by specifying binary content, though not explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like 'get_attachment' or 'list_attachments'. No prerequisites or when-not-to-use mentioned.

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

get_brainC

Get details about a specific brain

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdYesThe ID of the brain

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. It only states 'Get details' but does not mention read-only nature, error scenarios (e.g., invalid brainId), permissions needed, or the response format. This is insufficient for an agent to understand side effects or constraints.

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

Conciseness4/5

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

The description is a single sentence, highly concise and front-loaded. However, it could include a bit more useful detail without becoming verbose, but overall it is appropriately sized.

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

Completeness2/5

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

Given no output schema and no annotations, the description is incomplete. It does not specify what 'details' are returned, whether the output is a brain object with all fields, or if pagination applies. For a get operation, this lacks critical context for the agent to interpret the result.

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?

Although the schema covers 100% of parameters with a description for brainId ('The ID of the brain'), the description adds no additional meaning such as where to obtain the ID, its format, or constraints. Baseline for full coverage is 3, but lack of added value reduces 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 'Get details about a specific brain' clearly states the action (get) and the resource (brain), distinguishing it from siblings like list_brains (which lists all brains) and set_active_brain (which sets active 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?

No guidance is provided on when to use this tool versus alternatives such as list_brains or get_thought. The description does not specify prerequisites, such as requiring a valid brainId obtained from list_brains.

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

get_brain_statsC

Get statistics about a brain

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain

TDQS

C2.9/5.0
Behavior2/5

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

The description does not disclose any behavioral traits beyond the basic action. It does not indicate whether the tool is read-only, requires a specific brain state, or how statistics are computed. Annotations are absent, so the description carries full burden but fails to address this.

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 front-loads the core purpose. It is efficient with no wasted words, though it could benefit from slight expansion for clarity.

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

Completeness2/5

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

Given the lack of output schema and annotations, the description is insufficient. It does not clarify what 'statistics' entails, leaving the agent without understanding of return format or behavior. It is minimally complete for a simple tool but fails to provide needed 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 coverage is 100% for the single parameter, which already describes it as 'The ID of the brain'. The description adds no additional meaning or context beyond the schema, so baseline score of 3 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 the verb 'Get' and the resource 'statistics about a brain', which aligns with the tool name and distinguishes it from siblings like 'get_brain' or 'list_brains'. However, it does not specify what kind of statistics, leaving some ambiguity.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives, such as 'get_brain' or 'get_thought_graph'. There is no mention of prerequisites, context, or conditions for effective use.

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

get_modificationsB

Get modification history for a brain

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
endTimeNoEnd time for logs (ISO format)
maxLogsNoMaximum number of logs to return
startTimeNoStart time for logs (ISO format)

TDQS

B3.4/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits, but it only states the function. It does not mention returned data format, pagination, authentication, or any side effects, leaving significant gaps for an agent.

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

Conciseness5/5

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

The description is a single, concise sentence that front-loads the tool's purpose with no extraneous information. It earns its place efficiently.

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 4 parameters and no output schema, the description does not explain what modification history entails or what the response will look like. Given the lack of annotations and output schema, this is insufficient for complete understanding.

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 adds no extra meaning beyond the schema; each parameter's purpose is already 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 'Get modification history for a brain' clearly specifies the action (get), the resource (modification history), and the scope (for a brain). It is distinct from sibling tools, as no other tool retrieves modification history.

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?

No guidance is provided on when to use this tool versus alternatives. While the purpose is clear, the description does not mention when not to use it or suggest alternative tools for related queries (e.g., get_brain, get_thought).

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

get_noteB

Get the note content for a thought

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoOutput formatmarkdown
brainIdNoThe ID of the brain
thoughtIdYesThe ID of the thought

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description must carry the full burden. It only states 'Get the note content', implying a read-only operation, but lacks details on potential side effects, authentication needs, rate limits, or what happens if the note does not exist.

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, crisp sentence with no wasted words. It is appropriately sized for a simple retrieval tool.

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 low complexity and complete schema, the description is minimally adequate. However, it does not explain what 'note content' includes (e.g., full text, metadata), and there is no output schema to clarify the return format. For a tool with many siblings, slightly more 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 coverage is 100% and the description adds no meaningful information beyond what the schema already provides for the parameters. The parameter names and descriptions in the schema are self-explanatory, so the description adds marginal 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 clearly states the verb 'Get' and the resource 'note content for a thought', which is distinct from sibling tools like 'append_to_note' (write) and 'create_or_update_note' (modify). However, it does not explicitly differentiate from 'get_thought', which might also retrieve content, leaving some ambiguity.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention when not to use it, nor does it reference any sibling tools that might be more appropriate in certain contexts.

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

get_tagsC

Get all tags in a brain

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description bears full burden for behavioral disclosure. It only states 'Get all tags in a brain,' implying a read-only operation, but lacks details on side effects, permission requirements, rate limits, or return format. This is insufficient for a tool with no output 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 concise at five words and front-loads key information. However, it lacks any structural elements like bullet points or additional context that would improve readability without sacrificing brevity.

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 retrieval tool with one optional parameter, the description is minimally complete. However, the absence of an output schema means the description should hint at the return type (e.g., list of tag strings), which it does not, leaving the agent guessing about the response format.

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 a single parameter 'brainId' described as 'The ID of the brain.' The description adds no further meaning beyond the schema, so it meets the baseline but does not enhance parameter understanding.

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 all tags in a brain' clearly states the verb and resource, distinguishing it from sibling tools that operate on thoughts, notes, or attachments. However, it does not elaborate on what constitutes a tag or how they relate to brains.

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 'get_thought' or 'get_note'. There is no mention of prerequisites or exclusions, leaving the agent without contextual direction.

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

get_thoughtC

Get details about a specific thought

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
thoughtIdYesThe ID of the thought

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided. The description does not disclose behavioral traits such as idempotency, rate limits, error behavior (e.g., what happens if thoughtId does not exist), or authentication requirements.

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 a single sentence, which is concise, but it is under-specified. It could be expanded slightly to include key behavioral or parameter context without becoming verbose.

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

Completeness2/5

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

Given no output schema, the description should hint at return values (e.g., metadata, content). It does not. Also, the optional brainId parameter's role is unclear, leaving the agent uncertain about scoping.

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 input schema already describes both parameters. The description adds no further meaning, such as the optional nature of brainId or how it might scope the thought retrieval.

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 details about a specific thought,' indicating a read operation on a single resource. It distinguishes from siblings like 'search_thoughts' or 'get_thought_graph', but lacks specificity about what 'details' includes.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. Does not mention prerequisites (e.g., needing a brain context) or scenarios where a different tool would be more appropriate.

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

get_thought_graphC

Get a thought with all its connections and attachments

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
thoughtIdYesThe ID of the thought
includeSiblingsNoInclude sibling thoughts in the graph

TDQS

C2.9/5.0
Behavior2/5

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

No annotations exist. The description fails to disclose side effects, permissions, or error behavior. It does not clarify whether it reads existing data or triggers mutations, which is risky for a retrieval 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 a single, compact sentence with no redundancy. It front-loads the core action, though it could be slightly more structured by separating the purpose from the scope.

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

Completeness2/5

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

No output schema exists, yet the description offers no insight into return format (e.g., graph structure, attached entities). Given three parameters, the description is too sparse to ensure 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 coverage is 100% with clear descriptions for all three parameters. The tool description adds no further meaning beyond the schema, which is adequate but does not enhance understanding of how 'includeSiblings' modifies results.

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 it retrieves a thought with its connections and attachments, making it distinct from get_thought which likely returns just the thought. The verb 'get' is generic but the resource scope is specific.

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

Usage Guidelines2/5

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

No guidance on when to use this tool over siblings like get_thought or list_attachments. No mention of prerequisites or exclusions, leaving the agent to infer context.

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

get_typesC

Get all thought types in a brain

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It only states 'Get', implying a read operation, but fails to mention whether authentication is needed, any side effects, or what the response contains. This is insufficient for a tool with no annotation support.

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

Conciseness4/5

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

The description is a single sentence with no wasted words, achieving high conciseness. However, it is too brief to add significant value beyond the definition, preventing a score of 5.

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

Completeness2/5

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

Given the low complexity (1 optional parameter, no output schema), the description still lacks crucial context: no usage guidelines, no behavioral traits, and no explanation of return values. This incompleteness hinders an agent's ability to use 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% as the sole parameter 'brainId' has a description in the schema. The tool description adds no additional meaning beyond the schema's 'The ID of the brain'. According to guidelines, baseline is 3 when coverage is high, and the description does not exceed that baseline.

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 all thought types') and the resource ('in a brain'). It is specific and distinguishes from siblings like 'get_thought' (single thought) and 'get_tags' (tags as opposed to types). However, the description is slightly vague as 'thought types' could be ambiguous without further context.

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 such as 'search_thoughts' or 'get_tags'. There is no mention of prerequisites or when not to use it, leaving the agent without decision context.

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

list_attachmentsC

List all attachments for a thought

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
thoughtIdYesThe ID of the thought

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are present, so the description must carry the burden. It fails to disclose important behavior such as pagination, ordering, or what happens with invalid inputs. The description is too minimal.

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 concise with no wasted words. However, it could be improved by adding a bit more context without becoming verbose. It remains efficient.

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

Completeness2/5

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

Given the simple nature of the tool, the description is incomplete. It does not mention return format, pagination, error behavior, or ordering. For a list operation, these are important 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.

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 meaning beyond the schema, e.g., it doesn't explain that brainId is optional or how it affects the query.

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

Purpose4/5

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

The description clearly states the verb 'list' and the resource 'attachments for a thought', but it doesn't explicitly distinguish from siblings like 'get_attachment' which retrieves a single attachment. However, the scope is clear.

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 'get_attachment' or 'get_attachment_content'. There is no mention of context or prerequisites.

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

list_brainsA

List all available brains for the user

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose whether the tool is read-only, requires authentication, or has any side effects. For a list operation, it likely is safe, but the description does not confirm this.

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 concise sentence that immediately conveys the tool's purpose. It is front-loaded and 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?

Given the simplicity (no parameters, no output schema), the description is minimally viable. However, it does not mention what information is returned (e.g., brain IDs, names) or any limitations, leaving room for improvement.

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 no parameters, so the description does not need to add parameter meaning. The schema coverage is 100% trivially. Baseline of 4 for zero parameters applies.

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

Purpose5/5

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

The description clearly states the tool lists all available brains for the user. It uses a specific verb ('list') and resource ('brains'), and it distinguishes itself from siblings like 'get_brain' which retrieves a single brain.

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?

No guidance on when to use this tool versus alternatives like 'get_brain' or search-related tools. The description implies it is for listing all brains, but lacks explicit if-then guidance.

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

search_thoughtsC

Search for thoughts in a brain

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdNoThe ID of the brain
queryTextYesSearch query text
maxResultsNoMaximum number of results
onlySearchThoughtNamesNoOnly search in thought names (not content)

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries full burden but only states 'search for thoughts'. It does not disclose behavioral traits such as default search mode (names vs content), result ranking, or whether it requires text indexing. The schema parameters (e.g., onlySearchThoughtNames) are not mentioned in the description.

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

Conciseness4/5

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

The description is a single, succinct sentence with no wasted words. However, it is arguably too brief given the tool's complexity; a bit more detail would improve clarity without harming conciseness.

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

Completeness2/5

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

No output schema exists, so the description should clarify return format (e.g., list of thought IDs, objects with content). It fails to specify what the search results contain or how to interpret them, leaving a significant gap for the agent.

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 baseline is 3. The description adds no parameter details beyond what the schema provides. It does not explain how queryText is used or the purpose of brainId, but the schema descriptions are sufficient.

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

Purpose4/5

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

The description clearly states the verb 'search' and resource 'thoughts in a brain', distinguishing it from sibling tools like get_thought (single retrieval) or get_thought_graph (graph traversal). However, it lacks specificity about the scope (e.g., content vs. names) and does not differentiate from potential search variants.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., get_thought for by-ID lookup, get_modifications for recent changes). The description does not mention prerequisites, typical use cases, or when not to use it.

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

set_active_brainC

Set the active brain for subsequent operations

ParametersJSON Schema
NameRequiredDescriptionDefault
brainIdYesThe ID of the brain to set as active

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, and the description does not disclose side effects like state mutation or session-level impact. For a tool that changes global state, more transparency is needed.

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 a single short sentence, which is concise but lacks necessary detail. It earns its place but is too terse to be optimally helpful.

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?

The tool sets state with no output schema, but the description fails to explain the concept of 'active brain', how to verify it, or its effect on subsequent operations. Incomplete for a state-setting 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 100%, and the description adds no extra meaning beyond the schema's parameter description. Baseline score of 3 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 the tool sets the active brain for subsequent operations, distinguishing it from sibling tools like list_brains or get_brain. However, it could be more specific about what 'active brain' means and its scope.

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, such as when to set the active brain before other operations or conditions where it might be unnecessary.

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

update_thoughtB

Update a thought including its visual properties

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoNew kind: 1=Normal, 2=Type, 3=Event, 4=Tag, 5=System
nameNoNew name for the thought
labelNoNew label for the thought
acTypeNoNew access type: 0=Public, 1=Private
typeIdNoNew type ID to assign
brainIdNoThe ID of the brain
thoughtIdYesThe ID of the thought to update
backgroundColorNoNew background color in hex format (e.g., "#0000ff")
foregroundColorNoNew foreground color in hex format (e.g., "#ff0000")

TDQS

B3.2/5.0
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 says 'update' but does not mention idempotency, authorization needs, or any side effects.

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

Conciseness5/5

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

Single sentence with no wasted words; front-loaded with verb and resource.

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?

With 9 parameters and no output schema, the description is too brief. It does not explain return values, prerequisites, or what happens when updating partial fields.

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 'visual properties' but this is already covered by the schema's background/foreground color 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 (update), the resource (thought), and mentions visual properties, which distinguishes it from siblings like create_thought or delete_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 on when to use this tool vs alternatives; for example, when to update versus create a new thought, or which parameters are commonly used together.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 26 tool updatesv1.0.0
    • First observedadd_file_attachment
    • First observedadd_url_attachment
    • First observedappend_to_note
    • First observedcreate_link
    • First observedcreate_or_update_note
    • First observedcreate_thought
    • First observeddelete_attachment
    • First observeddelete_link
    • First observeddelete_thought
    • First observedget_attachment
    • First observedget_attachment_content
    • First observedget_brain
    • First observedget_brain_stats
    • First observedget_link
    • First observedget_modifications
    • First observedget_note
    • First observedget_tags
    • First observedget_thought
    • First observedget_thought_graph
    • First observedget_types
    • First observedlist_attachments
    • First observedlist_brains
    • First observedsearch_thoughts
    • First observedset_active_brain
    • First observedupdate_link
    • First observedupdate_thought

TDQS

B3.4/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose. For example, get_thought retrieves basic thought data while get_thought_graph includes connections and attachments. Even similar actions like append_to_note and create_or_update_note are well-differentiated by their descriptions.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern with underscores (e.g., create_thought, get_attachment, delete_link). The verbs are uniform and descriptive, making the pattern predictable and easy to follow.

Tool Count4/5

At 26 tools, the set is on the high side but still justified given the complexity of TheBrain's features (thoughts, notes, links, attachments, brains, tags, etc.). Each tool serves a specific operation, and there is minimal redundancy.

Completeness5/5

The tool surface covers the full lifecycle of thoughts, notes, links, attachments, and brain management. Operations include create, read, update, delete, search, and listing. No obvious gaps are apparent for the stated domain.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to read, write, search, and navigate Obsidian vault notes with support for CRUD operations, full-text search, graph navigation, daily notes, and frontmatter management.
    4,785
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables interaction with Brain service for thought management, including saving thoughts with metadata, quick capture with auto-classification, searching, and retrieving entries through natural language.
    -
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to interact with TheBrain's knowledge management system through natural language for managing thoughts, notes, and attachments. It supports core features like full-text search, relationship mapping, and file uploads to streamline digital brain organization.
    3
    Apache 2.0

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/redmorestudio/thebrain-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server