--- title: "Connect OpenClaw, Hermes or DeepSeek Harness" type: reference tags: [signpost, docs, reference] proposed_by: tok_bc09b340db294c709763789154d8113d model: kmem-docs-publisher extracted_at: "2026-10-08T22:34:34.769Z" --- # Connect OpenClaw, Hermes or DeepSeek Harness These three agent harnesses connect to kmem over MCP with a token. Each one keeps its settings in a different file. The Connect screen marks all three **Not yet tested with kmem**. The steps on this page come from the documentation of each harness. For each harness, create a connection first: 1. In kmem, select **Connect**. The **MCP** tab opens. 2. Select the harness in the list of clients. 3. Check the **New connection** form. kmem fills in a name, for example "OpenClaw · Maya · 8 Oct". You can change it. Then select **Create connection**. 4. Copy the token now. kmem shows it only one time. [Create a connection](./110-connect-agents.md#create-a-connection) explains each field. Each configuration on this page names the server `-kmem`, for example `acme-kmem`. Each org has its own server name, so one computer can hold the kmem of more than one org. ## OpenClaw OpenClaw keeps its settings in `~/.openclaw/openclaw.json`. The file uses JSON5, which allows comments and a comma after the last item. OpenClaw reads the token from the variable `KMEM_TOKEN`, so the file holds no token. ![The OpenClaw tab in Connect, with the configuration for OpenClaw.](/guide/180-openclaw.webp) 1. Under **Configuration for OpenClaw**, select **Copy configuration**. 2. Merge the configuration into `~/.openclaw/openclaw.json`. If the file already has `mcp.servers`, add only the `acme-kmem` entry. Keep your other servers. 3. Set `KMEM_TOKEN` to the token of the connection, in the environment that starts OpenClaw. For example, add `export KMEM_TOKEN="YOUR_TOKEN"` to your shell profile. 4. Start OpenClaw again. 5. Run `openclaw mcp probe acme-kmem`. The command connects to kmem and counts its tools. 6. Send the check prompt. The configuration looks like this: ```json5 kmem:openClaw { mcp: { servers: { "acme-kmem": { url: "https://acme.kmem.app/mcp", transport: "streamable-http", headers: { Authorization: "Bearer ${KMEM_TOKEN}" }, }, }, }, } ``` Replace acme with your org's subdomain, in the server name and in the endpoint. The Connect screen fills it in for you. Keep the quotation marks around the server name, because JSON5 needs them for a name with a hyphen. Keep `${KMEM_TOKEN}` as it is. OpenClaw puts the value of the variable there. If the probe finds no tools, check two things. The environment of OpenClaw must have a value in `KMEM_TOKEN`, and the connection must be active. ## Hermes Hermes keeps its MCP servers in `~/.hermes/config.yaml`. ![The Hermes tab in Connect, with the configuration for Hermes.](/guide/180-hermes.webp) 1. Under **Configuration for Hermes**, select **Copy configuration**. 2. Merge the configuration into `~/.hermes/config.yaml`. If the file already has `mcp_servers`, add only the `acme-kmem` entry below it. Keep your other servers. 3. In Hermes, run `/reload-mcp`. 4. Send the check prompt. The configuration looks like this: ```yaml kmem:hermes mcp_servers: acme-kmem: url: "https://acme.kmem.app/mcp" headers: Authorization: "Bearer YOUR_TOKEN" ``` Replace acme with your org's subdomain, in the server name and in the endpoint. Replace YOUR_TOKEN with the token of your connection. The Connect screen fills in these values for you. YAML uses spaces for its structure. Keep the indentation exactly as it is. Do not use tabs. The file holds your token. Keep it private. ## DeepSeek Harness DeepSeek Harness reads MCP servers through its MCP client plugin. You add kmem as an entry in the patch file `$DSH_HOME/cordis.patch.yml`. DeepSeek Harness reads the token from the variable `KMEM_TOKEN`. ![The DeepSeek Harness tab in Connect, with the entry for its MCP client plugin.](/guide/180-deepseek.webp) 1. Under **Configuration for DeepSeek Harness**, select **Copy configuration**. 2. Merge the entry into `$DSH_HOME/cordis.patch.yml`. If the file already holds a list, add the entry to that list. 3. Set `KMEM_TOKEN` to the token of the connection, in the environment that starts DeepSeek Harness. 4. Start DeepSeek Harness again, for example with `dsh web`. It reads the patch file when it starts. 5. Open a new session. 6. Send the check prompt. The entry looks like this: ```yaml kmem:deepSeek - insert: - id: mcp-acme-kmem name: '@deepseek-ai/dsh-mcp-client' config: serverName: acme-kmem transport: streamable-http url: "https://acme.kmem.app/mcp" headers: Authorization: !!js "'Bearer ' + process.env.KMEM_TOKEN" ``` Replace acme with your org's subdomain, in the entry ID, in the server name and in the endpoint. The Connect screen fills it in for you. The last line builds the header from `KMEM_TOKEN` when DeepSeek Harness starts. Keep it as it is. ## Check each harness Send this check prompt in a new session of the harness: ```text kmem:check-prompt Use kmem to list the docs I can access. If there are none, say so. ``` Then, in kmem, select **Check connection**. The three checks must show **Seen**. Read [Check a connection](./110-connect-agents.md#check-a-connection). ## Next steps - [Connect Gemini](./190-connect-gemini.md) - [Use Quick Connect and other clients](./200-use-quick-connect-and-other-clients.md) - [Troubleshooting](./250-troubleshooting.md)