# smith-and-web/obsidian-mcp-server [Health: Active]

**Category:** 🧠 Knowledge & Memory  
**Repository:** https://github.com/smith-and-web/obsidian-mcp-server  
**GitHub Stars:** 19  
**npm Downloads (last month):** 305  
**Views:** 5  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/smith-and-web-obsidian-mcp-server

## Description
SSE-enabled MCP server for remote Obsidian vault management with 29 tools for notes, directories, frontmatter, tags, search, and link operations. Docker-ready with health monitoring.

## Tools
Capabilities this server exposes over MCP:

- **read-note** — Read note contents (supports `frontmatterOnly` for efficiency)
- **read-multiple-notes** — Batch read multiple notes
- **create-note** — Create a new note
- **edit-note** — Replace note contents
- **write-note** — Write with modes: overwrite, append, or prepend
- **delete-note** — Delete a note (requires confirmation)
- **move-note** — Move/rename a note
- **duplicate-note** — Copy a note to a new location
- **get-notes-info** — Get file metadata without reading content
- **list-vault** — List files and directories
- **create-directory** — Create a new directory
- **delete-directory** — Delete a directory (with recursive option)
- **rename-directory** — Rename/move a directory
- **get-frontmatter** — Get YAML frontmatter as JSON
- **update-frontmatter** — Update frontmatter fields in place (untouched fields keep their exact text; invalid YAML is refused)
- **add-tags** — Add tags to frontmatter or inline
- **remove-tags** — Remove tags from note
- **list-tags** — List all tags with counts
- **find-notes-by-tag** — Find notes with a specific tag
- **search-missing-tag** — Find notes missing a tag
- **audit-tags** — Audit folder for required tags
- **search-vault** — Full-text search with context
- **get-backlinks** — Find notes linking to a note
- **find-broken-links** — Find unresolved wiki-links
- **find-replace** — Bulk find and replace
- **semantic-search** — Hybrid vector + full-text search; filters by `directory`, `tags`, frontmatter `type` and `status`; `mode: hybrid
- **similar-notes** — Notes nearest to a note by centroid embedding
- **index-status** — Model, counts, last indexer run and lag
- **reindex-note** — Re-index one note immediately
- **search-feedback** — Record a search rating and used or expected paths; available only with the learn log enabled
- **recommend-notes** — Find notes similar to positive examples and unlike negative examples, using `best_score` or `average_vector`; requires semantic search
- **maintenance-decision** — Record an explicit accept or reject decision on a maintenance finding; requires semantic search
- **read-section** — Read content under a heading
- **append-to-section** — Append to a section
- **replace-section** — Replace section content
- **append-to-file** — Append to end of file
- **insert-at-marker** — Insert at a text marker
- **list-headings** — List all headings in a note

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "obsidian-mcp-server": {
    "command": "npx",
    "args": ["-y","@smith-and-web/obsidian-mcp-server"],
    "env": {
      "VAULT_PATH": ""
    }
  }
}
```

**Requires environment variables:** `VAULT_PATH` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What smith-and-web/obsidian-mcp-server does

smith-and-web/obsidian-mcp-server exposes an Obsidian vault as MCP tools for AI assistants. It can read, create, edit, append to, prepend to, move, duplicate, and delete notes. Destructive note deletion requires confirmation. Agents can also inspect file metadata without loading note contents, which is useful when working with large vaults.

The server covers vault structure as well as note content. Directory tools list, create, delete, and rename folders, while frontmatter tools parse YAML into JSON and update selected fields. Tag operations support frontmatter and inline tags, including tag counts, tag-based note discovery, missing-tag searches, and folder audits.

Search and relationship tools include contextual full-text search, backlinks, unresolved wiki-link detection, and bulk find-and-replace with regular expression support. Optional semantic tools add hybrid, vector, and text retrieval, similar-note discovery, indexing status, immediate single-note reindexing, and search feedback when learning logs are enabled.

## How it works

The server speaks MCP over HTTP with Server-Sent Events rather than stdio. Clients connect to an endpoint such as `http://localhost:3000/sse`. Claude Desktop and Cursor can use `mcp-remote` as a bridge, while Claude Code can connect to the SSE transport directly. Clients with native SSE support can connect to the endpoint without the bridge.

The vault is selected with `VAULT_PATH`. The process listens on all network interfaces by default, so deployments should either bind or publish it only on loopback or configure `API_KEY` before exposing it to other machines. A `/health` endpoint is available for runtime checks.

Semantic search is disabled unless `DATABASE_URL` is configured. When enabled, heading-aware chunks are indexed in PostgreSQL with pgvector, and embeddings are produced locally through Ollama. A separate indexer polls the vault and re-embeds changed content, including setups using NFS or SMB where filesystem notifications may not work.

## Setup and configuration

Node.js 20.19.0 or newer is required for the direct installation path. Start the package with `npx` after setting `VAULT_PATH`, or install dependencies from the source tree and use the provided start or development scripts. The default port is 3000; set `PORT` to choose another port. `COMPACT_RESPONSES=true` enables smaller tool responses.

Docker images are available from GitHub Container Registry. Mount the vault read-write, set the container's `VAULT_PATH` to the mounted directory, and publish the container port. A loopback-only mapping such as `127.0.0.1:3001:3000` keeps access local; remote access requires appropriate authentication and network controls.

For Claude Desktop or Cursor, configure `mcp-remote` with the server's `/sse` URL. Claude Code can be registered with its SSE transport and can send an authorization header when an API key is configured.

## Tools and capabilities

- Read one or several notes, including frontmatter-only reads.
- Create, replace, append, prepend, move, duplicate, and delete notes.
- Retrieve file metadata without reading full content.
- Browse, create, delete, and rename directories.
- Read and update YAML frontmatter while preserving untouched field text and rejecting invalid YAML.
- Add, remove, count, audit, and search tags.
- Search note text with context, inspect backlinks, detect broken wiki-links, and perform bulk replacement.
- Run filtered semantic searches using directory, tag, `type`, or `status` criteria.
- Inspect index state, reindex an individual note, and find similar notes.

## Limitations and notes

Only HTTP/SSE transport is available; the server cannot be launched directly by clients that require a stdio server. Those clients need `mcp-remote`. Semantic search requires the additional database and embedding services and remains off without `DATABASE_URL`. Because the service provides read/write access to the vault and listens on all interfaces by default, avoid exposing it broadly without authentication or network restrictions.

_Full upstream README: https://allmcps.com/mcp/smith-and-web-obsidian-mcp-server/readme_

