Skip to main content
Glama

vault-health-mcp

MCP server for Obsidian vault structural health checks.

Find broken wikilinks, orphaned notes, and missing frontmatter — then auto-repair them. Works with any Obsidian vault, no plugins required.

Install

pip install vault-health-mcp

Related MCP server: obsidian-markdown-lint-mcp-server

Usage

Claude Code

claude mcp add vault-health -- vault-health-mcp --vault ~/my-vault

Claude Desktop

{
  "mcpServers": {
    "vault-health": {
      "command": "uvx",
      "args": ["vault-health-mcp", "--vault", "/path/to/vault"]
    }
  }
}

MCP Tools

Tool

Tier

Description

configure_vault

Free

Point the server at a vault at runtime

check_vault_health

Free

Full structural scan: broken links, orphans, missing frontmatter

find_orphans

Free

List all structurally disconnected leaf notes

find_broken_links

Free

List all wikilinks pointing to non-existent files

vault_statistics

Free

File count, link count, orphan %, frontmatter coverage

repair_vault

Pro

Auto-fix safe issues (add-only, never deletes)

How auto-repair works (Pro)

repair_vault only makes additive changes:

  • Broken [[links]] → replaced with plain text (the link text is preserved)

  • Missing frontmatter → adds a default YAML block with title and type

It never deletes files, removes content, or modifies existing frontmatter values.

Pro tier

The free tier detects every category of vault rot. The Pro tier unlocks repair_vault — one call to fix the safe categories automatically.

License activation — any one of these works:

# 1. Environment variable
export VAULT_HEALTH_LICENSE="eyJhbGc..."

# 2. CLI flag
vault-health-mcp --license-key "eyJhbGc..." --vault ~/my-vault

# 3. Config file
echo "eyJhbGc..." > ~/.vault-health-mcp/license.jwt

Licenses are verified fully offline — no phone-home, no activation server. Get a license: [coming soon — Dodo Payments storefront in verification].

Requirements

  • Python 3.10+

  • An Obsidian vault (any size)

License

MIT

Available Tools

6 tools
check_vault_healthA
Read-only

Scan the vault for structural issues: broken wikilinks, orphaned notes, missing frontmatter. Returns a categorized list of all issues found.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so description adds that it scans and returns a categorized list of issues, consistent with read-only behavior. No description of auth needs, rate limits, or side effects beyond what annotations provide. Description adds specificity about issue types but does not significantly augment annotation information.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two sentences, front-loaded with action and scope, then output format. No redundant words, every sentence adds value. Highly concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Tool has no parameters and output schema exists, so description need not explain return values. It covers purpose and scope adequately. Sibling tools exist but are not explicitly contrasted; however, given the tool's simplicity and the presence of sibling list, completeness is sufficient. Slight lack of differentiation prevents a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so schema coverage is 100%. Description adds meaning beyond schema by explaining the tool's action (scan for structural issues) and output (categorized list of issues). With 0 parameters, baseline is 4, and description meets it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly specifies verb 'Scan' and resource 'vault for structural issues', listing specific issue types (broken wikilinks, orphaned notes, missing frontmatter). Differentiates from sibling tools which focus on subsets (find_orphans, find_broken_links) or repair (repair_vault) or statistics (vault_statistics).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description implies diagnostic use but does not explicitly state when to use this tool versus siblings like find_orphans or find_broken_links. No guidance on prerequisites or when not to use. Sibling names provide implicit context but description lacks explicit guidelines.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

configure_vaultA

Configure the vault path for this server. Call this first if the server started without a --vault argument.

ParametersJSON Schema
NameRequiredDescriptionDefault
vault_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=false. The description adds the key behavioral insight that this is a first-step configuration action. It does not elaborate on side effects or prerequisites, but the essential 'call first' behavior is disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences. The first states the action, the second adds a usage guideline. No wasted words, front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple input (one string param) and presence of both annotations and an output schema, the description covers what the tool does and when to use it. It lacks details about permissions or consequences, but it's still fairly complete for its simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description only mentions 'vault path' without explaining format, constraints, or example. The single parameter is simple, but the description does not compensate for the lack of schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The verb 'configure' with resource 'vault path' is specific. The description also provides context that this tool should be called first if the server started without a --vault argument. Sibling tools (e.g., check_vault_health, repair_vault) have distinct purposes, so no confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance: 'Call this first if the server started without a --vault argument.' This clearly indicates when to use it and implies that if the server started with --vault, this may not be needed. No alternatives are mentioned, but siblings cover unrelated tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_orphansA
Read-only

