Skip to main content
Glama
Jau-app

JauMemory MCP Server

Official
by Jau-app

JauMemory MCP Server

A Model Context Protocol (MCP) server that provides persistent memory capabilities for AI assistants like Claude. Store, recall, and analyze information across conversations with intelligent memory management.

Features

  • 🧠 Persistent Memory: Store information that persists across all sessions

  • 🔍 Smart Recall: Search memories using keywords or semantic similarity

  • 📊 Pattern Analysis: Automatically detect patterns and extract insights

  • 🏷️ Automatic Classification: Memories are automatically categorized (errors, solutions, insights, questions)

  • 🔄 Collection Consolidation: Roll a collection's memories up into a single summary memory

  • 🎯 Importance Scoring: Content-based importance assessment with learning value metrics

  • 🤝 Multi-Agent Support: Agent identities, shared memory, assignments via shortcut flags, error-pattern learning

  • 🚀 Production Ready: Connects to JauMemory cloud service with secure authentication

Related MCP server: Recall

Prerequisites

  • Node.js 18.0.0 or higher

  • npm or yarn

  • JauMemory account (free tier available at mem.jau.app)

Installation

From NPM

npm install -g @jaumemory/mcp-server

From GitHub

git clone https://github.com/Jau-app/jaumemory-mcp-server.git
cd jaumemory-mcp-server
npm install
npm run build

Configuration

Claude Desktop

Add to your Claude desktop configuration file:

MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "jaumemory": {
      "command": "npx",
      "args": ["-y", "@jaumemory/mcp-server"]
    }
  }
}

Note: Claude Desktop works with the npx approach without requiring global installation.

Claude Code

Add to your Claude Code configuration:

MacOS/Linux: ~/.config/claude/claude_code_config.json Windows: %APPDATA%\claude\claude_code_config.json

{
  "mcpServers": {
    "jaumemory": {
      "command": "npx",
      "args": ["-y", "@jaumemory/mcp-server"]
    }
  }
}

Cursor

  1. Open Cursor Settings

  2. Navigate to MCP section

  3. Add new MCP server with command: npx -y @jaumemory/mcp-server

Or edit configuration file:

MacOS/Linux: ~/.cursor/mcp_config.json Windows: %APPDATA%\Cursor\mcp_config.json

{
  "mcpServers": {
    "jaumemory": {
      "command": "npx",
      "args": ["-y", "@jaumemory/mcp-server"]
    }
  }
}

Cline

Installation (Required):

⚠️ IMPORTANT: Install in the same terminal environment where Cline will run:

  • Windows (native): Install in PowerShell or Command Prompt (the same environment Cline uses)

  • WSL (Windows Subsystem for Linux): Install in WSL terminal for your specific user

  • macOS/Linux: Install in your terminal of choice

npm install -g @jaumemory/mcp-server

If using both Windows and WSL, install in both environments:

# In Windows PowerShell
npm install -g @jaumemory/mcp-server

# In WSL terminal
npm install -g @jaumemory/mcp-server

Add to Cline MCP settings (in your Cline configuration file):

{
  "mcpServers": {
    "jaumemory": {
      "type": "stdio",
      "timeout": 60,
      "command": "npx",
      "args": ["-y", "@jaumemory/mcp-server"]
    }
  }
}

Note: The "type": "stdio" and "timeout": 60 settings are important for Cline compatibility. Installing in the correct terminal environment ensures Cline can find and execute the server. The global installation helps avoid Windows file locking issues.

Windsurf

Add to Windsurf MCP configuration:

{
  "mcpServers": {
    "jaumemory": {
      "command": "npx",
      "args": ["-y", "@jaumemory/mcp-server"]
    }
  }
}

GitHub Copilot

Add to GitHub Copilot MCP settings:

{
  "mcpServers": {
    "jaumemory": {
      "command": "npx",
      "args": ["-y", "@jaumemory/mcp-server"]
    }
  }
}

ChatGPT (Plus/Pro Required)

Add to ChatGPT MCP configuration:

{
  "mcpServers": {
    "jaumemory": {
      "command": "npx",
      "args": ["-y", "@jaumemory/mcp-server"]
    }
  }
}

Advanced Configuration (Optional)

Environment variables are not required for basic setup. Authentication is handled by the mcp_login and mcp_authenticate tools; no identity or credential values belong in configuration files.

Optional settings (see .env.example for the full list):

# Optional: Logging configuration
LOG_LEVEL=info
NODE_ENV=production

Note: Even with environment variables set, you must still authenticate using the mcp_login tool on first use.

Authentication

First-Time Setup

  1. Launch your AI assistant (Claude Desktop, Cursor, etc.) - the MCP server will start automatically

  2. Use the mcp_login tool to initiate authentication

  3. Click the approval link that opens in your browser

  4. Complete the authentication in your web browser

  5. The server will automatically store your credentials securely

That's it! No configuration files or environment variables needed for basic setup.

Usage

MCP Tools Available

The server exposes 50 tools. Full argument contracts for every tool are available in-band — call get_guide({ topic: "tools/<category>/<name>" }), or browse the same docs at https://mem.jau.app/v1/help.

Category

Tools

Discovery

search, fetch, get_guide

Auth

mcp_login, mcp_authenticate, mcp_logout

Memory

remember, recall, forget, update, analyze, consolidate, memory_stats

Agents

create_agent, list_agents, agent_memory, agent_error_learning, agent_reflection, update_agent_name, agent_collaboration

Collections

create_collection, list_collections, get_collection, add_to_collection, remove_from_collection, update_collection, delete_collection, consolidate_collection

Credential vault

vault_store, vault_list, vault_rotate

Tool registry

tool_create, tool_list, tool_render, tool_update, tool_call

Skills

skill_create, skill_list, skill_render, skill_execute

Toolkit

toolkit_search

Scheduling

skill_schedule, skill_schedule_list, skill_schedule_cancel, skill_schedule_retrigger, skill_tasks_pending, skill_task_retrigger, skill_tasks_list

Berrry integration

berrry_register_tool, berrry_create_tool

Highlights with examples:

Core Memory Tools

remember - Store a new memory with automatic classification

remember({
  content: "Important insight about TypeScript generics",
  tags: ["typescript", "learning"],
  importance: 0.8,
  shortcuts: ["--insight", "--high"]
})

recall - Search and retrieve memories

recall({
  query: "typescript generics",
  limit: 10,
  mode: "keyword" // or "semantic" for AI-powered search
})

forget - Delete a specific memory

forget({
  memoryId: "550e8400-e29b-41d4-a716-446655440000"
})

update - Update an existing memory

update({
  memoryId: "memory-id",
  content: "Updated content",
  importance: 0.9
})

Analysis Tools

analyze - Analyze patterns and extract insights

analyze({
  timeRange: "week" // or "day", "month", "all"
})

consolidate - Consolidate similar memories (args: similarity_threshold, min_group_size, archive_originals, dry_run). Note: the server does not implement standalone consolidation yet and returns a clean error pointing to consolidate_collection, which summarizes one collection's memories for real.

