Obsidian MCP Server - Enhanced

Fornece acesso abrangente a um cofre do Obsidian, permitindo que agentes de IA leiam, escrevam, pesquisem e gerenciem notas por meio do plugin Local REST API.

Documentação

Obsidian MCP Server - Enhanced

TypeScript Model Context Protocol Version License Status Original

Servidor MCP Obsidian Aprimorado com Integração Remota Claude.ai, Suporte Tailscale e Capacidades Avançadas de Consulta!

🔥 Aviso de Fork Aprimorado: Esta é uma versão aprimorada do excelente cyanheads/obsidian-mcp-server com recursos adicionais especificamente adaptados para integração remota com Claude.ai, consulta avançada de tarefas e segurança via Tailscale.

Um servidor MCP (Model Context Protocol) que fornece acesso abrangente ao seu cofre Obsidian. Permite que LLMs e agentes de IA leiam, escrevam, pesquisem e gerenciem suas notas e arquivos através do plugin Obsidian Local REST API.

Construído sobre o cyanheads/mcp-ts-template, este servidor segue uma arquitetura modular com tratamento robusto de erros, registro de logs e recursos de segurança.

🚀 Recursos Aprimorados (Este Fork)

🏛️ Suporte a Múltiplos Cofres

Acesso simultâneo a múltiplos cofres Obsidian através de um único servidor MCP:

  • Gerenciamento de Múltiplos Cofres: Conecte-se a múltiplas instâncias Obsidian em portas diferentes simultaneamente
  • Roteamento Específico por Cofre: As ferramentas roteiam automaticamente para o cofre correto com base no parâmetro vault
  • Autenticação Individual: Chaves de API separadas para cada cofre com autenticação MCP centralizada
  • Compatível com Versões Anteriores: Configurações existentes de cofre único continuam funcionando sem alterações
  • Configuração Dinâmica: Configuração de cofre baseada em JSON com validação e tratamento de erros

🌐 Integração Remota com Claude.ai

Integração perfeita com o recurso MCP Remoto do Claude.ai:

  • Modo HTTP Sem Estado: Transporte sem estado dedicado para compatibilidade com Claude.ai (MCP_HTTP_STATELESS=true)
  • Modo Baseado em Sessão: Gerenciamento tradicional de sessões para outros clientes MCP
  • Autenticação Simplificada: Usa MCP_AUTH_KEY dedicada para acesso ao servidor
  • Configuração Zero: Funciona imediatamente com servidores MCP Remotos do Claude.ai
  • Pronto para Produção: Estabilidade e tratamento de erros de nível empresarial

🔒 Acesso Remoto Seguro via Tailscale

Acesse seu cofre Obsidian com segurança de qualquer lugar:

  • Integração com Tailscale Funnel: Endpoints HTTPS seguros com certificados automáticos
  • Criptografia de Ponta a Ponta: Todo o tráfego criptografado através da rede Tailscale
  • Sem Encaminhamento de Portas: Nenhuma configuração de rede necessária
  • Controle de Acesso: Suporte integrado a ACL do Tailscale para segurança empresarial

📊 Sistema Aprimorado de Tarefas e Consultas

Capacidades avançadas de consulta além do original:

  • Integração com o Plugin Tasks: Integração profunda com o plugin Obsidian Tasks
  • Análise Avançada de Datas: Reconhecimento de datas em linguagem natural
  • Detecção de Prioridade: Análise de prioridade visual e baseada em texto
  • Múltiplos Formatos de Saída: Visualizações em tabela, lista e resumo

🔧 Monitoramento de Produção e Confiabilidade

Capacidades de monitoramento e reinicialização automática de nível empresarial:

  • Script de Verificação de Saúde: Validação abrangente de componentes (scripts/health-check.sh)
  • Monitoramento Inteligente: Reinicialização automática com gerenciamento do ciclo de vida do processo (scripts/monitor-mcp.sh)
  • Início Automático no macOS: Configuração de agente de inicialização para o início do sistema (scripts/setup-autostart.sh)
  • Gerenciamento Dinâmico de Portas: Resolução automática de conflitos de porta (intervalo 3010-3013)
  • Registro Aprimorado: Depuração detalhada de conexões e validação de chaves de API

🚀 Capacidades Principais: Ferramentas Obsidian 🛠️

Este servidor equipa sua IA com ferramentas especializadas para interagir com seu cofre Obsidian:

