{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm-mcp-obsidian","slug":"mcp-obsidian","name":"mcp-obsidian","type":"mcp","url":"https://www.npmjs.com/package/mcp-obsidian","page_url":"https://unfragile.ai/mcp-obsidian","categories":["mcp-servers"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm-mcp-obsidian__cap_0","uri":"capability://memory.knowledge.vault.aware.note.retrieval.and.search","name":"vault-aware note retrieval and search","description":"Exposes Obsidian vault contents through MCP resources, allowing LLM clients to query and retrieve notes by path, title, or content patterns. Implements resource discovery via MCP's resource listing protocol, enabling clients to enumerate vault structure and fetch note metadata (creation date, modified date, tags, frontmatter) alongside raw markdown content. Works by mounting the local vault filesystem as MCP resources with standardized URIs (obsidian://vault/path/to/note.md), allowing stateless access without requiring Obsidian application to be running.","intents":["I want my AI agent to read specific notes from my Obsidian vault and use them as context","I need to search across my vault and return matching notes to an LLM for analysis","I want to expose my vault structure to Claude or other MCP-compatible clients for knowledge retrieval","I need to fetch note metadata and relationships to build context for reasoning tasks"],"best_for":["knowledge workers building AI agents that need access to personal knowledge bases","developers creating LLM-powered tools that augment Obsidian workflows","teams using Obsidian as a centralized documentation store for AI-assisted retrieval"],"limitations":["Read-only access to vault — cannot modify or create notes through MCP interface","No real-time sync — requires vault to be on local filesystem; cloud vaults (iCloud, OneDrive) must be synced locally first","No support for Obsidian plugins or computed properties — only raw markdown and frontmatter","Vault must be accessible to the MCP server process; no remote vault access over network"],"requires":["Node.js 16+","Local Obsidian vault directory with read permissions","MCP-compatible client (Claude Desktop, custom MCP host, or LLM framework with MCP support)","mcp-obsidian npm package installed and configured"],"input_types":["vault path (string)","note title or filename (string)","search query (string)"],"output_types":["markdown content (string)","note metadata (JSON: title, path, created, modified, tags)","vault structure (JSON: directory tree, file list)"],"categories":["memory-knowledge","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-obsidian__cap_1","uri":"capability://memory.knowledge.note.content.streaming.and.pagination","name":"note content streaming and pagination","description":"Streams large note content in chunks through MCP's resource interface, preventing context window overflow when notes exceed LLM token limits. Implements pagination or streaming at the MCP protocol level, allowing clients to request partial note content (e.g., first N lines, specific sections) rather than loading entire files. Handles markdown parsing to identify section boundaries (headings, code blocks) for intelligent chunking that respects document structure.","intents":["I want to feed a large note to Claude without hitting token limits","I need to retrieve only specific sections of a note (e.g., a particular heading) rather than the whole file","I want to stream note content progressively as my agent processes it"],"best_for":["developers working with large knowledge bases where individual notes may exceed context windows","AI agents that need to selectively extract sections from notes for targeted analysis"],"limitations":["Chunking strategy depends on markdown structure — notes with irregular formatting may not chunk cleanly","No built-in caching of parsed sections — each request re-parses the markdown","Streaming support depends on MCP client implementation; not all clients may support partial resource requests"],"requires":["MCP client with support for partial resource requests or streaming","Notes formatted with consistent markdown structure (headings, code blocks)"],"input_types":["note path (string)","section identifier or line range (optional)"],"output_types":["markdown content chunk (string)","section metadata (JSON: heading level, line numbers, character count)"],"categories":["memory-knowledge","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-obsidian__cap_2","uri":"capability://search.retrieval.vault.wide.full.text.search.with.filtering","name":"vault-wide full-text search with filtering","description":"Implements full-text search across all notes in the vault through MCP tools, supporting regex patterns, tag filters, and metadata filters (date range, note type). Search is executed locally against the vault filesystem without requiring Obsidian application, using efficient indexing or streaming search to handle large vaults. Returns ranked results with context snippets (surrounding text) and metadata, allowing LLM clients to identify relevant notes before fetching full content.","intents":["I want my AI agent to search my vault for notes matching a query and return the top results","I need to find all notes with a specific tag or created within a date range","I want search results to include context snippets so the agent can decide which notes to read fully"],"best_for":["users with large vaults (100+ notes) who need efficient search before retrieval","AI agents that need to filter vault contents before processing"],"limitations":["Search performance degrades with vault size — no built-in indexing, so each search scans all files","Regex support may be limited depending on implementation; complex patterns may not work","No fuzzy matching or semantic search — only literal text and pattern matching","Tag filtering depends on frontmatter format; non-standard tag formats may not be recognized"],"requires":["Vault with consistent metadata structure (frontmatter tags, dates)","MCP client that supports tool calling for search operations"],"input_types":["search query (string)","regex pattern (optional string)","tag filter (optional string or array)","date range (optional: {from, to})"],"output_types":["search results (JSON array: {path, title, snippet, metadata, score})"],"categories":["search-retrieval","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-obsidian__cap_3","uri":"capability://memory.knowledge.note.relationship.and.backlink.traversal","name":"note relationship and backlink traversal","description":"Parses markdown links and backlinks within notes to build a graph of note relationships, exposing this graph through MCP tools for traversal and analysis. Identifies wikilinks ([[ ]]), markdown links ([text](path)), and backlinks (notes that reference the current note) by parsing markdown syntax. Allows clients to traverse the knowledge graph (e.g., 'get all notes linked from this note', 'find all notes that reference this note') to build contextual understanding of how notes relate. Implements graph traversal algorithms (BFS, DFS) to find connected components or paths between notes.","intents":["I want my AI agent to understand how notes in my vault are connected and use that for context","I need to find all notes that reference a particular topic or note","I want to traverse the knowledge graph to build a comprehensive view of a subject area"],"best_for":["knowledge workers using Obsidian's linking features who want AI agents to understand vault structure","developers building graph-based reasoning or knowledge synthesis tools"],"limitations":["Link parsing depends on markdown format — non-standard link syntax may not be recognized","No support for Obsidian-specific features like aliases or link metadata","Graph traversal can be expensive for highly interconnected vaults — no built-in caching or memoization","Backlink computation requires scanning all notes; performance degrades with vault size"],"requires":["Notes using standard markdown or wikilink syntax for linking","MCP client that supports tool calling for graph traversal"],"input_types":["note path (string)","traversal direction ('forward', 'backward', 'bidirectional')","max depth (optional integer)"],"output_types":["linked notes (JSON array: {path, title, linkType})","graph structure (JSON: {nodes, edges})"],"categories":["memory-knowledge","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-obsidian__cap_4","uri":"capability://data.processing.analysis.frontmatter.extraction.and.structured.metadata.querying","name":"frontmatter extraction and structured metadata querying","description":"Parses YAML frontmatter from notes and exposes metadata as queryable fields through MCP, enabling filtering and aggregation by custom properties. Extracts frontmatter using YAML parsing (not regex), supporting nested structures, arrays, and typed values (strings, numbers, dates, booleans). Allows clients to query notes by metadata (e.g., 'find all notes with status=draft', 'get notes created in the last week', 'list all notes with a specific author'). Implements metadata indexing for efficient filtering without scanning all note content.","intents":["I want to query my vault by custom metadata fields (status, author, category) to find relevant notes","I need to aggregate metadata across notes (e.g., count notes by status, list all authors)","I want my AI agent to understand note metadata and use it for filtering or prioritization"],"best_for":["teams using Obsidian with consistent frontmatter conventions","developers building metadata-driven workflows or dashboards"],"limitations":["Requires notes to have frontmatter — notes without YAML front matter are skipped","No schema validation — malformed YAML is silently ignored or causes parsing errors","Metadata indexing not persistent — rebuilt on each server start, no caching","No support for computed or derived metadata fields"],"requires":["Notes with YAML frontmatter (---...---)","Consistent metadata field names and types across notes"],"input_types":["metadata field name (string)","filter value or range (string, number, date, or array)","aggregation function (optional: 'count', 'group', 'list')"],"output_types":["filtered notes (JSON array with metadata)","aggregation results (JSON: {field, values, counts})"],"categories":["data-processing-analysis","search-retrieval"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-obsidian__cap_5","uri":"capability://automation.workflow.note.creation.and.templating.through.mcp","name":"note creation and templating through mcp","description":"Provides MCP tools to create new notes in the vault with optional template support, allowing LLM clients to generate and persist new content. Implements template substitution (variable replacement, conditional sections) to support structured note creation (e.g., creating meeting notes with date, attendees, agenda template). Writes notes to the vault filesystem with proper markdown formatting, frontmatter, and directory structure. Handles file naming conventions and conflict resolution (e.g., appending timestamps to avoid overwrites).","intents":["I want my AI agent to create new notes in my vault based on a template or user input","I need to generate structured notes (meeting notes, project plans) with consistent formatting","I want to persist AI-generated content directly to my vault without manual copying"],"best_for":["users who want AI agents to augment their note-taking workflow","teams using Obsidian as a content generation tool with AI assistance"],"limitations":["Write access requires vault directory to be writable by the MCP server process","No transaction support — partial failures may leave incomplete notes","Template syntax is custom and may not match Obsidian's native template system","No built-in conflict detection — may overwrite existing notes if naming conflicts occur","Changes are not reflected in Obsidian UI until vault is refreshed"],"requires":["Write permissions on vault directory","MCP client that supports tool calling for note creation","Template definitions (if using templating)"],"input_types":["note title (string)","note content (markdown string)","directory path (optional string)","template name (optional string)","template variables (optional JSON object)"],"output_types":["created note metadata (JSON: {path, title, created})"],"categories":["automation-workflow","text-generation-language"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-obsidian__cap_6","uri":"capability://data.processing.analysis.vault.statistics.and.analytics","name":"vault statistics and analytics","description":"Computes and exposes vault-wide statistics through MCP tools, including note count, total word count, tag distribution, link density, and temporal metrics (creation/modification trends). Aggregates metadata across all notes to provide insights into vault structure and growth. Implements efficient scanning to avoid re-computing statistics on every request, with optional caching or lazy evaluation. Returns statistics as structured JSON for use in dashboards, reports, or LLM reasoning.","intents":["I want to understand the size and structure of my vault (how many notes, total words, tag distribution)","I need to track vault growth over time (notes created per month, modification trends)","I want my AI agent to have context about vault scale when deciding how to search or retrieve content"],"best_for":["vault administrators who want to monitor vault health and growth","developers building analytics dashboards for Obsidian vaults"],"limitations":["Statistics are point-in-time snapshots — no historical tracking without external storage","Computation can be expensive for large vaults — may block other requests","No built-in caching — statistics are recomputed on each request unless client caches results","Limited to simple aggregations — no support for complex statistical analysis"],"requires":["MCP client that supports tool calling for analytics queries"],"input_types":["statistic type (string: 'summary', 'tags', 'timeline', 'links')"],"output_types":["statistics (JSON: {noteCount, wordCount, tagDistribution, linkDensity, createdDates, modifiedDates})"],"categories":["data-processing-analysis","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-obsidian__cap_7","uri":"capability://tool.use.integration.mcp.resource.protocol.implementation.for.vault.exposure","name":"mcp resource protocol implementation for vault exposure","description":"Implements the Model Context Protocol (MCP) resource specification to expose Obsidian vault as a standardized resource layer, enabling any MCP-compatible client to access vault contents without custom integration code. Defines resource URIs (obsidian://vault/path/to/note.md), resource types (text/markdown, application/json for metadata), and MIME types for proper content negotiation. Handles MCP resource discovery (listing available resources), resource reading (fetching content), and resource metadata (size, modified time, content type). Implements MCP's resource subscription mechanism for real-time updates if vault changes.","intents":["I want to expose my Obsidian vault to Claude or other MCP-compatible clients without custom code","I need a standardized interface for accessing vault contents that works across different LLM platforms","I want my vault to be discoverable as an MCP resource so clients can enumerate and access notes"],"best_for":["developers integrating Obsidian with MCP-compatible LLM platforms (Claude Desktop, custom MCP hosts)","teams standardizing on MCP for tool integration across their AI stack"],"limitations":["MCP client must support the resource protocol — not all clients implement full MCP spec","Resource subscriptions may not work reliably for filesystem changes — depends on OS file watching","No authentication or access control — all resources are exposed equally to the MCP client","Resource URIs are vault-specific — not portable across different vaults or machines"],"requires":["MCP-compatible client (Claude Desktop, custom MCP host, LLM framework with MCP support)","MCP server implementation (mcp-obsidian package)"],"input_types":["resource URI (string: obsidian://vault/...)","resource type filter (optional string)"],"output_types":["resource content (markdown, JSON, or other MIME type)","resource metadata (JSON: {uri, type, size, modified})","resource list (JSON array of available resources)"],"categories":["tool-use-integration","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-mcp-obsidian__cap_8","uri":"capability://automation.workflow.vault.configuration.and.server.lifecycle.management","name":"vault configuration and server lifecycle management","description":"Manages MCP server configuration for vault access, including vault path specification, authentication/authorization settings, and resource filtering rules. Implements server initialization (loading vault metadata, building indexes), graceful shutdown (flushing pending writes, closing file handles), and error handling for vault access issues (missing vault, permission errors, corrupted files). Exposes configuration through environment variables or config files, allowing users to customize server behavior without code changes. Handles vault validation on startup to ensure accessibility and proper format.","intents":["I want to configure which vault the MCP server should expose and how it should behave","I need to set up authentication or access control for vault access","I want the server to validate the vault on startup and report any issues"],"best_for":["system administrators setting up MCP servers for vault access","developers deploying mcp-obsidian in production environments"],"limitations":["Configuration is static — changes require server restart","No built-in authentication — relies on filesystem permissions for access control","Limited error reporting — vault issues may not be clearly communicated to clients","No support for multiple vaults in a single server instance"],"requires":["Environment variables or config file with vault path","Proper filesystem permissions on vault directory"],"input_types":["vault path (string)","configuration options (JSON object)"],"output_types":["server status (JSON: {running, vaultPath, resourceCount})","validation results (JSON: {valid, errors, warnings})"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":33,"verified":false,"data_access_risk":"high","permissions":["Node.js 16+","Local Obsidian vault directory with read permissions","MCP-compatible client (Claude Desktop, custom MCP host, or LLM framework with MCP support)","mcp-obsidian npm package installed and configured","MCP client with support for partial resource requests or streaming","Notes formatted with consistent markdown structure (headings, code blocks)","Vault with consistent metadata structure (frontmatter tags, dates)","MCP client that supports tool calling for search operations","Notes using standard markdown or wikilink syntax for linking","MCP client that supports tool calling for graph traversal"],"failure_modes":["Read-only access to vault — cannot modify or create notes through MCP interface","No real-time sync — requires vault to be on local filesystem; cloud vaults (iCloud, OneDrive) must be synced locally first","No support for Obsidian plugins or computed properties — only raw markdown and frontmatter","Vault must be accessible to the MCP server process; no remote vault access over network","Chunking strategy depends on markdown structure — notes with irregular formatting may not chunk cleanly","No built-in caching of parsed sections — each request re-parses the markdown","Streaming support depends on MCP client implementation; not all clients may support partial resource requests","Search performance degrades with vault size — no built-in indexing, so each search scans all files","Regex support may be limited depending on implementation; complex patterns may not work","No fuzzy matching or semantic search — only literal text and pattern matching","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.3705691636029994,"quality":0.28,"ecosystem":0.3,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:23.902Z","last_scraped_at":"2026-05-03T14:04:47.472Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":3563,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=mcp-obsidian","compare_url":"https://unfragile.ai/compare?artifact=mcp-obsidian"}},"signature":"bqqoiiwR41xDWykCa2Y7GDwbywNITmtk5PALU8B44U9JPJ9efsLbORHtAILwoLB3QVi9nmy6GXqZMiA/62a+CQ==","signedAt":"2026-06-20T15:01:17.625Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/mcp-obsidian","artifact":"https://unfragile.ai/mcp-obsidian","verify":"https://unfragile.ai/api/v1/verify?slug=mcp-obsidian","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}