background-vault-analysis
Analyzes Obsidian vaults to provide intelligent insights, change tracking, and comprehensive reporting for knowledge management.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@background-vault-analysisscan my vault for health issues"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Background Vault Analysis System š§ āØ
A lightweight MCP (Model Context Protocol) server for intelligent, non-invasive analysis of Obsidian vaults. Provides actionable insights, change tracking, and comprehensive reporting to improve your knowledge management practices.
š Features
š Intelligent Vault Analysis
Non-invasive scanning - Reads your vault without making any changes
Markdown parsing - Extracts links, tags, frontmatter, and content structure
Orphan detection - Identifies isolated notes that need connections
Hub identification - Finds your most connected knowledge centers
Content metrics - Word counts, link density, and structural analysis
š” Actionable Insights
Prioritized recommendations - High/medium/low priority actionable suggestions
Structural insights - Improve vault organization and connectivity
Content guidance - Optimize note length and detail
Productivity tracking - Monitor writing patterns and vault growth
š Change Monitoring
File-level tracking - Monitor additions, modifications, and deletions
Activity patterns - Identify productive periods and trends
Evolution analysis - Track how your vault grows over time
Daily summaries - See recent activity at a glance
š Flexible Reporting
Markdown reports - Human-readable analysis summaries
JSON exports - Structured data for programmatic use
CSV formats - Data analysis and spreadsheet integration
Customizable sections - Focus on what matters to you
Related MCP server: obsidian-codex-mcp
š ļø Installation & Setup
Prerequisites
Node.js v18 or higher
Obsidian vault (any size)
MCP-compatible client (Claude Desktop, etc.)
Quick Start
Clone and build:
git clone <repository-url> background-vault-analysis
cd background-vault-analysis
npm install
npm run buildTest the system:
node dist/test.jsConfigure your MCP client:
Add to your MCP configuration (e.g., Claude Desktop):
{
"mcpServers": {
"background-vault-analysis": {
"command": "node",
"args": ["/path/to/background-vault-analysis/dist/index.js"]
}
}
}š Available Tools
š scan_vault
Performs comprehensive analysis of your Obsidian vault.
Parameters:
vaultPath(required) - Path to your Obsidian vaultmode- Analysis depth:quick,deep, orincremental(default:quick)focus- Analysis focus:health,content,relationships, orall(default:all)
Example:
await mcp.call('scan_vault', {
vaultPath: '/Users/username/Documents/MyVault',
mode: 'deep',
focus: 'all'
});š” get_insights
Retrieves actionable insights and recommendations.
Parameters:
vaultPath(required) - Path to your vaultcategory- Filter by:orphans,connections,gaps,productivity, orall(default:all)timeframe- Time range:day,week,month, orall(default:all)priority- Priority filter:high,medium,low, orall(default:all)
Example:
await mcp.call('get_insights', {
vaultPath: '/Users/username/Documents/MyVault',
category: 'orphans',
priority: 'high'
});š track_changes
Monitors vault evolution and activity patterns.
Parameters:
vaultPath(required) - Path to your vaultsince- Start date for analysis (ISO format, optional)granularity- Time resolution:hourly,daily, orweekly(default:daily)
Example:
await mcp.call('track_changes', {
vaultPath: '/Users/username/Documents/MyVault',
since: '2024-01-01',
granularity: 'daily'
});š generate_report
Creates comprehensive analysis reports.
Parameters:
vaultPath(required) - Path to your vaultformat- Report format:markdown,json, orcsv(default:markdown)sections- Include sections:['overview', 'insights', 'metrics', 'changes']timeframe- Analysis period (optional)
Example:
await mcp.call('generate_report', {
vaultPath: '/Users/username/Documents/MyVault',
format: 'markdown',
sections: ['overview', 'insights', 'metrics']
});š¾ Data Storage
The system stores analysis data in your home directory:
~/.background-vault-analysis/
āāā vaults.json # Vault registry
āāā snapshots.json # Analysis snapshots
āāā insights.json # Generated insights
āāā changes.json # Change tracking dataPrivacy: All data stays local on your machine. No cloud storage or external services.
šÆ Usage Examples
Daily Vault Health Check
// Quick scan for immediate insights
const analysis = await mcp.call('scan_vault', {
vaultPath: '/Users/username/MyVault',
mode: 'quick',
focus: 'health'
});
// Get high-priority recommendations
const insights = await mcp.call('get_insights', {
vaultPath: '/Users/username/MyVault',
priority: 'high'
});Weekly Progress Review
// Track changes over the past week
const changes = await mcp.call('track_changes', {
vaultPath: '/Users/username/MyVault',
since: '2024-08-01',
granularity: 'daily'
});
// Generate comprehensive report
const report = await mcp.call('generate_report', {
vaultPath: '/Users/username/MyVault',
format: 'markdown'
});Deep Vault Analysis
// Full analysis with all insights
const analysis = await mcp.call('scan_vault', {
vaultPath: '/Users/username/MyVault',
mode: 'deep',
focus: 'all'
});
// Export data for external analysis
const dataExport = await mcp.call('generate_report', {
vaultPath: '/Users/username/MyVault',
format: 'json'
});š§ Architecture
Components
AnalysisDatabase - JSON-based local storage
VaultAnalyzer - Core scanning and analysis engine
InsightGenerator - Recommendation and insight creation
ChangeTracker - File modification monitoring
ReportGenerator - Multi-format report creation
Design Principles
Non-invasive - Only reads, never modifies your vault
Lightweight - Minimal dependencies and fast execution
Local-first - All data stored locally for privacy
Extensible - Modular design for easy feature additions
š Sample Output
Analysis Results
š Vault Analysis Complete
Path: /Users/username/MyVault
Mode: quick
Focus: all
Results:
- Notes analyzed: 247
- Links found: 1,156
- Orphans detected: 23
- Analysis time: 145ms
Key Findings:
- Large vault with 247 notes - consider organization strategies
- High linking density (4.7 links/note) - excellent connectivity
- Low orphan rate (9%) - excellent note connectivity
- Found 12 hub notes with 10+ backlinks - great knowledge centersInsights Example
š” Vault Insights (all | all priority)
Found 3 actionable insights:
**23 Orphaned Notes Found** (medium)
9% of your notes (23 out of 247) have no incoming links, making them difficult to discover.
Action: Review orphaned notes and create connections to related content. Start with recent notes or those with valuable information.
**Knowledge Hub Notes Identified** (low)
You have 12 notes that serve as knowledge hubs with many connections. These are valuable reference points.
Action: Maintain and expand these hub notes. Consider adding overviews, summaries, or organizing them as MOCs (Maps of Content).
**Strong Note Connectivity** (low)
Your notes average 4.7 backlinks each, indicating good interconnectedness.
Action: Continue building connections between ideas. Consider creating overview notes that link to clusters of related content.š¤ Contributing
This is a focused, lightweight tool designed for personal knowledge management. The codebase is well-structured and documented for easy understanding and modification.
Development Setup
npm install
npm run build
npm run test # Run the test suite
npm run dev # Build and run in development modeCode Structure
src/
āāā analysis/ # Core analysis components
ā āāā vault-analyzer.ts
ā āāā change-tracker.ts
āāā database/ # Data storage
ā āāā analysis-db.ts
āāā insights/ # Insight generation and reporting
ā āāā insight-generator.ts
ā āāā report-generator.ts
āāā index.ts # Main MCP server
āāā types.ts # TypeScript definitions
āāā test.ts # Test suiteš License
MIT License - Use freely for personal and commercial projects.
š Related Projects
Obsidian - The knowledge management application
Model Context Protocol - The underlying communication protocol
Brain Manager - Comprehensive project and knowledge management system
Built with ā¤ļø for the Obsidian community
Helping you understand and improve your knowledge management practices through intelligent analysis.
Available Tools
4 toolsgenerate_reportC
Create comprehensive analysis report in specified format
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Report format | markdown |
| sections | No | Report sections to include | |
| timeframe | No | Analysis timeframe | |
| vaultPath | Yes | Path to the vault |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of explaining side effects, permissions, and scope. It only says 'create', implying output generation, but does not disclose whether it writes files, modifies vault data, or returns a report directly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no filler. It front-loads the action and output type, though it may sacrifice substance for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description lacks vital context about what the report contains, how the analysis is performed, and what the function returns. It is too minimal for a tool with four parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for all parameters (100% coverage), so the baseline is 3. The description adds no extra meaning to the parameters beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('create') and resource ('analysis report'), and mentions format flexibility. It does not explicitly differentiate from sibling tools like get_insights, but the name and action make its role as a report generator evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus scan_vault, get_insights, or track_changes. It does not state prerequisites, use cases, or conditions that indicate this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insightsC
Retrieve actionable insights from vault analysis
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Insight category filter | all |
| priority | No | Priority filter | all |
| timeframe | No | Time range for insights | all |
| vaultPath | Yes | Path to the vault |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations available, the description carries the full burden. It implies a read operation ('retrieve') but does not disclose whether insights are precomputed or generated on-the-fly, what the response format is, or any side effects. This leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action ('Retrieve actionable insights') and adds the source context. There is no wasted wording.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema and annotations, the description is too sparse. It does not explain what the insights represent, how the filters interact, or what a returned result looks like. The tool's role among its siblings is not clarified, so the description is incomplete for an agent with no other context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides descriptions for all four parameters, including enums for category, priority, and timeframe. The description adds no parameter-specific information, but the schema itself is fully self-explanatory, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the verb 'retrieve' and identifies the resource as 'actionable insights from vault analysis', clearly stating the tool's function. It does not explicitly mention the insight categories (orphans, connections, gaps, productivity) or distinguish it from generate_report, but the purpose is generally clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like scan_vault, track_changes, or generate_report. There are no exclusions, prerequisites, or contextual clues beyond the vague 'from vault analysis'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scan_vaultC
Perform comprehensive background analysis of Obsidian vault
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Analysis mode | quick |
| focus | No | Analysis focus area | all |
| vaultPath | Yes | Path to the Obsidian vault directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full disclosure burden. It only hints that the analysis runs in the background, but fails to mention whether it is read-only, if it modifies the vault, performance implications, or what the return value looks like. This is minimal behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. However, it is under-specified, which undermines the value of its brevity. It is concise but not sufficiently informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, 2 enums, no output schema, and no annotations, the description is far too thin. It does not explain how mode/focus affect results, what outputs are provided, or how it fits with sibling tools. The description is inadequate for effective tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters have basic descriptions (e.g., 'Analysis mode', 'Analysis focus area'). The tool description adds no extra meaning to the parameters, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('perform') and resource ('Obsidian vault'), but 'comprehensive background analysis' is vague and doesn't specify what the scan actually inspects (health, content, relationships). It also doesn't differentiate from sibling tools like get_insights, which may similarly analyze vault data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool instead of alternatives, nor which mode/focus to select for different scenarios. The description does not mention any exclusions, prerequisites, or comparisons with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
track_changesC
Monitor vault evolution and changes over time
| Name | Required | Description | Default |
|---|---|---|---|
| since | No | Start date (ISO format, optional) | |
| vaultPath | Yes | Path to the vault | |
| granularity | No | Time granularity | daily |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior, but it only says 'monitor' with no details on side effects, return format, or performance implications. It does not explain whether this is a read-only operation, what data it returns, or how changes are tracked, which is a significant gap for a monitoring tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words or redundant information. It is front-loaded and appropriately sized for a one-line description, though the brevity comes at the cost of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters (one required, one with enums) and no output schema or annotations. The description fails to explain what the tool returns, how the optional parameters affect results, or any practical usage context. This is completely inadequate for a tool that could involve querying historical changes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so each parameter already has a description. The tool description adds no additional meaning about how these parameters affect behavior, so the baseline score applies without extra credit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('monitor') and resource ('vault evolution and changes over time'), which conveys the core function. It is distinguishable from sibling tools like scan_vault and generate_report, though it could be more explicit about what kind of output is produced.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives. Sibling tools exist, but the description does not mention any use cases, exclusions, or selection criteria, leaving the agent to infer based solely on the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose: scanning the vault, retrieving insights, tracking changes, and generating reports. The actions and targets are specific enough that an agent would not confuse them.
All tool names follow a consistent verb_noun pattern using lowercase with underscores (scan_vault, get_insights, track_changes, generate_report). The naming is uniform and predictable.
With only 4 tools, the server is well-scoped for its purpose of background vault analysis. Each tool covers a distinct step in the workflow without unnecessary bloat or missing essentials.
The tool set covers the core lifecycle of analysis: initiating a scan, retrieving insights, tracking changes, and producing a report. Minor gaps include lack of explicit status/management tools for scans or reports, but these are not critical for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
An MCP server for deep research or task groups
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
Related MCP Servers
- AlicenseAqualityAmaintenanceThe most feature-complete MCP server for Obsidian vaults. 23 tools and 3 resources for search, read, write, tags, link analysis, graph traversal, and canvas support.418630MIT
- AlicenseAqualityAmaintenanceLocal-first MCP server for working with an Obsidian vault. No API key required1713MIT
- AlicenseAqualityDmaintenanceTypeScript MCP server for Obsidian with core vault operations, graph analytics, and semantic search.3217MIT
- FlicenseNot gradedqualityBmaintenanceMCP server that exposes an Obsidian vault (search, read, create, and update notes) via Streamable HTTP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MikeyBeez/background-vault-analysis'
If you have feedback or need assistance with the MCP directory API, please join our Discord server