memory_stats - Get statistics about memories

memory_stats({
  query: "project-name",
  timeRange: { start: "2024-01-01", end: "2024-12-31" }
})

Multi-Agent Features

create_agent - Create an AI agent with personality

create_agent({
  name: "Code Reviewer",
  personalityTraits: ["analytical", "detail-oriented"],
  specializations: ["code-review", "best-practices"]
})

agent_error_learning - Two-strike error learning for agents

agent_error_learning({
  action: "report",
  agentId: "…uuid…",
  errorSignature: "TypeError user.profile undefined",
  errorMessage: "Undefined property access in user service"
})

Shortcuts System

Quick memory creation with metadata flags:

remember({
  content: "Fix authentication bug",
  shortcuts: ["--bug", "--high", "--assign @backend-dev", "--project webapp"]
})

Available shortcuts:

  • Types: --todo, --task, --bug, --question, --note, --reflection

  • Status: --pending, --wip, --done, --blocked [reason]

  • Priority: --low, --medium, --high, --urgent

  • Assignment: --assign @agent-name, --notify @agent1,@agent2

  • Context: --project name, --repo url

The full semantics live in get_guide({ topic: "concepts/shortcuts" }).

Memory Types

JauMemory automatically classifies memories:

  • 🔴 Error: Problems and bugs encountered

  • Solution: Fixes and resolutions

  • 💡 Insight: Patterns and realizations

  • Question: Unknowns and research needs

Development

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build for production
npm run build

# Run tests
npm test

# Lint code
npm run lint

Project Structure

jaumemory-mcp-server/
├── src/                # TypeScript source code
│   ├── index.ts        # Main entry point
│   ├── auth/           # Authentication logic
│   ├── client/         # gRPC client code
│   ├── tools/          # MCP tool implementations
│   └── utils/          # Utility functions
├── dist/               # Compiled JavaScript
├── proto/              # Protocol buffer definitions
└── package.json        # Package configuration

Troubleshooting

Windows Installation Issues

If you encounter TAR_ENTRY_ERROR errors on Windows when using npx:

Solution 1: Use global installation

# Run in PowerShell as Administrator
npm install -g @jaumemory/mcp-server --force

Then update your config to use the global command:

{
  "mcpServers": {
    "jaumemory": {
      "command": "jaumemory-mcp-server",
      "args": []
    }
  }
}

Solution 2: Clear npm cache

npm cache clean --force
npm config set fetch-retries 10
npm config set fetch-timeout 60000
npx -y @jaumemory/mcp-server

Solution 3: Local installation

mkdir C:\JauMemory
cd C:\JauMemory
npm install @jaumemory/mcp-server

Then use in config:

{
  "mcpServers": {
    "jaumemory": {
      "command": "node",
      "args": ["C:\\JauMemory\\node_modules\\@jaumemory\\mcp-server\\dist\\index.js"]
    }
  }
}

Authentication Issues

  1. Ensure you have a valid JauMemory account

  2. Check your username and email are correct

  3. Look for the approval link in your browser

  4. Check logs: LOG_LEVEL=debug npm start

Connection Problems

  1. Verify internet connection

  2. Check if JauMemory service is available at https://mem.jau.app

  3. Ensure firewall allows HTTPS/gRPC connections

  4. Try clearing auth cache and re-authenticating

Claude Integration

  1. Verify MCP configuration in Claude desktop

  2. Restart Claude after configuration changes

  3. Check Claude logs for MCP errors

  4. Ensure Node.js version is 18.0.0 or higher

Security

  • Authentication uses secure MCP approval flow

  • Credentials are encrypted and stored securely

  • All communication uses HTTPS/TLS

  • No sensitive data is logged

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/AmazingFeature)

  3. Commit your changes (git commit -m 'Add some AmazingFeature')

  4. Push to the branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Acknowledgments


Made with ❤️ for the AI assistant community

Available Tools

25 tools
add_to_collectionC

Add a memory to a collection.

ParametersJSON Schema
NameRequiredDescriptionDefault
collection_idYesUUID of the collection
memory_idYesID of the memory to add

TDQS

C2.7/5.0
Behavior1/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 disclosure, but it says nothing about behavioral traits such as whether this is a reversible operation, whether it requires certain permissions, what happens if the memory is already in the collection, or if the collection must exist. This is severely lacking 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 a single, short sentence that is perfectly front-loaded and contains no extraneous words. Every word earns its place, delivering the core purpose succinctly.

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 simplicity of the tool (2 required parameters, no output schema, no nested objects), the description is minimally adequate but fails to address obvious contextual gaps like error handling, side effects, or relationship to sibling tools.

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 provides full coverage (100%) with descriptions for both parameters: memory_id and collection_id. The description adds no additional meaning beyond what the schema already provides, earning the baseline score of 3.

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'), the resource type ('memory'), and the target ('collection'), effectively distinguishing it from sibling tools like 'remove_from_collection' and 'create_collection'. The verb-resource combination is specific and unambiguous.

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

Usage 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 'remove_from_collection', 'create_collection', or search tools. There is no mention of prerequisites, error conditions, or constraints (e.g., memory must exist, collection must exist, duplicate handling).

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

agent_collaborationA

Manage collaboration between agents.

Usage Examples: // Start a collaboration agent_collaboration({ action: "start", agentId: "frontend-dev", collaboratorId: "backend-dev", collaborationType: "api-integration", memoryId: "task-123" })

// Complete a collaboration agent_collaboration({ action: "complete", agentId: "frontend-dev", collaborationId: "collab-456", outcome: "success" })

// List collaborations for an agent agent_collaboration({ action: "list", agentId: "backend-dev" })

Collaboration Types:

  • code-review: Code review collaboration

  • pair-programming: Pair programming session

  • api-integration: API integration work

  • testing: Testing collaboration

  • debugging: Debugging session

  • planning: Planning and design

  • documentation: Documentation work

Outcomes:

  • success: Collaboration completed successfully

  • partial: Some goals achieved

  • failed: Collaboration did not achieve goals

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
agentIdYesInitiator agent ID
collaboratorIdNoCollaborator agent ID (for start action)
collaborationTypeNoType of collaboration (for start action)
collaborationIdNoCollaboration ID (for complete action)
outcomeNoOutcome (for complete action)
memoryIdNoRelated memory ID

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses actions, collaboration types, and outcomes, but omits behavioral details such as whether list returns active or all collaborations, whether completion is irreversible, or if starting a collaboration requires both agents to exist. Side effects and persistence are not mentioned.

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

Conciseness4/5

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

The description is well-structured with a brief intro, code examples, and tables for types/outcomes. It is front-loaded with the purpose. While thorough, it could be slightly shorter by reducing redundant example text, but it earns its length with clarity.

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

Completeness3/5

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

