feat: native MCP client support and retire Prolog-RLM backend #136
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/zara!136
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/mcp-client-support-current"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What changed
This PR carries Zara's native MCP client implementation onto current
masterand removes the half-alive Prolog-RLM runtime integration.MCP client
mcp>=2,<3);MCPServerActorowns each server session and transport lifecycle;zara mcpadd/remove/enable/disable/list/status/inspect/tools/resources/prompts management commands.Prolog-RLM retirement
Removed the external/experimental RLM path from Zara while preserving Zara's normal SWI-Prolog command reasoning and console support:
prolog-rlmNix input and lockfile node;ZARA_PROLOG_RLM_ROOT/ZARA_RLM_SIDECARpackage and dev-shell wiring;prolog_rlmruntime backend; LangGraph is the canonical conversational backend;agent.backend = prolog_rlmconfiguration fails closed.The roadmap separately marks RLM work as not planned for Zara. Plain Prolog remains part of Zara.
Adversarial verification
The MCP test corpus includes real local stdio and Streamable HTTP fixture servers, multi-server namespacing/isolation, discovery and execution, crash/reconnect behavior, timeout and caller cancellation, child-process reaping, config validation, diagnostics redaction, and Agent -> normal tool-loop integration.
MCP and
httpx2are hard E2E test dependencies rather thanimportorskipescape hatches, and failure-path tests require Zara's typedMCPRequestErrorinstead of accepting arbitrary exceptions.A review found that literal MCP header/environment secrets could be persisted to
mcp.tomlwith umask-dependent permissions. The managed config writer now forces mode0600on creation and every rewrite, with a regression test that first loosens the file to0644and verifies Zara repairs it.Exact-head GitHub Actions plus the packaged Nix build are required before merge.
Non-goals