Nome da FerramentaDescriçãoRecursos Principais
obsidian_read_fileRecupera o conteúdo e os metadados de um arquivo especificado.- Leitura em formato markdown ou json.
- Fallback de caminho sem diferenciar maiúsculas/minúsculas.
- Inclui estatísticas do arquivo (tempo de criação/modificação).
obsidian_update_fileModifica notas usando operações de arquivo inteiro.- Conteúdo append, prepend ou overwrite.
- Pode criar arquivos se não existirem.
- Direciona arquivos por caminho, nota ativa ou nota periódica.
obsidian_search_replaceExecuta operações de busca e substituição dentro de uma nota alvo.- Suporta busca por string ou regex.
- Opções para diferenciar maiúsculas/minúsculas, palavra inteira e substituir todas as ocorrências.
obsidian_global_searchExecuta uma busca em todo o cofre.- Busca por texto ou regex.
- Filtro por caminho e data de modificação.
- Resultados paginados.
obsidian_list_filesLista arquivos e subdiretórios dentro de uma pasta especificada do cofre.- Filtro por extensão de arquivo ou regex de nome.
- Fornece uma visualização em árvore formatada do diretório.
obsidian_manage_frontmatterGerencia atomicamente o frontmatter YAML de uma nota.- Chaves de frontmatter get, set ou delete.
- Evita reescrever o arquivo inteiro para alterações de metadados.
obsidian_manage_tagsAdiciona, remove ou lista tags para uma nota.- Gerencia tags tanto no frontmatter YAML quanto no conteúdo inline.
obsidian_delete_fileExclui permanentemente um arquivo especificado do cofre.- Fallback de caminho sem diferenciar maiúsculas/minúsculas por segurança.
obsidian_dataview_queryExecute consultas DQL do Dataview no seu cofre.- Execute consultas TABLE, LIST usando sintaxe Dataview.
- Consulte notas por tags, frontmatter, datas.
- Gere relatórios e análises.
obsidian_task_queryPesquise e analise tarefas em todo o seu cofre.- Filtre por status, intervalos de datas, prioridades.
- Múltiplos formatos de saída.
- Extraia metadados de tarefas (datas de vencimento, tags).

Índice

| Visão Geral | Recursos | Instalação | | Configuração | Estrutura do Projeto | Serviço de Cache do Cofre | | Ferramentas | Recursos | Desenvolvimento | Licença |

Visão Geral

O Servidor MCP Obsidian atua como uma ponte, permitindo que aplicações (Clientes MCP) que entendem o Model Context Protocol (MCP) – como assistentes de IA avançados (LLMs), extensões de IDE ou scripts personalizados – interajam direta e seguramente com seu cofre Obsidian.

Em vez de scripts complexos ou interação manual, suas ferramentas podem aproveitar este servidor para:

  • Automatizar o gerenciamento do cofre: Ler notas, atualizar conteúdo, gerenciar frontmatter e tags, pesquisar arquivos, listar diretórios e excluir arquivos programaticamente.
  • Integrar o Obsidian em fluxos de trabalho de IA: Permitir que LLMs acessem e modifiquem sua base de conhecimento como parte de suas tarefas de pesquisa, escrita ou codificação.
  • Criar ferramentas Obsidian personalizadas: Criar aplicações externas que interagem com os dados do seu cofre de maneiras inovadoras.

Construído sobre o robusto mcp-ts-template, este servidor fornece uma maneira padronizada, segura e eficiente de expor a funcionalidade do Obsidian através do padrão MCP. Ele consegue isso comunicando-se com o poderoso plugin Obsidian Local REST API executando dentro do seu cofre.

Nota do Desenvolvedor: Este repositório inclui um arquivo .clinerules que serve como uma folha de referência para seu agente de codificação LLM, com referência rápida para padrões do código, localizações de arquivos e trechos de código.

Recursos

Utilitários Principais

Aproveita os utilitários robustos fornecidos pelo mcp-ts-template:

  • Registro de Logs: Registro estruturado e configurável (rotação de arquivos, console, notificações MCP) com redação de dados sensíveis.
  • Tratamento de Erros: Processamento centralizado de erros, tipos de erro padronizados (McpError) e registro automático.
  • Configuração: Carregamento de variáveis de ambiente (dotenv) com validação abrangente.
  • Validação/Sanitização de Entrada: Usa zod para validação de esquema e lógica personalizada de sanitização.
  • Contexto de Requisição: Rastreamento e correlação de operações via IDs de requisição únicos.
  • Segurança de Tipos: Tipagem forte imposta por TypeScript e esquemas Zod.
  • Opção de Transporte HTTP: Servidor HTTP nativo do Node.js com gerenciamento de sessão, suporte a CORS e autenticação por chave de API.

