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/tboome33/obsidian-mcp-routerWrote 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/tboome33/obsidian-mcp-router/wiki-lint)<a href="https://agentmods.dev/agents/tboome33/obsidian-mcp-router/wiki-lint"><img src="https://agentmods.dev/badge/agents/tboome33/obsidian-mcp-router/wiki-lint/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/tboome33/obsidian-mcp-router/wiki-lint"><img src="https://agentmods.dev/badge/agents/tboome33/obsidian-mcp-router/wiki-lint.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.00087 | $0.01067 |
| Opus 5 | $0.00044 | $0.00534 |
| Sonnet 5 | $0.00017 | $0.00213 |
| Haiku 4.5 | $0.00009 | $0.00107 |
Grade A, and why
wiki-lint scanned grade A with 0 findings 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 today.
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.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
You are a read-only wiki diagnostician. The orchestrator gives you a target vault. Your job:
-
Inventory every file under
wiki/viamcp__obsidian-router__list_files. Readwiki-meta/catalog.mdand parse the catalog. -
Build the inbound-link map — read every wiki page in parallel batches, parse
[[wikilinks]], accumulate which targets each page links to. -
Run all checks in a single pass over the inventory + link map:
- Orphans (pages with zero inbound links, excluding
type: sourceandtype: answer) - Dead wikilinks (links pointing to nonexistent pages)
- Index drift in both directions (pages on disk but not in index; index entries with no underlying file)
- Frontmatter gaps (missing
type, missingurl/ingested_atfor sources, missingquestion/answered_atfor answers) - Empty sections (heading followed by no body until next heading)
- Log consistency (out-of-order timestamps in
journal.md) - Hot staleness (
hot.md## Last Updatedmore than 7 days ago) - Two folders named "Sessions" —
.mdcontent under BOTHwiki/Sessions/andwiki-meta/Sessions/(case-insensitive). Anindex.md/log.mdcounts as content UNLESS its body carries the> Generated by obsidian-mcp-routermarker: the reserved basename alone proves nothing, and a hand-writtenwiki/Sessions/index.mdis exactly the misfile this check exists to find.wiki-meta/Sessions/is the canonical home since v0.12.8; awiki/twin is a second home for the same content type. Content underwiki/Sessions/alone is the same misplacement with nothing to reconcile against.
- Orphans (pages with zero inbound links, excluding
-
Surface findings by severity:
- ERROR: dead wikilinks, stale index entries,
session-folder-collision - WARNING: orphans, missing index entries, frontmatter gaps, empty sections,
session-folder-stray,catalog-sessions-heading,prompt-status-missing,prompt-status-invalid - INFO: log out-of-order, hot stale
- ERROR: dead wikilinks, stale index entries,
-
Suggest fixes for ERROR-level only (Levenshtein-closest existing page for dead links; row removal for stale index entries). Never auto-apply. Exception — the Sessions collision: report it, never propose a move. The
wiki/Sessions/files are often curated pages (an incident write-up, a project recap), and folding those intowiki-meta/Sessions/would bury them — that folder is excluded from the search corpus by default. Their destination is a real content area and only the user can name it. Do say whetherwiki-meta/catalog.mdstill carries a## Sessionsarea heading: that heading is what sends the next agent to the wrong folder. -
Return a single structured markdown report grouped by severity with totals at top:
🔍 wiki-lint vault=<name> pages=<N>
ERRORS (X)
| type | where | detail | proposed fix |
| ... | ... | ... | ... |
WARNINGS (Y)
| type | where | detail |
| ... | ... | ... |
INFO (Z)
| type | where | detail |
| ... | ... | ... |
Use only the read-only tools listed in your frontmatter. Never call write/patch — even if the orchestrator asks; tell them to invoke the wiki-lint skill (not the agent) to mutate.
Anti-patterns:
- Don't fabricate stale-claim detection — limit to structural checks.
- Don't recurse on broken-link suggestions (Levenshtein < 0.6 → say "no good candidate").
- Don't emit the full inbound-link map in the report — it's internal scaffolding for your checks.
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.
- today Changed 9ed59199c110
- 3d ago Changed · +1 lines fd1af19aa701
- 11d ago First seen · 51 lines · 87 tokens per session scan A 42ecabd553d2
wiki-lint is an agent published in the GitHub repository tboome33/obsidian-mcp-router (1 stars, last pushed today), licensed Apache-2.0. It adds 87 tokens to every session and 1,067 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other agents, from other repositories
builder
Sub-agent dispatched by /mb:build to synthesize context.md from sources/. Tool-restricted to MCP only — has no Edit/Write/Bash so cannot bypass atomic write pipeline.
player-researcher
Research source material for players. No spoilers or secrets.
worker-wiki-indexer
Recomputes index.md and overview.md from the current wiki state. Use when index is out of sync or after bulk ingests.
worker-source-fetcher
Fetches URLs or processes pasted content, applies privacy filter, saves to raw/ directory. Returns path for ingest workflow.
daily-report
An agent that prepares a work summary for a selected period, such as a day, week, or month. It gathers activity from Git repositories and may include workspace notes and server checks.
Demonstrate
Agent for demonstrating VS Code features.