Skip to content

Claude Desktop emem, the verifiable memory protocol for the physical world Prompt/carry_state

How to: Claude Desktop emem, the verifiable memory protocol for the physical world carry_state

client:Claude Desktop transport:streamable-http prompt:carry_state

Add emem, the verifiable memory protocol for the physical world to Claude Desktop

  1. 01

    Open ~/Library/Application Support/Claude/claude_desktop_config.json and merge this in. Keep any servers already there.

{
  "mcpServers": {
    "emem": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://emem.dev/mcp"
      ]
    }
  }
}
  1. 02

    Save the file and restart Claude Desktop.

  2. 03

    carry_state is surfaced in the attachment menu, under the server's name. Unlike a tool, you invoke it deliberately — Claude Desktop will not call it for you.

  3. 04

    If it does not appear, check that emem, the verifiable memory protocol for the physical world is connected and that you are looking at its prompts rather than its tools.

Claude Desktop has no remote transport in its config file, so this bridges through mcp-remote. Restart the app after saving. Claude Desktop docs

Set these first

emem, the verifiable memory protocol for the physical world will not start until these are set, so it never reaches Claude Desktop.

  • PORT
  • EMEM_BIND
  • EMEM_DATA
  • EMEM_PUBLIC_URL
  • EMEM_TLS_DOMAINS

Same prompt, other clients

Read from the server itself, by connecting to it and calling prompts/list on 24 September 2026. A listing does not declare its prompts, so asking is the only way to know them, and this is what the server actually offers rather than what its listing claims. Names only are stored; connect the server for each prompt's arguments.