Integração com Obsidian

  • Integração com a API REST Local do Obsidian: Comunica-se diretamente com o plugin Obsidian Local REST API via requisições HTTP gerenciadas pelo ObsidianRestApiService.
  • Cobertura Abrangente de Comandos: Expõe operações-chave do cofre como ferramentas MCP (veja a seção Ferramentas).
  • Interação com o Cofre: Suporta leitura, atualização (anexar, prefixar, sobrescrever), pesquisa (texto/regex global, busca/substituição), listagem, exclusão e gerenciamento de frontmatter e tags.
  • Flexibilidade de Direcionamento: As ferramentas podem direcionar arquivos por caminho, o arquivo atualmente ativo no Obsidian ou notas periódicas (diárias, semanais, etc.).
  • Serviço de Cache do Cofre: Um cache inteligente em memória que melhora o desempenho e a resiliência. Ele armazena em cache o conteúdo do cofre, fornece um fallback para a ferramenta de pesquisa global se a API ao vivo falhar e atualiza periodicamente para permanecer sincronizado.
  • Recursos de Segurança: Fallbacks de caminho sem diferenciar maiúsculas/minúsculas para operações de arquivo, distinção clara entre tipos de modificação (anexar, sobrescrever, etc.).

Instalação

Pré-requisitos

  1. Obsidian: Você precisa ter o Obsidian instalado.
  2. Plugin Obsidian Local REST API: Instale e habilite o plugin Obsidian Local REST API dentro do seu cofre Obsidian.
  3. Chave de API: Configure uma chave de API nas configurações do plugin Local REST API no Obsidian. Você precisará desta chave para configurar o servidor.
  4. Node.js e npm: Certifique-se de ter Node.js (v18 ou posterior recomendado) e npm instalados.
  5. Tailscale (para acesso remoto): Instale o Tailscale e habilite o Tailscale Funnel para integração remota segura com Claude.ai.

💡 Configuração Rápida: Para inicialização automática no boot, consulte o Guia de Configuração de Início Automático após a instalação.

Instalação

  1. Clone este repositório aprimorado:
    git clone https://github.com/BoweyLou/obsidian-mcp-server-enhanced.git
    cd obsidian-mcp-server-enhanced
    
  2. Instale as dependências:
    npm install
    
  3. Compile o projeto:
    npm run build
    
    Isso compila o código TypeScript para JavaScript no diretório dist/ e torna o ponto de entrada executável.

Configuração

Variáveis de Ambiente

Configure o servidor usando variáveis de ambiente.

Essas variáveis devem ser definidas na configuração do cliente MCP (por exemplo, cline_mcp_settings.json) ou no seu ambiente antes de iniciar o servidor (se executado diretamente). Se executado diretamente, eles podem ser definidos em um arquivo .env na raiz do projeto ou diretamente no seu ambiente.

VariávelDescriçãoObrigatórioPadrão
MCP_AUTH_KEYChave de autenticação para acesso remoto ao MCP via Claude.ai. Gere com openssl rand -hex 32Sim (Remoto)undefined
OBSIDIAN_VAULTSMatriz JSON de configurações de vault para o modo multi-vault.Sim (Multi)undefined
OBSIDIAN_API_KEYChave de API do plugin Obsidian (somente modo single-vault).Sim (Single)undefined
OBSIDIAN_BASE_URLURL base da API do Obsidian (somente modo single-vault).Sim (Single)http://127.0.0.1:27123
MCP_TRANSPORT_TYPETransporte do servidor: stdio ou http.Nãohttp
MCP_HTTP_PORTPorta para o servidor HTTP.Não3010
MCP_HTTP_HOSTHost para o servidor HTTP.Não127.0.0.1
MCP_HTTP_STATELESSAtiva o modo stateless para compatibilidade com Claude.ai.Nãofalse
MCP_ALLOWED_ORIGINSOrigens separadas por vírgula para CORS. Defina para produção.Não(nenhum)
CHATGPT_LAYER_ENABLEDDefina como true para servir o manifesto do ChatGPT e o endpoint de ações JSON.Nãofalse
CHATGPT_MANIFEST_PATHCaminho HTTP que expõe o manifesto JSON do ChatGPT.Não/.well-known/obsidian-chatgpt-manifest.json
CHATGPT_ACTIONS_PATHCaminho HTTP para ações JSON do ChatGPT (POST).Não/chatgpt/actions
CHATGPT_FACADE_TOKEN_TTL_SECONDSTempo de vida do token de acesso da fachada do ChatGPT.Não3600
CHATGPT_FACADE_REFRESH_TOKEN_TTL_SECONDSTempo de vida do token de atualização da fachada do ChatGPT.Não2592000
CHATGPT_FACADE_SCOPESEscopos da fachada do ChatGPT separados por vírgula. Adicione escopos de escrita apenas para clientes explicitamente confiáveis.Nãoobsidian:read
MCP_LOG_LEVELNível de registro (debug, info, error, etc.).Nãoinfo
OBSIDIAN_VERIFY_SSLDefina como false para desabilitar a verificação SSL.Nãotrue
OBSIDIAN_ENABLE_CACHEDefina como true para habilitar o cache de vault em memória.Nãotrue
OBSIDIAN_CACHE_REFRESH_INTERVAL_MINIntervalo de atualização do cache de vault em minutos.Não10

