Skip to main content
Glama
you06

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