# Clients overview

> Which assistants connect to MMW, how they connect, and what you get in each.

On this page you will learn which clients work with MMW, which connection method to choose and how the methods differ. Step-by-step instructions are on each client's page.

## Three ways to connect

```text
 1. Local agent                 2. Direct HTTP               3. OAuth connector
 ──────────────                 ──────────────               ─────────────────
 client                         client                       claude.ai / ChatGPT
   │ stdio                        │ HTTPS                       │ HTTPS
 mmw-agent (uvx)                  │ Authorization:              │ client's own token
   │ HTTPS, MMW_API_KEY           │ Bearer mmw_…                │ (sign-in on an MMW page)
   ▼                              ▼                             ▼
                     MMW server  https://mcp.mmwhub.tech/mcp
```

| Method | How it works | What you get |
|---|---|---|
| **Local agent mmw-agent** | The client starts the agent with `uvx`; the agent forwards calls to the server. Requires Python 3.11+ and uv. | Every server tool, the `mmw_sync_status` tool, and Claude Code and Codex session history upload (only with your consent). If the server is unreachable at start-up, the client does not fail. |
| **Direct HTTP** | The client config holds the server URL and an `Authorization: Bearer mmw_…` header. | Every server tool. No session history and no `mmw_sync_status`. Nothing to install. |
| **OAuth connector** | The web client opens an MMW page, you paste your API key, and the client receives its own token. | Every server tool. Your key is not shared with the client. |

The server tools are the same in every method: `remember`, `search`, `forget`, `validate_memory`, `gateway_call`, plus the tools of integrations connected to the key's project.

## Clients

| Client | Recommended method | Alternative | Session history |
|---|---|---|---|
| [Claude Code](/clients/claude-code/) | Local agent | Direct HTTP | Yes, with consent |
| [Claude Desktop](/clients/claude-desktop/) | Local agent | — | No |
| [claude.ai](/clients/claude-web/) | OAuth connector | — | No |
| [ChatGPT](/clients/chatgpt/) | OAuth connector in developer mode (beta) | — | No |
| [Cursor](/clients/cursor/) | Local agent | Direct HTTP | No |
| [Codex](/clients/codex/) | Local agent | Direct HTTP, if your Codex version supports remote servers | Yes, with consent |
| [VS Code](/clients/vscode/) | Direct HTTP | — | No |
| [Other MCP clients](/clients/other-mcp/) | Direct HTTP | Local agent, if the client runs stdio servers | No |
| [Telegram bot](/clients/telegram/) | Linking in your account | — | Not applicable |

Session history is uploaded only for Claude Code and Codex: the agent reads their session files on your computer. Search over uploaded sessions is not available yet.

The server is stateless: every request stands on its own. After a pause, a laptop sleep or a network drop there is nothing to reconnect.

## One key or several

All clients using the same key see the same memory. If a key is bound to a project, the client sees only that project. A handy setup is one key per computer: if a laptop is lost, you revoke one key and every other client keeps working. See [API keys and OAuth](/account/api-keys-and-oauth/).

A key grants access to the project's memory. Keep it out of repositories: if a client config lives in the project (for example `.cursor/mcp.json` or `.vscode/mcp.json`), add it to `.gitignore` or use the global config.

## What's next