Configuração Multi-Vault

O servidor suporta modos single-vault (compatível com versões anteriores) e multi-vault:

Modo Single-Vault (Legado)

# .env file
MCP_AUTH_KEY=your-generated-mcp-auth-key
OBSIDIAN_API_KEY=your-obsidian-plugin-api-key
OBSIDIAN_BASE_URL=http://127.0.0.1:27123
MCP_TRANSPORT_TYPE=http
MCP_HTTP_STATELESS=true

Modo Multi-Vault (Recomendado)

# .env file
MCP_AUTH_KEY=your-generated-mcp-auth-key
OBSIDIAN_VAULTS='[
  {
    "id": "work",
    "name": "Work Vault", 
    "apiKey": "work-vault-api-key",
    "baseUrl": "http://127.0.0.1:27123",
    "verifySsl": false
  },
  {
    "id": "personal",
    "name": "Personal Vault",
    "apiKey": "personal-vault-api-key", 
    "baseUrl": "http://127.0.0.1:27122",
    "verifySsl": false
  }
]'
MCP_TRANSPORT_TYPE=http
MCP_HTTP_STATELESS=true

Processo de Configuração

  1. Gerar Chave de Autenticação MCP: openssl rand -hex 32
  2. Configurar Múltiplas Instâncias do Obsidian: Instale o plugin Local REST API em portas diferentes
  3. Obter Chaves de API: Extraia as chaves de API das configurações do plugin em cada instância do Obsidian
  4. Configurar Vaults: Atualize .env com a configuração JSON OBSIDIAN_VAULTS
  5. Iniciar o Servidor: npm run start:http
  6. Acessar via Claude.ai: Use sua URL do Tailscale com MCP_AUTH_KEY

Conectando à API do Obsidian

Modo Single-Vault

Para conectar no modo single-vault, configure a URL base (OBSIDIAN_BASE_URL) e a chave de API (OBSIDIAN_API_KEY). O plugin Obsidian Local REST API oferece dois tipos de conexão:

  1. Criptografada (HTTPS):

    • Usa o endpoint seguro https:// (ex.: https://127.0.0.1:27124)
    • Requer OBSIDIAN_VERIFY_SSL=false para certificados autoassinados
  2. Não criptografada (HTTP) - Recomendada:

    • Usa o endpoint http:// (ex.: http://127.0.0.1:27123)
    • Configuração mais simples, sem necessidade de verificação SSL

Modo Multi-Vault

Para o modo multi-vault, configure cada vault individualmente na matriz JSON OBSIDIAN_VAULTS com sua própria chave de API e URL base. Cada vault pode usar HTTP ou HTTPS conforme necessário.

Exemplos de configuração:

Single-vault com HTTP:

"env": {
  "MCP_AUTH_KEY": "your-generated-mcp-auth-key",
  "OBSIDIAN_API_KEY": "your-obsidian-api-key",
  "OBSIDIAN_BASE_URL": "http://127.0.0.1:27123"
}

Configuração multi-vault:

"env": {
  "MCP_AUTH_KEY": "your-generated-mcp-auth-key",
  "OBSIDIAN_VAULTS": "[{\"id\":\"work\",\"name\":\"Work\",\"apiKey\":\"work-key\",\"baseUrl\":\"http://127.0.0.1:27123\"},{\"id\":\"personal\",\"name\":\"Personal\",\"apiKey\":\"personal-key\",\"baseUrl\":\"http://127.0.0.1:27122\"}]"
}

