Skip to main content
Glama
dot-RealityTest

obsidian-codex-mcp

configure_vault

Set the absolute path to your Obsidian vault for local-first access.

Instructions

Configure the Obsidian vault path.

Args: vault_path: Absolute path to your Obsidian vault

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
vault_pathYes

Implementation Reference

  • server.py:61-84 (handler)
    The tool handler for 'configure_vault' that sets the vault path, resets the client, initializes a new ObsidianVaultClient, and returns success with note count or an error.
    @mcp.tool()
    def configure_vault(vault_path: str) -> dict:
        """Configure the Obsidian vault path.
        
        Args:
            vault_path: Absolute path to your Obsidian vault
        """
        global _vault_client, _vault_path
        
        _vault_path = vault_path
        _vault_client = None  # Reset client
        
        try:
            client = get_vault_client()
            return {
                "success": True,
                "message": f"Vault configured successfully: {vault_path}",
                "note_count": len(client.list_notes())
            }
        except Exception as e:
            return {
                "success": False,
                "error": str(e)
            }
  • server.py:61-61 (registration)
    The tool is registered with the MCP server via the @mcp.tool() decorator on the configure_vault function.
    @mcp.tool()
  • Helper function used by configure_vault to initialize and retrieve the ObsidianVaultClient instance.
    def get_vault_client() -> ObsidianVaultClient:
        """Get or create the vault client."""
        global _vault_client, _vault_path
        
        if _vault_client is None:
            if _vault_path is None:
                # Try to get from environment variable
                _vault_path = os.getenv("OBSIDIAN_VAULT_PATH")
                if not _vault_path:
                    raise ValueError("Obsidian vault path not configured. Set OBSIDIAN_VAULT_PATH environment variable.")
            
            _vault_client = ObsidianVaultClient(_vault_path, backup_on_write=backup_on_write_enabled())
            logger.info(f"Connected to vault: {_vault_path}")
        
        return _vault_client
  • Input schema: takes a single 'vault_path' string parameter. Returns a dict with success/error structure.
    def configure_vault(vault_path: str) -> dict:
        """Configure the Obsidian vault path.
        
        Args:
            vault_path: Absolute path to your Obsidian vault
        """
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

Install Server

Other Tools

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/dot-RealityTest/obsidian-codex-mcp'

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