In-depth architectural comparison of the MCP Zuul and Mdma MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
MCP Zuul
Version Control · Local stdio
Quality: 57/100 (Good) | Auth: other
Mdma
Version Control · Local stdio
Quality: 63/100 (Good) | Auth: No auth required
Verdict Summary: Choose MCP Zuul if you need specialized Version Control tools running via a local process. Choose Mdma if your workspace requires Version Control integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose MCP Zuul when:
You need dedicated capabilities in the Version Control domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: other (Free / Open Source).
You have access to required keys: ZUUL_URL, ZUUL_DEFAULT_TENANT, ZUUL_ENABLED_TOOLS, ZUUL_DISABLED_TOOLS, ZUUL_READ_ONLY, LOGJUICER_URL, MCP_TRANSPORT.
Zuul CI integration with 14 tools for build failure analysis, log search, pipeline status, and job configuration.
MCP server for MDMA (interactive Markdown applications with mounted components). Exposes the MDMA spec, authoring prompts, package metadata, and live docs to AI assistants. Tools: get-spec, get-prompt, build-system-prompt, validate-prompt, list-packages, list-docs, get-doc. Install: npx @mobile-reality/mdma-mcp.
Category & Scope
Tools & Capabilities Breakdown
MCP Zuul Tools (45)
list_builds
Search builds by project, pipeline, job, change, result. Includes `buildset_uuid` for cross-referencing.
get_build
Full build details — nodeset, log URL, artifacts, error detail. Accepts `url` or `uuid`.
get_build_failures
Start here for failures.** Structured task-level data from `job-output.json` — failed play, task, host, msg, rc, stderr/stdout. Accepts `url` or `uuid`.
diagnose_build
One-call failure diagnosis.** Combines structured failures from `job-output.json` with targeted log context (fatal/FAILED lines with surrounding context from `job-output.txt`). Use instead of calling `get_build_failures` + `get_build_log` separately. Accepts `url` or `uuid`.
get_build_log
Read and search log files. Modes: `summary` (tail + error lines), `full` (paginated), `grep` (regex + context), `start_line`/`end_line` (exact range). Supports `log_name` for any file. Accepts `url` or `uuid`.
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
MCP Zuul is categorized under Version Control and uses a local stdio subprocess. In contrast, Mdma belongs to Version Control using local stdio subprocess. Select MCP Zuul when you need capabilities focused on version control and Mdma when you require tools for version control.
Fastest failure check.** Last N lines of a log (default 50, max 500). More token-efficient than `get_build_log` summary mode. Accepts `url` or `uuid`.
browse_build_logs
List log directory contents or fetch specific files (inventory, artifacts, must-gather). Max 512KB per file. Accepts `url` or `uuid`.
stream_build_console
Live console from RUNNING builds.** Connects to Zuul WebSocket, returns last N lines (tail). For completed builds, use `tail_build_log`. Optional — requires `pip install mcp-zuul[console]`.
list_buildsets
Search buildsets. Use `include_builds=true` to inline full build details (saves round-trips).
get_buildset
Full buildset with all builds and events. Accepts `url` or `uuid`.
get_status
Live pipeline status — what's queued, running, with job progress and ETA. Filterable by pipeline and project.
get_change_status
Status for a change/PR/MR. In pipeline: live jobs with elapsed times. Not in pipeline: auto-fetches latest completed buildset. Accepts `url` or `change`.
+33 more tools listed on main page
Mdma Tools (8)
get-spec
Returns the full MDMA specification: component types, JSON schemas, binding syntax, and authoring rules
get-prompt
Returns a named prompt (`mdma-author`, `mdma-reviewer`, or `mdma-fixer`). For `mdma-author`, accepts an optional `variantId` (e.g. `google/gemini-2.5-pro`) to return the model-optimised variant
list-prompt-variants
Returns all available `MDMA_AUTHOR` prompt variants (id, label, description) — use the id with `get-prompt` to fetch the model-optimised prompt
build-system-prompt
Generates a custom MDMA prompt from structured input (domain, components, fields, steps, business rules)
validate-prompt
Validates a custom prompt against MDMA conventions — returns warnings, suggestions, and constraint reference
list-packages
Returns all MDMA packages with purpose, install command, and usage example
list-docs
Returns the catalog of MDMA documentation files (path, title, description) available for fetching from the public GitHub repo
get-doc
Fetches the latest version of an MDMA documentation file from `raw.githubusercontent.com/MobileReality/mdma`. Supports optional `ref` (branch/tag/SHA, defaults to `main`)