obsidian-mcp-secure
Servidor MCP que transforma o vault do Obsidian em uma fonte de dados confiável para o Claude Desktop (ou qualquer cliente MCP-compatível). Construído do zero com controles do OWASP Top 10 e audit log completo.
Listado no registry oficial da Anthropic como io.github.dewtech-technologies/obsidian-mcp-secure.
🧭 Posicionamento — não é um plugin do Obsidian
É o inverso: é uma ponte que o Claude Desktop usa para ler e escrever no Obsidian de forma segura. Seu assistente de IA fica onde já vive; seu vault vira um datasource estruturado e auditável.
┌─────────────────┐ MCP ┌──────────────────────┐ HTTP ┌────────────────────┐ FS ┌───────────┐
│ Claude Desktop │ ─────▶ │ obsidian-mcp-secure │ :27123 │ Local REST API │ ───▶ │ Vault .md │
│ (cliente AI) │ stdio │ (este pacote) │ ─────▶ │ (plugin Obsidian) │ │ │
└─────────────────┘ └──────────────────────┘ └────────────────────┘ └───────────┘| Função | Componente |
|---|---|
| Onde você conversa | Claude Desktop (ou outro cliente MCP) |
| Bridge / controle de acesso | obsidian-mcp-secure (este pacote) |
| Gateway pros arquivos do vault | Plugin Local REST API (Adam Coddington) |
| Seu conhecimento | Arquivos .md do vault |
🛠️ Tools disponíveis
| Tool | Função |
|---|---|
read_note | Lê uma nota pelo caminho |
list_notes | Lista arquivos / pastas do vault ou de um diretório específico |
create_note | Cria uma nova nota .md |
edit_note | Sobrescreve nota existente (conteúdo anterior salvo no audit log) |
delete_note | Deleta nota — exige confirm: true (Zod rejeita se faltar) |
search_notes | Busca full-text / por tag usando o motor de busca do Obsidian |
🚀 Quick start
Pré-requisitos
- Obsidian Desktop com um vault aberto
- Plugin Local REST API instalado e habilitado, com "Enable Non-encrypted (HTTP) Server" ativado
- Node.js 18+
- Claude Desktop
Instalação
Abre %APPDATA%\Claude\claude_desktop_config.json (Windows) ou ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) e adiciona:
{
"mcpServers": {
"obsidian-secure": {
"command": "npx",
"args": ["-y", "obsidian-mcp-secure"],
"env": {
"OBSIDIAN_API_KEY": "sua-api-key-do-plugin",
"OBSIDIAN_HOST": "http://127.0.0.1",
"OBSIDIAN_PORT": "27123",
"LOG_DIR": "C:/path/para/logs"
}
}
}
}Windows
Se npx falhar silenciosamente, troca "command": "npx" por "command": "npx.cmd". Algumas versões do Claude Desktop não resolvem npx puro no PATH.
Reinicia o Claude Desktop (tray → Quit, depois reabrir) e as 6 tools aparecem na lista de MCP servers conectados.
Ver instalação detalhada por sistema operacional →
🔒 Segurança
| OWASP | Implementação |
|---|---|
| A01 Broken Access Control | Path traversal bloqueado, extensão .md obrigatória |
| A02 Cryptographic Failures | API key via .env apenas, nunca em logs |
| A03 Injection | Inputs validados com Zod, sem eval / exec / shell |
| A04 Insecure Design | Limite de 512 KB por nota, 50 resultados na busca, destrutivas exigem confirm: true |
| A05 Security Misconfiguration | Apenas 127.0.0.1 / localhost aceitos como host |
| A09 Logging & Monitoring | Audit log completo via winston, com rotação (5 MB / 10 arquivos) |
Ver detalhes do threat model e implementação →
🤝 Companions recomendados
A composabilidade do MCP brilha quando você usa múltiplos servidores na mesma conversa. Adicione o fetch oficial da Anthropic ao mesmo claude_desktop_config.json:
{
"mcpServers": {
"obsidian-secure": { "...": "config como acima" },
"fetch": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-fetch"]
}
}
}Agora o Claude tem vault + web em uma conversa só. Exemplos:
"Lê minha nota
Projeto API.md, depois busca https://developers.facebook.com/docs/whatsapp e me diz se minha implementação está alinhada com as melhores práticas atuais."
"Pesquisa as últimas tendências de state management em React e cruza com o que já tenho documentado no vault sobre React."
