{
    "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
    "name": "io.github.flowing-abyss/obsidian-hybrid-search",
    "description": "Search Obsidian vaults with hybrid full-text, fuzzy, semantic, and graph retrieval.",
    "title": "Obsidian Hybrid Search",
    "repository": {
        "url": "https://github.com/flowing-abyss/obsidian-hybrid-search",
        "source": "github"
    },
    "version": "0.13.21",
    "websiteUrl": "https://github.com/flowing-abyss/obsidian-hybrid-search#readme",
    "packages": [
        {
            "registryType": "npm",
            "registryBaseUrl": "https://registry.npmjs.org",
            "identifier": "obsidian-hybrid-search",
            "version": "0.13.21",
            "transport": {
                "type": "stdio"
            },
            "packageArguments": [
                {
                    "value": "mcp",
                    "type": "positional"
                }
            ],
            "environmentVariables": [
                {
                    "description": "Absolute path to the Obsidian vault to index and search.",
                    "isRequired": true,
                    "format": "filepath",
                    "name": "OBSIDIAN_VAULT_PATH"
                },
                {
                    "description": "Optional prefix for MCP tool names when configuring multiple vaults.",
                    "name": "OBSIDIAN_PREFIX"
                },
                {
                    "description": "Comma-separated glob patterns to exclude from indexing.",
                    "default": ".obsidian/**,templates/**,*.canvas",
                    "name": "OBSIDIAN_IGNORE_PATTERNS"
                },
                {
                    "description": "Read root and nested .gitignore files when indexing; set to false, 0, or no to disable.",
                    "default": "true",
                    "name": "OBSIDIAN_RESPECT_GITIGNORE"
                },
                {
                    "description": "Comma-separated patterns to re-include notes ignored only by .gitignore.",
                    "name": "OBSIDIAN_INCLUDE_PATTERNS"
                },
                {
                    "description": "Optional API key for OpenAI-compatible remote embeddings; omit to use local embeddings.",
                    "isSecret": true,
                    "name": "OPENAI_API_KEY"
                },
                {
                    "description": "Optional OpenAI-compatible API base URL for OpenRouter, Ollama, LM Studio, or similar providers.",
                    "default": "https://api.openai.com/v1",
                    "name": "OPENAI_BASE_URL"
                },
                {
                    "description": "Remote embedding model name when using an OpenAI-compatible API.",
                    "default": "text-embedding-3-small",
                    "name": "OPENAI_EMBEDDING_MODEL"
                },
                {
                    "description": "Local embedding model used when no remote embedding API is configured.",
                    "default": "Xenova/multilingual-e5-small",
                    "name": "LOCAL_EMBEDDING_MODEL"
                },
                {
                    "description": "Optional ONNX cross-encoder reranker model used when reranking is requested.",
                    "default": "onnx-community/bge-reranker-v2-m3-ONNX",
                    "name": "RERANKER_MODEL"
                }
            ]
        }
    ],
    "_meta": {
        "io.modelcontextprotocol.registry/official": {
            "status": "active",
            "statusChangedAt": "2026-07-14T06:12:51.213704Z",
            "publishedAt": "2026-07-14T06:12:51.213704Z",
            "updatedAt": "2026-07-14T06:12:51.213704Z",
            "isLatest": false
        }
    }
}