Given no output schema, the description should explain return values. It does not describe what each action returns (e.g., collaboration ID for start, list of collaborations for list). Error conditions (e.g., invalid agentId) are also omitted. However, the parameter usage and conditional requirements are well covered.

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%, but the description adds significant value by grouping parameters by action (e.g., collaboratorId needed for 'start', collaborationId for 'complete'). It also enumerates collaboration types and outcomes, clarifying which enums are valid for which actions beyond the schema's plain 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 'Manage collaboration between agents' and provides specific actions (start, complete, list) with usage examples. This distinguishes it from sibling agent tools like agent_memory or create_agent, which focus on memory or creation rather than collaboration management.

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 through examples but does not explicitly state when to use this tool versus alternatives like agent_memory or agent_reflection. There are no 'when not to use' or exclusion criteria, leaving the agent to infer context from examples alone.

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

agent_error_learningA

Enable agents to learn from errors using a 2-strike protocol.

Usage Examples: // Report a new error agent_error_learning({ action: "report", agentId: "backend-dev", errorSignature: "TypeError: Cannot read property 'x' of undefined", errorMessage: "Undefined property access in user service", contextSnapshot: "const name = user.profile.name; // user.profile is undefined", attemptedSolution: "Added optional chaining: user.profile?.name", projectContext: "api-service" })

// Mark error as solved agent_error_learning({ action: "solve", agentId: "backend-dev", patternId: "err-pattern-123", solution: "Always check if user.profile exists before accessing properties", verificationSteps: [ "Run: npm test user.service.spec.ts", "Verify no TypeErrors in logs", "Check user profile endpoint returns 200" ] })

// Record failed attempt agent_error_learning({ action: "fail", agentId: "frontend-dev", patternId: "err-pattern-456", attemptedSolution: "Tried using default values but still crashed" })

The 2-Strike Protocol:

  1. First encounter: Agent gets the error signature to recognize it

  2. Second encounter: Agent must solve it or face consequences

  3. After 2 failures: Error importance increases, agent status may change

Response Types:

  • first_occurrence: New error, pattern ID provided

  • solution_found: Previous solution exists

  • previous_attempts_failed: Shows attempt count (pressure!)

  • new_problem: Similar to other errors but unique

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
agentIdYesAgent ID
errorSignatureNoUnique error identifier (for report)
errorMessageNoError message (for report)
contextSnapshotNoCode/context where error occurred
attemptedSolutionNoWhat was tried
projectContextNoProject name
patternIdNoError pattern ID (for solve/fail)
solutionNoWorking solution (for solve)
verificationStepsNoHow to verify the fix

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are provided, so the description carries full burden. It clearly describes the 2-strike protocol and response types (first_occurrence, solution_found, previous_attempts_failed, new_problem), which explains behavioral outcomes. However, it does not disclose whether the tool is destructive, requires authentication, or has rate limits, which would elevate this further.

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

Conciseness4/5

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

The description is well-structured with clear sections (Usage Examples, 2-Strike Protocol, Response Types) and is front-loaded with the core purpose. It is appropriately sized for a complex tool with 10 parameters, though the usage examples could be slightly condensed without losing clarity.

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

Completeness5/5

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

Given the tool has 10 parameters, no output schema, and no annotations, the description provides comprehensive guidance: it explains all three actions with concrete examples, the protocol flow, and possible response types. This fully compensates for missing annotations and output schema, making the tool's behavior predictable for an AI 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?

The input schema already provides 100% coverage with descriptions for all 10 parameters, including enum constraints for 'action'. The description adds value by showing parameter usage in context via code examples, but this is supplemental rather than essential given schema completeness. 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 the tool enables agents to learn from errors using a 2-strike protocol. It provides specific verb-resource combinations (report, solve, fail) and distinguishes error learning from sibling tools like memory_stats, list_agents, or search which serve different purposes.

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 provides usage examples for each action (report, solve, fail) and clearly outlines the 2-strike protocol with numbered steps. It also describes when each response type occurs, giving agents guidance on interpreting results. There are no sibling tools that overlap in function, so no need for exclusion notes.

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

agent_memoryA

Link memories to agents or recall agent-specific memories.

Usage Examples: // Link a memory to an agent agent_memory({ action: "link", agentId: "frontend-dev", memoryId: "mem-123-456", category: "learning", projectContext: "webapp" })

// Recall all memories for an agent agent_memory({ action: "recall", agentId: "backend-dev" })

// Search agent memories agent_memory({ action: "recall", agentId: "code-reviewer", query: "authentication", category: "error", limit: 10 })

// Project-specific recall agent_memory({ action: "recall", agentId: "test-engineer", projectContext: "api-service", category: "task" })

Memory Categories:

  • task: Assigned tasks and TODOs

  • learning: Things the agent learned

  • error: Errors encountered

  • solution: Solutions found

  • reflection: Agent reflections

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
agentIdYesAgent ID
memoryIdNoMemory ID (for link action)
categoryNoMemory category like task, learning, error
projectContextNoProject name for context
queryNoSearch query (for recall action)
limitNoMax results to return

TDQS

A4.2/5.0
Behavior4/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 transparency. It successfully explains available actions (link/recall), memory categories, and usage contexts like project filtering. The lack of explanation about side effects (e.g., whether linking overwrites existing memories) or authorization requirements prevents a perfect score.

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 examples and category tables, making it scannable. However, at over 20 lines it is somewhat lengthy; some example repetition could be trimmed (e.g., the recall-with-query and recall-with-project examples could be combined). Every section earns its place, but the file size could be reduced.

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

Completeness4/5

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

Given the tool has 7 parameters, no output schema, and provides examples covering the main actions, the description is fairly complete for an agent to invoke it correctly. The memory category table and usage examples cover the major operational patterns. However, missing information about return values (especially for recall action) and the absence of edge-case handling (e.g., empty results) slightly reduces completeness.

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

Parameters4/5

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

Schema description coverage is 100%, so baseline is 3. The description adds significant value beyond the schema by providing memory categories with semantic meanings (task, learning, error, solution, reflection) and real-world usage examples demonstrating parameter combinations. The category descriptions clarify what each value represents, improving over the schema's terse 'Memory category like task, learning, error'.

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 defines the tool's dual purpose: linking memories to agents or recalling agent-specific memories. The verb+resource combination 'Link memories to agents or recall agent-specific memories' is specific and distinguishes it from general memory tools like 'remember' and 'recall' among siblings.

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

Usage Guidelines4/5

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

The description includes multiple usage examples demonstrating common patterns (link, recall, search, project-specific recall), which helps an agent understand when to use each action. However, it does not explicitly state when NOT to use this tool (e.g., when to prefer 'remember' or 'recall' tools), lowering the score from 5.

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

agent_reflectionB

Create and retrieve agent reflections for continuous improvement.

Usage Examples: // Create a learning reflection agent_reflection({ action: "create", agentId: "frontend-dev", reflectionType: "learning", content: "Discovered that React.memo can prevent unnecessary re-renders in large lists", lessonsLearned: [ "Use React.memo for expensive components", "Profile before optimizing", "Not all components need memoization" ] })

