MCP Server
Connect Engram to any MCP-compatible AI agent
MCP Server
Connect Engram Memory to any AI agent that supports the Model Context Protocol (MCP).
What is MCP?
The Model Context Protocol is an open standard for connecting AI models to external tools and data sources. Instead of custom API integrations, agents discover and call tools through a unified protocol.
Engram ships an MCP server that exposes memory operations as tools. Any MCP-compatible client (Claude Code, Claude Desktop, OpenClaw, Cursor, Windsurf, etc.) can store, search, and manage memories without writing integration code.
MCP Tools
The Engram MCP server exposes 6 tools:
| Tool | Description |
|---|---|
memory_store | Store a new memory with optional category and metadata |
memory_search | Semantic search across stored memories |
memory_recall | Recall relevant memories for a given context (alias for search) |
memory_forget | Delete memories by ID or query match |
memory_consolidate | Merge duplicates and optimize storage |
memory_connect | Health check and connection status |
Transport Types
The server supports multiple transport protocols:
| Transport | URL | Use Case |
|---|---|---|
| Streamable HTTP | http://localhost:8585/mcp | Recommended default. Works with most clients. |
| SSE | http://localhost:8585/mcp/sse | Legacy streaming transport |
| Stdio | Direct process spawn | Local-only, no network required |
| REST | http://localhost:8585/v1/* | Standard REST API fallback |
Claude Code
Add Engram as an MCP tool source in one command:
claude mcp add engram-memory --transport http --url http://localhost:8585/mcp
For the cloud-hosted platform:
claude mcp add engram-memory --transport http \
--url https://api.engrammemory.ai/v1/mcp \
--header "Authorization: Bearer pr_live_xxxxx"
Verify the connection:
claude mcp list
Once added, Claude Code can use memory_store, memory_search, memory_recall, memory_forget, memory_consolidate, and memory_connect as tools in any conversation.
Claude Desktop
Add the following to your Claude Desktop MCP configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json
Local (self-hosted)
{
"mcpServers": {
"engram-memory": {
"transport": "http",
"url": "http://localhost:8585/mcp"
}
}
}
Cloud (platform)
{
"mcpServers": {
"engram-memory": {
"transport": "http",
"url": "https://api.engrammemory.ai/v1/mcp",
"headers": {
"Authorization": "Bearer pr_live_xxxxx"
}
}
}
}
Restart Claude Desktop after editing the config file.
OpenClaw
OpenClaw is the open-source MCP client from the Engram community.
git clone https://github.com/EngramMemory/openclaw.git
cd openclaw
./install.sh
OpenClaw auto-discovers a local Engram MCP server on http://localhost:8585/mcp. To point it at the cloud platform, set:
export ENGRAM_API_KEY="pr_live_xxxxx"
export ENGRAM_BASE_URL="https://api.engrammemory.ai/v1"
Multi-Client Install
For MCP clients that support the npx install-mcp convention:
npx install-mcp engrammemory
This registers the Engram MCP server with the active MCP client (Claude Desktop, Cursor, Windsurf, etc.) using its standard config path.
Docker
Run the full Engram Community Edition stack in a single container:
docker run -d \
--name engram \
-p 8585:8585 \
-p 6333:6333 \
-p 11435:11435 \
-v engram-data:/data \
engrammemory/engram-stack
| Port | Service |
|---|---|
8585 | MCP server + REST API |
6333 | Vector database |
11435 | Embedding service |
Once running, connect any MCP client to http://localhost:8585/mcp.
For full Docker configuration options, see the Self-Hosted Docker Guide.
Verify Connection
From any MCP client, call the memory_connect tool. A successful response looks like:
{
"connected": true,
"latency_ms": 12,
"vector_db": "healthy",
"embedding": "healthy",
"version": "0.2.0"
}
You can also verify with curl:
curl http://localhost:8585/v1/connect
Next Steps
- Self-Hosted Docker Guide — Full deployment and configuration
- Agent Frameworks — LangChain, LlamaIndex, and more
- Python SDK — Programmatic access from Python
- JavaScript SDK — Programmatic access from Node.js/TypeScript