Skip to main content
Glama
rex

mcp-apple-obsidian

by rex

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OBSIDIAN_APP_PATHNoPath to Obsidian.app/Applications/Obsidian.app
OBSIDIAN_BACKUP_DIRNoDirectory for backups~/.obsidian-mcp-backups
OBSIDIAN_URI_TIMEOUTNoURI execution timeout (seconds)10
OBSIDIAN_DEFAULT_VAULTNoDefault vault name to use
OBSIDIAN_MAX_FILE_SIZENoMaximum note size to read (bytes)10485760
OBSIDIAN_CREATE_BACKUPSNoCreate backups before modificationstrue
OBSIDIAN_APPLESCRIPT_TIMEOUTNoAppleScript timeout (seconds)30

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
obsidian_list_vaultsA

List all known Obsidian vaults on this Mac.

Returns a JSON array of vault information including name, ID, and path.
obsidian_get_vault_infoA

Get detailed information about a specific vault.

Args:
    vault: Name or path of the vault
    
Returns:
    JSON with vault path, note count, and folder structure
obsidian_get_vault_statsA

Get comprehensive statistics about a vault.

Args:
    vault: Name or path of the vault
    
Returns:
    JSON with vault statistics including tag counts, link analysis
obsidian_read_noteA

Read the contents of a specific note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault (e.g., "Folder/Note Name")
    
Returns:
    The full content of the note as markdown text
obsidian_list_notesA

List all notes in a vault or specific folder.

Args:
    vault: Name or path of the vault
    folder: Optional subfolder path to list (e.g., "Projects")
    include_attachments: Whether to include non-markdown files
    
Returns:
    JSON array of note information
obsidian_get_note_metadataB

Get metadata about a note including tags, links, word count, and frontmatter.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    
Returns:
    JSON with note metadata
obsidian_write_noteB

Create a new note or overwrite an existing one.

Args:
    vault: Name or path of the vault
    path: Path where the note should be created (e.g., "Folder/Note Name")
    content: The markdown content to write
    append: If true, append to existing content instead of overwriting
    
Returns:
    Success message or error
obsidian_create_noteC

Create a new note with a structured template.

Args:
    vault: Name or path of the vault
    path: Path where the note should be created
    title: Optional title (defaults to filename)
    tags: Optional list of tags to add
    content: Optional main content body
    
Returns:
    Success message or error
obsidian_delete_noteB

Delete a note from the vault.

Args:
    vault: Name or path of the vault
    path: Path to the note to delete
    
Returns:
    Success message or error
obsidian_move_noteC

Move or rename a note within the vault.

Args:
    vault: Name or path of the vault
    source_path: Current path of the note
    dest_path: New path for the note
    
Returns:
    Success message or error
obsidian_append_noteA

Append content to the end of an existing note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    content: Content to append
    
Returns:
    Success message or error
obsidian_prepend_noteB

Prepend content to the beginning of an existing note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    content: Content to prepend
    
Returns:
    Success message or error
obsidian_search_notesA

Search for notes containing specific text or matching a pattern.

Args:
    vault: Name or path of the vault
    query: Search query (supports regex patterns)
    case_sensitive: Whether search is case sensitive
    search_content: Whether to search in file content (not just names)
    
Returns:
    JSON array of matching notes with context
obsidian_find_backlinksB

Find all notes that link to a specific note.

Args:
    vault: Name or path of the vault
    note_path: Path to the target note (without .md extension)
    
Returns:
    JSON array of notes that link to the target
obsidian_get_propertiesB

Get all frontmatter properties from a note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    
Returns:
    JSON with all properties
obsidian_set_propertyC

Set a frontmatter property on a note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    property_name: Name of the property to set
    property_value: Value to set (will be parsed as YAML)
    
Returns:
    Success message or error
obsidian_delete_propertyB

Delete a frontmatter property from a note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    property_name: Name of the property to delete
    
Returns:
    Success message or error
obsidian_set_propertiesB

Set multiple frontmatter properties on a note at once.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    properties: JSON object with properties to set
    
Returns:
    Success message or error
obsidian_search_by_propertyA

Search notes by frontmatter property value.

Args:
    vault: Name or path of the vault
    property_name: Name of the property to search
    property_value: Value to search for (optional for "exists" operator)
    operator: Comparison operator ("equals", "contains", "gt", "lt", "exists")
    
Returns:
    JSON array of matching notes