// Create a mistake reflection agent_reflection({ action: "create", agentId: "backend-dev", reflectionType: "mistake", content: "Forgot to add database indexes, causing slow queries in production", lessonsLearned: [ "Always analyze query patterns before deployment", "Add indexes for frequently filtered columns", "Monitor query performance in staging" ] })

// Create a collaboration reflection agent_reflection({ action: "create", agentId: "code-reviewer", reflectionType: "collaboration", content: "Worked with frontend-dev to establish better PR review guidelines", lessonsLearned: [ "Clear PR descriptions save review time", "Automated checks reduce manual review burden" ], relatedAgents: ["frontend-dev", "test-engineer"] })

// List all reflections for an agent agent_reflection({ action: "list", agentId: "test-engineer" })

// List specific type of reflections agent_reflection({ action: "list", agentId: "project-manager", reflectionType: "success" })

Reflection Types:

  • learning: New knowledge or insights gained

  • mistake: Errors made and lessons learned

  • success: Achievements and what worked well

  • collaboration: Insights from working with other agents

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesAction to perform
agentIdYesAgent ID
reflectionTypeNoType of reflection
contentNoReflection content (for create)
lessonsLearnedNoKey takeaways
relatedAgentsNoOther agents involved

TDQS

B3.4/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 the full burden for behavioral transparency. It only states that the tool creates and retrieves reflections, without disclosing side effects, persistence guarantees, idempotency, authentication needs, or rate limits. The description does not go beyond the basic operation, leaving significant gaps for an agent to understand 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.

Conciseness4/5

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

The description is front-loaded with the purpose statement, followed by examples and reflection types. The examples are helpful but make the description longer than necessary. Structure is clear and logical, but could be more concise by trimming redundant example patterns. Still, it earns points for good organization.

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 complexity (6 parameters, no output schema, no annotations), the description covers the actions and reflection types adequately. However, it fails to describe the return format (e.g., does 'list' return an array of reflections? Does 'create' return the created object?). With no output schema, these details are missing, making the description incomplete for an agent to fully understand the tool's behavior.

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

Parameters3/5

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

Schema description coverage is 100%, so the input schema already documents all parameters. The description adds value through examples showing valid parameter combinations (e.g., content with learning type, relatedAgents with collaboration). However, it does not elaborate on parameter semantics beyond what the schema provides, such as constraints on content length or format. Baseline is 3, and the examples only slightly enhance 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 clearly states the tool's purpose: 'Create and retrieve agent reflections for continuous improvement.' It specifies a verb (create/retrieve) and a resource (agent reflections). The examples and reflection types further clarify the scope, distinguishing it from sibling tools like 'remember' or 'agent_memory' which handle more generic memory.

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 usage examples for both create and list actions, showing typical scenarios. However, it does not explicitly contrast with alternative tools (e.g., when to use 'agent_reflection' vs 'remember' or 'agent_error_learning'), nor does it specify when not to use this tool. The guidance is clear in context but lacks explicit exclusions.

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

analyzeB

Analyze memory patterns and extract insights

ParametersJSON Schema
NameRequiredDescriptionDefault
timeRangeNoTime range to analyze (e.g., "day", "week", "month", "all")

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 carries the full burden of behavioral disclosure. The description only states the high-level action but does not disclose side effects (e.g., whether it modifies memory, requires memory to exist beforehand, or has performance implications). For a tool that 'extracts insights,' users should know if it is read-only, what data is accessed, or if any thresholds apply.

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 at six words, with no unnecessary verbiage. It is front-loaded with the action ('Analyze') and the domain ('memory patterns and insights'). However, the extreme brevity sacrifices clarity on behavioral and contextual details, which might have balanced conciseness with completeness.

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

Completeness2/5

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

Given the tool's moderate complexity (one optional parameter, no output schema, no annotations), the description should compensate by explaining what the output looks like, how insights are presented, or prerequisites for analysis. For instance, does it return a list of patterns, a narrative, or structured data? The lack of output schema increases the need for descriptive completeness, which is not met.

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 one parameter ('timeRange') fully documented via an enum. The description adds no additional meaning beyond the schema, as it does not explain how the parameter influences analysis or what 'extract insights' means for different time ranges. With full schema coverage, the baseline score is 3, but the description could add value by clarifying the parameter's impact.

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 uses a specific verb-resource pair ('Analyze memory patterns and extract insights') that clearly states the tool's function. It distinguishes from siblings like 'memory_stats' (which likely gathers statistics) and 'consolidate' (which likely compacts or reorganizes memory). However, it could be more specific about what kind of patterns or insights are extracted, such as trends, anomalies, or summaries.

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

Usage Guidelines3/5

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

The description does not provide explicit guidance on when to use this tool versus alternatives. While the sibling list shows multiple memory-related tools ('memory_stats', 'consolidate', 'recall', 'forget'), the description gives no context for choosing 'analyze' over them. The lack of guidance is mitigated by the tool's focused purpose, but users must 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.

consolidateB

Consolidate similar memories into insights based on semantic similarity

ParametersJSON Schema
NameRequiredDescriptionDefault
similarity_thresholdNoMinimum similarity score to group memories (0.0-1.0, default: 0.7)
min_group_sizeNoMinimum number of memories to form a group (default: 2)
archive_originalsNoArchive original memories after consolidation (default: true)
dry_runNoPreview consolidation without making changes (default: false)

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 fully disclose behavioral traits, but it only states the high-level action. It does not explain side effects (e.g., whether original memories are archived, as indicated in the dry_run and archive_originals parameters), whether the tool creates new records or modifies existing ones, or what 'insights' entails. The schema parameters hint at behavior, but the description fails to surface this critical context for safe invocation.

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 that directly states the tool's purpose with no extraneous words. It front-loads the core action. However, it could be improved by a second sentence covering critical behavioral context (e.g., 'Original memories are archived by default; use dry_run to preview') without losing 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?

Given the tool has no output schema and the description does not explain return values (e.g., the format of 'insights'), the agent cannot predict what the tool returns. Additionally, there is no information about prerequisites, required memory state, or how the tool interacts with other memory operations. For a consolidation tool that may irreversibly group originals, this lack of completeness is 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?

Schema description coverage is 100%, so the input schema already documents all four parameters with clear descriptions (dry_run, min_group_size, archive_originals, similarity_threshold). The tool description adds no additional meaning beyond the schema—it only mentions 'semantic similarity' which is already implied by the similarity_threshold parameter. As per guidelines, baseline 3 is appropriate when the schema handles parameter documentation well.

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 ('Consolidate') and resource ('similar memories'), with the outcome ('into insights') and method ('based on semantic similarity'). This distinguishes it from sibling tools like 'consolidate_collection' (which works on collections) and 'remember'/'recall'/'forget' (which operate on individual memories), giving the agent a precise understanding of what the tool does.

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

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. There is no mention of exclusions (e.g., 'use for individual memories, not collections'), no comparison with the similar sibling 'consolidate_collection', and no context about prerequisites or scenarios that favor this tool over 'analyze' or other memory-grouping approaches. The agent must 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.

