obsidian-codex-mcp
A local-first MCP server that lets AI clients read, search, and manage an Obsidian vault directly from markdown files on disk — no plugin, API key, or running Obsidian instance required.
Read & Navigate
Retrieve full note content (
get_note)List notes in the vault or a specific folder (
list_notes)Get a complete hierarchical folder tree (
get_folder_structure)
Search & Discover
Search notes by title, content, or tags (
search_notes)List all unique tags across the vault (
get_all_tags)Find backlinks to a given note (
get_backlinks)Extract all wikilinks within a note (
get_note_links)
Create & Edit
Create new notes with optional title, tags, and frontmatter (
create_note)Update existing note content and/or metadata (
update_note)Permanently delete notes (
delete_note)Create new folders (
create_folder)Configure the vault path (
configure_vault)
Safety Options
Read-only mode: Refuses all write operations
Backup-on-write mode: Copies notes before modification or deletion
Provides tools to interact with an Obsidian vault by reading and writing markdown files directly on disk, including note management, search, tags, backlinks, and folder operations.
Kika Obsidian MCP
Local-first MCP server for working with an Obsidian vault.
No Obsidian plugin required
No API key required
No cloud service required
No Obsidian running in the background
This is for people who want MCP clients to work directly with markdown files on disk.
Independent open-source project. Not affiliated with Obsidian, Anthropic, OpenAI, or any MCP client.
What it does
It lets MCP clients work with your vault to:
read and search notes
create and update notes
create and edit Obsidian Bases (
.basefiles) with schema validationgenerate summaries, status reports, and release notes
automate local knowledge workflows
All directly against your local markdown files.
Related MCP server: kObsidian MCP
Best for
Anyone using an MCP client — Claude Code, Claude Desktop, Cursor, Cline, Codex, Grok — who wants safe local access to an Obsidian vault
Developers who prefer filesystem-based Obsidian automation over the Local REST API plugin
People who want to create and edit Obsidian Bases (
.base) from an agentPersonal knowledge bases, project logs, daily notes, task notes, and markdown-first workflows
Why this exists
There are already a handful of Obsidian MCP servers. Many depend on the Obsidian Local REST API plugin or run as an Obsidian plugin. This project is intentionally simpler:
direct filesystem access to a local vault
no network calls
no Obsidian API token
works with any MCP client — simple JSON or TOML config for Claude Code, Claude Desktop, Cursor, Cline, Codex, and Grok
tolerant of real-world vaults with imperfect frontmatter
path traversal protection so tools cannot escape the configured vault
optional read-only mode for safer review/search workflows
optional backup-on-write before updates and deletes
first-class Obsidian Bases (
.base) support with schema validation — a differentiator: almost no other Obsidian MCP server can create or edit Bases, and this one validates them against the official schema so it never writes a file Obsidian would silently reject
How it compares
Need | This project |
Use Obsidian with any MCP client | Yes — Claude Code, Claude Desktop, Cursor, Cline, Codex, Grok |
Config format | JSON or TOML, per client (examples for each) |
Require an Obsidian plugin | No |
Require an API key | No |
Require Obsidian to be open | No |
Read/write markdown files directly | Yes |
Create and edit Obsidian Bases ( | Yes, with schema validation |
Work over a remote HTTP API | No, local stdio MCP only |
Safety features
Designed to be useful without being reckless:
read-only mode, which refuses writes
backup-on-write mode before updates and deletes
vault path isolation
path traversal protection
no external network calls
Tools
configure_vault- set or change the vault pathget_note- read one markdown note by vault-relative pathcreate_note- create a new markdown note with optional metadataupdate_note- update note content and/or frontmatterdelete_note- delete a markdown notelist_notes- list notes in the vault or a foldersearch_notes- search note title, content, and tagsget_all_tags- list unique tags from frontmatter and inline tagsget_backlinks- find notes that link to a noteget_note_links- extract wikilinks from a notecreate_folder- create a folder inside the vaultget_folder_structure- return the vault folder tree
Bases (.base files)
First-class, schema-validated support for Obsidian Bases — database-like views over your notes. Very few Obsidian MCP servers support these.

create_base- create a.basefile, validated against the Bases schema before writingupdate_base- merge changes into a base (update a view by name, add/remove views, change filters/formulas/properties)get_base- read a.baseas parsed structure + raw YAML; tolerant of imperfect fileslist_bases- list.basefiles in the vault or a folder, with their view namesdelete_base- delete a.basefile

All four Obsidian view modes are supported — table, list, cards, and map — and any of them can be mixed in a single base. Map views (from the Maps community plugin) round-trip cleanly too: their marker and zoom settings are preserved on read and re-write.
See docs/bases-examples.md for copyable examples of each view mode.
Demo

Full-length clip: Obsidian + MCP demo
Quick start
Install
Requirements:
Python 3.10 or newer recommended
An Obsidian vault stored as local markdown files
git clone https://github.com/aka-kika/kika-obsidian-mcp.git
cd kika-obsidian-mcp
./install.sh /absolute/path/to/your/obsidian-vaultinstall.sh creates a local virtualenv, installs dependencies, verifies against your vault, then prints ready-to-paste config for the client you choose (--client claude|claude-desktop|codex|cursor|cline|grok, default: all).
Prefer to do it by hand? The manual steps are:
python3 -m venv .venv
.venv/bin/python -m pip install --upgrade pip
.venv/bin/python -m pip install -r requirements.txt
OBSIDIAN_VAULT_PATH="/absolute/path/to/your/vault" .venv/bin/python test_server.pyConfigure your MCP client
The server is a local stdio MCP server, so any MCP-capable client can run it. Point the client at your virtualenv's Python and server.py, and set the vault path via env. Then restart or reconnect the client.
Claude Code
claude mcp add kika-obsidian \
--env OBSIDIAN_VAULT_PATH="/absolute/path/to/your/obsidian-vault" \
--env OBSIDIAN_READ_ONLY="false" \
--env OBSIDIAN_BACKUP_ON_WRITE="true" \
-- /absolute/path/to/kika-obsidian-mcp/.venv/bin/python \
/absolute/path/to/kika-obsidian-mcp/server.pyClaude Desktop / Cursor / Cline
Add this to the client's MCP config (claude_desktop_config.json, or the equivalent mcpServers block):
{
"mcpServers": {
"kika-obsidian": {
"command": "/absolute/path/to/kika-obsidian-mcp/.venv/bin/python",
"args": ["/absolute/path/to/kika-obsidian-mcp/server.py"],
"env": {
"OBSIDIAN_VAULT_PATH": "/absolute/path/to/your/obsidian-vault",
"OBSIDIAN_READ_ONLY": "false",
"OBSIDIAN_BACKUP_ON_WRITE": "true"
}
}
}
}Codex / Grok
Add this to ~/.codex/config.toml (or ~/.grok/config.toml):
[mcp_servers.kika-obsidian]
command = "/absolute/path/to/kika-obsidian-mcp/.venv/bin/python"
args = ["/absolute/path/to/kika-obsidian-mcp/server.py"]
enabled = true
[mcp_servers.kika-obsidian.env]
OBSIDIAN_VAULT_PATH = "/absolute/path/to/your/obsidian-vault"
OBSIDIAN_READ_ONLY = "false"
OBSIDIAN_BACKUP_ON_WRITE = "true"For a safer read/search-only setup, set OBSIDIAN_READ_ONLY="true" (TOML: OBSIDIAN_READ_ONLY = "true").
Environment
Variable | Required | Default | Description |
| yes | none | Absolute path to the vault folder. |
| no |
| When true, create/update/delete/folder creation tools refuse writes. |
| no |
| When true, copies existing notes into |
Safety model
All note paths are resolved relative to
OBSIDIAN_VAULT_PATH.Absolute paths and
../path traversal are rejected.Writes can be disabled with
OBSIDIAN_READ_ONLY=true(this also blockscreate_base,update_base, anddelete_base).Existing notes and
.basefiles can be copied to.obsidian-mcp-backups/before update/delete withOBSIDIAN_BACKUP_ON_WRITE=true.Deletes are extension-scoped:
delete_noteonly removes markdown (.md) notes anddelete_baseonly removes Bases (.base) files. Neither can touch other file types.Base tools accept only
.basepaths and note tools only.mdpaths, so the two never cross-contaminate.The server makes no external network calls.
Broken YAML frontmatter does not break listing/search; the note is still readable with empty metadata.
Development
Run the local test script:
OBSIDIAN_VAULT_PATH="/absolute/path/to/your/vault" .venv/bin/python test_server.pyStart the MCP server:
OBSIDIAN_VAULT_PATH="/absolute/path/to/your/vault" .venv/bin/python server.pyOptional automation
Generate a daily project status report from your vault:
OBSIDIAN_VAULT_PATH="/absolute/path/to/your/vault" .venv/bin/python scripts/daily_status_report.py --folder "Projects"Write the report back into Obsidian:
OBSIDIAN_VAULT_PATH="/absolute/path/to/your/vault" .venv/bin/python scripts/daily_status_report.py \
--folder "Projects" \
--write "Reports/Daily Project Status.md"The script reports recent notes, markdown checkbox tasks, and top tags. It uses backup-on-write when updating an existing report note.
Common workflows
See docs/common-workflows.md for practical examples:
safe vault exploration
project catch-up
daily status reports
release notes after shipping
vault triage
index note creation
finding underlinked notes
safe editing checklist
Templates
Copyable Obsidian note templates live in docs/templates:
Work log for daily project status and workstream summaries
Project session log for per-project session notes, decisions, links, and next moves
Weekly review for accomplishments, open loops, and next-week priorities
Optional skill
This repo includes lightweight agent workflow skills:
skills/obsidian-vault-workflow/SKILL.md
skills/release-note-captain/SKILL.mdUse them as guidance for agents that work with this MCP server. They cover safe vault exploration, editing discipline, daily status reports, vault triage, project catch-up prompts, and release-note capture after a project ships.
FAQ
Is this an Obsidian MCP server?
Yes. It is a local MCP server for Obsidian vaults. It exposes tools for notes, tags, backlinks, wikilinks, folders, search, and optional writes.
Which MCP clients does it work with?
Any client that can run a local stdio MCP server — Claude Code, Claude Desktop, Cursor, Cline, Codex, and Grok are all covered with copy-paste config above. It is just a local Python process, so anything that speaks MCP over stdio can use it. Run ./install.sh --client <name> /path/to/vault to print the exact config for your client.
Does it support Obsidian Bases?
Yes, with dedicated schema-validated tools. create_base, update_base, get_base, list_bases, and delete_base let MCP clients build and edit .base files directly on disk. Every write is validated against the official Bases schema first, so it never writes a file Obsidian would silently reject, and errors name the exact offending path (for example, views[0].groupBy missing 'property' key). get_base is tolerant of imperfect files: if the YAML cannot be parsed it returns the raw content with a parse_error flag instead of failing. All four view modes — table, list, cards, and map — are supported, and map bases from the Maps community plugin round-trip without losing their marker/zoom settings. This is a differentiator — almost no other Obsidian MCP server can create or edit Bases. See docs/bases-examples.md.
Does it need the Obsidian Local REST API plugin?
No. It reads and writes markdown files directly from the vault folder.
Does Obsidian need to be running?
No. Because this server works on local files, Obsidian does not need to be open.
Can I make it read-only?
Yes. Set OBSIDIAN_READ_ONLY=true to allow search and inspection while refusing create, update, delete, and folder creation tools.
Current limitations
Search is simple substring search, not semantic or indexed search.
No Obsidian command palette or plugin API access.
No conflict resolution for simultaneous edits.
No template expansion.
No sync-provider awareness.
License
MIT
Available Tools
17 toolsconfigure_vaultA
Configure the Obsidian vault path.
Args: vault_path: Absolute path to your Obsidian vault
| Name | Required | Description | Default |
|---|---|---|---|
| vault_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only states the basic action without disclosing side effects, persistence, validation behavior, or whether the tool can be called multiple times. This is insufficient for an agent to understand the tool's full impact.
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?
The description is extremely concise with no wasted words. The first sentence immediately conveys purpose, followed by a clear parameter specification. Ideal length for a simple configuration tool.
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 configuration tool, the description covers the basic action and parameter meaning. However, it omits important context such as whether the path must exist, if validation occurs, or if this is a one-time setup. Adequate but not fully comprehensive.
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 schema has 0% description coverage, but the description adds a clear explanation for the sole parameter: 'Absolute path to your Obsidian vault'. This compensates well for the schema gap, though it lacks examples or constraints.
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 explicitly states 'Configure the Obsidian vault path,' which is a specific verb-resource combination. It clearly distinguishes from sibling tools (e.g., create_note, search_notes) which focus on note management, not configuration.
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 is provided on when to use this tool versus alternatives or on prerequisites. While it's implied that this setup tool should be used before other vault operations, the description lacks explicit context or warnings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_baseA
Create a new Obsidian Base (.base) file with schema validation.
Bases are database-like views over your notes. The structure is validated against the official Bases schema before anything is written; an invalid base is rejected with a message naming the offending path, and no file is created.
Args: path: Vault-relative path ending in .base (e.g., "Bases/Tasks.base") views: List of view objects (at least one). Each needs a "type" (table | list | cards | map) and usually a "name" and "order". filters: Optional global filter. Either a string statement or a mapping with one of "and" / "or" / "not" holding a list of conditions. formulas: Optional mapping of formula name -> expression string. properties: Optional mapping of property name -> config (e.g., {"status": {"displayName": "Status"}}). summaries: Optional mapping of summary name -> expression string.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| views | Yes | ||
| filters | No | ||
| formulas | No | ||
| summaries | No | ||
| properties | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It discloses that validation occurs before writing and that invalid structures are rejected with error messages. However, it does not mention authentication requirements, potential side effects beyond creation, or whether the tool can overwrite existing files.
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?
The description is concise and well-structured: a summary sentence, a behavioral detail paragraph, and a bulleted Args list. Every sentence adds value, and the critical information is front-loaded.
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?
Given the complexity (6 parameters, no output schema, no annotations), the description is largely complete. It explains the validation behavior, parameter meanings, and required fields. Minor omissions include specific return value or success/failure indications, but these are minimal impact.
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 schema description coverage is 0%, but the description's Args section provides detailed explanations for all six parameters, including type constraints (e.g., path ending in .base), structure of views (requires type, name, order), and the format of filters, formulas, summaries, and properties. This fully compensates for the lack of schema descriptions.
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 clearly states 'Create a new Obsidian Base (.base) file with schema validation.' It specifies the verb (create) and resource (base file), and the addition of 'with schema validation' distinguishes it from other base tools like update_base or delete_base.
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 description provides clear context for when to use the tool (creating a new base) but does not explicitly mention when not to use it or suggest alternatives. It could improve by stating 'Use this to create a new base; use update_base to modify an existing base.' Currently, usage guidance is implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_folderA
Create a new folder in the vault.
Args: folder_path: Path to the new folder (e.g., "projects/new-project/")
| Name | Required | Description | Default |
|---|---|---|---|
| folder_path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states 'create' but does not disclose key behaviors such as error handling on duplicate paths, permissions required, or side effects.
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?
Two sentences only, front-loaded with the core purpose, no wasted words.
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 tool with no output schema, the description covers the basic functionality but misses potential contextual details like conflict behavior or directory structure constraints.
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?
Despite 0% schema coverage, the description adds an example and explains the parameter meaning and format ('e.g., projects/new-project/'), which compensates for the schema's lack of description.
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?
Description clearly states action ('create a new folder'), specific resource ('in the vault'), and distinguishes from sibling tools like create_note.
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?
Provides an example of usage but lacks explicit guidance on when to use this tool versus alternatives, or prerequisites like vault existence.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_noteA
Create a new note.
Args: path: Path for the new note (e.g., "notes/new-note.md") content: Note content in Markdown title: Optional title (defaults to filename) tags: Optional list of tags
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| tags | No | ||
| title | No | ||
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey all behavioral traits. It only states the action (create) but fails to disclose whether the tool overwrites existing paths, creates intermediate folders, or what the return value is. This is a significant gap 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?
The description is concise: one-line purpose followed by a clean argument list with clear descriptions. No redundant information, every sentence earns its place.
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 create tool with four parameters and no annotations or output schema, the description covers the core functionality but lacks detail on path conventions, overwrite behavior, and return values. More context would improve completeness.
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?
With schema description coverage at 0%, the description adds essential meaning: 'Path for the new note,' 'Note content in Markdown,' 'Optional title (defaults to filename),' and 'Optional list of tags.' This adds value beyond the null schema descriptions.
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 clearly states 'Create a new note,' which is a specific verb+resource combination that distinguishes it from siblings like update_note, delete_note, or search_notes.
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 description implies usage (creating a note) but does not explicitly differentiate from alternatives like update_note or note when to use it versus other tools. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_baseA
Delete a .base file.
Respects read-only mode and backup-on-write. Only .base files can be deleted through this tool.
Args: path: Vault-relative path to the .base file to delete.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits beyond the obvious deletion: respects read-only mode and performs backup-on-write. No annotations exist, so description carries full burden; it adds useful safety 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?
Very concise: three sentences cover purpose, behavioral notes, and parameter. No wasted words; front-loads core action.
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?
Adequate for a simple single-parameter tool with no output schema. Covers purpose, parameter meaning, and key behaviors. Could mention error handling or confirmation, but not essential given tool simplicity.
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?
Description defines 'path' as 'Vault-relative path to the .base file to delete', adding format and file type constraints. Schema has 0% coverage, so description compensates meaningfully.
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?
Description clearly states 'Delete a .base file' with a specific verb and resource. It distinguishes from siblings like delete_note by specifying '.base files' only.
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 description implies usage for .base files only ('Only .base files can be deleted'), but does not explicitly provide when-to-use or alternative tools like delete_note for other file types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_noteB
Delete a note permanently.
Args: path: Path to the note to delete
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The term 'permanently' indicates irreversibility, but without annotations, the description lacks disclosure of auth requirements, impact on links, or recoverability.
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?
Extremely concise, front-loaded with the main action. The 'Args' section adds minimal structure but is functional.
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?
Given a single required parameter, no output schema, and no annotations, the description covers the essential operation reasonably well, though it omits return value or success indicators.
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 description merely repeats the schema's parameter name and minimal purpose ('Path to the note to delete'), adding no format, absolute/relative distinction, or validation 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 clearly states the action ('Delete') and resource ('note') and specifies permanence, effectively distinguishing it from sibling tools like update_note or get_note.
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 use this tool versus alternatives (e.g., moving to trash instead of permanent deletion) or any prerequisites like confirming deletion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_tagsA
Get all unique tags used in the vault.
| 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 full burden but only states the action. It does not disclose performance characteristics, authorization needs, or results format, which is insufficient for a tool with zero annotations.
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?
The description is a single, focused sentence of 8 words with no wasted content. It is front-loaded and efficient.
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?
Given the simplicity (no parameters, no output schema), the description is minimally complete. It explains the core function but lacks any extra context that might be helpful for an agent, such as whether tags from deleted notes are included.
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?
Input schema has 0 parameters, leading to a baseline of 4 per guidelines. Description does not need to add parameter semantics as there are none, meeting the baseline.
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 clearly states the verb 'Get' and resource 'all unique tags' within the vault. It is specific and distinct from sibling tools like search_notes or get_note, which do not focus on tags.
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 description provides no guidance on when to use this tool versus alternatives, such as search_notes for filtering tags. It lacks context on appropriate scenarios or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_backlinksA
Find all notes that link to the specified note.
Args: path: Path to the target note
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavior. It accurately states the tool finds backlinks, implying a read-only query. No contradictions, and the behavior is straightforward, though details like response format are missing.
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?
The description is very concise with a single sentence and arg list. It is front-loaded and clear, but could be improved with a more structured format.
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?
Given no output schema, the description should hint at return values (e.g., note titles or paths). It does not, leaving the agent uncertain about the output format. The simple one-param tool could still benefit from completeness.
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 parameter 'path' lacks schema description (0% coverage). The description only repeats 'Path to the target note,' adding minimal value beyond the schema. No format, constraints, or examples are provided.
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 clearly states 'Find all notes that link to the specified note,' which specifies the verb (find) and resource (backlinks). This distinguishes it from siblings like get_note_links, which likely get links from a note, not to it.
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 description implies usage for finding backlinks but provides no explicit guidance on when to use this tool versus alternatives like get_note_links or search_notes. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_baseA
Read a .base file as a parsed structure plus its raw YAML.
Tolerant of imperfect files: if the YAML cannot be parsed, the raw content is returned with a "parse_error" field instead of failing.
Args: path: Vault-relative path to the .base file.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but the description discloses return behavior (parsed structure + raw YAML) and error handling for parse failures. It does not mention read-only nature explicitly but it's inferred.
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?
The description is extremely concise (three sentences), front-loaded with the main purpose, and every sentence adds value.
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 read operation with one parameter, the description fully covers purpose, behavior, error handling, and parameter meaning. No output schema needed given clarity on return values.
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?
With 0% schema coverage, the description meaningfully explains the single parameter 'path' as 'Vault-relative path to the .base file', adding context beyond the schema's bare type.
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 clearly states the tool reads a .base file and returns both a parsed structure and raw YAML, distinguishing it from sibling tools like create, update, or delete.
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 implied for reading base files, and error handling for imperfect files is explained, but no explicit exclusions or alternatives to similar read operations are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_folder_structureA
Get the complete folder structure of the vault.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description does not disclose whether the structure is flat or nested, whether empty folders are included, or any ordering. More context on behavior is needed.
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?
The description is a single, front-loaded sentence with no unnecessary words. It earns its place with direct clarity.
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 tool with no parameters and no output schema, the description is minimally adequate. However, it could mention the output format (e.g., hierarchical JSON) or handle non-existent folders.
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 has zero parameters, so the description adds no parameter-specific meaning. Per guidelines, baseline is 4 for 0 params, and schema coverage is 100% (no params).
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 'Get the complete folder structure of the vault' uses a specific verb and resource, clearly indicating the tool's function. It distinguishes itself from sibling tools like create_folder or list_notes by focusing on retrieving the hierarchical structure.
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 is provided on when to use this tool versus alternatives such as list_notes or search_notes. The agent must infer its purpose from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_noteA
Get a note by its path.
Args: path: Path to the note relative to vault root (e.g., "notes/my-note.md")
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description lacks behavioral traits: whether note content or metadata is returned, error handling for non-existent notes, or any side effects. Significant gap.
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 plus an Args section. Front-loaded, no wasted words, efficient.
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 tool with no output schema, the description explains the path but omits what the response contains (content vs metadata) and error behavior. Adequate but with 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 has zero description coverage. Description adds 'Path to the note relative to vault root' with an example, clarifying the parameter's meaning and format.
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?
Description states 'Get a note by its path' – a specific verb and resource. Distinguishes from siblings like create_note, delete_note, update_note.
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?
Provides example path and states it's relative to vault root. No explicit exclusions or comparisons to search_notes, but usage is clear for a retrieval tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_note_linksB
Get all wikilinks from a note.
Args: path: Path to the note
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are available, so the description carries full burden. It only states 'Get all wikilinks' without disclosing any behavioral traits like side effects, authentication needs, rate limits, or return characteristics. This is insufficient for a safe usage.
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?
The description is very concise, consisting of one sentence and an Args line. It front-loads the purpose. While efficient, it could benefit from slightly more structure (e.g., separating purpose from parameter description).
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?
Given the tool's simplicity (one param, no nested objects, no output schema), the description covers the core action but omits output format hints and usage context. For a complete picture, it should mention that the output is a list of wikilink targets or similar.
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 sole parameter 'path' has no schema description, but the description explains it as 'Path to the note', adding basic meaning. However, it does not elaborate on format, constraints, or examples, which would be valuable given 0% schema coverage.
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 clearly states the tool retrieves all wikilinks from a note, using a specific verb 'get' and resource 'wikilinks from a note'. This distinguishes it from siblings like get_backlinks (which retrieves backlinks) and get_note (which retrieves note content).
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 is provided on when to use this tool versus alternatives such as get_backlinks or get_note. The description lacks any context about prerequisites, exclusions, or recommended scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_basesA
List all .base files in the vault or a folder, with their view names.
Args: folder: Optional folder path to search within (e.g., "Bases/").
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not state whether the operation is read-only or any other behavioral traits. For a list tool, read-only is implied but not explicit, leading to a lack of transparency.
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?
The description is extremely concise: a single sentence for the main functionality followed by a brief parameter explanation. No fluff, front-loaded, and every sentence adds value.
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 tool with one optional parameter and no output schema, the description covers the main behavior and parameter. However, it does not explicitly state the return format (list of base names and view names), which is implied but not stated.
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?
While schema description coverage is 0%, the description adds meaningful context for the folder parameter: it explains its purpose ('to search within') and provides an example ('Bases/'). This compensates well for the missing schema descriptions.
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 clearly states the verb 'list' and the resource '.base files', specifying the scope 'in the vault or a folder' and includes detail about view names. It is distinct from siblings like list_notes and get_base.
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 explicit guidance on when to use this tool versus alternatives like get_base or list_notes. The description provides context but no exclusions or recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notesA
List all notes in the vault or a specific folder.
Args: folder: Optional folder path (e.g., "notes/" or "projects/")
| Name | Required | Description | Default |
|---|---|---|---|
| folder | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits such as recursion, pagination, ordering, or permissions. The description is too minimal for a list 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?
The description is short but includes a redundant 'Args' section that mirrors the schema. It could be more concise without losing clarity.
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 tool, the description is adequate but incomplete. It lacks details about return format, recursion behavior, and permissions, especially given no output schema.
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 0%, but the description adds meaning by explaining the 'folder' parameter with an example path. This goes beyond the schema's type-only info.
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 clearly states the tool lists notes in the vault or a specific folder, with a clear verb and resource. It distinguishes from siblings like search_notes and get_note.
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 description implies usage (list notes, optionally in a folder) but lacks guidance on when to use this vs. alternatives like search_notes or get_all_tags. No when-not advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_notesA
Search notes by content, title, or tags.
Args: query: Search query string folder: Optional folder to search within
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| folder | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully convey behavior. It only mentions search dimensions without details on pagination, wildcards, or whether it's destructive, which is insufficient.
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?
The description is short and front-loaded with the main purpose, but the Args section could be integrated more naturally. It remains efficient.
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?
Given the low parameter count and no output schema, the description is minimally adequate for a search tool. However, it omits any mention of return format or behavior, which could mislead.
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?
With 0% schema description coverage, the description adds meaning by labeling 'query' as 'Search query string' and 'folder' as 'Optional folder to search within', improving over bare 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 clearly states the verb 'search' and resource 'notes', and specifies search dimensions (content, title, tags). This distinguishes it from siblings like list_notes and get_note.
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 description implies usage for text-based note searching but does not explicitly state when to use this tool versus others, nor does it provide exclusion criteria or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_baseA
Update an existing .base file with merge semantics, then re-validate.
The file is read, the requested changes are merged, the whole structure is re-validated, the original is backed up (when backup-on-write is enabled), and the result is written back.
Args: path: Vault-relative path to the .base file. filters: When provided, replaces the global filters wholesale. To remove filters entirely, pass replace_filters=true and leave this unset. formulas: Mapping merged into existing formulas. A null value for a key removes that formula. properties: Mapping merged into existing properties (null removes). summaries: Mapping merged into existing summaries (null removes). upsert_views: List of view objects. Each replaces the existing view with the same "name", or is appended when there is no match. remove_views: List of view names to delete. replace_filters: Set true (with filters unset) to remove global filters.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| filters | No | ||
| formulas | No | ||
| summaries | No | ||
| properties | No | ||
| remove_views | No | ||
| upsert_views | No | ||
| replace_filters | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so description carries full burden. It discloses merge semantics, re-validation, backup behavior, and parameter-driven modifications (null removes). Missing error/permission details.
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?
The description is well-structured with a brief main sentence followed by detailed parameter explanations. Slightly verbose but every sentence adds value.
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?
Given the complexity (8 params, no output schema, no annotations), the description covers parameter semantics, merge behavior, and backup. Missing error handling and return value info, but acceptable.
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 0%, but description fully explains each parameter including null removal semantics and special behavior for replace_filters, providing essential meaning 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 clearly states the tool updates an existing .base file with merge semantics, distinguishing it from create or delete operations on the same resource.
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 description implies usage for updating .base files but does not explicitly mention when to use or not use this tool compared to siblings like create_base or delete_base.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_noteC
Update an existing note.
Args: path: Path to the note content: New content (optional) metadata: Metadata updates (optional)
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| content | No | ||
| metadata | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It states 'Update an existing note' but does not clarify whether updates are merging or overwriting, what happens to unspecified fields, or if there are side effects or authorization requirements.
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?
The description is very concise, containing only one line of text plus a bulleted list of parameters. No unnecessary words, but it could be slightly more structured (e.g., separating purpose from parameter details) without adding length.
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?
Given the lack of annotations and output schema, the description is incomplete. It does not explain return values (e.g., success/error), behavior when the note does not exist, or how partial updates are applied. Sibling tools suggest actions like get_note and delete_note, but no cross-referencing.
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 description lists parameters with brief explanations (e.g., 'path: Path to the note'), which adds basic meaning beyond the schema's raw type names. However, with 0% schema description coverage, the description could provide more detail, such as what 'metadata updates' entails (e.g., key-value pairs).
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 clearly states the verb 'Update' and the resource 'note', which distinguishes it from siblings like create_note and delete_note. However, it lacks specificity about what aspects of the note can be updated (e.g., content, metadata) beyond listing parameters.
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 is provided on when to use this tool versus alternatives (e.g., create_note for new notes, delete_note for removal). The description does not mention prerequisites, such as the note existing, or cases where partial updates are preferred.
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. Dates show when Glama detected each change.
5 tool updates
v0.3.0- Added
create_base - Added
delete_base - Added
get_base - Added
list_bases - Added
update_base
12 tool updates
v0.1.0- First observed
configure_vault - First observed
create_folder - First observed
create_note - First observed
delete_note - First observed
get_all_tags - First observed
get_backlinks - First observed
get_folder_structure - First observed
get_note - First observed
get_note_links - First observed
list_notes - First observed
search_notes - First observed
update_note
TDQS
Each tool targets a distinct action or resource: configuration, note/base/folder CRUD, search, tags, links, and folder structure. There is no overlapping functionality; even similar tools like list_notes and search_notes serve clear different purposes.
All tool names follow a consistent `verb_noun` pattern in snake_case, e.g., `create_note`, `delete_base`, `get_all_tags`. No mixing of conventions or vague verbs.
17 tools is well-scoped for a vault management server. Each tool addresses a specific operation without unnecessary redundancy, covering notes, bases, folders, search, and metadata.
Core operations are covered: CRUD for notes and bases, search, tags, links, folder listing, and configuration. Minor gaps exist, such as no dedicated tool for folder deletion or note moving, but these are not essential for basic workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
An MCP server that gives your AI access to the source code and docs of all public github repos
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.
Related MCP Servers
- AlicenseAqualityDmaintenanceMCP server to interact with Obsidian via the Local REST API community plugin.134,367MIT
- AlicenseAqualityAmaintenanceFilesystem first MCP server for Obsidian vaults with an LLM-Wiki layer on top.663247Apache 2.0
- AlicenseNot gradedqualityAmaintenanceEnables AI agents to read and search your Obsidian vault through a local MCP server, keeping everything private and local.Apache 2.0
- AlicenseNot gradedqualityDmaintenanceRemote MCP server that gives AI agents read/write access to your Obsidian vaults, supporting both local desktop vaults and headless mode.4,785MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/aka-kika/kika-obsidian-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server