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 |
Capabilities
Features and capabilities supported by this server
| 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