consolidate_collectionB

Consolidate all memories in a collection into a comprehensive summary or insight.

ParametersJSON Schema
NameRequiredDescriptionDefault
collection_idYesUUID of the collection to consolidate
summarize_onlyNoOnly create a summary without modifying the collection (default: false)
titleNoTitle for the consolidated memory (optional)

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states that the tool consolidates memories into a summary or insight. It does not disclose whether the operation is destructive (e.g., deletes original memories), requires specific permissions, or modifies the collection state. The presence of a 'summarize_only' parameter in the schema implies mutation by default, but the description omits this crucial behavioral detail.

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 of 11 words with no superfluous content. It immediately states the action and the resource. It is front-loaded with the verb and noun, making it easy for an agent to parse quickly. Every word serves a purpose.

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 the simplicity of the tool (3 parameters, none nested), the description lacks completeness. It does not explain the return value (no output schema exists), the effect of 'summarize_only' on behavior, or what happens to existing memories after consolidation. Given that consolidation may be a mutating operation, the absence of these details leaves the agent guessing about side effects and expected outcomes.

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%—all three parameters have descriptions in the JSON schema. The tool description adds no additional meaning beyond stating the overall operation. For example, the 'title' parameter is explained in the schema as 'Title for the consolidated memory (optional)', but the description does not clarify how or when the title is used. A baseline of 3 is appropriate since the schema already documents parameters adequately.

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: 'Consolidate all memories in a collection into a comprehensive summary or insight.' It uses a specific verb ('Consolidate') and resource ('memories in a collection'), and it differentiates from siblings like 'remember' (individual memory storage) and 'consolidate' (which may be more general or not collection-specific). The term 'comprehensive summary or insight' clarifies the output's nature.

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. Siblings include 'consolidate', 'analyze', 'remember', and 'recall', but the description does not explain scenarios where consolidating a collection is preferable. There is no mention of prerequisites (e.g., collection must exist) or when to avoid using it (e.g., if individual memories are needed).

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

create_agentB

Create a new agent with personality traits and specializations.

Usage Examples: // Basic agent create_agent({ name: "Code Reviewer" })

// Agent with personality create_agent({ name: "Frontend Expert", personalityTraits: ["detail-oriented", "creative", "user-focused"], specializations: ["React", "TypeScript", "CSS", "UX"] })

// Agent with custom prompts create_agent({ name: "Test Engineer", personalityTraits: ["thorough", "systematic"], specializations: ["Jest", "Cypress", "TDD"], updatePrompts: [ "Always consider edge cases", "Write tests before implementing fixes" ] })

Pre-configured Agents (from migration):

  • code-reviewer: Analytical, detail-oriented reviewer

  • backend-dev: Systems thinker for backend development

  • frontend-dev: Creative UI/UX focused developer

  • test-engineer: Quality-focused testing specialist

  • project-manager: Organized project coordinator

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesAgent name
personalityTraitsNoPersonality traits like curious, analytical, creative
specializationsNoAreas of expertise like frontend, backend, testing
updatePromptsNoCustom prompts for agent updates
idNoOptional agent ID (if not provided, will be auto-generated)
initialLearningRateNoInitial learning rate (0.0-1.0, default: 0.5)

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 fully convey behavioral traits. It only states that an agent is created with optional fields, but omits critical details: what happens on success/error, whether names must be unique, how the 'id' auto-generation works, or any side effects. The pre-configured agents list adds migration context but not behavioral specifics.

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

Conciseness4/5

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

The description is well-structured with a clear summary sentence followed by usage examples and a list of pre-configured agents. The examples are front-loaded and demonstrate parameter usage effectively. It could be slightly more concise by removing the pre-configured list if not essential, but overall it is not overly 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?

For a creation tool with 6 parameters and no output schema, the description is incomplete. It does not explain what the tool returns after creation (e.g., the created agent object or ID), mention error conditions like duplicate names, or clarify the behavior of optional parameters like 'initialLearningRate'. The pre-configured agents list adds some context but does not cover functional 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 100%, so the baseline is 3. The description's usage examples show typical values for parameters like personalityTraits and specializations, marginally adding meaning beyond the schema. However, the schema descriptions are already quite clear, so 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 clearly states the verb 'Create' and the resource 'agent', and specifies that it includes personality traits and specializations. This distinguishes it from siblings like 'list_agents' and 'update_agent_name' by explicitly focusing on creation. Multiple usage examples further reinforce the purpose.

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 does not provide any guidance on when to use this tool versus alternatives like 'update_agent_name' or when not to use it. The examples show usage but do not set context for when creation is appropriate. There is no mention of prerequisites or limitations.

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

create_collectionC

Create a new collection for organizing memories.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the collection
descriptionNoDescription of the collection (optional)
memory_idsNoInitial memory IDs to add to the collection (optional)

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are present, so the description bears full responsibility for behavioral disclosure. The description only indicates a mutation ('create') but fails to mention critical behavioral traits such as uniqueness constraints on 'name', idempotency, error conditions (e.g., duplicate name), required permissions, or return value. This is insufficient for an agent to safely invoke the tool.

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 overly brief. It lacks structure and fails to earn its place by omitting necessary details. A description this short should be packed with key information, but it only states the obvious.

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

Completeness2/5

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

Given the tool's complexity (3 parameters, creation operation, no output schema, no annotations, and many sibling collection tools), the description is severely incomplete. It does not explain what happens on success, error states, or how this tool fits into the collection workflow. An agent would need to infer too much from the name alone.

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 no additional meaning beyond the schema's parameter descriptions. The phrase 'for organizing memories' provides slight context but does not enhance understanding of the parameters themselves.

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 ('create') and the resource ('collection') with a hint of purpose ('for organizing memories'). It is not a tautology and the verb+resource combination is specific. However, it does not distinguish this tool from sibling tools like 'add_to_collection' or 'update_collection', which operate on existing collections.

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 (e.g., list_collections, get_collection, add_to_collection). There are no prerequisites, conditions, or exclusions mentioned. The description is entirely silent on usage context.

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

delete_collectionA

Delete a collection (memories are not deleted, only the collection).

ParametersJSON Schema
NameRequiredDescriptionDefault
collection_idYesUUID of the collection to delete

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It clarifies that memories are preserved, which adds value, but does not mention permissions, reversibility, or side effects. 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?

Single sentence with parenthetical clarification, 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.

Completeness4/5

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

For a simple delete tool with one parameter and no output schema, the description explains the key nuance (memories retained). No mention of errors or return value, but largely complete.

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 detailed description for collection_id. Description does not add meaning 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?

Description clearly states verb 'delete' and resource 'collection', and explicitly notes that memories are not deleted, distinguishing it from related operations like remove_from_collection.

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 vs alternatives such as update_collection or remove_from_collection. No prerequisites or exclusions are mentioned.

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

