oh-my-dag (AbyssCN/oh-my-dag) is an MCP server listed on the M8ven Trust Index. It scores 11 out of 100, grade F. It declares 42 tools. No publisher has claimed this listing.
The orchestration layer under your coding agent. Turns work into a typed graph, runs one model per node, and takes the verdict from outside the model — exit codes, write-set checks, and a cross-family verifier. MCP server, 50 tools, bring your own models.
Warning. Serious findings were identified. Review the full report before connecting. Grades reflect the full trust pyramid: code, verification depth, and reputation. New projects cap at C until adoption is earned.
How we verified
Verified is a snapshot. Live keeps it current, and builds your track record.
⚡ Connect GitHub → continuous verification on every pushwhy connect →Who stands behind it
AbyssCN
Source: github_repo_search
Claim it to get a verified publisher badge, a free copy of our full audit findings, and direct contact for any high-priority issues we find. Or connect your repo for our deepest verification, Live Monitored: read-only, revoke anytime. What we access →
Install from
The grade above is for the source repository. Registries can serve a different version, so we mark the ones we were not able to read.
These names and descriptions are the publisher's own, read from the source code. We print them as written. Our assessment is the findings above, not this list.
omd_primitive直接跑一个控制流原语, 不必先有图。终止/打分/分支归运行时。2–5 步组合用它; 大扇出走 dag_run。
omd_shapes取图式: 每条带触发条件、什么时候别用、步骤、为什么。分解任务前调一次。不传 id = 全部。
omd_set_keyStore a provider API key → auth.json (pi providers) or .env (native). Immediate, no reconnect. Never writes .mcp.json.
omd_apply_presetApply a role-model preset to .env + .omd/config.json (roles/pools/apis). Immediate. Set keys separately via omd_set_key.
omd_set_roleOverride one engine seat model coord → .omd/config.json, immediate. Seat list: see the role param.
omd_models_autoAuto-assign per-node models by channel economics; persists to .omd/config.json autoAssigned. env still overrides.
omd_register_providerRegister/update a custom OpenAI/Anthropic provider → models.json. Key as $KEYENV ref (set via omd_set_key).
omd_set_modelUpdate a model maxTokens/contextWindow → models.json. Provider must exist (register it first).
omd_config_statusShow engine role→model bindings, per-provider credential status, multimodal pool and custom APIs.
omd_envWhat the engine detects about a repo: languages, test runners on PATH, acceptance-command candidates.
omd_toggle_hudInstall (on=true) or remove (on=false) the DAG/pathfinder live HUD status line in this repo's settings.local.json.
dag_runRun a task via the orchestrating loop (conductor + dispatch cards; no acceptance). resume=<runId> skips green nodes.
dag_run_planExecute a pre-built ConductorPlan JSON (skips conductor). resume=<runId> skips checkpointed nodes.
dag_resumeResume a failed/interrupted run by runId — reload its plan from checkpoint, re-run skipping green nodes.
dag_cancelCooperatively stop a run: no new nodes dispatched, in-flight ones finish, ends as cancelled (resumable).
dag_statusGet status of a DAG run by runId. Unknown runId → error.
dag_resultGet full result of a completed DAG run. Non-done status → error.
dag_node_outputGet one node's full output from a DAG run, paged in 4000-char chunks via offset. Unknown run/node → error.
dag_reviewAdversarial code review async. gate G0-G3, scope=paths, deep=single-agent full-repo review. Returns runId.
dag_slimRun over-engineering cut-only audit (scripts/dag-slim.ts) async. scope=comma paths. Returns runId.
dag_deepenRun architecture-deepening hotspot scan (scripts/dag-deepen.ts) async. Returns runId + HTML report path.
dag_debugParallel multi-hypothesis root-cause debug async. failure=symptom, repro optional. No root cause→no fix. Returns runId.
history_readRead paged original messages hidden by one compaction entry.
history_searchSearch original messages hidden by compaction entries in this session.
dag_interveneRecord a human intervention on a run: append an intervened entry to the run-board (cwd).
memory_recallRecall facts from omd self-memory (hybrid search). Ranked hits with confidence, source, anchor staleness.
memory_factFetch one fact in full by id (from a memory_recall hit), with its code-anchor staleness detail.
memory_rememberStore a fact in omd self-memory. Validated by safeguard gate; rejects secrets/banned/out-of-namespace.
path_initInit pathfinder backend: no args → probe report + recommendation; with backend/cloudAfk → execute setup.
path_mapPathfinder map: no arg lists open maps; with destination/slug creates or resumes one and shows its frontier.
path_addAdd a ticket to a pathfinder map. Types: research (AFK auto) / grill (discuss) / prototype (spike) / task (build).
path_ticketsShow a pathfinder map frontier; first folds in landed AFK results (pull reflow + budgeted self-expansion).
path_ruleRule a frontier ticket (record the decision). Region-clear is only reported; execution stays behind path_deliver.
map_confirmConfirm a machine-suggested ticket: accept (optional retitle) into frontier, or reject. Logged for acceptance rate.
path_deliverExecute the clear region: compile ruled task tickets to a slice, run the DAG, mark delivered on full success.
path_prefetchDispatch frontier research tickets to detached AFK background (owner-explicit); results fold in via path_tickets.
dag_runsList DAG runs: memory registry + disk continuity checkpoints merged; disk-only runs marked unknown(restart).
dag_triageOwner inbox: open decision forks + runs that need a human look. Read-only.
dag_ruleRule on a decision fork. The ruling becomes a verbatim owner directive for the next round.
omd_web搜+抓网页, 零 LLM。全文存盘, 只回索引 + 已抓 URL 集。要综合答案用 dag_research。
omd_distill吃已有原文蒸馏洞察, 不抓网。expert=忠实抽机制, challenger=高温挖长尾 (未言明前提/冲突/迁移)。
pingReturns a pong with a secret nonce. Call it exactly once.
Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.
js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources
js-yaml: YAML merge-key chains can force quadratic CPU consumption
JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) — CVE-2026-59870 fix not backported
JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases
Tool annotations
No tools have read-only/destructive annotations
Add readOnlyHint or destructiveHint annotations to every tool so hosts can warn users before invoking.
All four hints declared on every tool
42/42 tools missing one or more hints — omd_primitive (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); omd_shapes (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint); omd_set_key (missing: readOnlyHint, destructiveHint, idempotentHint, openWorldHint), +39 more. OpenAI's directory rejects tools where any of the four hints are missing or non-boolean.
For every tool, set all four hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) to explicit true/false values that match the handler’s actual behaviour.
No access to sensitive paths
Reads sensitive paths: ~/.omd/.env
Remove reads of sensitive system paths. If you genuinely need them, document why in the README.
Production dependencies are patched
0 critical, 3 high severity in production deps — js-yaml@4.1.1 (high), js-yaml@4.1.1 (high)
Run npm audit fix, or upgrade the affected packages to a non-vulnerable version.
Claim the listing to review these findings one by one and send us a correction where you disagree, straight to the team. Claiming also means we tell you when the grade moves, and reach you first if we find anything urgent.
[](https://m8ven.ai/mcp/abysscn/oh-my-dag)?variant=verified from the URL.Vetting this one by hand? Tool Check is an MCP that scores other MCPs. Add it once and ask Claude, ChatGPT, or any MCP client to grade a server, surface CVEs, check the publisher, and suggest safer alternatives — before you install.
https://m8ven.ai/api/mcp/tool-check