Skip to content

Security: ldraney/obsidian-mcp

SECURITY.md

Security

Obsidian MCP is designed with minimal access in mind. Here's what it does and doesn't access.

What This MCP Accesses

Resource Purpose
obsidian.json To discover vault locations on your machine
Your vault's .md files To read, write, and search notes
obsidian:// URI scheme To open notes in the Obsidian app

What It Does NOT Access

  • No network calls — Nothing leaves your machine. Zero outbound connections.
  • No files outside your vaults — Only reads/writes within discovered vault paths.
  • No system credentials — Never touches passwords, tokens, API keys, or keychains.
  • No browser data — No cookies, history, or saved passwords.
  • No telemetry — No analytics, no tracking, no phone-home.

Verify Yourself

All code is open source. You can audit it:

  1. Main server code: src/obsidian_mcp/server.py
  2. No network imports — Search the codebase: no requests, httpx, urllib.request, or aiohttp
  3. Dependencies — Only uses: mcp (protocol), pathlib (files), json (config), subprocess (URIs)
# Quick audit: check for network libraries
grep -r "import requests\|import httpx\|import urllib.request\|import aiohttp" src/
# Should return nothing

Reporting Security Issues

If you discover a security vulnerability, please:

  1. Do NOT open a public issue
  2. Email the maintainer directly (see GitHub profile)
  3. Allow time for a fix before public disclosure

FAQ

Q: Can Claude access files outside my vault? A: No. The MCP only reads files within paths listed in Obsidian's obsidian.json.

Q: Does this send my notes anywhere? A: No. All processing happens locally between Claude Desktop and your filesystem.

Q: What about the subprocess usage? A: Used only to open obsidian:// URIs via your system's default handler (same as clicking a link).

There aren’t any published security advisories