forgetB

Delete a specific memory

ParametersJSON Schema
NameRequiredDescriptionDefault
memoryIdYesMemory ID to delete

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Delete', which is inherent from the tool name 'forget'. It does not reveal whether the deletion is permanent, requires authorization, or has cascading effects on related 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 a single sentence with zero wasted words. It is front-loaded and appropriately sized for a simple delete operation.

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 tool with one parameter, no output schema, and a straightforward purpose, the description is minimally adequate. However, it could be improved by clarifying what constitutes a 'memory' in this context (e.g., vs. 'collection' siblings) and noting any return value or side effects.

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 and already describes the single parameter 'memoryId' as 'Memory ID to delete'. The description adds no extra meaning beyond what the schema provides, so baseline 3 is appropriate as per criteria.

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 'Delete a specific memory' uses a clear verb ('Delete') and resource ('a specific memory'), directly conveying the tool's action. It distinguishes from siblings like 'remember' (store), 'recall' (retrieve), 'analyze', 'consolidate', and 'delete_collection' (which targets collections, not memories).

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 'update' (to modify a memory) or 'delete_collection'. There is no mention of prerequisites, exclusions, or context for invoking 'forget' over other memory-related tools.

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

get_collectionB

Get details of a specific collection including all its memories.

ParametersJSON Schema
NameRequiredDescriptionDefault
collection_idYesUUID of the collection

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 disclose all behavioral traits. However, it only states it returns 'details of a specific collection including all its memories' without clarifying whether the operation is read-only, what 'memories' refers to, or any side effects. Contrast this with a readOnlyHint annotation that would alleviate the concern, but none 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, concise sentence that directly conveys the tool's purpose without extra words. It is perfectly 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?

Given the tool has one parameter, no output schema, and no annotations, the description is adequate for a simple read operation but lacks detail on the response format or what 'details' includes. It does mention 'memories', which is useful 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% with one parameter (collection_id) described as 'UUID of the collection'. The tool description doesn't add any new meaning beyond what's in the schema, but high coverage means the schema carries the burden, earning a baseline 3.

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 of a specific collection including its memories, using the verb 'Get' with a specific resource ('collection'). This distinguishes it from siblings like get_guide or list_collections, though some siblings (e.g., update_collection, delete_collection) share the collection focus, so it's not fully differentiated from all.

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 list_collections (list all collections) or search (general search). It doesn't state prerequisites (e.g., collection must exist) 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.

list_agentsA

List all available agents with their details.

Usage Examples: // List all agents list_agents({})

// List only active agents list_agents({ status: "active" })

// List agents in error state list_agents({ status: "error" })

Agent Statuses:

  • active: Ready for tasks

  • learning: Currently improving from errors

  • error: Encountered issues, needs attention

  • archived: No longer in use

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by status

TDQS

A4.2/5.0
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 of behavioral disclosure. It correctly implies a read-only operation but does not mention pagination, performance characteristics, or the structure of the returned details. This is adequate for a simple list tool but lacks depth that an agent might need for safe invocation.

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

Conciseness5/5

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

The description is very concise: a one-line purpose, three usage examples, and a four-item status list. Every part is useful, and the most important information (purpose) is front-loaded. There is no wasted text.

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 tool with one optional parameter and no output schema, the description covers the purpose, parameter usage, and status meanings. It does not describe the return format, which would be helpful but is not strictly required since the tool simply 'list[s]' agents with 'details'. The description is largely complete for an agent to decide whether and how to use 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?

Schema coverage is 100% (the parameter has a description and enum), so the baseline is 3. The description adds value by providing concrete usage examples and listing each status with a brief meaning, which helps the agent understand how to use the filter effectively beyond the schema's minimal 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 uses the specific verb 'List' with the resource 'all available agents', clearly stating what the tool does. It distinguishes from siblings like 'create_agent' and 'agent_memory' by focusing solely on listing, and the usage examples reinforce the 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 clear usage examples for different status filters and lists all possible statuses with meanings, which guides the agent on how to use the tool. It does not explicitly state when not to use it or compare to alternatives, but the siblings do not include another list-agents tool, so the guidance is sufficient for practical use.

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

list_collectionsB

List all your collections.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description must convey behavioral traits. The word 'List' implies a read-only, non-destructive operation, which is adequate. However, no details are given about pagination, ordering, or whether the full set of collections is always returned. The description is minimal but not misleading.

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 unnecessary words. Every part earns its place: 'List all your collections' is direct and complete for a parameterless tool.

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 has no output schema and no annotations, so the description should explain what the output looks like. It only says 'List all your collections' without describing the return format (e.g., list of collection IDs, names, or objects). This leaves the agent uncertain about the result structure, making it 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?

There are no parameters, so the schema provides zero information. The description compensates by explaining what the tool does (list collections). Since 0 parameters has a baseline of 4, and the description fulfills that role, the score 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 action ('List') and the resource ('all your collections'). It distinguishes from sibling tools like create_collection, delete_collection, and get_collection by focusing on listing all. However, it could be more specific about what 'collections' includes (e.g., names only or full metadata).

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_collection (for a single collection) or search (for filtered results). The description lacks any when-to-use or when-not-to-use context.

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

mcp_authenticateB

Complete MCP authentication with the auth token you received from the web approval page. You MUST have clicked the link, approved in your browser, and copied the authentication code.

ParametersJSON Schema
NameRequiredDescriptionDefault
auth_tokenYesThe EXACT authentication code shown on the approval webpage after clicking Approve (e.g., "happy-star")
request_idNoThe request ID from mcp_login response (required)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations, so description carries full burden. Provides basic prerequisite but omits error handling, side effects (e.g., session creation), and contradicts schema on request_id requiredness.

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?

Two sentences with clear focus. Could be better structured (e.g., list prerequisites), but 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?

Missing return value description, error handling, and does not explain the full authentication flow (preceding mcp_login). Inconsistency in request_id reduces 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% so baseline 3. Description adds examples for auth_token, but for request_id it claims required (schema says optional), adding confusion rather than clarity.

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

Purpose4/5

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

Clearly states it completes MCP authentication with an auth token, specifying the prerequisite of having clicked the link and approved. However, it does not differentiate from sibling tools like mcp_login or mcp_logout.

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?

Emphasizes the prerequisite action (must have clicked and approved), implying it should be used after mcp_login. But lacks explicit when-not-to-use or alternative tool guidance.

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

mcp_loginA

Initiate MCP authentication flow. Provide your REAL JauMemory username and email to start the manual approval process. NOTE: You MUST click the link provided and approve in your browser. Test accounts will not work. Username and email can be optionally set via JAUMEMORY_USERNAME and JAUMEMORY_EMAIL environment variables.

