obsidian-codex-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OBSIDIAN_READ_ONLY | No | When true, create/update/delete/folder creation tools refuse writes. | false |
| OBSIDIAN_VAULT_PATH | Yes | Absolute path to the vault folder. | |
| OBSIDIAN_BACKUP_ON_WRITE | No | When true, copies existing notes into .obsidian-mcp-backups/ before update/delete. | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| configure_vaultA | Configure the Obsidian vault path. Args: vault_path: Absolute path to your Obsidian vault |
| get_noteA | Get a note by its path. Args: path: Path to the note relative to vault root (e.g., "notes/my-note.md") |
| 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 |
| update_noteC | Update an existing note. Args: path: Path to the note content: New content (optional) metadata: Metadata updates (optional) |
| delete_noteB | Delete a note permanently. Args: path: Path to the note to delete |
| list_notesA | List all notes in the vault or a specific folder. Args: folder: Optional folder path (e.g., "notes/" or "projects/") |
| search_notesA | Search notes by content, title, or tags. Args: query: Search query string folder: Optional folder to search within |
| get_all_tagsA | Get all unique tags used in the vault. |
| get_backlinksA | Find all notes that link to the specified note. Args: path: Path to the target note |
| get_note_linksB | Get all wikilinks from a note. Args: path: Path to the note |
| create_folderA | Create a new folder in the vault. Args: folder_path: Path to the new folder (e.g., "projects/new-project/") |
| get_folder_structureA | Get the complete folder structure of the vault. |
| 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. |
| 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. |
| 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. |
| 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/"). |
| 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. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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