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.

F
Warning
11/100

oh-my-dag

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

⚡ Live Monitored: not connected

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

Is this your MCP?

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.

// key findings
🚨
Reads files from sensitive locations
Touches: ~/.omd/.env
⚠️
Known vulnerabilities in dependencies: 3 high
Affects packages this MCP installs at runtime. Upgrade or remove the affected dependency.
// tools this server exposes42 tools

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_key

Store a provider API key → auth.json (pi providers) or .env (native). Immediate, no reconnect. Never writes .mcp.json.

omd_apply_preset

Apply a role-model preset to .env + .omd/config.json (roles/pools/apis). Immediate. Set keys separately via omd_set_key.

omd_set_role

Override one engine seat model coord → .omd/config.json, immediate. Seat list: see the role param.

omd_models_auto

Auto-assign per-node models by channel economics; persists to .omd/config.json autoAssigned. env still overrides.

omd_register_provider

Register/update a custom OpenAI/Anthropic provider → models.json. Key as $KEYENV ref (set via omd_set_key).

omd_set_model

Update a model maxTokens/contextWindow → models.json. Provider must exist (register it first).

omd_config_status

Show engine role→model bindings, per-provider credential status, multimodal pool and custom APIs.

omd_env

What the engine detects about a repo: languages, test runners on PATH, acceptance-command candidates.

omd_toggle_hud

Install (on=true) or remove (on=false) the DAG/pathfinder live HUD status line in this repo's settings.local.json.

dag_run

Run a task via the orchestrating loop (conductor + dispatch cards; no acceptance). resume=<runId> skips green nodes.

dag_run_plan

Execute a pre-built ConductorPlan JSON (skips conductor). resume=<runId> skips checkpointed nodes.

dag_resume

Resume a failed/interrupted run by runId — reload its plan from checkpoint, re-run skipping green nodes.

dag_cancel

Cooperatively stop a run: no new nodes dispatched, in-flight ones finish, ends as cancelled (resumable).

dag_status

Get status of a DAG run by runId. Unknown runId → error.

dag_result

Get full result of a completed DAG run. Non-done status → error.

dag_node_output

Get one node's full output from a DAG run, paged in 4000-char chunks via offset. Unknown run/node → error.

dag_review

Adversarial code review async. gate G0-G3, scope=paths, deep=single-agent full-repo review. Returns runId.

dag_slim

Run over-engineering cut-only audit (scripts/dag-slim.ts) async. scope=comma paths. Returns runId.

dag_deepen

Run architecture-deepening hotspot scan (scripts/dag-deepen.ts) async. Returns runId + HTML report path.

dag_debug

Parallel multi-hypothesis root-cause debug async. failure=symptom, repro optional. No root cause→no fix. Returns runId.

history_read

Read paged original messages hidden by one compaction entry.

history_search

Search original messages hidden by compaction entries in this session.

dag_intervene

Record a human intervention on a run: append an intervened entry to the run-board (cwd).

memory_recall

Recall facts from omd self-memory (hybrid search). Ranked hits with confidence, source, anchor staleness.

memory_fact

Fetch one fact in full by id (from a memory_recall hit), with its code-anchor staleness detail.

memory_remember

Store a fact in omd self-memory. Validated by safeguard gate; rejects secrets/banned/out-of-namespace.

path_init

Init pathfinder backend: no args → probe report + recommendation; with backend/cloudAfk → execute setup.

path_map

Pathfinder map: no arg lists open maps; with destination/slug creates or resumes one and shows its frontier.

path_add

Add a ticket to a pathfinder map. Types: research (AFK auto) / grill (discuss) / prototype (spike) / task (build).

path_tickets

Show a pathfinder map frontier; first folds in landed AFK results (pull reflow + budgeted self-expansion).

path_rule

Rule a frontier ticket (record the decision). Region-clear is only reported; execution stays behind path_deliver.

map_confirm

Confirm a machine-suggested ticket: accept (optional retitle) into frontier, or reject. Logged for acceptance rate.

path_deliver

Execute the clear region: compile ruled task tickets to a slice, run the DAG, mark delivered on full success.

path_prefetch

Dispatch frontier research tickets to detached AFK background (owner-explicit); results fold in via path_tickets.

dag_runs

List DAG runs: memory registry + disk continuity checkpoints merged; disk-only runs marked unknown(restart).

dag_triage

Owner inbox: open decision forks + runs that need a human look. Read-only.

dag_rule

Rule 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=高温挖长尾 (未言明前提/冲突/迁移)。

ping

Returns a pong with a secret nonce. Call it exactly once.

// known CVEs in dependencies3 high1 low

Disclosed vulnerabilities in this server's declared npm dependencies (via OSV). Whether each is reachable depends on the installed versions.

highjs-yaml@4.1.1GHSA-2883-xcg3-v3hh

js-yaml: maxTotalMergeKeys does not limit CPU use for empty merge sources

highjs-yaml@4.1.1GHSA-52cp-r559-cp3m

js-yaml: YAML merge-key chains can force quadratic CPU consumption

highjs-yaml@4.1.1GHSA-5p4m-2wfm-xmqj

JS-YAML: Quadratic CPU consumption in !!omap resolution (3.x and 4.x) — CVE-2026-59870 fix not backported

lowjs-yaml@4.1.1GHSA-h67p-54hq-rp68

JS-YAML: Quadratic-complexity DoS in merge key handling via repeated aliases

Depend on this server? Get alerted when its CVEs change.Watch this server free →
// quality suggestions

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.

// full audit trail
The findings above are the summary. The full trail, every check we ran, each deduction, the network hosts observed and the dependency advisories, goes to verified publishers, along with an alert whenever a new one lands. Verified publishers can also review each finding and dispute it in one click. Publisher corrections have sharpened several of our checks this month, because the maintainer knows the codebase better than any scanner.
// improvement guidance — verified publishers only
We have 4 concrete improvements we can share with the publisher of this MCP. Each comes with specific guidance to raise the trust score.
// embed badge in your README
[![M8ven Verified](https://m8ven.ai/badge/mcp/abysscn/oh-my-dag?variant=verified)](https://m8ven.ai/mcp/abysscn/oh-my-dag)
Shows verification status without the grade. Want the grade badge instead? Remove ?variant=verified from the URL.
commit: 7bd1eb47c4c3991d48a7bc06dadf6cb00ae29b11
code hash: ca28323c1d3f670c90154b48e1028d693e16e80c1b88ae2f685edfbb789a1d26
view raw JSON →
Check MCPs from inside your assistant
Tool Check · MCP

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
check_toolsearch_toolscompare_toolsrecommend_alternativescheck_publisherreport_concern
How to add it →Free · no account needed · works in any MCP client