Configurações Locais do Cliente MCP (Opcional)

Nota: Para integração remota com Claude.ai MCP, pule esta seção e use a Configuração de Acesso Remoto via Tailscale.

Para clientes MCP locais (ex.: Cline), adicione às suas configurações (ex.: cline_mcp_settings.json):

Configuração single-vault:

{
  "mcpServers": {
    "obsidian-mcp-server": {
      "command": "node",
      "args": ["/path/to/your/obsidian-mcp-server-enhanced/dist/index.js"],
      "env": {
        "MCP_AUTH_KEY": "your-generated-mcp-auth-key",
        "OBSIDIAN_API_KEY": "your-obsidian-api-key",
        "OBSIDIAN_BASE_URL": "http://127.0.0.1:27123",
        "OBSIDIAN_ENABLE_CACHE": "true"
      }
    }
  }
}

Configuração multi-vault:

{
  "mcpServers": {
    "obsidian-mcp-server": {
      "command": "node",
      "args": ["/path/to/your/obsidian-mcp-server-enhanced/dist/index.js"],
      "env": {
        "MCP_AUTH_KEY": "your-generated-mcp-auth-key",
        "OBSIDIAN_VAULTS": "[{\"id\":\"work\",\"name\":\"Work Vault\",\"apiKey\":\"work-api-key\",\"baseUrl\":\"http://127.0.0.1:27123\"},{\"id\":\"personal\",\"name\":\"Personal Vault\",\"apiKey\":\"personal-api-key\",\"baseUrl\":\"http://127.0.0.1:27122\"}]",
        "OBSIDIAN_ENABLE_CACHE": "true"
      }
    }
  }
}

🌐 Configuração de Acesso Remoto (Tailscale)

Para acesso remoto ao seu vault do Obsidian de qualquer lugar, você pode usar o Tailscale para expor seu servidor MCP com segurança pela internet.

Pré-requisitos

  1. Conta Tailscale: Cadastre-se em tailscale.com
  2. Tailscale Instalado: Instale o Tailscale na máquina que executa o servidor MCP
  3. Tailscale Funnel Habilitado: Ative o Tailscale Funnel para sua conta

Etapas de Configuração

  1. Gerar Chave de Autenticação MCP:

    openssl rand -hex 32
    
  2. Configurar Ambiente: Configure seu arquivo .env com a chave gerada:

    MCP_AUTH_KEY=your-generated-auth-key
    MCP_TRANSPORT_TYPE=http
    MCP_HTTP_PORT=3010
    MCP_HTTP_STATELESS=true
    
  3. Configurar Vaults: Configure a configuração single ou multi-vault (veja Configuração Multi-Vault)

  4. Iniciar o Servidor MCP:

    npm run build && npm run start:http
    
  5. Habilitar Tailscale Funnel:

    tailscale funnel 3010
    
  6. Obter Sua URL Pública: Verifique a URL do seu dispositivo Tailscale:

    tailscale status --self | grep "Funnel on"
    

Configuração Remota do MCP no Claude.ai

Adicione aos seus servidores MCP remotos do Claude.ai usando sua chave de autenticação MCP:

Configuração single-vault:

{
  "url": "https://your-device.your-tailnet.ts.net/mcp?api_key=your-mcp-auth-key",
  "name": "Obsidian Vault"
}

Configuração multi-vault:

{
  "url": "https://your-device.your-tailnet.ts.net/mcp?api_key=your-mcp-auth-key",
  "name": "Obsidian Multi-Vault"
}

Nota de Autenticação: O MCP remoto do Claude.ai usa o MCP_AUTH_KEY para autenticação do servidor. As operações individuais de vault usam as chaves de API específicas do vault configuradas no seu ambiente.

Considerações de Segurança

  • Autenticação Dupla: Autenticação do servidor MCP via MCP_AUTH_KEY, autenticação do vault via chaves de API individuais
  • Criptografia Tailscale: Todo o tráfego é criptografado de ponta a ponta pelo Tailscale
  • Rede Privada: Somente você pode acessar o servidor através da sua rede Tailscale
  • SSL Automático: O Tailscale Funnel fornece certificados HTTPS automáticos
  • Isolamento de Vault: Cada vault usa sua própria chave de API para controle de acesso seguro

