-
Notifications
You must be signed in to change notification settings - Fork 141
feat(mcp): add OpenClaw MCP bridge plugin #1412
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: dev
Are you sure you want to change the base?
Changes from all commits
2ba7d93
c1ac23a
9976f75
fbd9516
55715ed
ba8d2ef
b02e1e3
899c0a5
35eb14b
2e18dfe
b4cd758
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -65,7 +65,7 @@ Dimensional is agent native -- "vibecode" your robots in natural language and bu | |
| <tr> | ||
| <td align="center" width="50%"> | ||
| <h3><a href="docs/capabilities/agents/readme.md">Agentive Control, MCP</a></h3> | ||
| "hey Robot, go find the kitchen"<br><a href="https://x.com/stash_pomichter/status/2015912688854200322">Watch video</a> | ||
| "hey Robot, go find the kitchen"<br><a href="https://x.com/stash_pomichter/status/2015912688854200322">Watch video</a><br><a href="dimos/agents/mcp/README.md">Run with OpenClaw</a> | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "Roboclaw" |
||
| </td> | ||
| <td align="center" width="50%"> | ||
| <h3>Spatial Memory</a></h3> | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -1,55 +1,142 @@ | ||||||||||||||
| # DimOS MCP Server | ||||||||||||||
| # DimOS MCP Server with OpenClaw | ||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. dimOS MCP Server OR openclaw. we support mcp wihtout openclaw of course need to make clear |
||||||||||||||
|
|
||||||||||||||
| Expose DimOS robot skills to Claude Code via Model Context Protocol. | ||||||||||||||
| The OpenClaw plugin lives at `dimos/web/plugin_openclaw/`. It bridges DimOS MCP tools into the OpenClaw agent system. | ||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We can't have Openclaw take over the MCP readme. Revert all the changes to this file and add "Roboclaw" readme to the botton or put roboclaw readme as a seperate readme.
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. pushed MCP readme to bottom and added Openclaw instructions on the top. Nothing is removed. |
||||||||||||||
|
|
||||||||||||||
| ## Setup | ||||||||||||||
| ## How It Works | ||||||||||||||
|
|
||||||||||||||
| 1. DimOS starts a FastAPI MCP server on port 9990, exposing robot skills as JSON-RPC tools | ||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There's no need to mention FastAPI. It would be more useful to mention the transport used.
|
||||||||||||||
| 2. The OpenClaw plugin discovers these tools on startup and registers them with the OpenClaw agent | ||||||||||||||
| 3. User sends natural language commands via OpenClaw, which the agent translates into MCP tool calls | ||||||||||||||
| 4. Flow: User → OpenClaw Agent → Plugin → HTTP/JSON-RPC → DimOS MCP → Robot | ||||||||||||||
|
|
||||||||||||||
| ## Prerequisites | ||||||||||||||
|
|
||||||||||||||
| If you haven't cloned and installed DimOS yet, follow the [main README](../../README.md) first. | ||||||||||||||
|
|
||||||||||||||
| Install pnpm: | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| curl -fsSL https://get.pnpm.io/install.sh | sh - | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| ## Terminal 1 — DimOS MCP server | ||||||||||||||
|
|
||||||||||||||
| Install dependencies: | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| uv sync --extra base --extra unitree | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| Add to Claude Code (one command) | ||||||||||||||
| For hardware (set `ROBOT_IP` in your environment): | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| claude mcp add --transport http --scope project dimos http://localhost:9990/mcp | ||||||||||||||
| export ROBOT_IP=<YOUR_ROBOT_IP> | ||||||||||||||
| uv run dimos run unitree-go2-agentic-mcp | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| For simulation: | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| uv run dimos --simulation run unitree-go2-agentic-mcp | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| Verify that it was added: | ||||||||||||||
| ## Terminal 2 — OpenClaw gateway | ||||||||||||||
|
|
||||||||||||||
| First time only — install and configure the plugin: | ||||||||||||||
|
Comment on lines
+43
to
+45
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Em dashes are signs that the docs were AI generated.
Suggested change
|
||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| claude mcp list | ||||||||||||||
| cd dimos/web/plugin_openclaw | ||||||||||||||
| pnpm install | ||||||||||||||
| pnpm openclaw plugins install -l . | ||||||||||||||
| pnpm openclaw config set plugins.entries.dimos.enabled true | ||||||||||||||
| pnpm openclaw config set gateway.mode local | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| ## MCP Inspector | ||||||||||||||
| Set your API keys (first time only): | ||||||||||||||
|
|
||||||||||||||
| If you want to inspect the server manually, you can use MCP Inspector. | ||||||||||||||
| ```bash | ||||||||||||||
| echo "ANTHROPIC_API_KEY=<YOUR_KEY>" >> ~/.openclaw/.env | ||||||||||||||
| echo "OPENCLAW_GATEWAY_TOKEN=<YOUR_TOKEN>" >> ~/.openclaw/.env # can be any string, e.g. "test1" | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| Install it: | ||||||||||||||
| Start the gateway: | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| npx -y @modelcontextprotocol/inspector | ||||||||||||||
| cd dimos/web/plugin_openclaw | ||||||||||||||
| pnpm openclaw gateway run --port 18789 --verbose | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| You should see `dimos: discovered <N> tool(s)` confirming the plugin loaded. | ||||||||||||||
|
|
||||||||||||||
| ## Terminal 3 — Send commands | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| cd dimos/web/plugin_openclaw | ||||||||||||||
| pnpm openclaw agent --session-id dimos-test --message "move forward 1 meter" | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| Or use the interactive TUI: | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| cd dimos/web/plugin_openclaw | ||||||||||||||
| pnpm openclaw tui | ||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. isnt it just
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. that works if openclaw is installed globally. we install it locally via |
||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| It will open a browser window. | ||||||||||||||
| # DimOS MCP Server with Claude Code | ||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||||||||||||||
|
|
||||||||||||||
| ## How It Works | ||||||||||||||
|
|
||||||||||||||
| 1. DimOS starts a FastAPI MCP server on port 9990, exposing robot skills as JSON-RPC tools | ||||||||||||||
| 2. Claude Code connects directly to the MCP server over HTTP | ||||||||||||||
| 3. User sends natural language commands, which Claude translates into MCP tool calls | ||||||||||||||
|
|
||||||||||||||
| ## Prerequisites | ||||||||||||||
|
|
||||||||||||||
| If you haven't cloned and installed DimOS yet, follow the [main README](../../README.md) first. | ||||||||||||||
|
|
||||||||||||||
| ## Terminal 1 — DimOS MCP server | ||||||||||||||
|
|
||||||||||||||
| Change **Transport Type** to "Streamable HTTP", change **URL** to `http://localhost:9990/mcp`, and **Connection Type** to "Direct". Then click on "Connect". | ||||||||||||||
| Install dependencies: | ||||||||||||||
|
|
||||||||||||||
| ## Usage | ||||||||||||||
| ```bash | ||||||||||||||
| uv sync --extra base --extra unitree | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| For hardware (set `ROBOT_IP` in your environment): | ||||||||||||||
|
|
||||||||||||||
| **Terminal 1** - Start DimOS: | ||||||||||||||
| ```bash | ||||||||||||||
| export ROBOT_IP=<YOUR_ROBOT_IP> | ||||||||||||||
| uv run dimos run unitree-go2-agentic-mcp | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| **Claude Code** - Use robot skills: | ||||||||||||||
| For simulation: | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| uv run dimos --simulation run unitree-go2-agentic-mcp | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| ## Terminal 2 — Claude Code | ||||||||||||||
|
|
||||||||||||||
| Add the MCP server (one-time): | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| claude mcp add --transport http --scope project dimos http://localhost:9990/mcp | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| Use robot skills: | ||||||||||||||
|
|
||||||||||||||
| ``` | ||||||||||||||
| > move forward 1 meter | ||||||||||||||
| > go to the kitchen | ||||||||||||||
| > tag this location as "desk" | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| ## How It Works | ||||||||||||||
| # MCP Inspector | ||||||||||||||
|
|
||||||||||||||
| For manual inspection: | ||||||||||||||
|
|
||||||||||||||
| ```bash | ||||||||||||||
| npx -y @modelcontextprotocol/inspector | ||||||||||||||
| ``` | ||||||||||||||
|
|
||||||||||||||
| 1. `McpServer` in the blueprint starts a FastAPI server on port 9990 | ||||||||||||||
| 2. Claude Code connects directly to `http://localhost:9990/mcp` | ||||||||||||||
| 3. Skills are exposed as MCP tools (e.g., `relative_move`, `navigate_with_text`) | ||||||||||||||
| Change **Transport Type** to "Streamable HTTP", **URL** to `http://localhost:9990/mcp`, and **Connection Type** to "Direct". Click "Connect". | ||||||||||||||
Uh oh!
There was an error while loading. Please reload this page.