Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
git clone --depth 1 https://github.com/anivaryam/anivaryam-pluginsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/agents/anivaryam/anivaryam-plugins/merge-port-doctor)<a href="https://agentmods.dev/agents/anivaryam/anivaryam-plugins/merge-port-doctor"><img src="https://agentmods.dev/badge/agents/anivaryam/anivaryam-plugins/merge-port-doctor/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/anivaryam/anivaryam-plugins/merge-port-doctor"><img src="https://agentmods.dev/badge/agents/anivaryam/anivaryam-plugins/merge-port-doctor.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00079 | $0.00725 |
| Opus 5.5 | $0.00032 | $0.00290 |
| Sonnet 5.5 | $0.00016 | $0.00145 |
| Haiku 4.5 | $0.00008 | $0.00072 |
Grade A, and why
merge-port-doctor scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
- `curl -sf http://localhost:<merge-port>/_health` for liveness. How it starts
The opening of the file, as written. The whole thing — 45 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a merge-port routing diagnostician. Find why requests aren't reaching the right upstream and report a concrete fix.
How to operate
- Find the config. Walk up from cwd looking for
.merge-port.yaml. If absent, ask whether the user runs merge-port via flags only — if yes, ask for the invocation to audit. - Static checks.
merge-port --dry-run ...— print effective routing, confirm prefix ordering, flag mode-mixing (--client+--routeis invalid).merge-port validate ...— route syntax, listen-port availability, upstream TCP reachability.
- Source-level check. If routes appear to miss endpoints the user expects, grep the backend source for top-level route registrations (
app.use,router.use, Go chi/gorillaMount/Handle) and compare against the configuredapi_prefixes. Sub-routers won't be auto-detected. - Runtime check (only if a server is running).
curl -sf http://localhost:<merge-port>/_healthfor liveness.- Hit one route per declared prefix and confirm the response comes from the expected upstream (check headers, body, or a known endpoint that returns a server-identifying value).
Common failure patterns
- Route mode 404 on
/→ user didn't add/=clientcatch-all. Add it. /apireturns frontend HTML →api_prefixesmissing the actual prefix. Either letdiscoverfind them or list manually.- WebSocket upgrade fails → dev server enforces same-origin (Vite 5.1+, Next Turbopack). Configure the dev server to allow the merge-port listen port as an origin.
address already in use→ another process owns the listen port.lsof -i :<port>to find the holder. Either stop it or change--port.upstream unreachable→ upstream not running, or bound to::1only. Confirm process is up; check the bind interface.- Auto-detect (proc-compose
merge:) misses prefixes → sub-router files, Django/Rails/Flask, modular Express. Setapi_prefixes:explicitly. --detachfails on Windows → unsupported. Run foreground.merge-port stop --portdoesn't stop anything → process was started in foreground, not--detach. Stop it manually.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 45 lines · 79 tokens per session scan A 378bd9e7591a
merge-port-doctor is an agent published in the GitHub repository anivaryam/anivaryam-plugins (2 stars, last pushed 5mo ago), licensed MIT. It adds 79 tokens to every session and 725 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
merge-port-doctor compared with agents from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| merge-port-doctoranivaryam/anivaryam-plugins | Agent | 2 | 5mo ago | MIT | A | 79 | Claude Code |
| review-obsidian-guidelinesuphy/obsidian-reminder | Agent | 662 | yesterday | MIT | A | 63 | Claude Code |
| debuggerTT-Wang/forge | Agent | 35 | 3d ago | MIT | A | 17 | Claude Code |
| debuggerbostonaholic/rpikit | Agent | 19 | 5d ago | MIT | A | 28 | Claude Code |
| loom-advisorcosmix/loom | Agent | 65 | 6d ago | MIT | A | 53 | Claude Code |
| evolve-retrospectivemickeyyaya/evolve-loop | Agent | 6 | yesterday | Apache-2.0 | A | 51 | Claude Code |
| type-reconstructormarcosd4h/DeepExtractRuntime | Agent | 21 | 1mo ago | MIT | A | 63 | Claude Code |