Exemplo de Uso

Após a configuração, você pode usar as ferramentas remotamente pelo Claude.ai:

Comandos single-vault (usa o vault padrão):

Use obsidian_task_query to show me tasks due today with format="table"

Comandos multi-vault (especifique o vault):

Use obsidian_task_query with vault="work" to show me work tasks due today
Use obsidian_read_file with filePath="daily-note.md" and vault="personal" 
Use obsidian_dataview_query with vault="work" to run: TABLE file.name FROM #meeting WHERE file.cday = date(today)

🚀 Dica Profissional: Para uso em produção, configure inicialização automática na inicialização para que seu servidor e o Tailscale Funnel iniciem automaticamente sem intervenção manual.

Fachada do Conector ChatGPT

Clientes Claude e MCP locais podem se conectar diretamente ao /mcp. Conectores ChatGPT hospedados devem usar a fachada separada obsidian-chatgpt. A fachada reutiliza a lógica existente de vault, pesquisa e tarefas internamente, mas possui seu próprio processo, porta, fluxo de autorização OAuth/PKCE, capacidades com escopo e log de auditoria de escrita.

Use a fachada para rotas HTTPS públicas ou Tailscale Funnel. Mantenha o servidor MCP completo em localhost ou rotas privadas apenas na tailnet, a menos que esteja fazendo um teste local/de desenvolvimento explícito.

Iniciando a Fachada

Configure uma URL de recurso pública e uma chave secreta de aprovação de administrador, depois inicie a fachada:

export CHATGPT_FACADE_PUBLIC_URL="https://your-device.your-tailnet.ts.net"
export CHATGPT_FACADE_ADMIN_SECRET="$(openssl rand -hex 24)"
npm run build
npm run start:chatgpt

Se o mesmo hostname do Funnel também expõe outro conector ChatGPT, dê a esta fachada uma URL de recurso com escopo de caminho, como https://your-device.your-tailnet.ts.net/obsidian e roteie o prefixo /obsidian para a porta da fachada. A fachada atende tanto os caminhos de metadados well-known raiz quanto os qualificados por caminho para essa configuração. Nesse host compartilhado, crie o conector com https://your-device.your-tailnet.ts.net/obsidian/mcp.

Verifique a saúde:

curl "http://127.0.0.1:3020/health"

Para testes de superfície HTTP da fachada sem uma API Obsidian ativa, defina CHATGPT_FACADE_SKIP_OBSIDIAN_CHECK=true. Deixe sem definição para operação normal.

Exponha apenas a fachada através do Funnel:

make tailscale-funnel-chatgpt

OAuth e Escopos

A fachada publica metadados de descoberta OAuth:

  • /.well-known/oauth-protected-resource
  • /.well-known/oauth-authorization-server
  • /.well-known/openid-configuration

Ela armazena hashes de código de autorização, token de acesso e token de atualização localmente em CHATGPT_FACADE_STORE_PATH, não tokens brutos. Ela exige PKCE S256 para troca inicial de tokens, suporta rotação de token de atualização e valida tokens de portador por recurso, expiração e escopo antes de executar ações.

Escopos:

  • obsidian:read: search, fetch, task_query, latest_note
  • obsidian:write: create_task, update_task, append_note, create_note, create_daily_note
  • obsidian:dangerous-write: overwrite_note

A configuração do conector somente leitura é o padrão e é suportada concedendo apenas obsidian:read. overwrite_note não está disponível a menos que obsidian:dangerous-write seja explicitamente concedido.

Ações da Fachada

Todas as ações usam POST /chatgpt/actions com Authorization: Bearer <token>. Elas aceitam um campo opcional vault. A superfície pública padrão é intencionalmente menor que o conjunto completo de ferramentas MCP local.

AçãoEscopoDescrição
searchobsidian:readPesquisa global limitada com trechos.
fetchobsidian:readBusca conteúdo de nota limitado por caminho do vault.
task_queryobsidian:readConsulta de tarefas ciente do plugin Tasks.
latest_noteobsidian:readBusca a nota mais recente modificada, opcionalmente limitada por caminho.
create_taskobsidian:writeCria uma tarefa compatível com o plugin Tasks.
update_taskobsidian:writeAtualiza uma tarefa existente.
append_noteobsidian:writeAdiciona conteúdo ao final ou início da nota.
create_noteobsidian:writeCria uma nota sem sobrescrever conteúdo existente.
create_daily_noteobsidian:writeCria a nota diária de hoje ou uma especificada a partir do modelo de nota diária.
overwrite_noteobsidian:dangerous-writeSobrescrita completa da nota para clientes explicitamente confiáveis.

