Install
openclaw skills install @space-cadet/mcp-clientSpawn and interact with MCP (Model Context Protocol) servers via JSON-RPC stdio. Use when the user wants to call tools from MCP servers that are configured in OpenClaw config (~/.openclaw/openclaw.json or ~/.openclaw/config.yaml) but the runtime does not natively expose them. Covers stdio, SSE, and streamable-http transports. Use for: file operations via desktop-commander, browser automation via playwright-mcp, memory storage via server-memory, database queries via supabase-mcp, or any other MCP server the user has installed.
openclaw skills install @space-cadet/mcp-clientOpenClaw versions before native MCP client support (e.g. 2026.3.13) do not expose configured MCP servers as agent tools. This skill bridges that gap by spawning MCP server processes directly and speaking JSON-RPC over stdio.
openclaw mcp list returns "unknown command" or config path not foundopenclaw mcp list shows servers)Read ~/.openclaw/openclaw.json (JSON) or ~/.openclaw/config.yaml (YAML)
and extract mcp.servers:
{
"mcp": {
"servers": {
"desktop-commander": {
"command": "node",
"args": ["/Users/deepak/code/mcps/desktop-commander/dist/index.js"]
},
"memory": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-memory"],
"env": { "MEMORY_FILE_PATH": "/Users/deepak/.memory/memory.json" }
}
}
}
}
Use scripts/mcp-call.js (see below) or inline Node.js to:
command + argsenv variablesinitialize request (JSON-RPC)tools/list to discover available toolstools/call to invoke the desired toolMCP servers return results as JSON-RPC responses. Tool results are in:
{
"jsonrpc": "2.0",
"id": 2,
"result": {
"content": [{"type": "text", "text": "..."}],
"isError": false
}
}
Extract result.content[0].text for text output, or handle isError: true.
Use scripts/mcp-call.js for reliable MCP communication:
node scripts/mcp-call.js <server-name> <tool-name> '<json-args>'
Examples:
# Read a file via desktop-commander
node scripts/mcp-call.js desktop-commander read_file '{"path":"/Users/deepak/code/mcps/desktop-commander/package.json","length":10}'
# Read memory graph
node scripts/mcp-call.js memory read_graph '{}'
# Search memory nodes
node scripts/mcp-call.js memory search_nodes '{"query":"physics"}'
The script:
~/.openclaw/openclaw.json--json)The @modelcontextprotocol/server-memory exposes a knowledge graph:
| Tool | Purpose |
|---|---|
create_entities | Add entities with type + observations |
create_relations | Link entities with relation types |
add_observations | Append observations to existing entities |
read_graph | Dump the full graph |
search_nodes | Search entities by name/observation |
open_nodes | Get specific entities by name |
delete_entities | Remove entities |
delete_observations | Remove specific observations |
delete_relations | Remove relations |
~/.openclaw/)allowedDirectories in desktop-commander — it will reject pathsWhen OpenClaw natively supports MCP clients (openclaw mcp list works),
this skill becomes obsolete. Transition path: remove skill, rely on native
bundle-mcp tool profile.