Find all orphaned leaf notes — notes typed as 'leaf' in frontmatter that are not linked from any hub or branch file.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint=true, and description adds specific criteria for orphaned notes, going beyond annotations. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence with precise definition, no wasted words. Front-loaded and efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters, read-only annotation, and output schema present, the description fully covers what the tool does and what it finds. Complete for its context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters (schema coverage 100%), but description adds value by explaining the filtering criteria. For zero parameters, baseline is 4, and description justifies it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool finds orphaned leaf notes, defines 'orphaned' as notes typed 'leaf' in frontmatter not linked from any hub or branch file. Specific verb+resource distinguishes from siblings like find_broken_links.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or alternatives, but the purpose is clear and distinct from sibling tools. Implied usage for identifying unlinked leaf notes, but lacks guidance on when not to use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

repair_vaultA

[Pro] Auto-repair safe structural issues. Only adds content (frontmatter, plain text replacements for broken links). Never deletes files or content. Requires Pro license.

ParametersJSON Schema
NameRequiredDescriptionDefault
fix_frontmatterNo
fix_broken_linksNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false and destructiveHint=false. The description adds that the tool only adds content and never deletes, aligning with non-destructive behavior and providing safety guarantees beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each serving a purpose: first states action and safety, second clarifies behavior and license. No unnecessary words; front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with two booleans and an output schema, the description covers purpose, safety, license, and implicitly parameters. It lacks explicit prerequisites (e.g., vault must be open) but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% (no parameter descriptions). The description mentions fixing frontmatter and broken links, which maps to the two boolean parameters, but does not explicitly explain their meaning or usage. Adequate but not detailed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool repairs safe structural issues, distinguishes itself from siblings like check_vault_health or find_broken_links by focusing on auto-repair, and specifies it only adds content without deletion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use (structural issues with frontmatter or broken links) and notes the Pro license requirement. It does not explicitly state when not to use or name alternatives, but sibling context provides differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

vault_statisticsA
Read-only

Vault-level analytics: file count, link count, orphans, broken links, frontmatter coverage percentage.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, and the description adds value by listing the specific analytics provided. No additional behavioral context needed for this simple read-only tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence that effectively communicates the tool's output. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters and an output schema, the description adequately covers the return values. It lists all key metrics, so an agent can understand what to expect.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist, so the description cannot add meaning beyond the schema. Baseline of 4 applies per guidelines for zero parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies 'Vault-level analytics' and lists specific metrics (file count, link count, orphans, broken links, frontmatter coverage percentage). It clearly distinguishes from sibling tools like find_orphans and find_broken_links by providing an aggregated summary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus siblings. While the aggregated nature is implied, there is no mention of alternatives or exclusions (e.g., when to use find_orphans instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.2.0
    • First observedcheck_vault_health
    • First observedconfigure_vault
    • First observedfind_broken_links
    • First observedfind_orphans
    • First observedrepair_vault
    • First observedvault_statistics

TDQS

A4.1/5.0

Scored across 6 tools

Disambiguation3/5

Tools are mostly distinct, but find_orphans and find_broken_links overlap with check_vault_health which also finds these issues. This could cause confusion about which tool to use.

Naming Consistency4/5

All tools use snake_case with verb_noun pattern except vault_statistics (noun_noun). Consistent style, but one minor deviation.

Tool Count5/5

6 tools is well-scoped for a vault health MCP: configuration, comprehensive check, repair, statistics, and specific queries. No excess or deficiency.

Completeness4/5

Core operations (configure, check, repair, statistics) are covered. Minor gap: no tool to individually fix a specific broken link without Pro license, but repair_vault handles auto-fix.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers