Skip to main content
Glama
JauMemory MCP Server

JauMemory MCP Server

Official
by Jau-app

JauMemory MCP Server

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

Features

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

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

  • 📊 Pattern Analysis: Automatically detect patterns and extract insights

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

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

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

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

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

Related MCP server: Recall

Prerequisites

  • Node.js 18.0.0 or higher

  • npm or yarn

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

Installation

From NPM

npm install -g @jaumemory/mcp-server

From GitHub

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

Configuration

Claude Desktop

Add to your Claude desktop configuration file:

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

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

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

Claude Code

Add to your Claude Code configuration:

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

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

Cursor

  1. Open Cursor Settings

  2. Navigate to MCP section

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

Or edit configuration file:

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

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

Cline

Installation (Required):

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

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

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

  • macOS/Linux: Install in your terminal of choice

npm install -g @jaumemory/mcp-server

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

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

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

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

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

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

Windsurf

Add to Windsurf MCP configuration:

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

GitHub Copilot

Add to GitHub Copilot MCP settings:

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

ChatGPT (Plus/Pro Required)

Add to ChatGPT MCP configuration:

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

Advanced Configuration (Optional)

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

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

# Optional: Logging configuration
LOG_LEVEL=info
NODE_ENV=production

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

Authentication

First-Time Setup

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

  2. Use the mcp_login tool to initiate authentication

  3. Click the approval link that opens in your browser

  4. Complete the authentication in your web browser

  5. The server will automatically store your credentials securely

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

Usage

MCP Tools Available

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

Category

Tools

Discovery

search, fetch, get_guide

Auth

mcp_login, mcp_authenticate, mcp_logout

Memory

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

Agents

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

Collections

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

Credential vault

vault_store, vault_list, vault_rotate

Tool registry

tool_create, tool_list, tool_render, tool_update, tool_call

Skills

skill_create, skill_list, skill_render, skill_execute

Toolkit

toolkit_search

Scheduling

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

Berrry integration

berrry_register_tool, berrry_create_tool

Highlights with examples:

Core Memory Tools

remember - Store a new memory with automatic classification

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

recall - Search and retrieve memories

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

forget - Delete a specific memory

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

update - Update an existing memory

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

Analysis Tools

analyze - Analyze patterns and extract insights

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

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

memory_stats - Get statistics about memories

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

Multi-Agent Features

create_agent - Create an AI agent with personality

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

agent_error_learning - Two-strike error learning for agents

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

Shortcuts System

Quick memory creation with metadata flags:

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

Available shortcuts:

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

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

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

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

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

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

Memory Types

JauMemory automatically classifies memories:

  • 🔴 Error: Problems and bugs encountered

  • ✅ Solution: Fixes and resolutions

  • 💡 Insight: Patterns and realizations

  • ❓ Question: Unknowns and research needs

Development

# Install dependencies
npm install

# Run in development mode
npm run dev

# Build for production
npm run build

# Run tests
npm test

# Lint code
npm run lint

Project Structure

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

Troubleshooting

Windows Installation Issues

If you encounter TAR_ENTRY_ERROR errors on Windows when using npx:

Solution 1: Use global installation

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

Then update your config to use the global command:

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

Solution 2: Clear npm cache

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

Solution 3: Local installation

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

Then use in config:

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

Authentication Issues

  1. Ensure you have a valid JauMemory account

  2. Check your username and email are correct

  3. Look for the approval link in your browser

  4. Check logs: LOG_LEVEL=debug npm start

Connection Problems

  1. Verify internet connection

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

  3. Ensure firewall allows HTTPS/gRPC connections

  4. Try clearing auth cache and re-authenticating

Claude Integration

  1. Verify MCP configuration in Claude desktop

  2. Restart Claude after configuration changes

  3. Check Claude logs for MCP errors

  4. Ensure Node.js version is 18.0.0 or higher

Security

  • Authentication uses secure MCP approval flow

  • Credentials are encrypted and stored securely

  • All communication uses HTTPS/TLS

  • No sensitive data is logged

Contributing

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

  1. Fork the repository

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

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

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

  5. Open a Pull Request

License

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

Support

Acknowledgments


Made with ❤️ for the AI assistant community

Available Tools

25 tools
add_to_collectionC

Add a memory to a collection.

Inputs: collection_id (required), memory_id (required).

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

Inputs: action (required), agentId (required), collaboratorId, collaborationType, +3 more.

agent_error_learningA

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

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

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

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

The 2-Strike Protocol:

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

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

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

Response Types:

  • first_occurrence: New error, pattern ID provided

  • solution_found: Previous solution exists

  • previous_attempts_failed: Shows attempt count (pressure!)

  • new_problem: Similar to other errors but unique

Inputs: action (required), agentId (required), errorSignature, errorMessage, +6 more.

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

Inputs: action (required), agentId (required), memoryId, category, +3 more.

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

Inputs: action (required), agentId (required), reflectionType, content, +2 more.

analyzeB

Analyze memory patterns and extract insights

Inputs: timeRange.

consolidateB

Consolidate similar memories into insights based on semantic similarity

Inputs: similarity_threshold, min_group_size, archive_originals, dry_run.

consolidate_collectionB

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

Inputs: collection_id (required), summarize_only, title.

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

Inputs: name (required), personalityTraits, specializations, updatePrompts, +2 more.

create_collectionC

Create a new collection for organizing memories.

Inputs: name (required), description, memory_ids.

delete_collectionA

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

Inputs: collection_id (required).

forgetB

Delete a specific memory

Inputs: memoryId (required).

get_collectionB

Get details of a specific collection including all its memories.

Inputs: collection_id (required).

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

Inputs: status.

list_collectionsB

List all your collections.

Inputs: no named parameters.

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.

Inputs: auth_token (required), request_id.

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.

Inputs: username, email.

mcp_logoutA

Logout and revoke the current MCP session.

Inputs: no named parameters.

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)

Inputs: query, tags, minImportance, timeRange.

recallB

Search and retrieve memories

Inputs: query (required), limit.

rememberB

Store a new memory with optional context and importance scoring

Inputs: content (required), context, importance, tags, +1 more.

remove_from_collectionB

Remove a memory from a collection.

Inputs: collection_id (required), memory_id (required).

updateC

Update an existing memory

Inputs: memoryId (required), content, importance.

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.

Inputs: agentId (required), newName (required).

update_collectionC

Update collection details (name and/or description).

Inputs: collection_id (required), name, description.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 25 tools

    Disambiguation4/5

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

    Naming Consistency5/5

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

    Tool Count4/5

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

    Completeness4/5

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

    Related MCP Connectors

    Related MCP Servers

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