JauMemory MCP Server
OfficialProvides persistent memory capabilities for GitHub Copilot.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@JauMemory MCP Serversave this for later: meeting with John about Q3 results"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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-serverFrom GitHub
git clone https://github.com/Jau-app/jaumemory-mcp-server.git
cd jaumemory-mcp-server
npm install
npm run buildConfiguration
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
Open Cursor Settings
Navigate to MCP section
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-serverIf 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-serverAdd 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=productionNote: Even with environment variables set, you must still authenticate using the mcp_login tool on first use.
Authentication
First-Time Setup
Launch your AI assistant (Claude Desktop, Cursor, etc.) - the MCP server will start automatically
Use the
mcp_logintool to initiate authenticationClick the approval link that opens in your browser
Complete the authentication in your web browser
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 |
|
Auth |
|
Memory |
|
Agents |
|
Collections |
|
Credential vault |
|
Tool registry |
|
Skills |
|
Toolkit |
|
Scheduling |
|
Berrry integration |
|
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,--reflectionStatus:
--pending,--wip,--done,--blocked [reason]Priority:
--low,--medium,--high,--urgentAssignment:
--assign @agent-name,--notify @agent1,@agent2Context:
--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 lintProject 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 configurationTroubleshooting
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 --forceThen 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-serverSolution 3: Local installation
mkdir C:\JauMemory
cd C:\JauMemory
npm install @jaumemory/mcp-serverThen use in config:
{
"mcpServers": {
"jaumemory": {
"command": "node",
"args": ["C:\\JauMemory\\node_modules\\@jaumemory\\mcp-server\\dist\\index.js"]
}
}
}Authentication Issues
Ensure you have a valid JauMemory account
Check your username and email are correct
Look for the approval link in your browser
Check logs:
LOG_LEVEL=debug npm start
Connection Problems
Verify internet connection
Check if JauMemory service is available at https://mem.jau.app
Ensure firewall allows HTTPS/gRPC connections
Try clearing auth cache and re-authenticating
Claude Integration
Verify MCP configuration in Claude desktop
Restart Claude after configuration changes
Check Claude logs for MCP errors
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.
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Support
Acknowledgments
Built for use with Claude by Anthropic
Uses the Model Context Protocol specification
Powered by JauMemory's high-performance Rust backend
Made with ❤️ for the AI assistant community
Available Tools
25 toolsadd_to_collectionC
Add a memory to a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes | UUID of the collection | |
| memory_id | Yes | ID of the memory to add |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| agentId | Yes | Initiator agent ID | |
| collaboratorId | No | Collaborator agent ID (for start action) | |
| collaborationType | No | Type of collaboration (for start action) | |
| collaborationId | No | Collaboration ID (for complete action) | |
| outcome | No | Outcome (for complete action) | |
| memoryId | No | Related memory ID |
TDQS
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.
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.
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.
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.
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.
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:
First encounter: Agent gets the error signature to recognize it
Second encounter: Agent must solve it or face consequences
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
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| agentId | Yes | Agent ID | |
| errorSignature | No | Unique error identifier (for report) | |
| errorMessage | No | Error message (for report) | |
| contextSnapshot | No | Code/context where error occurred | |
| attemptedSolution | No | What was tried | |
| projectContext | No | Project name | |
| patternId | No | Error pattern ID (for solve/fail) | |
| solution | No | Working solution (for solve) | |
| verificationSteps | No | How to verify the fix |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| agentId | Yes | Agent ID | |
| memoryId | No | Memory ID (for link action) | |
| category | No | Memory category like task, learning, error | |
| projectContext | No | Project name for context | |
| query | No | Search query (for recall action) | |
| limit | No | Max results to return |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action to perform | |
| agentId | Yes | Agent ID | |
| reflectionType | No | Type of reflection | |
| content | No | Reflection content (for create) | |
| lessonsLearned | No | Key takeaways | |
| relatedAgents | No | Other agents involved |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| timeRange | No | Time range to analyze (e.g., "day", "week", "month", "all") |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| similarity_threshold | No | Minimum similarity score to group memories (0.0-1.0, default: 0.7) | |
| min_group_size | No | Minimum number of memories to form a group (default: 2) | |
| archive_originals | No | Archive original memories after consolidation (default: true) | |
| dry_run | No | Preview consolidation without making changes (default: false) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes | UUID of the collection to consolidate | |
| summarize_only | No | Only create a summary without modifying the collection (default: false) | |
| title | No | Title for the consolidated memory (optional) |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Agent name | |
| personalityTraits | No | Personality traits like curious, analytical, creative | |
| specializations | No | Areas of expertise like frontend, backend, testing | |
| updatePrompts | No | Custom prompts for agent updates | |
| id | No | Optional agent ID (if not provided, will be auto-generated) | |
| initialLearningRate | No | Initial learning rate (0.0-1.0, default: 0.5) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the collection | |
| description | No | Description of the collection (optional) | |
| memory_ids | No | Initial memory IDs to add to the collection (optional) |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes | UUID of the collection to delete |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| memoryId | Yes | Memory ID to delete |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes | UUID of the collection |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| auth_token | Yes | The EXACT authentication code shown on the approval webpage after clicking Approve (e.g., "happy-star") | |
| request_id | No | The request ID from mcp_login response (required) |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| username | No | Your REAL JauMemory username (not a test account). Optional if set in JAUMEMORY_USERNAME env var. | |
| No | Your REAL JauMemory email address (must match your registered account). Optional if set in JAUMEMORY_EMAIL env var. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search query (supports wildcards with *) | |
| tags | No | Filter by tags | |
| minImportance | No | Minimum importance threshold | |
| timeRange | No |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| limit | No | Maximum results |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The memory content to store | |
| context | No | Additional context for the memory | |
| importance | No | Importance score (0-1) | |
| tags | No | Tags for categorization | |
| metadata | No | Additional metadata |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes | UUID of the collection | |
| memory_id | Yes | UUID of the memory to remove |
TDQS
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.
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.
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.
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.
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.
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
| Name | Required | Description | Default |
|---|---|---|---|
| memoryId | Yes | Memory ID to update | |
| content | No | New content | |
| importance | No | New importance |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| agentId | Yes | Agent ID to update | |
| newName | Yes | New name in format "Long Name:shortname" |
TDQS
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.
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.
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.
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.
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.
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).
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes | UUID of the collection | |
| name | No | New name for the collection (optional) | |
| description | No | New description for the collection (optional) |
TDQS
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.
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.
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.
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.
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.
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.
25 tool updates
v0.3.3- First observed
add_to_collection - First observed
agent_collaboration - First observed
agent_error_learning - First observed
agent_memory - First observed
agent_reflection - First observed
analyze - First observed
consolidate - First observed
consolidate_collection - First observed
create_agent - First observed
create_collection - First observed
delete_collection - First observed
forget - First observed
get_collection - First observed
list_agents - First observed
list_collections - First observed
mcp_authenticate - First observed
mcp_login - First observed
mcp_logout - First observed
memory_stats - First observed
recall - First observed
remember - First observed
remove_from_collection - First observed
update - First observed
update_agent_name - First observed
update_collection
TDQS
Scored across 25 tools
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.
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.
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.
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
Related MCP Connectors
- memoryOAuthcom.leapmemory
Long-term memory for AI assistants. Isolated per-user storage, recall across conversations.
Gives your AI assistant persistent memory and intelligence about your work patterns.
Persistent personal memory for AI assistants — save, search, and recall across every MCP client.
- AmberOAuthcom.ambermem
Long-term memory for AI assistants. Hybrid retrieval, query expansion, auto-topics.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvides 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-
- FlicenseAqualityNot gradedmaintenanceProvides long-term memory storage for AI assistants with semantic search, enabling persistent storage of preferences, decisions, and context with relationship tracking between memories.19-
- AlicenseBqualityCmaintenanceProvides persistent memory for AI assistants, enabling storage, recall, and analysis of information across conversations with intelligent memory management.5034MIT
- FlicenseNot gradedqualityBmaintenanceProvides persistent memory for LLM applications, enabling AI assistants to remember user preferences, facts, and conversation history across sessions.1-