Respostas de ações bem-sucedidas usam o mesmo envelope para ações HTTP e chamadas de ferramentas MCP da fachada:

{
  "success": true,
  "action": "create_daily_note",
  "vault": "default",
  "resultPath": "Daily/2026-07-03.md",
  "data": {
    "filePath": "Daily/2026-07-03.md"
  }
}

Ações de escrita incluem resultPath quando o caminho do vault afetado é conhecido. Ações de criação e atualização de tarefas também incluem taskLineNumber quando o número da linha está disponível.

Escritas são adicionadas ao log de auditoria JSONL local em CHATGPT_FACADE_AUDIT_PATH. A entrada de auditoria registra ação, id do cliente, escopos, caminho alvo, modo, caminho do resultado, status e um resumo de entrada limitado; ela não armazena transcrições brutas do ChatGPT ou corpos completos de notas. Operadores podem inspecionar entradas recentes com:

curl "http://127.0.0.1:3020/audit/recent?admin_secret=$CHATGPT_FACADE_ADMIN_SECRET"

Camada Legada em Processo

CHATGPT_LAYER_ENABLED=true ainda habilita a camada antiga de manifesto/ações em processo no transporte HTTP principal para compatibilidade local/de desenvolvimento. Essa camada usa autenticação por query-string MCP_AUTH_KEY e expõe ações mais amplas incluindo sobrescrita de página. Não a use como o caminho recomendado para conector ChatGPT hospedado.

Estrutura do Projeto

O codebase segue uma estrutura modular dentro do diretório src/:

src/
├── index.ts           # Entry point: Initializes and starts the server
├── config/            # Configuration loading (env vars, package info)
│   └── index.ts
├── mcp-server/        # Core MCP server logic and capability registration
│   ├── server.ts      # Server setup, transport handling, tool/resource registration
│   ├── resources/     # MCP Resource implementations (currently none)
│   ├── tools/         # MCP Tool implementations (subdirs per tool)
│   └── transports/    # Stdio and HTTP transport logic, auth middleware
├── services/          # Abstractions for external APIs or internal caching
│   ├── obsidianRestAPI/ # Typed client for Obsidian Local REST API
│   └── vaultManager/    # Multi-vault configuration and service management
├── types-global/      # Shared TypeScript type definitions (errors, etc.)
└── utils/             # Common utility functions (logger, error handler, security, etc.)

Para uma árvore de arquivos detalhada, execute npm run tree ou consulte docs/tree.md.

Serviço de Cache do Vault

Este servidor inclui um cache em memória inteligente, projetado para melhorar o desempenho e a resiliência ao interagir com seu vault.

Propósito e Benefícios

  • Desempenho: Ao armazenar em cache o conteúdo e os metadados dos arquivos, o servidor pode executar operações de busca muito mais rapidamente, especialmente em vaults grandes. Isso reduz o número de solicitações diretas à API REST Local do Obsidian, resultando em uma experiência mais ágil.
  • Resiliência: O cache atua como um fallback para a ferramenta obsidian_global_search. Se a busca pela API ao vivo falhar ou expirar, o servidor usa o cache de forma transparente para fornecer resultados, garantindo que a funcionalidade de busca permaneça disponível mesmo se a API do Obsidian estiver temporariamente indisponível.
  • Eficiência: O cache é projetado para ser eficiente. Ele realiza uma construção inicial na inicialização e, em seguida, atualiza periodicamente em segundo plano, verificando modificações nos arquivos, garantindo que permaneça razoavelmente atualizado sem polling constante e pesado da API.

Como Funciona

  1. Inicialização: Quando habilitado, o VaultCacheService constrói um mapa em memória de todos os arquivos .md no seu vault, armazenando seu conteúdo e horários de modificação.
  2. Atualização Periódica: O cache é atualizado automaticamente em um intervalo configurável (padrão de 10 minutos). Durante uma atualização, ele busca apenas o conteúdo de arquivos que são novos ou foram modificados desde a última verificação.
  3. Atualizações Proativas: Após um arquivo ser modificado por meio de uma ferramenta como obsidian_update_file, o serviço atualiza proativamente o cache para esse arquivo específico, garantindo consistência imediata.
  4. Fallback de Busca: A ferramenta obsidian_global_search primeiro tenta uma busca pela API ao vivo. Se isso falhar, ela automaticamente recorre à busca no cache em memória.

