OpenClaw's QMD Memory Search Fast Path Had Silent Bugs

OpenClaw's built-in memory search uses basic keyword matching, which works for simple lookups but struggles when agents need to find information learned weeks earlier without exact word matches.
Users can switch to QMD, which performs semantic search across all markdown files in the workspace. This allows agents to find relevant entries even when exact keywords aren't present. QMD also does hybrid search, combining keyword and semantic approaches for both precision and recall.
OpenClaw has a fast path through MCPorter that keeps the QMD process warm in memory, reducing search times to 1-2 seconds instead of 9-25 seconds when cold starting each time.
This fast path was completely broken with three bugs in the same file:
- The gateway was calling tool names that don't exist. QMD's MCP server exposes one tool called
query, but the gateway was callingdeep_search,search, etc. Every call returned exit code 128. - Wrong argument format. The gateway passed a flat string, but the tool expects a
searchesarray with typed sub-queries for keyword vs semantic vs hybrid search. - Singular vs plural mismatch. The gateway passed
collection: "name"but the tool expectscollections: ["name"].
Every parameter was wrong: tool name, argument structure, and field name. The fix was straightforward once identified, and a pull request is available for anyone running QMD through MCPorter.
The silent failure meant every call fell back to the slower CLI path, but functionality remained, just with significantly degraded performance that went unnoticed for weeks.
📖 Read the full source: r/openclaw
👀 See Also

ShareMyClaudeMD: Tool Converts Claude-Generated Markdown Files to Shareable Rendered Pages
A developer built sharemyclaudemd.com, a free tool that converts any Markdown file into a live, rendered page with a shareable URL and QR code. The tool addresses the friction of sharing Claude-generated Markdown files, which often requires recipients to open them in a specific editor or push to GitHub just for a rendered view.

OmniRecall Beta: FAISS-Powered Memory Injection for Cloud LLM Chats
OmniRecall is a local mitmproxy bypass that intercepts traffic to cloud chat interfaces like DeepSeek, adding a permanent memory layer using FAISS indexing and sentence-transformers MiniLM-L6. It's currently in beta, requires CPU-only operation, and uses an aggressively restrictive source-available license.

mcp-optimizer reduces token waste from idle MCP servers in Claude Code
mcp-optimizer is a plugin that addresses token waste from MCP servers in Claude Code by analyzing tool usage and generating optimized configurations. It includes four utilities: mcp-doctor for server health checks, mcp-audit for usage analysis, mcp-optimize for creating project-local configs, and mcp-to-skills for converting tools to on-demand Skills.

Native macOS MCP Server for Full OS Control
A native macOS server provides 24 tools for pixel-accurate clicks, key combos, drag-and-drop, app management, multi-display support, and clipboard access. It's open source and works with Claude Code, Cursor, or any MCP client.