mem9 MCP Server
by you06
README.md
# @mem9/mcp-server
Universal MCP Server for mem9 memory service. One server, all platforms.
## Quick Start
```bash
# Requires a running mnemo-server and API key
git clone https://github.com/you06/mem9-mcp.git
cd mem9-mcp
npm install
```
### Environment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| `MEM9_API_KEY` | Yes | - | API key for authentication (also serves as tenant ID) |
| `MEM9_API_URL` | No | `https://api.mem9.ai` | mnemo-server base URL |
| `MEM9_AGENT_ID` | No | auto-detected | Agent identifier |
| `MEM9_LOG_LEVEL` | No | `info` | Log level: debug, info, warn, error |
| `MEM9_TIMEOUT_MS` | No | `10000` | HTTP request timeout (ms) |
| `MEM9_SEARCH_LIMIT` | No | `10` | Default search result limit |
Agent ID is auto-detected from platform environment variables (`CURSOR_WORKSPACE`, `CLAUDE_CODE_VERSION`, `CODEX_CLI_VERSION`).
## Tools
| Tool | Description |
|------|-------------|
| `memory_store` | Store a new memory (processed via fact extraction) |
| `memory_search` | Search memories by semantic similarity and keywords |
| `memory_get` | Retrieve a specific memory by ID |
| `memory_update` | Update an existing memory (direct field update) |
| `memory_delete` | Delete a memory |
## Development
```bash
npm install
npm run build
npm test
```
### Local Testing with Claude Code / Codex
Before publishing, you can test the MCP server locally by pointing to the built entry file:
**Claude Code:**
```bash
claude mcp add mem9 -e MEM9_API_KEY=your-key -e MEM9_API_URL=http://localhost:8080 -- node /path/to/mem9-mcp/dist/index.js
```
Or in `.mcp.json`:
```json
{
"mcpServers": {
"mem9": {
"command": "node",
"args": ["/path/to/mem9-mcp/dist/index.js"],
"env": {
"MEM9_API_URL": "http://localhost:8080",
"MEM9_API_KEY": "your-key"
}
}
}
}
```
**Codex:**
```bash
codex mcp add mem9 -- node /path/to/mem9-mcp/dist/index.js
```
Or in `.codex/config.toml`:
```toml
[mcp_servers.mem9]
command = "node"
args = ["/path/to/mem9-mcp/dist/index.js"]
[mcp_servers.mem9.env]
MEM9_API_URL = "http://localhost:8080"
MEM9_API_KEY = "your-key"
```
After code changes, run `npm run build` and restart the MCP client to pick up the new build.
## Platform Setup
### Cursor
Settings > Features > MCP Servers:
```json
{
"mcpServers": {
"mem9": {
"command": "npx",
"args": ["-y", "@mem9/mcp-server"],
"env": {
"MEM9_API_URL": "http://localhost:8080",
"MEM9_API_KEY": "your-key"
}
}
}
}
```
### Claude Code
```bash
claude mcp add mem9 -- npx -y @mem9/mcp-server
```
Or in `.mcp.json`:
```json
{
"mcpServers": {
"mem9": {
"command": "npx",
"args": ["-y", "@mem9/mcp-server"],
"env": {
"MEM9_API_URL": "http://localhost:8080",
"MEM9_API_KEY": "your-key"
}
}
}
}
```
### OpenAI Codex
```bash
codex mcp add mem9 -- npx -y @mem9/mcp-server
```
Or in `.codex/config.toml`:
```toml
[mcp_servers.mem9]
command = "npx"
args = ["-y", "@mem9/mcp-server"]
[mcp_servers.mem9.env]
MEM9_API_URL = "http://localhost:8080"
MEM9_API_KEY = "your-key"
```
## License
Apache-2.0
TDQS
A4.4/5.0
Scored across 5 tools
Disambiguation5/5
Each tool targets a distinct operation: create (store), read (get/search), update, and delete. There is no overlap between retrieving by ID, searching, storing, updating, or deleting.
Naming Consistency5/5
All tool names follow the same verb_noun pattern: memory_get, memory_delete, memory_store, memory_search, memory_update. Consistent and predictable.
Tool Count5/5
Five tools is well-scoped for a memory server. It covers all core operations without unnecessary bloat or missing essentials.
Completeness5/5
The tool set provides full CRUD coverage (store, get, update, delete) plus search, which is the complete lifecycle for a memory service. No obvious gaps.
Maintenance
ActivityInactive
ResponsivenessNo issues