obsidian_get_tagsA

Get all tags from a note (both inline and frontmatter).

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    
Returns:
    JSON array of tags
obsidian_add_tagB

Add a tag to a note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    tag: Tag to add (without # prefix)
    
Returns:
    Success message or error
obsidian_remove_tagB

Remove a tag from a note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    tag: Tag to remove (without # prefix)
    
Returns:
    Success message or error
obsidian_rename_tag_in_noteB

Rename a tag within a single note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    old_tag: Current tag name (without #)
    new_tag: New tag name (without #)
    
Returns:
    Success message or error
obsidian_rename_tag_vaultA

Rename a tag across all notes in the vault.

Args:
    vault: Name or path of the vault
    old_tag: Current tag name (without #)
    new_tag: New tag name (without #)
    
Returns:
    JSON with count of updated notes
obsidian_list_all_tagsA

Get all unique tags across the vault with their occurrence counts.

Args:
    vault: Name or path of the vault
    
Returns:
    JSON object with tag counts
obsidian_find_notes_by_tagA

Find all notes that contain a specific tag.

Args:
    vault: Name or path of the vault
    tag: Tag to search for (without the #)
    
Returns:
    JSON array of matching notes
obsidian_get_tasksA

Get all tasks from a note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    include_completed: Whether to include completed tasks
    
Returns:
    JSON array of tasks
obsidian_add_taskB

Add a new task to a note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    description: Task description
    completed: Whether the task is completed
    due_date: Optional due date (YYYY-MM-DD format)
    priority: Optional priority ("high", "normal", "low")
    tags: Optional comma-separated list of tags
    
Returns:
    Success message or error
obsidian_complete_taskB

Mark a task as completed by matching its description.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    task_description_contains: Text to match in task description
    
Returns:
    Success message or error
obsidian_uncomplete_taskC

Mark a completed task as incomplete.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    task_description_contains: Text to match in task description
    
Returns:
    Success message or error
obsidian_delete_taskB

Delete a task from a note.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    task_description_contains: Text to match in task description
    
Returns:
    Success message or error
obsidian_update_taskC

Update a task's properties.

Args:
    vault: Name or path of the vault
    path: Path to the note within the vault
    task_description_contains: Text to match in current description
    new_description: New description text (optional)
    new_due_date: New due date (YYYY-MM-DD, or "remove" to clear)
    new_priority: New priority ("high", "normal", "low", or "remove")
    
Returns:
    Success message or error
obsidian_search_tasksA

Search for tasks across the vault.

Args:
    vault: Name or path of the vault
    status: Task status filter ("all", "completed", "incomplete")
    tag: Optional tag to filter by
    due_before: Filter tasks due before this date (YYYY-MM-DD)
    due_after: Filter tasks due after this date (YYYY-MM-DD)
    description_contains: Search text in task descriptions
    
Returns:
    JSON array of matching tasks
obsidian_check_app_runningA

Check if the Obsidian application is currently running.

Returns:
    "true" if running, "false" otherwise
obsidian_launch_appC

Launch the Obsidian application, optionally opening a specific vault.

Args:
    vault: Optional vault name to open on launch
    
Returns:
    Success message or error
obsidian_open_note_in_appC

Open a specific note in the Obsidian application.

Args:
    vault: Name or ID of the vault
    file: Path to the note within the vault
    
Returns:
    Success message or error
obsidian_create_note_in_appC

Create a new note using Obsidian's URI scheme.

Args:
    vault: Name or ID of the vault
    name: Name for the new note
    content: Optional initial content
    silent: If true, don't open the note after creation
    
Returns:
    Success message or error
obsidian_open_daily_noteB

Open or create the daily note in Obsidian.

Args:
    vault: Name or ID of the vault
    
Returns:
    Success message or error
obsidian_open_search_in_appB

Open search in Obsidian with a query.

Args:
    vault: Name or ID of the vault
    query: Search query to execute
    
Returns:
    Success message or error
obsidian_focus_appB

Bring Obsidian to the foreground (activate it).

Returns:
    Success message or error
obsidian_get_active_note_infoA

Get information about the currently active note in Obsidian.

Returns:
    JSON with note info (title, vault) or error message
obsidian_get_app_versionA

Get the version of the installed Obsidian application.

Returns:
    Version string or error message

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/rex/mcp-apple-obsidian'

If you have feedback or need assistance with the MCP directory API, please join our Discord server