obsidian-llm-wiki (2233admin/obsidian-llm-wiki) is an MCP server listed on the M8ven Trust Index. It scores 74 out of 100, grade C. It declares 33 tools. No publisher has claimed this listing.

C
Emerging
74/100

obsidian-llm-wiki

Your markdown vault, compiled into a 6-persona MCP team for Claude Code, Codex, OpenCode, and Gemini CLI. Headless-first. Cites, doesn't guess.

Emerging. No concerning findings. Grades remain capped until the project builds reputation through adoption. 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

2233admin

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
No credential exfiltration, no sensitive file access, no obfuscation
Static analysis found nothing flowing your secrets to unexpected places.
Open source with a license and README
Anyone can audit the code, the license is declared, and the publisher documents what it does.
🔐
You'll be asked for 3 credentials: OLLAMA_EMBED_API_KEY, VAULT_MIND_AUTH_TOKEN, VAULT_MIND_EMBED_API_KEY
These are read from process.env at runtime. Make sure you trust where they’ll be sent.
// tools this server exposes33 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.

vault.read

Read a note's content

vault.exists

Check if a path exists

vault.list

List files and folders

vault.stat

Get file/folder metadata

vault.create

Create a new note (dry-run by default)

vault.modify

Overwrite an existing note

vault.append

Append content to a note

vault.delete

Delete a note or folder

vault.rename

Rename/move a file

vault.mkdir

Create a directory

vault.search

Fulltext grep across vault .md files (filesystem-only, single-adapter). Returns matching lines with line numbers, not ranked results. Use regex=true for patterns, glob to restrict scope. For cross-adapter weighted search use query.unified.

vault.searchByTag

Find notes with a given tag

vault.searchByFrontmatter

Find notes by frontmatter key-value

vault.graph

Build full wikilink graph of the vault. Returns nodes (with exists flag), edges (from/to/count), orphans (.md files with no inbound links), and unresolvedLinks count. Filter edges with type=resolved|unresolved|both (default both).

vault.backlinks

Find notes linking to a note

vault.batch

Execute multiple vault operations

vault.lint

Vault health audit: finds orphans (no inbound wikilinks), broken wikilinks, empty files, duplicate titles, and optionally missing required frontmatter keys. Read-only; does not check modification time.

vault.daily

Create or update today's daily note with AI-First frontmatter (date, mood, energy, summary). Path: Daily/YYYY-MM-DD.md

vault.person

Create or update a person note with AI-First frontmatter. Path: People/{name}.md

vault.project

Deprecated compatibility update for an already-registered Project. Unknown names are rejected; use project.init to create a Project ID and Work-OS anchor.

vault.decide

Create a structured decision log (ADR). Path: Decisions/YYYY-MM-DD -- {title-slug}.md

vault.meeting

Create a meeting note with attendees, decisions, and action items. Path: Meetings/YYYY-MM-DD -- {title-slug}.md

vault.ingest

Ingest content into vault with AI-First frontmatter (ai-first: true, source, recency markers). Path: 00-Inbox/{title-slug}.md

vault.init

Scaffold the vault. methodology mode creates the folder layout (generic|para|lyt|zettelkasten) plus a Home.md index with AI-First frontmatter, dry-run by default, existing folders are skipped; topic mode scaffolds a knowledge base topic directory (writes immediately).

vault.enforceDiscipline

Retroactively enforce Karpathy LLM Wiki discipline: ensure each top-level topic folder has _index.md (catalog) and log.md (chronicle). Skips folders that already have a recognized catalog (Home.md/INDEX.md/README.md) or chronicle (Log.md). Dry-run by default.

vault.writeAIOutput

