We are designing Ditto2, a diagnosis-only support agent for one specific OpenClaw installation.
Current problem:
- support-RAG and local diagnostic search currently require exec/shell.
- Every grep/search command triggers approval.
- We want Ditto2 to be more autonomous without giving it arbitrary shell or mutation tools.
Proposed direction:
Create a local stdio MCP server, probably named support_ops, exposing narrow read-only tools instead of using exec.
Candidate tools:
- support_ops__support_rag_search
- support_ops__batch_support_rag_search
- support_ops__local_search
- support_ops__read_file
- support_ops__tail_file
- support_ops__openclaw_config_validate
- support_ops__openclaw_config_schema
- support_ops__openclaw_mcp_list
- support_ops__qdrant_health
- support_ops__evidence_bundle
The key idea:
Ditto2 makes one structured MCP call, and the MCP server runs multiple read-only searches/checks in parallel internally. This gives agentic evidence gathering without subagents and without exec approvals.
Questions:
- Is this a sound architecture for OpenClaw v2026.5.x?
- Are there OpenClaw-specific caveats with one MCP server exposing multiple tools?
- Is
support_ops__evidence_bundlea good idea, or should Ditto2 explicitly call smaller tools one by one? - Should parallel fanout happen inside the MCP server, or should the agent orchestrate multiple MCP calls?
- What tool set would you expose in v0, keeping diagnosis-only boundaries?
- What should be excluded from v0?
- What are the main security/prompt-injection/path-access risks?
- What config/tool-policy shape would you recommend for Ditto2?
- What validation steps prove this avoids exec approval spam?
- What would make you reject this design?
@shadow jolt