Configuração

O cache é habilitado por padrão, mas pode ser configurado por meio de variáveis de ambiente:

  • OBSIDIAN_ENABLE_CACHE: Defina como true (padrão) ou false para habilitar ou desabilitar o serviço de cache.
  • OBSIDIAN_CACHE_REFRESH_INTERVAL_MIN: Define o intervalo em minutos para a atualização periódica em segundo plano. O padrão é 10.

Ferramentas

O Obsidian MCP Server fornece um conjunto de ferramentas para interagir com seu(s) vault(s), acionáveis por meio do Model Context Protocol.

Suporte a Múltiplos Vaults

Todas as ferramentas suportam um parâmetro opcional vault para especificar em qual vault operar:

  • Comportamento Padrão: Sem o parâmetro vault, as ferramentas usam o primeiro vault configurado
  • Vault Específico: Adicione vault: "vault-id" para direcionar um vault específico
  • Exemplo: obsidian_read_file(filePath="note.md", vault="work")
Nome da FerramentaDescriçãoArgumentos Principais
obsidian_read_fileRecupera o conteúdo e os metadados de um arquivo.filePath, vault?, format?, includeStat?
obsidian_update_fileModifica um arquivo anexando, prefixando ou sobrescrevendo.targetType, content, vault?, targetIdentifier?, wholeFileMode
obsidian_search_replaceExecuta operações de busca e substituição em uma nota.targetType, replacements, vault?, useRegex?, replaceAll?
obsidian_global_searchBusca conteúdo em todo o vault.query, vault?, searchInPath?, useRegex?, page?, pageSize?
obsidian_list_filesLista arquivos e subdiretórios em uma pasta.dirPath, vault?, fileExtensionFilter?, nameRegexFilter?
obsidian_manage_frontmatterObtém, define ou exclui chaves no frontmatter de uma nota.filePath, operation, key, vault?, value?
obsidian_manage_tagsAdiciona, remove ou lista tags em uma nota.filePath, operation, tags, vault?
obsidian_delete_fileExclui permanentemente um arquivo do vault.filePath, vault?
obsidian_dataview_queryExecuta consultas DQL do Dataview no seu vault.query, vault?, format?
obsidian_task_queryBusca e analisa tarefas em todo o vault.vault?, status?, dateRange?, folder?, priority?, format?
obsidian_periodic_notesCria e gerencia notas diárias, semanais, mensais e anuais.operation, periodType, vault?, date?, content?, append?
obsidian_block_referenceTrabalha com referências de bloco e operações de cabeçalho.operation, filePath, vault?, heading?, content?, blockId?
obsidian_graph_analysisAnalisa conexões de notas e relacionamentos do vault.operation, vault?, filePath?, minConnections?, maxDepth?
obsidian_template_systemCria arquivos a partir de modelos com substituição de variáveis.operation, vault?, templatePath?, targetPath?, variables?
obsidian_smart_linkingObtém sugestões e recomendações inteligentes de links.operation, vault?, filePath?, content?, maxSuggestions?

Nota: Todas as ferramentas suportam tratamento abrangente de erros, roteamento para múltiplos vaults e retornam respostas JSON estruturadas.

Licença

Este projeto é licenciado sob a Apache License 2.0 - consulte o arquivo LICENSE para detalhes.

Atribuição

Esta versão aprimorada é baseada no excelente trabalho de cyanheads no projeto original obsidian-mcp-server. Todo o crédito pela funcionalidade principal e arquitetura vai para o autor original.

Aprimoramentos neste fork:

  • Suporte a Múltiplos Vaults: Acesso simultâneo a vários vaults do Obsidian com roteamento específico por vault
  • Integração e correções de compatibilidade com Claude.ai Remote MCP
  • Integração com Tailscale Funnel para acesso remoto seguro
  • Camada de transporte HTTP aprimorada com separação de autenticação (MCP_AUTH_KEY)
  • Consulta avançada de tarefas com integração ao plugin Tasks
  • 5 Novas Ferramentas Avançadas: Notas periódicas, referências de bloco, análise de grafo, sistema de modelos e vinculação inteligente
  • Configuração pronta para produção para uso empresarial

Construído com o Model Context Protocol
Aprimorado para integração remota com Claude.ai