{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"obsidian-mcp-server","slug":"obsidian-mcp-server","name":"Obsidian MCP Server","type":"mcp","url":"https://github.com/smithery-ai/mcp-obsidian","page_url":"https://unfragile.ai/obsidian-mcp-server","categories":["mcp-servers"],"tags":["obsidian","notes","knowledge-base","community"],"pricing":{"model":"free","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"obsidian-mcp-server__cap_0","uri":"capability://tool.use.integration.mcp.protocol.compliant.tool.exposure.for.obsidian.vaults","name":"mcp protocol-compliant tool exposure for obsidian vaults","description":"Implements the Model Context Protocol specification to expose read_notes and search_notes as discoverable tools to MCP clients like Claude Desktop. The server registers tool schemas with the MCP client during initialization, enabling standardized tool discovery and invocation through the MCP protocol's tool_call mechanism. This allows any MCP-compatible client to dynamically discover available capabilities without hardcoding tool knowledge.","intents":["Enable Claude Desktop to discover and call Obsidian-specific tools without manual configuration","Integrate Obsidian vault access into any MCP-compatible AI client or agent framework","Expose vault tools through a standardized protocol that works across multiple AI platforms"],"best_for":["AI application developers building multi-tool agent systems","Teams integrating Obsidian with Claude Desktop or other MCP clients","Builders creating cross-platform AI assistants that need knowledge base access"],"limitations":["MCP protocol overhead adds ~50-100ms per tool invocation due to serialization and deserialization","Tool discovery is static at server startup — dynamic tool registration not supported","Limited to MCP v1.0 specification — no support for streaming responses or advanced protocol features"],"requires":["MCP client implementation (Claude Desktop, VS Code with MCP extension, or custom MCP client)","Node.js 14+ runtime","Valid Obsidian vault path or markdown directory configured"],"input_types":["MCP tool call requests with JSON-serialized parameters"],"output_types":["MCP tool result responses with JSON-serialized content"],"categories":["tool-use-integration","mcp-protocol"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__cap_1","uri":"capability://memory.knowledge.path.validated.markdown.file.reading.with.directory.traversal.prevention","name":"path-validated markdown file reading with directory traversal prevention","description":"Reads markdown file contents from the vault by accepting relative file paths, validating them through a Path Validator component that prevents directory traversal attacks (../ patterns), symlink escapes, and hidden file access. The validator ensures all file operations remain within the configured vault root directory before passing validated paths to the file system layer. This security-first approach allows safe external access to vault contents while maintaining strict boundaries.","intents":["Retrieve full content of specific markdown notes for AI context without exposing the entire vault","Allow Claude to read individual notes referenced in conversations while preventing unauthorized file access","Enable selective note access with cryptographic certainty that no files outside the vault can be read"],"best_for":["Users sharing Obsidian vaults with AI assistants and requiring security guarantees","Teams deploying mcp-obsidian in multi-user or untrusted environments","Developers building knowledge base integrations where file access control is critical"],"limitations":["Path validation adds ~5-10ms latency per read operation due to canonicalization checks","Cannot read files outside the configured vault directory even if user has system permissions","Symlink validation may block legitimate use cases where symlinks point within vault boundaries"],"requires":["Vault directory path configured in MCP server settings","Read filesystem permissions on vault directory","File paths must be relative to vault root (absolute paths rejected)"],"input_types":["Relative file paths (e.g., 'notes/project.md', 'archive/2024/january.md')"],"output_types":["Raw markdown file contents as UTF-8 text","Error messages for invalid paths or missing files"],"categories":["memory-knowledge","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__cap_10","uri":"capability://automation.workflow.async.file.system.operations.with.error.handling","name":"async file system operations with error handling","description":"Performs all file system operations asynchronously using Node.js async APIs (fs.promises) rather than blocking synchronous calls, preventing the server from hanging when reading large files or slow storage. Each operation includes comprehensive error handling for common failures (file not found, permission denied, encoding errors) with descriptive error messages returned to the client. This async-first approach ensures the server remains responsive even under load or with slow storage backends.","intents":["Read large markdown files without blocking the server or other clients","Handle file system errors gracefully with informative error messages","Support concurrent requests from multiple MCP clients without performance degradation"],"best_for":["Servers handling multiple concurrent client connections","Vaults with large files (>1MB) that would block synchronous operations","Production deployments where server responsiveness is critical"],"limitations":["Async operations add minimal but measurable overhead (~1-2ms per operation)","Error messages may not include system-level details that could aid debugging","No retry logic — transient file system errors are immediately reported to client"],"requires":["Node.js 14+ with async/await support","Filesystem that supports async operations"],"input_types":["File paths for async read operations"],"output_types":["File contents or detailed error messages"],"categories":["automation-workflow","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__cap_2","uri":"capability://search.retrieval.glob.pattern.based.markdown.file.search.across.vault","name":"glob-pattern-based markdown file search across vault","description":"Searches the vault for markdown files matching glob patterns (e.g., '*.md', 'notes/**/project*.md') by accepting a search pattern, validating it through the Path Validator to prevent directory traversal in the pattern itself, then executing filesystem glob operations within the vault boundary. Returns a list of matching file paths relative to vault root. This enables AI assistants to discover relevant notes without requiring exact filenames.","intents":["Find all notes matching a topic or naming pattern (e.g., all project notes, all 2024 entries)","Discover related notes by pattern without manually specifying each file","Enable Claude to autonomously locate relevant context from the vault based on search criteria"],"best_for":["Users with large vaults (100+ notes) who need pattern-based discovery","AI agents that need to autonomously search for relevant context","Knowledge base systems where note naming conventions enable semantic search via patterns"],"limitations":["Glob patterns are filesystem-based, not semantic — cannot search by content or tags","Search latency scales with vault size; large vaults (10k+ files) may see 500ms+ response times","Glob syntax is limited — no regex support, only standard wildcard patterns (*, ?, [abc])","No result ranking or relevance scoring — returns all matches in filesystem order"],"requires":["Vault directory path configured","Read and list filesystem permissions on vault directory","Glob pattern must be valid filesystem glob syntax"],"input_types":["Glob patterns as strings (e.g., '*.md', 'projects/**/2024/*.md')"],"output_types":["Array of relative file paths matching the pattern","Empty array if no matches found"],"categories":["search-retrieval","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__cap_3","uri":"capability://automation.workflow.obsidian.vault.configuration.and.directory.binding","name":"obsidian vault configuration and directory binding","description":"Configures the MCP server to bind to a specific Obsidian vault directory or any markdown-containing directory through environment variables or configuration files. The server reads the vault path at startup, validates it exists and is readable, then uses it as the root boundary for all subsequent file operations. This configuration-driven approach allows a single mcp-obsidian installation to serve different vaults by changing configuration without code changes.","intents":["Point mcp-obsidian at a specific Obsidian vault location on the user's system","Switch between multiple vaults by changing configuration","Deploy mcp-obsidian in different environments (local, cloud) with different vault paths"],"best_for":["Users with multiple Obsidian vaults who want to choose which vault to expose","Teams deploying mcp-obsidian across multiple machines with different vault locations","Developers building multi-tenant systems where each tenant has a separate vault"],"limitations":["Only one vault can be configured per server instance — multiple vaults require multiple server instances","Configuration changes require server restart — no hot-reload support","No validation of vault structure — any directory with markdown files is accepted, even if not a valid Obsidian vault"],"requires":["Environment variable or config file specifying vault path (e.g., OBSIDIAN_VAULT_PATH)","Directory must exist and be readable by the Node.js process","Absolute or relative path to vault root directory"],"input_types":["Configuration file (JSON/YAML) or environment variable with vault path"],"output_types":["Validated vault path used for all subsequent operations","Error if path doesn't exist or isn't readable"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__cap_4","uri":"capability://memory.knowledge.markdown.content.retrieval.with.metadata.preservation","name":"markdown content retrieval with metadata preservation","description":"Retrieves markdown file contents exactly as stored, preserving all formatting, frontmatter (YAML/TOML), internal links, and metadata. The read_notes tool returns raw file content without parsing or transformation, allowing AI assistants to see the exact note structure including Obsidian-specific syntax like [[internal links]] and #tags. This preservation enables the AI to understand note relationships and metadata without requiring separate metadata extraction.","intents":["Get exact markdown content including frontmatter and Obsidian syntax for AI analysis","Preserve note structure so Claude can understand internal links and relationships","Enable AI to extract metadata from frontmatter without separate parsing"],"best_for":["AI assistants that need to understand Obsidian vault structure and relationships","Systems where note metadata (tags, properties, dates) are stored in frontmatter","Knowledge base applications that rely on internal link graphs for context"],"limitations":["No automatic parsing of frontmatter — AI must understand YAML/TOML syntax","Large files (>1MB) may cause memory issues or slow response times","Binary files or non-UTF-8 encoded files will cause read errors","No content transformation — AI receives raw markdown, not rendered HTML or processed text"],"requires":["File must be valid UTF-8 encoded markdown","File must be readable by the Node.js process","File size should be <10MB for reasonable performance"],"input_types":["Relative file paths to markdown files"],"output_types":["Raw markdown content as UTF-8 text, including frontmatter and all formatting"],"categories":["memory-knowledge","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__cap_5","uri":"capability://memory.knowledge.internal.link.graph.awareness.through.raw.markdown.access","name":"internal link graph awareness through raw markdown access","description":"Enables understanding of Obsidian's internal link graph by exposing raw markdown content that contains [[wiki-style links]] and backlinks. While mcp-obsidian doesn't explicitly parse the link graph, it provides the raw markdown that contains all link information, allowing AI assistants to extract and reason about note relationships by analyzing the [[note-name]] syntax. Combined with the search capability, this enables graph traversal patterns where the AI can follow links to discover related notes.","intents":["Enable Claude to understand which notes are linked together in the vault","Allow AI to traverse the knowledge graph by following [[internal links]] to related notes","Discover note relationships and context by analyzing link structure"],"best_for":["Knowledge base systems where note relationships are critical context","AI agents that need to autonomously navigate and explore vault structure","Users leveraging Obsidian's linking features for semantic organization"],"limitations":["No explicit link graph API — AI must parse [[link]] syntax from raw markdown","Backlinks are not exposed — only forward links visible in note content","No link metadata (anchor targets, link types) — only basic [[note]] syntax supported","Graph traversal requires multiple read_notes calls, adding latency for deep exploration"],"requires":["Notes must use standard Obsidian [[wiki-link]] syntax","AI model must be capable of parsing markdown and extracting link syntax","Multiple read_notes calls to traverse the graph"],"input_types":["Markdown content containing [[internal-link]] syntax"],"output_types":["Raw markdown with link syntax preserved, enabling AI to extract relationships"],"categories":["memory-knowledge","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__cap_6","uri":"capability://tool.use.integration.multi.client.mcp.server.compatibility","name":"multi-client mcp server compatibility","description":"Implements the MCP server specification in a way that's compatible with multiple MCP clients including Claude Desktop, VS Code with MCP extension, and custom MCP client implementations. The server exposes tools through standard MCP protocol methods (list_tools, call_tool) without client-specific code paths, allowing the same server instance to serve different clients simultaneously. This client-agnostic approach is enabled by strict adherence to the MCP specification.","intents":["Use the same mcp-obsidian server with Claude Desktop, VS Code, and other MCP clients","Deploy a single server instance that multiple different tools or applications can connect to","Build custom MCP clients that can access Obsidian vaults through standard MCP protocol"],"best_for":["Users who want to use Obsidian with multiple AI tools (Claude, custom agents, etc.)","Teams building custom MCP clients that need knowledge base access","Developers creating MCP-based agent frameworks that should work with any vault"],"limitations":["Client-specific features (e.g., Claude's artifact rendering) are not available","No client detection or adaptation — server treats all clients identically","Clients must implement MCP protocol correctly — server doesn't work around client bugs"],"requires":["MCP-compatible client implementation","Network connectivity to server (local or remote)","MCP protocol version compatibility (v1.0)"],"input_types":["MCP protocol messages from any compatible client"],"output_types":["Standard MCP protocol responses"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__cap_7","uri":"capability://automation.workflow.installation.through.smithery.cli.with.one.command.setup","name":"installation through smithery cli with one-command setup","description":"Provides installation through the Smithery CLI tool (npx @smithery/cli install mcp-obsidian --client claude) which automatically configures mcp-obsidian for Claude Desktop without manual JSON editing. The Smithery installer handles downloading the server, setting up configuration files, and registering the server with Claude Desktop. This abstraction eliminates the need for users to understand MCP configuration details or manually edit JSON files.","intents":["Install mcp-obsidian into Claude Desktop with a single command","Avoid manual configuration file editing for non-technical users","Automatically discover and configure the local Obsidian vault path"],"best_for":["Non-technical users who want to use Obsidian with Claude Desktop","Teams deploying mcp-obsidian at scale without manual configuration","Users who prefer CLI-based installation over manual file editing"],"limitations":["Smithery CLI must be installed (requires Node.js and npm)","Only works with clients supported by Smithery (Claude Desktop, VS Code)","Automatic vault detection may fail if vault is in non-standard location","Requires internet connectivity to download server package"],"requires":["Node.js 14+ and npm installed","Smithery CLI (npx @smithery/cli)","Claude Desktop installed for --client claude option","Obsidian vault in default location or environment variable set"],"input_types":["CLI command with client flag"],"output_types":["Configured MCP server registered with Claude Desktop"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__cap_8","uri":"capability://automation.workflow.vs.code.mcp.extension.integration.with.badge.based.installation","name":"vs code mcp extension integration with badge-based installation","description":"Provides VS Code integration through MCP extension badges and manual configuration options, allowing users to install mcp-obsidian directly from VS Code's MCP extension UI. The integration supports both one-click badge installation (if VS Code extension supports it) and manual JSON configuration in VS Code settings. This enables developers to use Obsidian as a knowledge base within their VS Code environment without leaving the editor.","intents":["Install mcp-obsidian into VS Code's MCP extension without command line","Access Obsidian vault knowledge base from within VS Code editor","Configure vault path through VS Code settings UI instead of JSON editing"],"best_for":["Developers who spend most time in VS Code and want vault access there","Teams using VS Code as their primary development environment","Users who prefer GUI configuration over CLI or JSON editing"],"limitations":["Requires VS Code MCP extension to be installed and enabled","Badge installation may not work with all VS Code versions or extension versions","Manual JSON configuration requires understanding VS Code settings structure","VS Code integration is less mature than Claude Desktop integration"],"requires":["VS Code 1.80+ with MCP extension installed","MCP extension must support mcp-obsidian (check extension documentation)","Vault path must be configured in VS Code settings"],"input_types":["VS Code settings JSON or badge click"],"output_types":["Configured MCP server available in VS Code"],"categories":["automation-workflow","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__cap_9","uri":"capability://safety.moderation.vault.boundary.enforcement.with.symlink.and.hidden.file.validation","name":"vault boundary enforcement with symlink and hidden file validation","description":"Enforces strict vault boundaries by validating not just file paths but also symlinks and hidden files. The Path Validator component resolves symlinks to their targets and verifies the target is within the vault boundary, preventing symlink-based escape attacks. It also blocks access to hidden files (starting with .) and hidden directories, preventing accidental exposure of system files or configuration. This multi-layer validation ensures that even sophisticated attacks cannot escape the vault directory.","intents":["Guarantee that external clients cannot read files outside the vault, even via symlinks","Prevent accidental exposure of hidden configuration files or system files","Provide security assurance for multi-user or untrusted environments"],"best_for":["Multi-user systems where vault access must be strictly isolated","Security-sensitive deployments where file access control is critical","Teams deploying mcp-obsidian in shared or cloud environments"],"limitations":["Symlink validation may block legitimate use cases where symlinks point within vault","Hidden file blocking prevents access to dotfiles even if they're valid markdown","Validation adds ~5-10ms latency per operation due to path canonicalization","No whitelist for legitimate symlinks or hidden files — all are blocked uniformly"],"requires":["Filesystem that supports symlinks (Unix/Linux/macOS; Windows with appropriate permissions)","Read permissions on vault directory and all symlink targets"],"input_types":["File paths that may contain symlinks or hidden file references"],"output_types":["Validated paths within vault boundary, or error if escape attempt detected"],"categories":["safety-moderation","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"obsidian-mcp-server__headline","uri":"capability://tool.use.integration.mcp.server.for.obsidian.knowledge.bases","name":"mcp server for obsidian knowledge bases","description":"The Obsidian MCP Server is a community-driven tool that connects AI assistants with your Obsidian knowledge base, enabling seamless reading, searching, and managing of Markdown notes within your vault.","intents":["best MCP server for Obsidian","MCP server for managing notes","how to integrate AI with Obsidian","best tools for Obsidian knowledge management","MCP solutions for Markdown files"],"best_for":["users of Obsidian looking to enhance their note-taking with AI"],"limitations":[],"requires":["Obsidian installed"],"input_types":["Markdown files"],"output_types":["Markdown content, search results"],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":63,"verified":false,"data_access_risk":"high","permissions":["MCP client implementation (Claude Desktop, VS Code with MCP extension, or custom MCP client)","Node.js 14+ runtime","Valid Obsidian vault path or markdown directory configured","Vault directory path configured in MCP server settings","Read filesystem permissions on vault directory","File paths must be relative to vault root (absolute paths rejected)","Node.js 14+ with async/await support","Filesystem that supports async operations","Vault directory path configured","Read and list filesystem permissions on vault directory"],"failure_modes":["MCP protocol overhead adds ~50-100ms per tool invocation due to serialization and deserialization","Tool discovery is static at server startup — dynamic tool registration not supported","Limited to MCP v1.0 specification — no support for streaming responses or advanced protocol features","Path validation adds ~5-10ms latency per read operation due to canonicalization checks","Cannot read files outside the configured vault directory even if user has system permissions","Symlink validation may block legitimate use cases where symlinks point within vault boundaries","Async operations add minimal but measurable overhead (~1-2ms per operation)","Error messages may not include system-level details that could aid debugging","No retry logic — transient file system errors are immediately reported to client","Glob patterns are filesystem-based, not semantic — cannot search by content or tags","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.7,"quality":0.9,"ecosystem":0.52,"match_graph":0.25,"freshness":0.75,"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-06-17T09:51:04.693Z","last_scraped_at":null,"last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=obsidian-mcp-server","compare_url":"https://unfragile.ai/compare?artifact=obsidian-mcp-server"}},"signature":"z4vWPkrDWzYMNYiaG2jO3S5ME8xFsOLYEaPWCfbHlyrwJ5vud8syk7Fk3xDinkOoN8Dw5XIjk1CtdmcZcuOeBw==","signedAt":"2026-06-21T07:52:29.553Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/obsidian-mcp-server","artifact":"https://unfragile.ai/obsidian-mcp-server","verify":"https://unfragile.ai/api/v1/verify?slug=obsidian-mcp-server","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"}}