ParametersJSON Schema
NameRequiredDescriptionDefault
usernameNoYour REAL JauMemory username (not a test account). Optional if set in JAUMEMORY_USERNAME env var.
emailNoYour REAL JauMemory email address (must match your registered account). Optional if set in JAUMEMORY_EMAIL env var.

TDQS

A4.3/5.0
Behavior4/5

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

No annotations are present, so the description carries full burden. It discloses manual browser interaction, test account restrictions, and env var support. It does not detail idempotency or side effects, but for a login tool this is reasonable.

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 action and uses three sentences. Some redundancy exists (e.g., repeating 'REAL' for both fields), but overall efficient.

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?

No output schema exists, but the description does not mention what the tool returns (e.g., a link or status). It implies a link is provided but is not explicit, leaving agents guessing about the next step.

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 adds crucial meaning: 'REAL' credentials, 'not a test account', and env var fallback. This goes beyond the schema's basic 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 'Initiate MCP authentication flow' with a specific verb and resource. It distinguishes mcp_login from sibling tools like mcp_authenticate and mcp_logout by focusing on starting the authentication process.

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: requires real JauMemory credentials, manual browser approval, and env var fallback. However, it does not explicitly contrast with mcp_authenticate or state when not to use this tool.

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

mcp_logoutA

Logout and revoke the current MCP session.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description bears full responsibility for disclosing behavior. It states 'revoke,' indicating a destructive action, but does not clarify side effects, such as whether future calls will fail or if re-authentication 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.

Conciseness5/5

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

The description is a single, concise sentence with no unnecessary words. It is appropriately front-loaded and 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 simple tool with no parameters or output schema, the description covers the essential purpose. However, it could note that an active session is required and that the action is irreversible.

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

Parameters4/5

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

There are zero parameters, so the schema provides full coverage. The description adds no parameter information, which is acceptable given the absence of 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 action (logout and revoke) and the resource (MCP session). It effectively distinguishes itself from sibling tools like mcp_login and mcp_authenticate.

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

Usage Guidelines4/5

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

The description implies usage (when you want to end the current session) but provides no explicit guidance on prerequisites, such as needing an active session, 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.

memory_statsA

Get statistics about memories with optional filtering.

Usage Examples: // Get overall stats memory_stats()

// Stats for memories containing "error" memory_stats({ query: "error" })

// Stats for last week memory_stats({ timeRange: { start: "2025-01-17", end: "2025-01-24" } })

// Stats for React-related errors memory_stats({ query: "react error*", minImportance: 0.5 })

// Stats for specific tags memory_stats({ tags: ["bug", "frontend"] })

Returns:

  • Total memory count (filtered)

  • Memory type distribution

  • Top 20 tags with counts

  • Importance distribution

  • Keyword frequency (if applicable)

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoSearch query (supports wildcards with *)
tagsNoFilter by tags
minImportanceNoMinimum importance threshold
timeRangeNo

TDQS

A4.6/5.0
Behavior4/5

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

Without annotations, the description carries the full burden. It discloses return fields (memory count, type distribution, top 20 tags, importance distribution, keyword frequency) and supports wildcards in queries. It does not state performance implications or error handling, but the detailed return structure provides good transparency for a statistical 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 well-structured with a compact introductory sentence followed by labeled usage examples and a clear return list. The examples are repetitive in structure but vary in filter combinations, which is helpful for an agent. Minor redundancy exists (e.g., 'memory_stats' repeated many times), but overall it's efficient for the information density.

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

Completeness5/5

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

Given no output schema, the description compensates fully by listing all return fields (count, type distribution, top 20 tags, importance distribution, keyword frequency). The four examples cover all parameter types (no params, query-only, timeRange, combined params, tags). This is complete for a stats tool with optional filtering.

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% (3 of 4 parameters have descriptions). The description adds value by showing concrete usage patterns for combining parameters (e.g., query + minImportance, tags only), which the schema alone does not convey. The 'query' parameter's wildcard support is mentioned in both schema and description, but the examples clarify behavior.

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 retrieves memory statistics with optional filtering. It distinguishes itself from siblings like 'remember' and 'recall' by focusing on aggregation stats rather than individual memories, and from 'search' by providing structured distributions rather than raw results.

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 includes five usage examples showing when to use different filter combinations (e.g., query, timeRange, tags), implicitly guiding the agent on when to apply each parameter. While no explicit 'when not to use' is given, the examples clearly demonstrate the tool's scope for aggregated statistics, differentiating it from retrieval-oriented siblings.

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

recallB

Search and retrieve memories

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query
limitNoMaximum results

TDQS

B3.1/5.0
Behavior2/5

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

No annotations exist, and the description does not disclose any behavioral traits such as authentication, rate limits, or side effects. It only states the basic function.

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. It is concise but lacks depth; however, for its length it is 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?

The description fails to explain what 'memories' are, how the tool fits among siblings, or any important context like scope or limitations. It is incomplete given the presence of multiple memory-related tools.

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 minimal descriptions ('Search query', 'Maximum results'). The tool description adds no further detail, so it meets the baseline without adding 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 verb 'search and retrieve' and the resource 'memories', making the purpose unambiguous. It distinguishes itself from siblings like 'remember' and 'forget'.

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 'remember' or 'memory_stats'. There is no mention of context or exclusions.

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

rememberB

Store a new memory with optional context and importance scoring

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe memory content to store
contextNoAdditional context for the memory
importanceNoImportance score (0-1)
tagsNoTags for categorization
metadataNoAdditional metadata

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 disclose behavioral traits. It only says 'Store a new memory' without mentioning side effects, idempotency, overwrite behavior, or permissions. The description is insufficient for safe invocation.

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?

Single sentence, 10 words. Front-loaded with the core action. Efficient, though slightly more detail could be added 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 and no annotations. The description does not explain return values, storage behavior, or parameter constraints beyond schema. For a storage tool with 5 parameters, more context is 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 baseline is 3. The description adds minimal value by mentioning 'optional context and importance scoring', but this largely restates what is in the schema. No additional meaning beyond schema.

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

Purpose5/5

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

The description clearly states the action (Store), the resource (a new memory), and optional features (context and importance scoring). It distinguishes from siblings like recall, forget, and memory_stats.

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_to_collection or recall. The description does not mention prerequisites, exclusions, or context of use.

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

remove_from_collectionB

Remove a memory from a collection.

ParametersJSON Schema
NameRequiredDescriptionDefault
collection_idYesUUID of the collection
memory_idYesUUID of the memory to remove

TDQS

B3.2/5.0
Behavior3/5

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

No annotations provided, so description must carry full burden. Describes what the tool does but does not disclose side effects (e.g., whether removal is permanent, if collection or memory is deleted, permissions needed). Baseline score reflects 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.

Conciseness4/5

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

Single sentence with no redundant words. Appropriate length for a simple operation. Could be slightly more concise by removing article 'a', but still good.

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 low complexity (2 parameters, no nested objects, no output schema), the description is minimally complete. However, lacks info on what happens after removal (success, error cases, whether memory still exists elsewhere). An output schema or additional context would help.

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. Description does not add any extra meaning beyond what the schema already provides for the two UUID parameters.

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?

