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)

NPM Version

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 ferramentaDescrição
obsidian_statusRetorna detalhes básicos sobre o servidor da API REST Local do Obsidian e seu status de autenticação
obsidian_delete_activeExclui a nota atualmente ativa na interface do Obsidian
obsidian_get_activeRecupera o conteúdo completo da nota ativa (visualização Markdown ou JSON)
obsidian_patch_activeInsere, 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_activeAdiciona Markdown ao final da nota ativa
obsidian_put_activeSubstitui todo o corpo da nota ativa
obsidian_get_commandsLista todos os comandos disponíveis na paleta de comandos do Obsidian
obsidian_execute_commandExecuta um comando específico do Obsidian pelo seu ID
obsidian_open_fileAbre o arquivo especificado dentro do Obsidian (cria se não existir); flag opcional para abrir em uma nova aba
obsidian_delete_periodicExclui a nota diária / semanal / mensal / trimestral / anual atual para o período solicitado
obsidian_get_periodicRetorna o conteúdo da nota periódica atual para o período solicitado
obsidian_patch_periodicInsere / 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_periodicAdiciona Markdown à nota periódica (cria se não existir)
obsidian_put_periodicSubstitui todo o corpo de uma nota periódica
obsidian_search_dataviewExecuta uma consulta Dataview-DQL em todo o vault e retorna as linhas correspondentes
obsidian_search_json_logicExecuta uma consulta JsonLogic contra metadados estruturados de notas
obsidian_simple_searchRealiza uma busca difusa em texto simples com contexto circundante opcional
obsidian_list_vault_rootLista todos os arquivos e diretórios na raiz do seu vault
obsidian_list_vault_directoryLista arquivos e diretórios dentro de uma pasta específica do vault
obsidian_delete_fileExclui um arquivo (ou diretório) específico no vault
obsidian_get_fileRecupera o conteúdo de um arquivo no vault (visualização Markdown ou JSON)
obsidian_patch_fileInsere / 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_fileAdiciona Markdown a um arquivo (cria se não existir)
obsidian_put_fileCria 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:

  1. Configuração do servidor (recomendado) – passe-a pelo campo env na 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@latest para garantir que você sempre execute a versão mais atualizada do servidor.

  1. Alternativamente, você pode usar um arquivo .env. Coloque a chave no .env que 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.

  1. Clone este repositório e execute bun install para instalar as dependências.
  2. Atualize seu claude_desktop_config.json para 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 bun em vez de bunx aqui.

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

  1. Atualize a versão em package.json.
  2. Crie um release no GitHub.
  3. Execute bun publish.

Licença

MIT – consulte LICENSE.