MCP Quick Start
Every supported client runs the same local server, npx -y @mysten-incubation/memwal-mcp, and differs only in where the configuration lives. Pick your client below, add the server, restart, and sign in.
- Prerequisites
- You need Node.js 20 or later, because the server runs through
npxwith no install step. - You need a Walrus Memory account. An unauthenticated memory-tool call returns sign-in instructions rather than signing you in, so ask the agent to run
memwal_loginand follow the URL it returns to connect your wallet. Config files carry no keys.
Set up your client
| Client | Where the config lives | Setup |
|---|---|---|
| Claude Code | Managed by the CLI | claude mcp add --scope user memwal -- npx -y @mysten-incubation/memwal-mcp, or install the plugin for automatic-memory hooks |
| Claude Desktop | claude_desktop_config.json | Add the JSON block below; see Claude Desktop for the per-OS file path |
| Cursor | ~/.cursor/mcp.json | Add the JSON block below; hooks are optional |
| Codex | ~/.codex/config.toml | Add the TOML block below; hooks need a repo install |
| OpenCode | ~/.config/opencode/opencode.json | Add the OpenCode block below |
| Antigravity | Plugin directory or MCP config | npx degit MystenLabs/MemWal/packages/mcp/plugin ~/.gemini/config/plugins/memwal, or the JSON block; see Antigravity |
After any of these, restart the client (MCP servers load at startup) and ask the agent to run memwal_login.
Config blocks
Every client runs the same server and differs only in the file format. The server entry is the canonical configuration from the packages/mcp README, and a CI check keeps every copy in these docs in sync with it.
- JSON clients
- Codex
- OpenCode
Claude Desktop, Cursor, and Antigravity's MCP config all take this shape:
{
"mcpServers": {
"memwal": {
"command": "npx",
"args": ["-y", "@mysten-incubation/memwal-mcp"]
}
}
}
Codex reads ~/.codex/config.toml:
[mcp_servers.memwal]
command = "npx"
args = ["-y", "@mysten-incubation/memwal-mcp"]
OpenCode reads ~/.config/opencode/opencode.json:
{
"mcp": {
"memwal": {
"type": "local",
"command": ["npx", "-y", "@mysten-incubation/memwal-mcp"],
"enabled": true
}
}
}
Configure a namespace
Every recall runs inside one account and namespace. To keep a client's memories in their own space, set the MEMWAL_NAMESPACE environment variable in the server entry (env in JSON configs, environment in OpenCode), or pass "--namespace", "<name>" in args. Without it, memories go to the default namespace.
Verify
- Open your client's MCP status view (for example
/mcpin Claude Code) and confirm the status view listsmemwalas connected with its tools. - Ask the agent to run
memwal_health; it returns a fast connectivity check against the relayer. - State a durable fact, for example a package-manager preference, confirm the agent calls
memwal_remember, then start a fresh session and confirmmemwal_recallfinds it.
If a step fails, run npx -y @mysten-incubation/memwal-mcp --help in a terminal to surface the real error, and set MEMWAL_MCP_DEBUG=1 in the server's environment for verbose logging. The Claude Code page carries the full troubleshooting FAQ; the errors apply to every client.