obsidian-mcp
MCP server for Obsidian vaults — multi-brain manager with templates, persistent registry, search, CRUD, frontmatter, wikilinks and context bundling. Works with Hermes Agent and Claude Code simultaneously.
README
obsidian-mcp
MCP server para Obsidian vaults — gerenciador multi-brain com templates, registry persistente, busca, CRUD, frontmatter, wikilinks e context bundling.
Funciona com Hermes Agent e Claude Code simultaneamente, compartilhando os mesmos vaults via registry cross-tool.
Features
- Multi-brain — crie, remova e gerencie múltiplos vaults (cérebros) sem restart
- Registry persistente —
~/.obsidian-mcp/vault-registry.jsoncomo fonte da verdade cross-tool - 4 templates — roteirista, genérico, pesquisa, minimal
- 22 tools MCP — lifecycle de vaults, CRUD de notas, busca, backlinks, context bundle
- Frontmatter-aware — parse, serialize, update de YAML frontmatter
- Wikilinks — extração, resolução, backlinks automáticos
- Installer cross-tool — configura Hermes + Claude Code com um comando
- 124 testes — cobertura completa (pytest)
Instalação Rápida
# Clone o projeto
git clone https://github.com/SEU_USUARIO/obsidian-mcp.git
cd obsidian-mcp
# Instale o MCP server (Hermes + Claude Code)
uv run install.py
# Instale as skills do agente
uv run scripts/install-skills.py
# Verifique
uv run install.py --status
uv run scripts/install-skills.py --status
Reinicie o Hermes e/ou Claude Code após a instalação.
Requisitos
- Python 3.10+
- uv
- Hermes Agent e/ou Claude Code
Tools MCP (22)
Vault Lifecycle
| Tool | Descrição |
|---|---|
create_vault |
Cria um novo cérebro a partir de um template |
remove_vault |
Remove (arquiva por padrão) ou deleta um cérebro |
vault_status |
Status de um ou todos os cérebros |
list_vault_templates |
Lista templates disponíveis |
Vault Info
| Tool | Descrição |
|---|---|
list_vaults |
Lista cérebros registrados |
vault_overview |
Visão estrutural (pastas, tags, recentes) |
vault_briefing |
Briefing legível para início de sessão |
Notas — CRUD
| Tool | Descrição |
|---|---|
read_note |
Lê uma nota por nome |
create_note |
Cria nota (com template opcional) |
update_frontmatter |
Atualiza campos YAML sem tocar no body |
append_to_note |
Adiciona conteúdo ao final da nota |
Notas — Busca
| Tool | Descrição |
|---|---|
search_notes |
Busca textual com filtros (tags, folder, status) |
context_bundle |
Gather completo sobre um tema (busca + wikilinks) |
get_backlinks |
Notas que linkam para a nota dada |
Notas — Listagem
| Tool | Descrição |
|---|---|
list_by_tag |
Filtra notas por tag |
list_by_stage |
Filtra notas por etapa/status |
Infra
| Tool | Descrição |
|---|---|
refresh_index |
Re-scan do vault (após mudanças externas) |
Templates de Vault
| Template | Pastas | Uso |
|---|---|---|
roteirista |
11 | Roteiros, blog, conteúdo (estilo Ensinamentos da Vida) |
generico |
6 | Conhecimento pessoal (método PARA) |
pesquisa |
5 | Pesquisa acadêmica / investigação |
minimal |
0 | Vault livre (só HOME.md) |
Arquitetura
~/.obsidian-mcp/vault-registry.json ← registry cross-tool (fonte da verdade)
src/obsidian_mcp/
├── server.py ← FastMCP server + 22 tools
├── vault.py ← VaultIndex (scan/search/CRUD) + VaultManager (lifecycle)
├── registry.py ← VaultRegistry (JSON persistente)
├── templates.py ← 4 templates de vault
├── frontmatter.py ← YAML frontmatter parse/serialize/update
├── links.py ← wikilink extraction, resolution, backlinks
└── models.py ← Note, SearchResult, VaultOverview
skills/
├── obsidian-mcp/ ← skill MESTRE (dossiê do agente)
└── obsidian-mcp-install/ ← skill de instalação guiada
scripts/
└── install-skills.py ← instalador de skills (Hermes + Claude Code)
install.py ← instalador do MCP server (Hermes + Claude Code)
Fluxo de dados
Registry JSON → VaultManager carrega vaults → VaultIndex indexa notas
create_vault / remove_vault → atualizam registry + memória (hot-reload)
Hermes e Claude Code → leem do MESMO registry → mesmos cérebros
Startup do server
Prioridade: registry → env vars (seed) → auto-discovery (seed)
Configuração
Hermes Agent
~/.hermes/config.yaml:
mcp_servers:
obsidian:
command: uv
args:
- run
- --project
- C:/Users/fernando/Downloads/obsidian-mcp
- obsidian-mcp
⚠️
argsDEVE ser lista YAML, nunca string JSON.
Claude Code
~/.claude/settings.json:
{
"mcpServers": {
"obsidian": {
"command": "uv",
"args": ["run", "--project", "C:/Users/fernando/Downloads/obsidian-mcp", "obsidian-mcp"]
}
}
}
Installer
uv run install.py # configura Hermes + Claude Code
uv run install.py --hermes # só Hermes
uv run install.py --claude # só Claude Code
uv run install.py --status # mostra status
uv run install.py --remove # remove config
Skills do Agente
obsidian-mcp (skill MESTRE)
Dossiê completo: 22 tools com exemplos, gatilhos → ações, comportamento do agente, convenções de conteúdo, segurança, pitfalls. O agente carrega essa skill pra operar o sistema sem "viajar na maionese".
obsidian-mcp-install
Guia de instalação passo a passo para usuários leigos. Pré-requisitos, instalação automática/manual, troubleshooting, desinstalação.
Instalar skills
uv run scripts/install-skills.py # instala em ambos
uv run scripts/install-skills.py --hermes # só Hermes
uv run scripts/install-skills.py --claude # só Claude Code
uv run scripts/install-skills.py --status # mostra status
Desenvolvimento
cd obsidian-mcp
# Testes (124, ~2s)
uv run pytest -v
# Inspect server
OBSIDIAN_VAULT_PATH="C:/path/to/vault" uv run fastmcp inspect mcp_server.py:mcp
# Testar vault via Python
uv run python -c "
from obsidian_mcp.vault import VaultIndex
vi = VaultIndex('C:/path/to/vault')
print(vi.briefing())
"
Pitfalls Conhecidos
- YAML args —
hermes config setescreve args como string JSON. Precisa ser lista YAML. - Index stale — mudanças via terminal/Obsidian app não atualizam o index. Chame
refresh_index. - Sem delete_note — não existe tool de deletar nota. Use
rm+refresh_index. - fastmcp call — não herda env vars do shell. Teste via Python direto.
- fastmcp inspect — use
mcp_server.pywrapper (relative imports quebram direto).
Licença
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.