Write a persona-authored analysis into 00-Inbox/AI-Output/{persona}/YYYY-MM-DD-{slug}.md with the 8-field provenance frontmatter (generated-by, generated-at, agent, parent-query, source-nodes, status=draft, scope, quarantine-state). Human confirmation rides on an Obsidian body tag (#user-confirmed),

vault.sweepAIOutput

Sweep 00-Inbox/AI-Output for stale drafts (age > persona threshold and no non-AI-Output backlinks) and supersede candidates (same-persona reviewed pairs with source-nodes Jaccard >= 0.6). Reports candidates; when dry_run=false flips draft→stale in place. Never auto-applies supersede.

vault.getMetadata

Get parsed metadata for a note

recipe.list

List all recipes with their status (secrets present/missing)

recipe.show

Show a recipe's frontmatter and setup guide

recipe.status

Check secret configuration status for a recipe

recipe.doctor

Full diagnostic: secrets + health checks for a recipe

recipe.run

Run a recipe collector. Secrets must be set in the MCP server environment.

// environment variables
To run this server yourself, you supply these values. They go in your own MCP client configuration and stay on your machine. The secret label means the value is sensitive, not that the server mishandles it.
configCODEX_THREAD_ID
configCONTEXT_CORE_PATH
configLLMWIKI_PROJECT_COMPATIBILITY_WINDOW_SECONDS
configMEDIA_TRANSCRIBE_CMD
🔐 secretOLLAMA_EMBED_API_KEY
configOLLAMA_EMBED_BASE_URL
configOLLAMA_EMBED_MODEL
configOLLAMA_EMBED_PROFILE
configOLLAMA_EMBED_PROXY
configOPENCLI_CMD
configPYTHON
configProgramFiles
configQUERY
configTOPK
configVAULTBRAIN_EMBED_DIM
configVAULT_BRIDGE_VAULTVAULT_MIND_VAULT_PATH (or ) may be set instead
configVAULT_MIND_ACTOR
configVAULT_MIND_ADAPTERS
configVAULT_MIND_ADAPTER_WEIGHTS
configVAULT_MIND_ALLOWED_WRITE_PATHS
🔐 secretVAULT_MIND_AUTH_TOKEN
configVAULT_MIND_COLLAB_ENFORCE
🔐 secretVAULT_MIND_EMBED_API_KEY
configVAULT_MIND_EMBED_MODEL
configVAULT_MIND_EMBED_PROFILE
configVAULT_MIND_EMBED_URL
configVAULT_MIND_LANG
configVAULT_MIND_MEDIA_CMD
configVAULT_MIND_OPENCLI_CMD
configVAULT_MIND_PROTECTED_PATHS
configVAULT_MIND_PYTHON
configVAULT_MIND_ROLE
configVAULT_MIND_VAULT_PATH(or VAULT_BRIDGE_VAULT) may be set instead
// quality suggestions

All four hints declared on every tool

33/33 tools missing one or more hints — vault.read (missing: idempotentHint, openWorldHint); vault.exists (missing: idempotentHint, openWorldHint); vault.list (missing: idempotentHint, openWorldHint), +30 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.

Tool test coverage

17/33 tools referenced in tests (52%)

Write tests that reference each tool by name so every tool has at least one test.

No eval / new Function

1 eval() or new Function() call — dynamic code execution

Replace eval / Function with explicit parsing or safer alternatives.

Shell command execution

8 calls in production code run through a shell (src/compile-trigger.ts:283, src/adapters/filesystem.ts:88, src/adapters/filesystem.ts:184)

Prefer library functions over shell-outs. If you must shell out, ensure all inputs are properly escaped.

Domain consistency

npm scope @obsidian-llm-wiki doesn't match GitHub owner 2233admin

Use the same org name across GitHub, npm, and your homepage so users can verify the publisher.

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 5 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 Score](https://m8ven.ai/badge/mcp/2233admin/obsidian-llm-wiki)](https://m8ven.ai/mcp/2233admin/obsidian-llm-wiki)
Shows your grade and updates automatically. Prefer no grade? Append ?variant=verified to the badge URL.
commit: 413350d154598b656f7f2703e91d46e4be06be67
code hash: 43acdbf58ad9af01edf9b5d72bb3581823a0397469df91b05fb86763552d6434
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