
Research
/Security News
CanisterWorm: npm Publisher Compromise Deploys Backdoor Across 29+ Packages
The worm-enabled campaign hit @emilgroup and @teale.io, then used an ICP canister to deliver follow-on payloads.
memory-agent-mcp
Advanced tools
Universal memory management MCP server for AI assistants. Provides persistent, semantic memory capabilities to Claude Desktop, Cursor, Windsurf, VS Code, and other MCP clients.
A Model Context Protocol (MCP) server with persistent memory capabilities for AI assistants like Claude, Cursor, and Windsurf.
The fastest way to get started with Memory-Agent MCP:
# Install globally
npm install -g @memory-agent/mcp-server
# Or use with npx (no installation required)
npx @memory-agent/mcp-server
# Check version
memory-agent-mcp --version
# View help
memory-agent-mcp --help
MEMORY_PROJECT_ROOT: Project root directory (default: current working directory)MEMORY_MODE: Operation mode - 'full' or 'lite' (default: 'full')MEMORY_DB_PATH: Database file path (default: .memory/memory.db)# Start in lite mode (no AI model required)
MEMORY_MODE=lite npx @memory-agent/mcp-server
# Use custom database location
MEMORY_DB_PATH=/path/to/memory.db npx @memory-agent/mcp-server
Memory-Agent MCP provides a universal memory layer for AI coding assistants, enabling them to:
# Install globally
npm install -g @memory-agent/mcp-server
# Or with yarn
yarn global add @memory-agent/mcp-server
# Or with pnpm
pnpm add -g @memory-agent/mcp-server
# Clone the repository
git clone <repository-url>
cd memory-agent-mcp
# Install dependencies
bun install
# Setup development environment
bun run setup
# Run tests to verify installation
bun test
# Start development server with hot reload
bun run dev
# Run tests in watch mode
bun test --watch
# Type checking
bun run typecheck
# Linting
bun run lint
The server implements the Model Context Protocol and can be used with any MCP-compatible client:
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"memory-agent": {
"command": "bun",
"args": ["run", "/path/to/memory-agent-mcp/src/index.ts"],
"env": {
"MEMORY_PROJECT_ROOT": "/path/to/your/project",
"MEMORY_MODE": "full"
}
}
}
}
Add to your Cursor settings:
{
"mcp": {
"servers": {
"memory-agent": {
"command": "bun",
"args": ["run", "/path/to/memory-agent-mcp/src/index.ts"],
"cwd": "/path/to/your/project"
}
}
}
}
| Variable | Description | Default |
|---|---|---|
MEMORY_MODE | Operation mode (full or lite) | full |
MEMORY_PROJECT_ROOT | Project root directory | process.cwd() |
MEMORY_DB_PATH | Database file path | .memory/memory.db |
LOG_LEVEL | Logging level (ERROR, WARN, INFO, DEBUG) | INFO |
DEBUG | Enable debug mode | false |
Memory-Agent MCP works best when combined with a system prompt that instructs the AI to automatically use memory tools. We provide ready-to-use templates:
Located in the prompts/ directory:
prompts/system-prompt.md - Full AI Mode with semantic searchprompts/system-prompt-lite.md - Lite Mode with keyword searchprompts/README.md - Detailed usage instructionsFor Claude Desktop, add the system prompt in Settings → System Prompt:
[Paste contents of prompts/system-prompt.md here]
See prompts/README.md for detailed configuration examples for all supported clients.
The server provides 12 MCP tools:
memory-agent-mcp/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # MCP server setup
│ ├── tools/ # MCP tool implementations
│ │ ├── store.ts
│ │ ├── query.ts
│ │ └── ...
│ ├── core/ # Core business logic
│ │ ├── memory-store.ts
│ │ ├── embedder.ts
│ │ └── distiller.ts
│ ├── errors/ # Error handling
│ │ ├── types.ts
│ │ ├── wrap.ts
│ │ └── index.ts
│ ├── types/ # TypeScript definitions
│ │ ├── memory.ts
│ │ ├── mcp.ts
│ │ └── index.ts
│ └── utils/ # Utility functions
│ ├── logger.ts
│ ├── toon.ts
│ └── id.ts
├── tests/
│ ├── unit/ # Unit tests
│ │ ├── errors/
│ │ └── utils/
│ ├── integration/ # Integration tests
│ ├── fixtures/ # Test fixtures
│ │ └── memories.ts
│ └── helpers/ # Test utilities
│ ├── test-db.ts
│ └── mocks.ts
├── kanban/ # Task management
│ └── dev/
├── agent/ # Agent definitions
│ ├── dev-agent.md
│ └── qa-agent.md
├── skill/ # Technical documentation
│ ├── typescript.md
│ ├── bun.md
│ └── mcp-protocol.md
├── workflow/ # Workflow documentation
│ ├── development.md
│ └── testing.md
├── package.json
├── tsconfig.json
└── biome.json
The project uses Bun's built-in test runner with a comprehensive test suite:
# Run all tests
bun test
# Run specific test file
bun test tests/unit/errors/types.test.ts
# Run with coverage
bun test --coverage
# Run in watch mode
bun test --watch
# Run only unit tests
bun test tests/unit/
# Run only integration tests
bun test tests/integration/
| Component | Minimum Coverage |
|---|---|
| Core Logic | 90% |
| Tools | 85% |
| Utils | 80% |
| Integration | 70% |
import { describe, test, expect, beforeEach } from "bun:test";
import { memoryStore } from "../../src/tools/store";
describe("memory_store", () => {
test("should store valid memory", async () => {
const result = await memoryStore({
content: "Test memory",
topic: "test"
});
expect(result.isError).toBeUndefined();
const data = JSON.parse(result.content[0].text!);
expect(data.success).toBe(true);
});
});
main # Production-ready code
develop # Integration branch
feature/* # New features
fix/* # Bug fixes
refactor/* # Code improvements
<type>(<scope>): <description>
Types: feat, fix, refactor, docs, test, chore
Scope: tool, core, db, api, etc.
Examples:
feat(interceptor): add memory_enhance_prompt tool
fix(query): resolve timeout on large datasets
test(errors): add comprehensive error type tests
# Run all checks
bun run precommit
# This runs:
# 1. Type checking
# 2. Linting
# 3. All tests
# Enable debug logging
DEBUG=memory-agent:* bun run dev
# Verbose MCP protocol logging
MCP_DEBUG=true bun run dev
# Run tests with verbose output
bun test --verbose
| Issue | Solution |
|---|---|
| Database locked | rm -rf .memory/memory.db-wal .memory/memory.db-shm |
| Type errors | rm -rf node_modules bun.lockb && bun install |
| Tests failing | Check database state, reset test DB |
typescript.md - TypeScript best practicesbun.md - Bun runtime patternsmcp-protocol.md - MCP implementation guidedevelopment.md - Development processtesting.md - Testing strategydev-agent.md - Development agentqa-agent.md - QA agentWe welcome contributions! Please see our development workflow:
kanban/dev/src/errors/src/utils/logger.tsMIT
Status: 🚧 Phase 1 - Core Stability (In Progress)
Version: 0.1.0
Last Updated: 2025-01-19
FAQs
Universal memory management MCP server for AI assistants. Provides persistent, semantic memory capabilities to Claude Desktop, Cursor, Windsurf, VS Code, and other MCP clients.
We found that memory-agent-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
The worm-enabled campaign hit @emilgroup and @teale.io, then used an ICP canister to deliver follow-on payloads.

Research
/Security News
Attackers compromised Trivy GitHub Actions by force-updating tags to deliver malware, exposing CI/CD secrets across affected pipelines.

Security News
ENISA’s new package manager advisory outlines the dependency security practices companies will need to demonstrate as the EU’s Cyber Resilience Act begins enforcing software supply chain requirements.