Install Markdown Vault MCP for Claude Desktop
Claude Desktop reads mcpServers from claude_desktop_config.json. Restart the app after saving.
- Open ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows, or ~/.config/Claude/claude_desktop_config.json on Linux.
- Paste the JSON config below.
- Replace placeholder secrets, then restart the client if it does not reload on its own.
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"pvliesdonk-markdown-vault-mcp": {
"command": "uvx",
"args": [
"markdown-vault-mcp"
],
"env": {
"MARKDOWN_VAULT_MCP_KV_STORE_URL": "file:///data/state",
"MARKDOWN_VAULT_MCP_TOOLS_ALLOW": "",
"MARKDOWN_VAULT_MCP_TOOLS_DENY": "",
"MARKDOWN_VAULT_MCP_SERVER_NAME": "",
"MARKDOWN_VAULT_MCP_INSTANCE_DESCRIPTION": "",
"MARKDOWN_VAULT_MCP_INSTRUCTIONS_EXTRA": "",
"MARKDOWN_VAULT_MCP_INSTRUCTIONS": "",
"MARKDOWN_VAULT_MCP_LOG_LEVEL": "INFO",
"MARKDOWN_VAULT_MCP_LOG_FORMAT": "",
"OLLAMA_HOST": "http://localhost:11434",
"OPENAI_API_KEY": "YOUR_OPENAI_API_KEY",
"VOYAGE_API_KEY": "YOUR_VOYAGE_API_KEY",
"OPENAI_BASE_URL": "",
"OPENAI_EMBEDDING_MODEL": "",
"MARKDOWN_VAULT_MCP_BUILD_TIMEOUT_S": "60",
"MARKDOWN_VAULT_MCP_DRAIN_TIMEOUT_S": "60",
"MARKDOWN_VAULT_MCP_SOURCE_DIR": "/data/vault",
"MARKDOWN_VAULT_MCP_READ_ONLY": "false",
"MARKDOWN_VAULT_MCP_WRITE_PROTECT_EXISTING": "true",
"MARKDOWN_VAULT_MCP_REPORT_UNRESOLVED_LINKS": "false",
"MARKDOWN_VAULT_MCP_DISABLE_APPS_UI": "false",
"MARKDOWN_VAULT_MCP_INDEX_PATH": "",
"MARKDOWN_VAULT_MCP_STATE_PATH": "",
"MARKDOWN_VAULT_MCP_EMBEDDINGS_PATH": "",
"MARKDOWN_VAULT_MCP_INDEXED_FIELDS": "",
"MARKDOWN_VAULT_MCP_REQUIRED_FIELDS": "",
"MARKDOWN_VAULT_MCP_EXCLUDE": "",
"MARKDOWN_VAULT_MCP_TITLE_FIELD": "title",
"MARKDOWN_VAULT_MCP_SEARCHABLE_FIELDS": "",
"MARKDOWN_VAULT_MCP_TEMPLATES_FOLDER": "_templates",
"MARKDOWN_VAULT_MCP_PROMPTS_FOLDER": "",
"MARKDOWN_VAULT_MCP_CONVENTIONS_FILE": "_conventions.md",
"MARKDOWN_VAULT_MCP_OKF_MODE": "auto",
"MARKDOWN_VAULT_MCP_OKF_WRITE": "false",
"MARKDOWN_VAULT_MCP_OKF_VERIFY": "elicit",
"MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONS": "",
"MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MB": "1.0",
"MARKDOWN_VAULT_MCP_MAX_NOTE_READ_BYTES": "262144",
"MARKDOWN_VAULT_MCP_DEFAULT_SEARCH_MODE": "auto",
"MARKDOWN_VAULT_MCP_CHUNKS_PER_FILE": "2",
"MARKDOWN_VAULT_MCP_SNIPPET_WORDS": "200",
"MARKDOWN_VAULT_MCP_LENGTH_DOWNWEIGHT_ALPHA": "0.25",
"MARKDOWN_VAULT_MCP_MAX_CHUNK_WORDS": "400",
"MARKDOWN_VAULT_MCP_MAX_CHUNK_CHARS": "",
"MARKDOWN_VAULT_MCP_CHUNK_OVERLAP_WORDS": "40",
"MARKDOWN_VAULT_MCP_FOLDER_WEIGHTS": "",
"MARKDOWN_VAULT_MCP_FTS_WEIGHTS": "",
"MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER": "",
"MARKDOWN_VAULT_MCP_OLLAMA_MODEL": "nomic-embed-text",
"MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLY": "false",
"MARKDOWN_VAULT_MCP_VOYAGE_MODEL": "voyage-4",
"MARKDOWN_VAULT_MCP_OPENAI_BASE_URL": "https://api.openai.com/v1",
"MARKDOWN_VAULT_MCP_OPENAI_EMBEDDING_MODEL": "text-embedding-3-small",
"MARKDOWN_VAULT_MCP_FASTEMBED_MODEL": "BAAI/bge-small-en-v1.5",
"MARKDOWN_VAULT_MCP_FASTEMBED_CACHE_DIR": "",
"MARKDOWN_VAULT_MCP_EMBED_CONTEXT": "false",
"MARKDOWN_VAULT_MCP_EMBED_TIMEOUT_S": "30.0",
"MARKDOWN_VAULT_MCP_EMBEDDING_BATCH_SIZE": "4",
"MARKDOWN_VAULT_MCP_GIT_TOKEN": "YOUR_MARKDOWN_VAULT_MCP_GIT_TOKEN",
"MARKDOWN_VAULT_MCP_GIT_REPO_URL": "",
"MARKDOWN_VAULT_MCP_GIT_USERNAME": "x-access-token",
"MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_S": "600",
"MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_S": "30.0",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME": "markdown-vault-mcp",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL": "noreply@markdown-vault-mcp",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME_CLAIM": "",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL_CLAIM": "",
"MARKDOWN_VAULT_MCP_GIT_LFS": "true",
"MARKDOWN_VAULT_MCP_FILE_WATCHER": "true",
"MARKDOWN_VAULT_MCP_FILE_WATCHER_DEBOUNCE_S": "2.0",
"MARKDOWN_VAULT_MCP_FILE_WATCHER_ROOT_FLOOR": "true",
"MARKDOWN_VAULT_MCP_BOOT_REINDEX": "true",
"MARKDOWN_VAULT_MCP_GITHUB_WEBHOOK_SECRET": "YOUR_MARKDOWN_VAULT_MCP_GITHUB_WEBHOOK_SECRET",
"MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SIGNING_TOKEN": "YOUR_MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SIGNING_TOKEN",
"MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SECRET_TOKEN": "YOUR_MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SECRET_TOKEN",
"MARKDOWN_VAULT_MCP_SUMMARIZE_PROVIDER": "",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_API_KEY": "YOUR_MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_API_KEY",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_BASE_URL": "",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_MODEL": "gpt-5-mini",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_TOKENS": "8192",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_NOTES": "50",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_INPUT_CHARS": "200000",
"MARKDOWN_VAULT_MCP_SUMMARIZE_TIMEOUT": "120.0",
"MARKDOWN_VAULT_MCP_TRANSFER_TTL_DEFAULT_S": "3600.0",
"MARKDOWN_VAULT_MCP_TRANSFER_TTL_MAX_S": "86400.0",
"MARKDOWN_VAULT_MCP_TRANSFER_GRACE_TTL_S": "60.0",
"MARKDOWN_VAULT_MCP_TRANSFER_LEASE_S": "60.0",
"MARKDOWN_VAULT_MCP_TRANSFER_MAX_UPLOAD_BYTES": "104857600",
"MARKDOWN_VAULT_MCP_JOBS_SOFT_DEADLINE_S": "25.0",
"MARKDOWN_VAULT_MCP_JOBS_RESULT_TTL_S": "3600.0",
"MARKDOWN_VAULT_MCP_JOBS_MAX_PER_SUBJECT": "256"
}
}
}
}