obsidian-mcp
Integrates with Obsidian by connecting to the Local REST API plugin, enabling AI agents and CLI users to read, create, update, delete, search, and open notes, list files and tags, retrieve the active file, and execute Obsidian commands.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@obsidian-mcpread my note 'Project Ideas.md'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Obsidian MCP Server & CLI (WSL to Windows)
Servidor MCP (Model Context Protocol) e ferramenta de linha de comando (CLI) para integrar o Obsidian rodando no Windows com agentes de IA (Antigravity, Claude Desktop, Cursor, Cline) e terminais rodando no WSL2 ou Linux.
🚀 Funcionalidades
Detecção automática de IP do Windows: Resolve dinamicamente o IP do host Windows a partir do WSL2 (
ip route default//etc/resolv.conf).Suporte a HTTPS autoassinado: Aceita os certificados SSL padrão gerados pelo plugin Local REST API do Obsidian.
Protocolo MCP nativo (stdio): Compatível com Google Antigravity, Claude Desktop, Cursor e qualquer cliente MCP.
CLI integrada: Permite interagir com o Obsidian diretamente pelo terminal bash no WSL.
Ferramentas MCP Disponíveis
Ferramenta | Descrição |
| Retorna o caminho e conteúdo da nota aberta/em foco no Obsidian |
| Abre uma nota no Obsidian no Windows, tornando-a a aba ativa |
| Lê o conteúdo markdown completo de uma nota do vault |
| Cria ou atualiza o conteúdo de uma nota |
| Adiciona texto ao final de uma nota existente |
| Remove uma nota do vault |
| Lista arquivos e pastas do vault |
| Pesquisa no índice interno de notas do Obsidian |
| Lista todas as tags e suas contagens de ocorrência |
| Lista os comandos disponíveis na paleta do Obsidian |
| Executa um comando da paleta do Obsidian |
Related MCP server: Obsidian MCP Server
📋 Pré-requisitos
Obsidian instalado no Windows com o plugin comunitário Local REST API instalado e ativado.
Copie a chave de API gerada nas configurações do plugin Local REST API no Obsidian.
Node.js (v18+) e npm instalados no ambiente WSL2 / Linux.
⚙️ Instalação e Configuração
Clone o repositório:
git clone https://github.com/artgustavobarros/obsidian-mcp.git
cd obsidian-mcpInstale as dependências:
npm installConfigure o arquivo de ambiente:
cp .env.example .envEdite o arquivo .env:
OBSIDIAN_API_KEY=sua_chave_de_api_aqui
OBSIDIAN_PORT=27124
OBSIDIAN_PROTOCOL=https
# Deixe OBSIDIAN_HOST vazio para detecção automática do IP do Windows no WSL2:
OBSIDIAN_HOST=Compile o projeto TypeScript:
npm run build🛠️ Configuração nos Clientes MCP
Antigravity (~/.gemini/antigravity-cli/mcp_config.json)
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": ["/caminho/absoluto/para/obsidian-mcp/dist/index.js"],
"env": {
"OBSIDIAN_API_KEY": "sua_chave_aqui"
}
}
}
}Claude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": ["/caminho/absoluto/para/obsidian-mcp/dist/index.js"]
}
}
}💻 Uso via Linha de Comando (CLI)
Você pode interagir diretamente com o Obsidian a partir do terminal:
# Verificar status da conexão
node dist/cli.js status
# Ver qual nota está aberta no momento
node dist/cli.js active
# Ler uma nota
node dist/cli.js read "Minhas Anotações.md"
# Abrir uma nota no Obsidian no Windows
node dist/cli.js open "01 - Sessões/Sessão 01.md"
# Buscar notas
node dist/cli.js search "projeto"
# Adicionar conteúdo a uma nota
node dist/cli.js append "Diário/2026-10-16.md" "Reunião finalizada com sucesso."
# Listar tags
node dist/cli.js tags
# Executar comando da paleta
node dist/cli.js cmd "app:open-vault"Opcionalmente, vincule o CLI globalmente no WSL:
npm link
# Agora você pode usar diretamente:
obsidian status
obsidian active📄 Licença
Distribuído sob a licença MIT.
Available Tools
11 toolsappend_to_noteC
Adiciona texto ao final de uma nota existente no vault do Obsidian.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho relativo da nota no vault. | |
| content | Yes | Texto a ser acrescentado ao final da nota. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It discloses only the append-at-end semantics, which largely duplicate the schema's own parameter text; it says nothing about behavior for a nonexistent path, whether the write is reversible, or permission requirements for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no padding. It is appropriately sized for a two-parameter tool, though it could have used the remaining space for the behavioral detail it lacks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter append tool with 100% schema coverage and no output schema, the description covers the core action adequately. However, it leaves the not-found case and the mutation's side effects unaddressed, which matters given the absence of annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and both parameters ('path' and 'content') are fully documented in the schema itself. The description adds no syntax, format, or constraint detail beyond what the schema already provides, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('Adiciona texto ao final de uma nota existente') and scopes it to the Obsidian vault, so the agent can tell it appends rather than overwrites. It does not explicitly name or differentiate from the closest sibling, create_or_update_note, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'nota existente' implies a precondition (the note must already exist), which is the only usage hint. There is no explicit guidance on when to prefer this over create_or_update_note, nor what to do if the note is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_or_update_noteB
Cria uma nova nota ou sobrescreve o conteúdo de uma nota existente no vault do Obsidian.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho relativo da nota no vault. | |
| content | Yes | Conteúdo Markdown a ser salvo na nota. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden, and it does disclose the single most important trait: an existing note's content is overwritten (destructive to prior content). It says nothing about permissions, whether the overwrite is reversible, encoding/encoding normalization, what happens on a missing path, or the return value. Partial disclosure of the critical risk earns a mid score but not more.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with zero filler, and the operation plus its overwrite consequence are front-loaded. Nothing needs trimming.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with full schema coverage and no output schema, this is minimally adequate: it says what it writes and where. It omits sibling routing (append vs overwrite) and any behavior on failure or missing paths, which for a write tool with no annotations leaves real gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both 'path' and 'content' are documented in-schema as vault-relative path and Markdown content), so the baseline is 3. The description adds no format, constraint, or edge-case detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('cria uma nova nota ou sobrescreve o conteúdo de uma nota existente') and names the exact target store (vault do Obsidian). The create-or-overwrite dual behavior is clear, but it never names the sibling it should be distinguished from (append_to_note), so an agent must infer the boundary itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance: nothing tells the agent when to pick this over append_to_note for adding content to an existing note, nor any precondition (e.g. does the path need to exist, are parent folders created). The only implicit signal is the word 'sobrescreve', which a careful agent could read as 'use append_to_note to avoid clobbering', but that inference is left entirely to the caller.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_noteC
Exclui uma nota do vault do Obsidian.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho relativo da nota a ser excluída. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Exclui' signals a destructive operation, but nothing is said about irreversibility, whether the note goes to trash or is permanently removed, or whether confirmations/permissions are required — critical gaps for a delete tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single short sentence with zero wasted words. It is efficient, though its brevity stems partly from under-specification rather than tight editing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a destructive tool with no annotations and no output schema, the description is too thin — it omits reversibility, side effects on links/references, and failure behavior. An agent has no basis for cautious invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single 'path' parameter has 100% schema description coverage defining it as a relative path. The description adds no further semantics about path syntax, rooting, or resolution, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Exclui') and resource ('uma nota do vault do Obsidian'), which is enough to tell it apart from read_note, append_to_note, and create_or_update_note. However, it never explicitly differentiates itself from any sibling or clarifies whether it targets the whole vault or a specific note path.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no indication of when to use this tool, no prerequisites, and no mention of alternatives (e.g., create_or_update_note for modifications). The agent must infer usage entirely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_commandC
Executa uma ação da paleta de comandos do Obsidian no Windows.
| Name | Required | Description | Default |
|---|---|---|---|
| commandId | Yes | ID do comando a executar (ex: 'editor:save-file', obtido via list_commands). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full disclosure burden and largely fails it. It does not say that arbitrary registered commands may mutate or delete notes, whether execution is reversible, what happens on failure, or that the platform is limited to Windows. Only the Windows constraint adds any behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with no filler. It is efficient, though brevity here shades into under-specification rather than tightness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool that arbitrary-executes commands with no annotations and no output schema, the description omits the operation's side effects and success/failure semantics. The platform note is the only extra context supplied.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: commandId is documented with format ('editor:save-file') and its source (list_commands). The description adds nothing about the parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: it executes an Obsidian command-palette action. The resource (command palette command) is clear and distinguishable from siblings like list_commands or read_note. It stops short of explicitly contrasting itself with the sibling that produces the command IDs.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance. The only hint that this follows list_commands lives in the schema's parameter description, not in the tool description. An agent gets no statement of preconditions (Obsidian running, command registered) or of alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_active_fileA
Retorna o caminho e conteúdo completo da nota atualmente aberta ou em foco na janela do Obsidian no Windows.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the Windows platform scope and that both path and full content are returned, but omits key behavior such as what happens when no note is open or in focus, and whether the read has any side effects or side constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with the resource and scope front-loaded and no filler. It is appropriately sized, though slightly terse for a tool whose return behavior is not otherwise documented.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does cover the return payload (path plus complete content) and the platform restriction, which is enough for an agent to invoke a zero-argument read tool. The main residual gap is error/no-active-note behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so there is nothing to document; the baseline of 4 applies. The description correctly implies no filtering or target arguments are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource and output: the path and full content of the note currently open/in focus in the Obsidian window. It is clearly distinguishable from path-based siblings like read_note, but it never explicitly names or contrasts with an alternative tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'currently open or in focus' — the agent must infer that this is for the active-note context rather than an arbitrary file. No when-to-use, prerequisites, or comparison against read_note/open_file is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_commandsB
Lista todos os comandos da paleta do Obsidian disponíveis no Windows.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations and no output schema, the description carries the full behavioral burden. The Windows qualifier hints at a platform constraint, but nothing is said about what is returned (names only? IDs needed for execute_command?), the required Obsidian/runtime state, or why the platform matters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler. Appropriate length for a zero-param listing tool, though the trailing platform qualifier is slightly odd.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple no-argument listing tool this is borderline adequate, but with no output schema and no annotations the agent is left guessing the return shape and how the results link to execute_command or other siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters, so the baseline is 4. There is no parameter syntax to add beyond what the empty schema already conveys.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Lista') and resource ('todos os comandos da paleta do Obsidian'), so the agent knows it enumerates available commands. It does not explicitly contrast with the obvious sibling execute_command, though list-vs-execute is inferable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use statement and no mention of the natural pairing with execute_command (discover, then run). The agent must infer that this is a discovery step from context alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_filesB
Lista arquivos e subpastas de um diretório do vault do Obsidian.
| Name | Required | Description | Default |
|---|---|---|---|
| directory | No | Diretório relativo (opcional, deixe vazio para listar a raiz do vault). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It does not disclose whether listing is recursive, how hidden files/subfolders are treated, ordering, or output format, leaving meaningful gaps for even a simple read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the resource and scope come first and nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-annotation, read-only listing tool with one fully documented optional parameter and no output schema, the description covers what is needed to invoke it correctly. Only the missing recursion/sibling-routing detail keeps it from a 5.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and the single optional 'directory' parameter is fully documented in the schema, including the empty-value default to vault root. The description adds no meaning beyond what the schema already states, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Lista') and resource ('arquivos e subpastas de um diretório do vault'), making the operation unambiguous. It does not name or differentiate itself from siblings like search_notes or read_note, which would be required for a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative tool is named. The only usage signal is the implicit 'listing a directory' meaning carried by the verb and noun.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsA
Lista todas as tags utilizadas no vault e a quantidade de ocorrências de cada uma.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the return content (each tag plus its occurrence count), which is meaningful for a zero-param read tool, but says nothing about scope limits, caching, or whether counts reflect the whole vault vs the indexed subset.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no filler; the resource is named first and the returned payload (counts) is appended. Nothing to trim.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter, read-only listing with no output schema, the description covers both what is listed and what is returned. Only minor gaps (scope, ordering, refresh behavior) remain, which are acceptable at this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so there is nothing to document; the baseline of 4 applies. The description correctly implies no inputs are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Lista') and resource ('todas as tags utilizadas no vault') and goes further to say it returns occurrence counts per tag. That is distinguishable from read/search siblings, though it does not explicitly name a contrast tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to call this versus siblings like search_notes or read_note, and no stated preconditions. Usage is only implied by the resource name itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_fileA
Abre uma nota na interface do Obsidian no Windows, tornando-a a aba ativa.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho relativo da nota no vault, ex: '01 - Sessões/Sessão 01/Sessão 01 - Registro.md' |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the platform (Windows) and the side effect on the UI (the note becomes the active tab), which an agent genuinely needs. It omits failure behavior — e.g. what happens if the path does not exist or Obsidian is not running.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler opens on the verb and immediately states the effect. It is appropriately sized for a one-parameter tool, though it is too terse to carry any usage routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, one-parameter, no-output-schema tool, the description covers what it does, where it acts (Windows Obsidian UI), and the resulting state. Only error/edge-case behavior is absent, which is a minor gap at this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'path' parameter is fully documented in the schema with a concrete relative-path example. The description adds no syntax or format detail beyond that, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Abre uma nota na interface do Obsidian no Windows') plus the observable effect ('tornando-a a aba ativa'). That distinguishes it in spirit from read_note or get_active_file, but it never names a sibling explicitly, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: opening a note in the UI rather than reading its contents suggests this is the user-visible action, contrasting implicitly with read_note. There is no explicit when-to-use statement, no exclusions, and no mention of alternatives such as get_active_file.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_noteB
Lê o conteúdo markdown completo de uma nota do vault do Obsidian.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Caminho relativo da nota no vault (com extensão .md). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It usefully discloses the return payload ("complete markdown content"), which matters since there is no output schema, but says nothing about behavior when the path is missing, permission/auth needs, or note-size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler; the verb and resource come first. It is appropriately sized for a one-parameter read tool, though it is too terse to reach the top of the range.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter read tool with 100% schema coverage and no output schema, the description covers the core (reads full markdown content). It omits error/not-found behavior and any hint of how large vaults or missing paths are handled.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single path parameter is fully documented in the schema, including the .md extension requirement. The description adds nothing about the parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ("Lê") and resource ("conteúdo markdown completo de uma nota do vault"), so the agent knows exactly what it returns. It does not explicitly distinguish itself from siblings like get_active_file or search_notes, which is a minor gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus get_active_file (same content, no path needed) or search_notes. The agent must infer that a known path means read_note, which is reasonable but unstated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_notesC
Pesquisa notas no vault utilizando o índice interno de busca do Obsidian.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Texto ou termo a ser pesquisado. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. Mentioning the internal search index hints at full-text matching, but nothing is said about operator support, case sensitivity, result limits, ordering, or what a result contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with no filler or redundancy. However, the brevity reflects missing information rather than tight editing, so it is efficient but thin.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no annotations and no output schema, the description omits result shape (paths? snippets?), matching behavior, and limits. An agent cannot predict the return value or how to interpret hits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter, and the schema already fully documents it ('Texto ou termo a ser pesquisado'). The description adds no syntax or format detail beyond the schema, so the high-coverage baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb+resource ('Pesquisa notas') and adds the mechanism ('índice interno de busca do Obsidian'), which distinguishes it from read_note or list_files. It does not explicitly name a sibling or scope, but the function is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance, no exclusions, and no mention of alternatives such as list_files or read_note. The agent is left to infer that this is full-text content search rather than file listing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v1.0.0- First observed
append_to_note - First observed
create_or_update_note - First observed
delete_note - First observed
execute_command - First observed
get_active_file - First observed
list_commands - First observed
list_files - First observed
list_tags - First observed
open_file - First observed
read_note - First observed
search_notes
TDQS
Scored across 11 tools
Most tools target a distinct resource+action (read_note, delete_note, list_tags, execute_command). The main overlap is between get_active_file and read_note, which both return note content, though the 'active/focused' scope distinguishes them; create_or_update_note also bundles two actions but is unambiguous.
All 11 tools follow a consistent snake_case verb_noun pattern (get_active_file, open_file, read_note, append_to_note, list_files, search_notes). No mixing of camelCase or alternate verb styles.
11 tools is well within the ideal 3-15 range for a vault/note management server. Each tool earns its place covering file navigation, CRUD, search, tags, and command execution without redundancy.
Core lifecycle is covered: read, create/update, append, delete, plus listing, search, tags, and command execution. Minor gaps exist (no rename/move note, no folder creation, no metadata/frontmatter access), but agents can work around these using create_or_update_note and execute_command.
Maintenance
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Search, read, and safely update Markdown notes in your connected Phasoric knowledge vaults.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides a standardized interface for AI assistants to interact with Obsidian vaults through a local REST API, enabling reading, writing, searching, and managing notes.69MIT
- AlicenseAqualityDmaintenanceConnects to Obsidian vaults via the Local REST API plugin, enabling AI-assisted Zettelkasten workflows including creating atomic notes, searching content, managing links and tags, and performing precise content editing operations.13MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to manage Obsidian notes via local REST API, supporting file CRUD, search, commands, and periodic notes.3,967 npm7Apache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search, read, and analyze Obsidian notes via the Local REST API.18 npm17ISC