Obsidian
Interaja com seu cofre do Obsidian usando o plugin Local REST API, permitindo que LLMs acessem e gerenciem suas notas.
Documentação
MCP server para Obsidian (TypeScript + Bun)
Um servidor Model-Context-Protocol (MCP) que permite que o Claude (ou qualquer LLM compatível com MCP) interaja com seu vault do Obsidian através do plugin comunitário Local REST API – escrito em TypeScript e executável com bunx.
✨ Componentes
Ferramentas
| Nome da ferramenta | Descrição |
|---|---|
| obsidian_status | Retorna detalhes básicos sobre o servidor da API REST Local do Obsidian e seu status de autenticação |
| obsidian_delete_active | Exclui a nota atualmente ativa na interface do Obsidian |
| obsidian_get_active | Recupera o conteúdo completo da nota ativa (visualização Markdown ou JSON) |
| obsidian_patch_active | Insere, substitui ou adiciona conteúdo no início da nota ativa em relação a um cabeçalho, referência de bloco ou campo de front-matter |
| obsidian_post_active | Adiciona Markdown ao final da nota ativa |
| obsidian_put_active | Substitui todo o corpo da nota ativa |
| obsidian_get_commands | Lista todos os comandos disponíveis na paleta de comandos do Obsidian |
| obsidian_execute_command | Executa um comando específico do Obsidian pelo seu ID |
| obsidian_open_file | Abre o arquivo especificado dentro do Obsidian (cria se não existir); flag opcional para abrir em uma nova aba |
| obsidian_delete_periodic | Exclui a nota diária / semanal / mensal / trimestral / anual atual para o período solicitado |
| obsidian_get_periodic | Retorna o conteúdo da nota periódica atual para o período solicitado |
| obsidian_patch_periodic | Insere / substitui conteúdo em uma nota periódica em relação a um cabeçalho, referência de bloco ou campo de front-matter |
| obsidian_post_periodic | Adiciona Markdown à nota periódica (cria se não existir) |
| obsidian_put_periodic | Substitui todo o corpo de uma nota periódica |
| obsidian_search_dataview | Executa uma consulta Dataview-DQL em todo o vault e retorna as linhas correspondentes |
| obsidian_search_json_logic | Executa uma consulta JsonLogic contra metadados estruturados de notas |
| obsidian_simple_search | Realiza uma busca difusa em texto simples com contexto circundante opcional |
| obsidian_list_vault_root | Lista todos os arquivos e diretórios na raiz do seu vault |
| obsidian_list_vault_directory | Lista arquivos e diretórios dentro de uma pasta específica do vault |
| obsidian_delete_file | Exclui um arquivo (ou diretório) específico no vault |
| obsidian_get_file | Recupera o conteúdo de um arquivo no vault (visualização Markdown ou JSON) |
| obsidian_patch_file | Insere / substitui conteúdo em um arquivo arbitrário em relação a um cabeçalho, referência de bloco ou campo de front-matter |
| obsidian_post_file | Adiciona Markdown a um arquivo (cria se não existir) |
| obsidian_put_file | Cria um novo arquivo ou substitui todo o corpo de um arquivo existente |
Consulte as especificações da API REST Local do Obsidian para mais detalhes.
Exemplos de prompts
# Summarize the latest “architecture call” note
# (Claude will transparently call list_files_in_vault → get_file_contents)
Get the contents of the last “architecture call” note and summarize them.
# Find all mentions of Cosmos DB
Search for all files where “Azure CosmosDb” is mentioned and explain the context briefly.
# Create a summary note
Summarize yesterday’s meeting and save it as “summaries/2025-04-24-meeting.md”. Add a short intro suitable for e-mail.
⚙️ Configuração
Chave da API REST do Obsidian
Há duas maneiras de passar a chave da API do Obsidian para o servidor:
- Configuração do servidor (recomendado) – passe-a pelo campo
envna declaração do servidor MCP do seu Claude (ou outro cliente):
// claude_desktop_config.json
{
"mcpServers": {
"@fazer-ai/mcp-obsidian": {
"command": "bunx",
"args": ["@fazer-ai/mcp-obsidian@latest"],
"env": {
"OBSIDIAN_API_KEY": "your-obsidian-api-key"
}
}
}
}
[!NOTE] Use
@fazer-ai/mcp-obsidian@latestpara garantir que você sempre execute a versão mais atualizada do servidor.
- Alternativamente, você pode usar um arquivo
.env. Coloque a chave no.envque você criou acima. Observe que ele deve ser colocado no diretório de trabalho onde o servidor MCP está em execução.
Variáveis de ambiente
Você pode usar o arquivo .env.example como referência para criar seu próprio arquivo .env.
OBSIDIAN_API_KEY= # Obtain this from the plugin settings in Obsidian
OBSIDIAN_PROTOCOL=http
OBSIDIAN_HOST=localhost
OBSIDIAN_PORT=27123 # Port the Local REST API plugin is bound to
🛠 Desenvolvimento
Executando a versão local no Claude Desktop
Após clonar este repositório, você pode atualizar a configuração do Claude para executar sua versão local do servidor em vez de baixar do npm. Isso é útil para testar rapidamente as alterações antes de publicar.
[!NOTE] Lembre-se de que qualquer alteração que você fizer no código só terá efeito após reiniciar o aplicativo Claude Desktop.
- Clone este repositório e execute
bun installpara instalar as dependências. - Atualize seu
claude_desktop_config.jsonpara apontar para sua versão local do servidor:
// claude_desktop_config.json
{
"mcpServers": {
"@fazer-ai/mcp-obsidian": {
"command": "bun",
"args": ["/path/to/repo/src/index.ts"],
"env": {
"OBSIDIAN_API_KEY": "your-obsidian-api-key"
}
}
}
}
[!IMPORTANT] Observe que usamos
bunem vez debunxaqui.
Depuração
Os servidores MCP se comunicam via stdio, então depuradores normais não são úteis.
Use o MCP Inspector:
npx @modelcontextprotocol/inspector bun /path/to/repo/src/index.ts
Abra a URL que ele imprime para percorrer as solicitações (geralmente http://localhost:6274), inspecionar chamadas de ferramentas e acompanhar os logs em tempo real.
📦 Publicação
- Atualize a versão em
package.json. - Crie um release no GitHub.
- Execute
bun publish.
Licença
MIT – consulte LICENSE.