Skip to main content
Glama

vault-mcp-server

MCP server genérico pra consultar e alimentar um vault Obsidian (ou qualquer pasta de arquivos .md). Não sabe nada sobre a estrutura de nenhum vault específico — isso é responsabilidade do AGENTS.md/convenções de cada vault, lido pelo agente que usa as tools, não codificado aqui.

Ferramentas

Módulo

Ferramenta

Descrição

Busca

search_notes(query, subfolder=None, max_results=None)

Busca texto (regex, cai pra literal se inválido) em .md, opcionalmente só numa subpasta

Busca

search_by_tag(tag, subfolder=None)

Busca notas com a tag no frontmatter (tags:) ou inline (#tag)

Busca

get_backlinks(path)

Notas que linkam pra essa via [[wikilink]]

Leitura

read_note(path)

Conteúdo bruto de uma nota (frontmatter incluso)

Leitura

list_notes(subfolder=None)

Lista recursiva de .md com frontmatter de preview

Leitura

list_folders(subfolder=None)

Subpastas de um nível

Leitura

get_note_metadata(path)

Só o frontmatter parseado

Escrita

write_note(path, content, mode="append")

Cria (mode="create", falha se já existir) ou concatena (mode="append", cria se não existir)

Escrita

rename_note(path, new_filename)

Renomeia, mesma pasta

Escrita

move_note(path, new_path)

Move/renomeia pra qualquer caminho no vault

Escrita

delete_note(path)

Soft delete — move pra .trash/, não apaga de verdade

Limitação conhecida: rename_note/move_note não reescrevem [[wikilinks]] que outras notas tenham pra elas (diferente do Obsidian, que faz isso automaticamente pela UI). Rode get_backlinks antes de renomear pra saber o que pode quebrar.

write_note não faz git. Só grava o arquivo — commit/push continua manual (mesmo fluxo que o AGENTS.md de cada vault já deve documentar pra agentes com acesso a shell).

Related MCP server: Obsidian CLI MCP Server

Variáveis de ambiente

Variável

Default

Faz

VAULT_MCP_ROOT

~/vault

Raiz do vault a servir — trocar aponta pra qualquer outro vault

VAULT_MCP_SEARCH_MAX_RESULTS

50

Limite de resultados de busca (1-500)

VAULT_MCP_SEARCH_CONTEXT_CHARS

120

Tamanho do trecho retornado por match (20-1000)

VAULT_MCP_WRITE_MAX_CHARS

20000

Limite de tamanho de conteúdo em write_note (1-200000)

VAULT_MCP_BLOCKED_FOLDERS

(vazio)

CSV de pastas de topo extras a bloquear pra leitura/escrita, além de .git/.obsidian/.trash (sempre bloqueados)

Segurança

Todo caminho é resolvido e validado contra escapar da raiz do vault (sem .., sem caminho absoluto fora do vault). Só arquivos .md são lidos/escritos. Pastas de topo em VAULT_MCP_BLOCKED_FOLDERS (+ as três padrão) ficam fora tanto de leitura quanto de escrita.

Registro

Pra este vault específico (~/vault), bloqueando também _scripts/ (é tooling, não notas):

claude mcp add --scope user vault \
  --env VAULT_MCP_ROOT=$HOME/vault \
  --env VAULT_MCP_BLOCKED_FOLDERS=_scripts \
  -- uv run --directory ~/dev/pessoal/vault-mcp-server server.py

--scope user deixa disponível em qualquer sessão do Claude Code, em qualquer repo — não só quando se está dentro do vault. O mesmo binário serve qualquer outro vault só trocando VAULT_MCP_ROOT.

Codex CLI ainda não está instalado nesta máquina; quando estiver, o mesmo servidor se registra via entrada mcp_servers no config.toml do Codex, apontando pro mesmo comando (uv run --directory ... server.py) com as mesmas env vars.

Available Tools

11 tools
delete_noteD

Inputs: path (required). Returns: result

get_note_metadataD

Inputs: path (required). Returns: result

list_foldersD

Inputs: subfolder. Returns: result

list_notesD

Inputs: subfolder. Returns: result

move_noteD

Inputs: path (required), new_path (required). Returns: result

read_noteD

Inputs: path (required). Returns: result

rename_noteD

Inputs: path (required), new_filename (required). Returns: result

search_by_tagD

Inputs: tag (required), subfolder. Returns: result

search_notesD

Inputs: query (required), subfolder, max_results. Returns: result

write_noteD

Inputs: path (required), content (required), mode. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    C2.1/5.0

    Scored across 11 tools

    Disambiguation4/5

    Most tools target distinct operations: search, read, write, rename, move, delete, metadata. The only potential overlap is between search_notes and search_by_tag, but they are differentiated by search mechanism (content vs tag).

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern in lowercase snake_case (e.g., search_notes, read_note, list_folders, delete_note). This is highly predictable and uniform.

    Tool Count5/5

    With 11 tools, the server is well-scoped for note management. It covers essential operations without redundancy or unnecessary bloat.

    Completeness4/5

    The toolset provides comprehensive note lifecycle coverage (create, read, update, delete), plus search, backlinks, metadata, and folder listing. Minor omissions like an explicit tag listing or folder contents are acceptable workarounds.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server that provides read and write access to an Obsidian vault by interacting directly with markdown files on disk. Supports searching, listing, reading, creating, editing, and appending notes without requiring any Obsidian plugins.
      3,517 npm
      ISC
    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for interacting with Obsidian via the Local REST API, enabling file operations, search, and content editing in your vault.
      MIT