Description uses specific verb+resource structure ('Remove a memory from a collection'). Clear purpose, but does not distinguish from sibling 'delete_collection' which also uses 'delete' action; however, the target ('collection') is different here. Lacks sibling differentiation but still 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 on when to use this tool vs alternatives like 'delete_collection' or 'add_to_collection'. No context about 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.

updateC

Update an existing memory

ParametersJSON Schema
NameRequiredDescriptionDefault
memoryIdYesMemory ID to update
contentNoNew content
importanceNoNew importance

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as whether content is overwritten or merged, side effects, or validation. It only states it updates, which is already implied by the name.

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

Conciseness3/5

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

The description is very short (one sentence), which is concise but lacks important details. It is not overly verbose, but it sacrifices completeness for brevity.

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 no output schema, no annotations, and many sibling tools, the description is insufficient. It does not explain return values, error conditions, or constraints, making it incomplete for an agent to use safely.

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?

Input schema descriptions cover all three parameters clearly (memoryId, content, importance). The description does not add additional meaning beyond the schema, meeting the baseline for full coverage.

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 updates an existing memory, which is a specific verb and resource. However, it does not differentiate from other update tools like update_agent_name or update_collection, though those target different resources.

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 'remember' or 'recall'. No mention of prerequisites 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.

update_agent_nameA

Update an agent's name using the new naming convention.

Usage Examples: // Update an agent's name update_agent_name({ agentId: "DW1", newName: "Documentation Writer:dw1" })

// Change to a different role update_agent_name({ agentId: "ta1", newName: "Test Automation Engineer:tae1" })

Name Format Requirements:

  • Must include both long name and short name

  • Format: "Long Name:shortname"

  • Example: "Backend Developer:bd1"

  • Short names should be 2-4 characters

This allows agents to be reassigned to different roles as they grow and evolve.

ParametersJSON Schema
NameRequiredDescriptionDefault
agentIdYesAgent ID to update
newNameYesNew name in format "Long Name:shortname"

TDQS

A4.5/5.0
Behavior3/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It explains the naming convention and reassignment purpose but does not disclose side effects (e.g., whether old name is preserved, if updates are reversible, or if there are any restrictions on changing names frequently). This is adequate but leaves some questions unanswered.

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

Conciseness5/5

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

The description is well-structured with a clear heading, code examples, and bullet-point format requirements. Every sentence is purposeful and concise. No fluff.

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

Completeness5/5

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

Given the low complexity (2 params, all required, simple types), schema coverage is 100%, and no output schema is needed, the description fully covers what the agent needs to know: how to format the name and the purpose. It is complete for this 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%, so baseline is 3. However, the description adds significant value by providing the exact naming format ('Long Name:shortname'), examples, and character length guidance, which the schema (with just a description string) lacks. This extra detail justifies 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 action ('Update an agent's name') and specifies the resource ('agent'). It distinguishes itself from siblings like 'create_agent' or 'update' by focusing on renaming with a specific convention and providing examples that show it is about reassigning roles, not generic updates.

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 examples and detailed format requirements, including what the newName must contain ('Long Name:shortname') and character length for short names. It also explains the purpose ('reassigned to different roles'), which helps the agent decide when to use this tool instead of 'create_agent' or 'update'.

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

update_collectionC

Update collection details (name and/or description).

ParametersJSON Schema
NameRequiredDescriptionDefault
collection_idYesUUID of the collection
nameNoNew name for the collection (optional)
descriptionNoNew description for the collection (optional)

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 must carry the full burden. It only says 'Update', which implies mutation, but does not disclose whether the operation is destructive, partial updates are allowed, if permissions are needed, or what the response is. The description is too minimal 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.

Conciseness4/5

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

The description is very short, consisting of one sentence. It is front-loaded with the key action. It could be more concise, but it is not overly verbose. However, the brevity may sacrifice completeness.

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

Completeness2/5

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

Given the tool has 3 parameters, no output schema, and no annotations, the description is insufficient. It does not explain what happens when only one parameter is provided, or if the update is incremental or replaces existing values. The tool is simple, but the description lacks 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 100%, so the schema already documents all parameters. The description lists 'name and/or description', adding minimal value beyond the schema. Baseline 3 is appropriate as the description does not add much meaning but does not mislead.

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 'Update' and the resource 'collection details', specifying that it updates name and/or description. It distinguishes itself from sibling tools like 'delete_collection', 'create_collection', and 'add_to_collection' by focusing on mutation of existing collection metadata.

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 'update' (a more generic tool) or other collection-related tools. It does not mention prerequisites, such as requiring the collection to exist, 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.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 25 tool updatesv0.3.3
    • First observedadd_to_collection
    • First observedagent_collaboration
    • First observedagent_error_learning
    • First observedagent_memory
    • First observedagent_reflection
    • First observedanalyze
    • First observedconsolidate
    • First observedconsolidate_collection
    • First observedcreate_agent
    • First observedcreate_collection
    • First observeddelete_collection
    • First observedforget
    • First observedget_collection
    • First observedlist_agents
    • First observedlist_collections
    • First observedmcp_authenticate
    • First observedmcp_login
    • First observedmcp_logout
    • First observedmemory_stats
    • First observedrecall
    • First observedremember
    • First observedremove_from_collection
    • First observedupdate
    • First observedupdate_agent_name
    • First observedupdate_collection

TDQS

A3.5/5.0

Scored across 25 tools

Disambiguation4/5

Most tools have clearly distinct purposes, such as memory CRUD, collection management, and agent operations. However, tools like 'analyze', 'consolidate', and 'consolidate_collection' could cause slight confusion due to overlapping analytical functions, though descriptions help differentiate them.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern, typically using verb_noun structure (e.g., 'add_to_collection', 'create_agent', 'list_collections'). Even simple verbs like 'update' and 'forget' fit the pattern. The 'mcp_' prefix is uniformly used for authentication tools.

Tool Count4/5

The server provides 25 tools covering memory operations, agent management, collections, authentication, and analysis. While slightly above the typical compact range, the number is justified by the breadth of features and each tool serves a specific purpose without unnecessary duplication.

Completeness4/5

The tool set covers full CRUD for memories and collections, agent lifecycle (create, list, update name), and additional agent-specific features like error learning and reflections. Missing an explicit 'delete_agent' tool and bulk operations, but the core workflows are well-supported.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides AI agents with persistent, searchable memory that survives across conversations using semantic search, temporal versioning, and smart organization. Enables long-term context retention and cross-session continuity for AI assistants.
    14
    -
  • F
    license
    A
    quality
    Not graded
    maintenance
    Provides long-term memory storage for AI assistants with semantic search, enabling persistent storage of preferences, decisions, and context with relationship tracking between memories.
    19
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides persistent memory for LLM applications, enabling AI assistants to remember user preferences, facts, and conversation history across sessions.
    1
    -