Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
Description from the maker (original English)
Generic markdown vault MCP with hybrid search
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
MARKDOWN_VAULT_MCP_KV_STORE_URL, 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, MARKDOWN_VAULT_MCP_LOG_FORMAT, OLLAMA_HOST, OPENAI_API_KEY, VOYAGE_API_KEY, OPENAI_BASE_URL, OPENAI_EMBEDDING_MODEL, MARKDOWN_VAULT_MCP_BUILD_TIMEOUT_S, MARKDOWN_VAULT_MCP_DRAIN_TIMEOUT_S, MARKDOWN_VAULT_MCP_SERVER_URL, MARKDOWN_VAULT_MCP_CLIENT_CONFIG, MARKDOWN_VAULT_MCP_CLIENT_TOKEN, MARKDOWN_VAULT_MCP_SOURCE_DIR, MARKDOWN_VAULT_MCP_READ_ONLY, MARKDOWN_VAULT_MCP_WRITE_PROTECT_EXISTING, MARKDOWN_VAULT_MCP_REPORT_UNRESOLVED_LINKS, MARKDOWN_VAULT_MCP_DISABLE_APPS_UI, MARKDOWN_VAULT_MCP_INDEX_PATH, MARKDOWN_VAULT_MCP_STATE_PATH, MARKDOWN_VAULT_MCP_EMBEDDINGS_PATH, MARKDOWN_VAULT_MCP_EMBEDDING_STORE, MARKDOWN_VAULT_MCP_EMBEDDING_SEARCH, MARKDOWN_VAULT_MCP_EMBEDDING_SEARCH_WORKSPACE_MB, MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_DSN, MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_SCHEMA, MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_POOL_SIZE, MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_STATEMENT_TIMEOUT_S, MARKDOWN_VAULT_MCP_INDEXED_FIELDS, MARKDOWN_VAULT_MCP_REQUIRED_FIELDS, MARKDOWN_VAULT_MCP_EXCLUDE, MARKDOWN_VAULT_MCP_TITLE_FIELD, MARKDOWN_VAULT_MCP_SEARCHABLE_FIELDS, MARKDOWN_VAULT_MCP_TEMPLATES_FOLDER, MARKDOWN_VAULT_MCP_PROMPTS_FOLDER, MARKDOWN_VAULT_MCP_CONVENTIONS_FILE, MARKDOWN_VAULT_MCP_OKF_MODE, MARKDOWN_VAULT_MCP_OKF_WRITE, MARKDOWN_VAULT_MCP_OKF_VERIFY, MARKDOWN_VAULT_MCP_SERVICE_SUBJECTS, MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONS, MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MB, MARKDOWN_VAULT_MCP_MAX_NOTE_READ_BYTES, MARKDOWN_VAULT_MCP_DEFAULT_SEARCH_MODE, MARKDOWN_VAULT_MCP_CHUNKS_PER_FILE, MARKDOWN_VAULT_MCP_SNIPPET_WORDS, MARKDOWN_VAULT_MCP_LENGTH_DOWNWEIGHT_ALPHA, MARKDOWN_VAULT_MCP_MAX_CHUNK_WORDS, MARKDOWN_VAULT_MCP_MAX_CHUNK_CHARS, MARKDOWN_VAULT_MCP_CHUNK_OVERLAP_WORDS, MARKDOWN_VAULT_MCP_FOLDER_WEIGHTS, MARKDOWN_VAULT_MCP_FTS_WEIGHTS, MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER, MARKDOWN_VAULT_MCP_OLLAMA_MODEL, MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLY, MARKDOWN_VAULT_MCP_VOYAGE_MODEL, MARKDOWN_VAULT_MCP_OPENAI_BASE_URL, MARKDOWN_VAULT_MCP_OPENAI_EMBEDDING_MODEL, MARKDOWN_VAULT_MCP_FASTEMBED_MODEL, MARKDOWN_VAULT_MCP_FASTEMBED_CACHE_DIR, MARKDOWN_VAULT_MCP_EMBED_CONTEXT, MARKDOWN_VAULT_MCP_EMBED_TIMEOUT_S, MARKDOWN_VAULT_MCP_EMBEDDING_BATCH_SIZE, MARKDOWN_VAULT_MCP_GIT_TOKEN, MARKDOWN_VAULT_MCP_GIT_REPO_URL, MARKDOWN_VAULT_MCP_GIT_USERNAME, MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_S, MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_S, MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME, MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL, MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME_CLAIM, MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL_CLAIM, MARKDOWN_VAULT_MCP_GIT_LFS, MARKDOWN_VAULT_MCP_FILE_WATCHER, MARKDOWN_VAULT_MCP_FILE_WATCHER_DEBOUNCE_S, MARKDOWN_VAULT_MCP_FILE_WATCHER_ROOT_FLOOR, MARKDOWN_VAULT_MCP_BOOT_REINDEX, MARKDOWN_VAULT_MCP_GITHUB_WEBHOOK_SECRET, MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SIGNING_TOKEN, MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SECRET_TOKEN, MARKDOWN_VAULT_MCP_SUMMARIZE_PROVIDER, MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_API_KEY, MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_BASE_URL, MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_MODEL, MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_TOKENS, MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_NOTES, MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_INPUT_CHARS, MARKDOWN_VAULT_MCP_SUMMARIZE_TIMEOUT, MARKDOWN_VAULT_MCP_TRANSFER_TTL_DEFAULT_S, MARKDOWN_VAULT_MCP_TRANSFER_TTL_MAX_S, MARKDOWN_VAULT_MCP_TRANSFER_GRACE_TTL_S, MARKDOWN_VAULT_MCP_TRANSFER_LEASE_S, MARKDOWN_VAULT_MCP_TRANSFER_MAX_UPLOAD_BYTES, MARKDOWN_VAULT_MCP_JOBS_SOFT_DEADLINE_S, MARKDOWN_VAULT_MCP_JOBS_RESULT_TTL_S, MARKDOWN_VAULT_MCP_JOBS_MAX_PER_SUBJECTValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"markdown-vault": {
"command": "uvx",
"args": [
"markdown-vault-mcp"
],
"env": {
"MARKDOWN_VAULT_MCP_KV_STORE_URL": "your-value",
"MARKDOWN_VAULT_MCP_TOOLS_ALLOW": "your-value",
"MARKDOWN_VAULT_MCP_TOOLS_DENY": "your-value",
"MARKDOWN_VAULT_MCP_SERVER_NAME": "your-value",
"MARKDOWN_VAULT_MCP_INSTANCE_DESCRIPTION": "your-value",
"MARKDOWN_VAULT_MCP_INSTRUCTIONS_EXTRA": "your-value",
"MARKDOWN_VAULT_MCP_INSTRUCTIONS": "your-value",
"MARKDOWN_VAULT_MCP_LOG_LEVEL": "your-value",
"MARKDOWN_VAULT_MCP_LOG_FORMAT": "your-value",
"OLLAMA_HOST": "your-value",
"OPENAI_API_KEY": "your-value",
"VOYAGE_API_KEY": "your-value",
"OPENAI_BASE_URL": "your-value",
"OPENAI_EMBEDDING_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_BUILD_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_DRAIN_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_SERVER_URL": "your-value",
"MARKDOWN_VAULT_MCP_CLIENT_CONFIG": "your-value",
"MARKDOWN_VAULT_MCP_CLIENT_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_SOURCE_DIR": "your-value",
"MARKDOWN_VAULT_MCP_READ_ONLY": "your-value",
"MARKDOWN_VAULT_MCP_WRITE_PROTECT_EXISTING": "your-value",
"MARKDOWN_VAULT_MCP_REPORT_UNRESOLVED_LINKS": "your-value",
"MARKDOWN_VAULT_MCP_DISABLE_APPS_UI": "your-value",
"MARKDOWN_VAULT_MCP_INDEX_PATH": "your-value",
"MARKDOWN_VAULT_MCP_STATE_PATH": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDINGS_PATH": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_STORE": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_SEARCH": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_SEARCH_WORKSPACE_MB": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_DSN": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_SCHEMA": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_POOL_SIZE": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_STATEMENT_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_INDEXED_FIELDS": "your-value",
"MARKDOWN_VAULT_MCP_REQUIRED_FIELDS": "your-value",
"MARKDOWN_VAULT_MCP_EXCLUDE": "your-value",
"MARKDOWN_VAULT_MCP_TITLE_FIELD": "your-value",
"MARKDOWN_VAULT_MCP_SEARCHABLE_FIELDS": "your-value",
"MARKDOWN_VAULT_MCP_TEMPLATES_FOLDER": "your-value",
"MARKDOWN_VAULT_MCP_PROMPTS_FOLDER": "your-value",
"MARKDOWN_VAULT_MCP_CONVENTIONS_FILE": "your-value",
"MARKDOWN_VAULT_MCP_OKF_MODE": "your-value",
"MARKDOWN_VAULT_MCP_OKF_WRITE": "your-value",
"MARKDOWN_VAULT_MCP_OKF_VERIFY": "your-value",
"MARKDOWN_VAULT_MCP_SERVICE_SUBJECTS": "your-value",
"MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONS": "your-value",
"MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MB": "your-value",
"MARKDOWN_VAULT_MCP_MAX_NOTE_READ_BYTES": "your-value",
"MARKDOWN_VAULT_MCP_DEFAULT_SEARCH_MODE": "your-value",
"MARKDOWN_VAULT_MCP_CHUNKS_PER_FILE": "your-value",
"MARKDOWN_VAULT_MCP_SNIPPET_WORDS": "your-value",
"MARKDOWN_VAULT_MCP_LENGTH_DOWNWEIGHT_ALPHA": "your-value",
"MARKDOWN_VAULT_MCP_MAX_CHUNK_WORDS": "your-value",
"MARKDOWN_VAULT_MCP_MAX_CHUNK_CHARS": "your-value",
"MARKDOWN_VAULT_MCP_CHUNK_OVERLAP_WORDS": "your-value",
"MARKDOWN_VAULT_MCP_FOLDER_WEIGHTS": "your-value",
"MARKDOWN_VAULT_MCP_FTS_WEIGHTS": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER": "your-value",
"MARKDOWN_VAULT_MCP_OLLAMA_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLY": "your-value",
"MARKDOWN_VAULT_MCP_VOYAGE_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_OPENAI_BASE_URL": "your-value",
"MARKDOWN_VAULT_MCP_OPENAI_EMBEDDING_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_FASTEMBED_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_FASTEMBED_CACHE_DIR": "your-value",
"MARKDOWN_VAULT_MCP_EMBED_CONTEXT": "your-value",
"MARKDOWN_VAULT_MCP_EMBED_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_BATCH_SIZE": "your-value",
"MARKDOWN_VAULT_MCP_GIT_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_GIT_REPO_URL": "your-value",
"MARKDOWN_VAULT_MCP_GIT_USERNAME": "your-value",
"MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_S": "your-value",
"MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_S": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME_CLAIM": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL_CLAIM": "your-value",
"MARKDOWN_VAULT_MCP_GIT_LFS": "your-value",
"MARKDOWN_VAULT_MCP_FILE_WATCHER": "your-value",
"MARKDOWN_VAULT_MCP_FILE_WATCHER_DEBOUNCE_S": "your-value",
"MARKDOWN_VAULT_MCP_FILE_WATCHER_ROOT_FLOOR": "your-value",
"MARKDOWN_VAULT_MCP_BOOT_REINDEX": "your-value",
"MARKDOWN_VAULT_MCP_GITHUB_WEBHOOK_SECRET": "your-value",
"MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SIGNING_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SECRET_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_PROVIDER": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_API_KEY": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_BASE_URL": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_TOKENS": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_NOTES": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_INPUT_CHARS": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_TIMEOUT": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_TTL_DEFAULT_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_TTL_MAX_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_GRACE_TTL_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_LEASE_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_MAX_UPLOAD_BYTES": "your-value",
"MARKDOWN_VAULT_MCP_JOBS_SOFT_DEADLINE_S": "your-value",
"MARKDOWN_VAULT_MCP_JOBS_RESULT_TTL_S": "your-value",
"MARKDOWN_VAULT_MCP_JOBS_MAX_PER_SUBJECT": "your-value"
}
}
}
}Run this in your terminal
claude mcp add markdown-vault --env MARKDOWN_VAULT_MCP_KV_STORE_URL=your-value --env MARKDOWN_VAULT_MCP_TOOLS_ALLOW=your-value --env MARKDOWN_VAULT_MCP_TOOLS_DENY=your-value --env MARKDOWN_VAULT_MCP_SERVER_NAME=your-value --env MARKDOWN_VAULT_MCP_INSTANCE_DESCRIPTION=your-value --env MARKDOWN_VAULT_MCP_INSTRUCTIONS_EXTRA=your-value --env MARKDOWN_VAULT_MCP_INSTRUCTIONS=your-value --env MARKDOWN_VAULT_MCP_LOG_LEVEL=your-value --env MARKDOWN_VAULT_MCP_LOG_FORMAT=your-value --env OLLAMA_HOST=your-value --env OPENAI_API_KEY=your-value --env VOYAGE_API_KEY=your-value --env OPENAI_BASE_URL=your-value --env OPENAI_EMBEDDING_MODEL=your-value --env MARKDOWN_VAULT_MCP_BUILD_TIMEOUT_S=your-value --env MARKDOWN_VAULT_MCP_DRAIN_TIMEOUT_S=your-value --env MARKDOWN_VAULT_MCP_SERVER_URL=your-value --env MARKDOWN_VAULT_MCP_CLIENT_CONFIG=your-value --env MARKDOWN_VAULT_MCP_CLIENT_TOKEN=your-value --env MARKDOWN_VAULT_MCP_SOURCE_DIR=your-value --env MARKDOWN_VAULT_MCP_READ_ONLY=your-value --env MARKDOWN_VAULT_MCP_WRITE_PROTECT_EXISTING=your-value --env MARKDOWN_VAULT_MCP_REPORT_UNRESOLVED_LINKS=your-value --env MARKDOWN_VAULT_MCP_DISABLE_APPS_UI=your-value --env MARKDOWN_VAULT_MCP_INDEX_PATH=your-value --env MARKDOWN_VAULT_MCP_STATE_PATH=your-value --env MARKDOWN_VAULT_MCP_EMBEDDINGS_PATH=your-value --env MARKDOWN_VAULT_MCP_EMBEDDING_STORE=your-value --env MARKDOWN_VAULT_MCP_EMBEDDING_SEARCH=your-value --env MARKDOWN_VAULT_MCP_EMBEDDING_SEARCH_WORKSPACE_MB=your-value --env MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_DSN=your-value --env MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_SCHEMA=your-value --env MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_POOL_SIZE=your-value --env MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_STATEMENT_TIMEOUT_S=your-value --env MARKDOWN_VAULT_MCP_INDEXED_FIELDS=your-value --env MARKDOWN_VAULT_MCP_REQUIRED_FIELDS=your-value --env MARKDOWN_VAULT_MCP_EXCLUDE=your-value --env MARKDOWN_VAULT_MCP_TITLE_FIELD=your-value --env MARKDOWN_VAULT_MCP_SEARCHABLE_FIELDS=your-value --env MARKDOWN_VAULT_MCP_TEMPLATES_FOLDER=your-value --env MARKDOWN_VAULT_MCP_PROMPTS_FOLDER=your-value --env MARKDOWN_VAULT_MCP_CONVENTIONS_FILE=your-value --env MARKDOWN_VAULT_MCP_OKF_MODE=your-value --env MARKDOWN_VAULT_MCP_OKF_WRITE=your-value --env MARKDOWN_VAULT_MCP_OKF_VERIFY=your-value --env MARKDOWN_VAULT_MCP_SERVICE_SUBJECTS=your-value --env MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONS=your-value --env MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MB=your-value --env MARKDOWN_VAULT_MCP_MAX_NOTE_READ_BYTES=your-value --env MARKDOWN_VAULT_MCP_DEFAULT_SEARCH_MODE=your-value --env MARKDOWN_VAULT_MCP_CHUNKS_PER_FILE=your-value --env MARKDOWN_VAULT_MCP_SNIPPET_WORDS=your-value --env MARKDOWN_VAULT_MCP_LENGTH_DOWNWEIGHT_ALPHA=your-value --env MARKDOWN_VAULT_MCP_MAX_CHUNK_WORDS=your-value --env MARKDOWN_VAULT_MCP_MAX_CHUNK_CHARS=your-value --env MARKDOWN_VAULT_MCP_CHUNK_OVERLAP_WORDS=your-value --env MARKDOWN_VAULT_MCP_FOLDER_WEIGHTS=your-value --env MARKDOWN_VAULT_MCP_FTS_WEIGHTS=your-value --env MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER=your-value --env MARKDOWN_VAULT_MCP_OLLAMA_MODEL=your-value --env MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLY=your-value --env MARKDOWN_VAULT_MCP_VOYAGE_MODEL=your-value --env MARKDOWN_VAULT_MCP_OPENAI_BASE_URL=your-value --env MARKDOWN_VAULT_MCP_OPENAI_EMBEDDING_MODEL=your-value --env MARKDOWN_VAULT_MCP_FASTEMBED_MODEL=your-value --env MARKDOWN_VAULT_MCP_FASTEMBED_CACHE_DIR=your-value --env MARKDOWN_VAULT_MCP_EMBED_CONTEXT=your-value --env MARKDOWN_VAULT_MCP_EMBED_TIMEOUT_S=your-value --env MARKDOWN_VAULT_MCP_EMBEDDING_BATCH_SIZE=your-value --env MARKDOWN_VAULT_MCP_GIT_TOKEN=your-value --env MARKDOWN_VAULT_MCP_GIT_REPO_URL=your-value --env MARKDOWN_VAULT_MCP_GIT_USERNAME=your-value --env MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_S=your-value --env MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_S=your-value --env MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME=your-value --env MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL=your-value --env MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME_CLAIM=your-value --env MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL_CLAIM=your-value --env MARKDOWN_VAULT_MCP_GIT_LFS=your-value --env MARKDOWN_VAULT_MCP_FILE_WATCHER=your-value --env MARKDOWN_VAULT_MCP_FILE_WATCHER_DEBOUNCE_S=your-value --env MARKDOWN_VAULT_MCP_FILE_WATCHER_ROOT_FLOOR=your-value --env MARKDOWN_VAULT_MCP_BOOT_REINDEX=your-value --env MARKDOWN_VAULT_MCP_GITHUB_WEBHOOK_SECRET=your-value --env MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SIGNING_TOKEN=your-value --env MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SECRET_TOKEN=your-value --env MARKDOWN_VAULT_MCP_SUMMARIZE_PROVIDER=your-value --env MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_API_KEY=your-value --env MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_BASE_URL=your-value --env MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_MODEL=your-value --env MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_TOKENS=your-value --env MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_NOTES=your-value --env MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_INPUT_CHARS=your-value --env MARKDOWN_VAULT_MCP_SUMMARIZE_TIMEOUT=your-value --env MARKDOWN_VAULT_MCP_TRANSFER_TTL_DEFAULT_S=your-value --env MARKDOWN_VAULT_MCP_TRANSFER_TTL_MAX_S=your-value --env MARKDOWN_VAULT_MCP_TRANSFER_GRACE_TTL_S=your-value --env MARKDOWN_VAULT_MCP_TRANSFER_LEASE_S=your-value --env MARKDOWN_VAULT_MCP_TRANSFER_MAX_UPLOAD_BYTES=your-value --env MARKDOWN_VAULT_MCP_JOBS_SOFT_DEADLINE_S=your-value --env MARKDOWN_VAULT_MCP_JOBS_RESULT_TTL_S=your-value --env MARKDOWN_VAULT_MCP_JOBS_MAX_PER_SUBJECT=your-value -- uvx markdown-vault-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"markdown-vault": {
"command": "uvx",
"args": [
"markdown-vault-mcp"
],
"env": {
"MARKDOWN_VAULT_MCP_KV_STORE_URL": "your-value",
"MARKDOWN_VAULT_MCP_TOOLS_ALLOW": "your-value",
"MARKDOWN_VAULT_MCP_TOOLS_DENY": "your-value",
"MARKDOWN_VAULT_MCP_SERVER_NAME": "your-value",
"MARKDOWN_VAULT_MCP_INSTANCE_DESCRIPTION": "your-value",
"MARKDOWN_VAULT_MCP_INSTRUCTIONS_EXTRA": "your-value",
"MARKDOWN_VAULT_MCP_INSTRUCTIONS": "your-value",
"MARKDOWN_VAULT_MCP_LOG_LEVEL": "your-value",
"MARKDOWN_VAULT_MCP_LOG_FORMAT": "your-value",
"OLLAMA_HOST": "your-value",
"OPENAI_API_KEY": "your-value",
"VOYAGE_API_KEY": "your-value",
"OPENAI_BASE_URL": "your-value",
"OPENAI_EMBEDDING_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_BUILD_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_DRAIN_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_SERVER_URL": "your-value",
"MARKDOWN_VAULT_MCP_CLIENT_CONFIG": "your-value",
"MARKDOWN_VAULT_MCP_CLIENT_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_SOURCE_DIR": "your-value",
"MARKDOWN_VAULT_MCP_READ_ONLY": "your-value",
"MARKDOWN_VAULT_MCP_WRITE_PROTECT_EXISTING": "your-value",
"MARKDOWN_VAULT_MCP_REPORT_UNRESOLVED_LINKS": "your-value",
"MARKDOWN_VAULT_MCP_DISABLE_APPS_UI": "your-value",
"MARKDOWN_VAULT_MCP_INDEX_PATH": "your-value",
"MARKDOWN_VAULT_MCP_STATE_PATH": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDINGS_PATH": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_STORE": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_SEARCH": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_SEARCH_WORKSPACE_MB": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_DSN": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_SCHEMA": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_POOL_SIZE": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_STATEMENT_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_INDEXED_FIELDS": "your-value",
"MARKDOWN_VAULT_MCP_REQUIRED_FIELDS": "your-value",
"MARKDOWN_VAULT_MCP_EXCLUDE": "your-value",
"MARKDOWN_VAULT_MCP_TITLE_FIELD": "your-value",
"MARKDOWN_VAULT_MCP_SEARCHABLE_FIELDS": "your-value",
"MARKDOWN_VAULT_MCP_TEMPLATES_FOLDER": "your-value",
"MARKDOWN_VAULT_MCP_PROMPTS_FOLDER": "your-value",
"MARKDOWN_VAULT_MCP_CONVENTIONS_FILE": "your-value",
"MARKDOWN_VAULT_MCP_OKF_MODE": "your-value",
"MARKDOWN_VAULT_MCP_OKF_WRITE": "your-value",
"MARKDOWN_VAULT_MCP_OKF_VERIFY": "your-value",
"MARKDOWN_VAULT_MCP_SERVICE_SUBJECTS": "your-value",
"MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONS": "your-value",
"MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MB": "your-value",
"MARKDOWN_VAULT_MCP_MAX_NOTE_READ_BYTES": "your-value",
"MARKDOWN_VAULT_MCP_DEFAULT_SEARCH_MODE": "your-value",
"MARKDOWN_VAULT_MCP_CHUNKS_PER_FILE": "your-value",
"MARKDOWN_VAULT_MCP_SNIPPET_WORDS": "your-value",
"MARKDOWN_VAULT_MCP_LENGTH_DOWNWEIGHT_ALPHA": "your-value",
"MARKDOWN_VAULT_MCP_MAX_CHUNK_WORDS": "your-value",
"MARKDOWN_VAULT_MCP_MAX_CHUNK_CHARS": "your-value",
"MARKDOWN_VAULT_MCP_CHUNK_OVERLAP_WORDS": "your-value",
"MARKDOWN_VAULT_MCP_FOLDER_WEIGHTS": "your-value",
"MARKDOWN_VAULT_MCP_FTS_WEIGHTS": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER": "your-value",
"MARKDOWN_VAULT_MCP_OLLAMA_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLY": "your-value",
"MARKDOWN_VAULT_MCP_VOYAGE_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_OPENAI_BASE_URL": "your-value",
"MARKDOWN_VAULT_MCP_OPENAI_EMBEDDING_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_FASTEMBED_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_FASTEMBED_CACHE_DIR": "your-value",
"MARKDOWN_VAULT_MCP_EMBED_CONTEXT": "your-value",
"MARKDOWN_VAULT_MCP_EMBED_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_BATCH_SIZE": "your-value",
"MARKDOWN_VAULT_MCP_GIT_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_GIT_REPO_URL": "your-value",
"MARKDOWN_VAULT_MCP_GIT_USERNAME": "your-value",
"MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_S": "your-value",
"MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_S": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME_CLAIM": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL_CLAIM": "your-value",
"MARKDOWN_VAULT_MCP_GIT_LFS": "your-value",
"MARKDOWN_VAULT_MCP_FILE_WATCHER": "your-value",
"MARKDOWN_VAULT_MCP_FILE_WATCHER_DEBOUNCE_S": "your-value",
"MARKDOWN_VAULT_MCP_FILE_WATCHER_ROOT_FLOOR": "your-value",
"MARKDOWN_VAULT_MCP_BOOT_REINDEX": "your-value",
"MARKDOWN_VAULT_MCP_GITHUB_WEBHOOK_SECRET": "your-value",
"MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SIGNING_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SECRET_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_PROVIDER": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_API_KEY": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_BASE_URL": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_TOKENS": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_NOTES": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_INPUT_CHARS": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_TIMEOUT": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_TTL_DEFAULT_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_TTL_MAX_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_GRACE_TTL_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_LEASE_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_MAX_UPLOAD_BYTES": "your-value",
"MARKDOWN_VAULT_MCP_JOBS_SOFT_DEADLINE_S": "your-value",
"MARKDOWN_VAULT_MCP_JOBS_RESULT_TTL_S": "your-value",
"MARKDOWN_VAULT_MCP_JOBS_MAX_PER_SUBJECT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"markdown-vault": {
"type": "stdio",
"command": "uvx",
"args": [
"markdown-vault-mcp"
],
"env": {
"MARKDOWN_VAULT_MCP_KV_STORE_URL": "your-value",
"MARKDOWN_VAULT_MCP_TOOLS_ALLOW": "your-value",
"MARKDOWN_VAULT_MCP_TOOLS_DENY": "your-value",
"MARKDOWN_VAULT_MCP_SERVER_NAME": "your-value",
"MARKDOWN_VAULT_MCP_INSTANCE_DESCRIPTION": "your-value",
"MARKDOWN_VAULT_MCP_INSTRUCTIONS_EXTRA": "your-value",
"MARKDOWN_VAULT_MCP_INSTRUCTIONS": "your-value",
"MARKDOWN_VAULT_MCP_LOG_LEVEL": "your-value",
"MARKDOWN_VAULT_MCP_LOG_FORMAT": "your-value",
"OLLAMA_HOST": "your-value",
"OPENAI_API_KEY": "your-value",
"VOYAGE_API_KEY": "your-value",
"OPENAI_BASE_URL": "your-value",
"OPENAI_EMBEDDING_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_BUILD_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_DRAIN_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_SERVER_URL": "your-value",
"MARKDOWN_VAULT_MCP_CLIENT_CONFIG": "your-value",
"MARKDOWN_VAULT_MCP_CLIENT_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_SOURCE_DIR": "your-value",
"MARKDOWN_VAULT_MCP_READ_ONLY": "your-value",
"MARKDOWN_VAULT_MCP_WRITE_PROTECT_EXISTING": "your-value",
"MARKDOWN_VAULT_MCP_REPORT_UNRESOLVED_LINKS": "your-value",
"MARKDOWN_VAULT_MCP_DISABLE_APPS_UI": "your-value",
"MARKDOWN_VAULT_MCP_INDEX_PATH": "your-value",
"MARKDOWN_VAULT_MCP_STATE_PATH": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDINGS_PATH": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_STORE": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_SEARCH": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_SEARCH_WORKSPACE_MB": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_DSN": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_SCHEMA": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_POOL_SIZE": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_STATEMENT_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_INDEXED_FIELDS": "your-value",
"MARKDOWN_VAULT_MCP_REQUIRED_FIELDS": "your-value",
"MARKDOWN_VAULT_MCP_EXCLUDE": "your-value",
"MARKDOWN_VAULT_MCP_TITLE_FIELD": "your-value",
"MARKDOWN_VAULT_MCP_SEARCHABLE_FIELDS": "your-value",
"MARKDOWN_VAULT_MCP_TEMPLATES_FOLDER": "your-value",
"MARKDOWN_VAULT_MCP_PROMPTS_FOLDER": "your-value",
"MARKDOWN_VAULT_MCP_CONVENTIONS_FILE": "your-value",
"MARKDOWN_VAULT_MCP_OKF_MODE": "your-value",
"MARKDOWN_VAULT_MCP_OKF_WRITE": "your-value",
"MARKDOWN_VAULT_MCP_OKF_VERIFY": "your-value",
"MARKDOWN_VAULT_MCP_SERVICE_SUBJECTS": "your-value",
"MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONS": "your-value",
"MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MB": "your-value",
"MARKDOWN_VAULT_MCP_MAX_NOTE_READ_BYTES": "your-value",
"MARKDOWN_VAULT_MCP_DEFAULT_SEARCH_MODE": "your-value",
"MARKDOWN_VAULT_MCP_CHUNKS_PER_FILE": "your-value",
"MARKDOWN_VAULT_MCP_SNIPPET_WORDS": "your-value",
"MARKDOWN_VAULT_MCP_LENGTH_DOWNWEIGHT_ALPHA": "your-value",
"MARKDOWN_VAULT_MCP_MAX_CHUNK_WORDS": "your-value",
"MARKDOWN_VAULT_MCP_MAX_CHUNK_CHARS": "your-value",
"MARKDOWN_VAULT_MCP_CHUNK_OVERLAP_WORDS": "your-value",
"MARKDOWN_VAULT_MCP_FOLDER_WEIGHTS": "your-value",
"MARKDOWN_VAULT_MCP_FTS_WEIGHTS": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER": "your-value",
"MARKDOWN_VAULT_MCP_OLLAMA_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLY": "your-value",
"MARKDOWN_VAULT_MCP_VOYAGE_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_OPENAI_BASE_URL": "your-value",
"MARKDOWN_VAULT_MCP_OPENAI_EMBEDDING_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_FASTEMBED_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_FASTEMBED_CACHE_DIR": "your-value",
"MARKDOWN_VAULT_MCP_EMBED_CONTEXT": "your-value",
"MARKDOWN_VAULT_MCP_EMBED_TIMEOUT_S": "your-value",
"MARKDOWN_VAULT_MCP_EMBEDDING_BATCH_SIZE": "your-value",
"MARKDOWN_VAULT_MCP_GIT_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_GIT_REPO_URL": "your-value",
"MARKDOWN_VAULT_MCP_GIT_USERNAME": "your-value",
"MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_S": "your-value",
"MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_S": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME_CLAIM": "your-value",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL_CLAIM": "your-value",
"MARKDOWN_VAULT_MCP_GIT_LFS": "your-value",
"MARKDOWN_VAULT_MCP_FILE_WATCHER": "your-value",
"MARKDOWN_VAULT_MCP_FILE_WATCHER_DEBOUNCE_S": "your-value",
"MARKDOWN_VAULT_MCP_FILE_WATCHER_ROOT_FLOOR": "your-value",
"MARKDOWN_VAULT_MCP_BOOT_REINDEX": "your-value",
"MARKDOWN_VAULT_MCP_GITHUB_WEBHOOK_SECRET": "your-value",
"MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SIGNING_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SECRET_TOKEN": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_PROVIDER": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_API_KEY": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_BASE_URL": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_MODEL": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_TOKENS": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_NOTES": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_MAX_INPUT_CHARS": "your-value",
"MARKDOWN_VAULT_MCP_SUMMARIZE_TIMEOUT": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_TTL_DEFAULT_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_TTL_MAX_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_GRACE_TTL_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_LEASE_S": "your-value",
"MARKDOWN_VAULT_MCP_TRANSFER_MAX_UPLOAD_BYTES": "your-value",
"MARKDOWN_VAULT_MCP_JOBS_SOFT_DEADLINE_S": "your-value",
"MARKDOWN_VAULT_MCP_JOBS_RESULT_TTL_S": "your-value",
"MARKDOWN_VAULT_MCP_JOBS_MAX_PER_SUBJECT": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
MARKDOWN_VAULT_MCP_KV_STORE_URL envMARKDOWN_VAULT_MCP_TOOLS_ALLOW envMARKDOWN_VAULT_MCP_TOOLS_DENY envMARKDOWN_VAULT_MCP_SERVER_NAME envMARKDOWN_VAULT_MCP_INSTANCE_DESCRIPTION envMARKDOWN_VAULT_MCP_INSTRUCTIONS_EXTRA envMARKDOWN_VAULT_MCP_INSTRUCTIONS envMARKDOWN_VAULT_MCP_LOG_LEVEL envMARKDOWN_VAULT_MCP_LOG_FORMAT envOLLAMA_HOST envOPENAI_BASE_URL envOPENAI_EMBEDDING_MODEL envMARKDOWN_VAULT_MCP_BUILD_TIMEOUT_S envMARKDOWN_VAULT_MCP_DRAIN_TIMEOUT_S envMARKDOWN_VAULT_MCP_SERVER_URL envMARKDOWN_VAULT_MCP_CLIENT_CONFIG envMARKDOWN_VAULT_MCP_SOURCE_DIR envMARKDOWN_VAULT_MCP_READ_ONLY envMARKDOWN_VAULT_MCP_WRITE_PROTECT_EXISTING envMARKDOWN_VAULT_MCP_REPORT_UNRESOLVED_LINKS envMARKDOWN_VAULT_MCP_DISABLE_APPS_UI envMARKDOWN_VAULT_MCP_INDEX_PATH envMARKDOWN_VAULT_MCP_STATE_PATH envMARKDOWN_VAULT_MCP_EMBEDDINGS_PATH envMARKDOWN_VAULT_MCP_EMBEDDING_STORE envMARKDOWN_VAULT_MCP_EMBEDDING_SEARCH envMARKDOWN_VAULT_MCP_EMBEDDING_SEARCH_WORKSPACE_MB envMARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_SCHEMA envMARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_POOL_SIZE envMARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_STATEMENT_TIMEOUT_S envMARKDOWN_VAULT_MCP_INDEXED_FIELDS envMARKDOWN_VAULT_MCP_REQUIRED_FIELDS envMARKDOWN_VAULT_MCP_EXCLUDE envMARKDOWN_VAULT_MCP_TITLE_FIELD envMARKDOWN_VAULT_MCP_SEARCHABLE_FIELDS envMARKDOWN_VAULT_MCP_TEMPLATES_FOLDER envMARKDOWN_VAULT_MCP_PROMPTS_FOLDER envMARKDOWN_VAULT_MCP_CONVENTIONS_FILE envMARKDOWN_VAULT_MCP_OKF_MODE envMARKDOWN_VAULT_MCP_OKF_WRITE envMARKDOWN_VAULT_MCP_OKF_VERIFY envMARKDOWN_VAULT_MCP_SERVICE_SUBJECTS envMARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONS envMARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MB envMARKDOWN_VAULT_MCP_MAX_NOTE_READ_BYTES envMARKDOWN_VAULT_MCP_DEFAULT_SEARCH_MODE envMARKDOWN_VAULT_MCP_CHUNKS_PER_FILE envMARKDOWN_VAULT_MCP_SNIPPET_WORDS envMARKDOWN_VAULT_MCP_LENGTH_DOWNWEIGHT_ALPHA envMARKDOWN_VAULT_MCP_MAX_CHUNK_WORDS envMARKDOWN_VAULT_MCP_MAX_CHUNK_CHARS envMARKDOWN_VAULT_MCP_CHUNK_OVERLAP_WORDS envMARKDOWN_VAULT_MCP_FOLDER_WEIGHTS envMARKDOWN_VAULT_MCP_FTS_WEIGHTS envMARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER envMARKDOWN_VAULT_MCP_OLLAMA_MODEL envMARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLY envMARKDOWN_VAULT_MCP_VOYAGE_MODEL envMARKDOWN_VAULT_MCP_OPENAI_BASE_URL envMARKDOWN_VAULT_MCP_OPENAI_EMBEDDING_MODEL envMARKDOWN_VAULT_MCP_FASTEMBED_MODEL envMARKDOWN_VAULT_MCP_FASTEMBED_CACHE_DIR envMARKDOWN_VAULT_MCP_EMBED_CONTEXT envMARKDOWN_VAULT_MCP_EMBED_TIMEOUT_S envMARKDOWN_VAULT_MCP_EMBEDDING_BATCH_SIZE envMARKDOWN_VAULT_MCP_GIT_REPO_URL envMARKDOWN_VAULT_MCP_GIT_USERNAME envMARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_S envMARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_S envMARKDOWN_VAULT_MCP_GIT_COMMIT_NAME envMARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL envMARKDOWN_VAULT_MCP_GIT_COMMIT_NAME_CLAIM envMARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL_CLAIM envMARKDOWN_VAULT_MCP_GIT_LFS envMARKDOWN_VAULT_MCP_FILE_WATCHER envMARKDOWN_VAULT_MCP_FILE_WATCHER_DEBOUNCE_S envMARKDOWN_VAULT_MCP_FILE_WATCHER_ROOT_FLOOR envMARKDOWN_VAULT_MCP_BOOT_REINDEX envMARKDOWN_VAULT_MCP_SUMMARIZE_PROVIDER envMARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_BASE_URL envMARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_MODEL envMARKDOWN_VAULT_MCP_SUMMARIZE_MAX_TOKENS envMARKDOWN_VAULT_MCP_SUMMARIZE_MAX_NOTES envMARKDOWN_VAULT_MCP_SUMMARIZE_MAX_INPUT_CHARS envMARKDOWN_VAULT_MCP_SUMMARIZE_TIMEOUT envMARKDOWN_VAULT_MCP_TRANSFER_TTL_DEFAULT_S envMARKDOWN_VAULT_MCP_TRANSFER_TTL_MAX_S envMARKDOWN_VAULT_MCP_TRANSFER_GRACE_TTL_S envMARKDOWN_VAULT_MCP_TRANSFER_LEASE_S envMARKDOWN_VAULT_MCP_TRANSFER_MAX_UPLOAD_BYTES envMARKDOWN_VAULT_MCP_JOBS_SOFT_DEADLINE_S envMARKDOWN_VAULT_MCP_JOBS_RESULT_TTL_S envMARKDOWN_VAULT_MCP_JOBS_MAX_PER_SUBJECT envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026
The registry name was verified with the GitHub account pvliesdonk, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: OPENAI_API_KEY, VOYAGE_API_KEY, MARKDOWN_VAULT_MCP_CLIENT_TOKEN, MARKDOWN_VAULT_MCP_EMBEDDING_POSTGRES_DSN, MARKDOWN_VAULT_MCP_GIT_TOKEN, MARKDOWN_VAULT_MCP_GITHUB_WEBHOOK_SECRET, MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SIGNING_TOKEN, MARKDOWN_VAULT_MCP_GITLAB_WEBHOOK_SECRET_TOKEN, MARKDOWN_VAULT_MCP_SUMMARIZE_OPENAI_API_KEY
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (6.1.0) reached the registry 5 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv), Docker on your computer.
In the same category: Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Agent-Native Google Calendar - manage events, sync, and public booking
Lets AI create and edit Excel files itself, including formulas, charts and PivotTables, without Excel installed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Generic markdown vault MCP with hybrid search
[Documentation](https://pvliesdonk.github.io/markdown-vault-mcp/) | [Config wizard](https://pvliesdonk.github.io/markdown-vault-mcp/latest/reference/configuration-generator/) | [PyPI](https://pypi.org/project/markdown-vault-mcp/) | [Docker](https://github.com/pvliesdonk/markdown-vault-mcp/pkgs/container/markdown-vault-mcp)
Give Claude, or any MCP client, a folder of Markdown notes to search, read and write. An Obsidian vault works as it is.
read fetches the whole section. See Embeddings and Choosing an embedding store.markdown-vault-mcp search "term" --server https://vault.example/mcp; read notes, list metadata, collect context, traverse note links and discover paths with query path "topic" --fuzzy using the same connection options. Use query metadata, query body or query note for exact lexical pages, query count for the full matching population, and query aggregate --by tag for buckets. Use --json for native payloads or --agent for escaped records. See the CLI reference.query_documents, count_documents and aggregate_documents. See Reader tools and the library API.search_paths; approximate coverage and output truncation are reported separately. See Reader tools.write, edit, append, delete, rename, move_folder, fetch, git_sync, the okf_* tools, create_upload_link) are on by default and hidden when MARKDOWN_VAULT_MCP_READ_ONLY=true. Replacing a file takes the etag from reading it. A rename still accepts an etag that only the server's own link rewrites made stale. Per-folder _conventions.md rules reach the client as it writes.MARKDOWN_VAULT_MCP_REPORT_UNRESOLVED_LINKS=true, write, edit and append name each link they added that doesn't resolve.The tools reference lists every tool. The same engine is a Python library: see the Vault API.
What the server can reach, what it changes and who gets in is set out in the security model; the block below says who it serves and where it stops.
It suits one person or a small team who keep notes as Markdown files and want Claude to search them, follow their links and write back into them, on their own machine or as a shared server. It reaches the vault folder, plus only what you configure: a git remote, an embedding or summarizing model, and the URLs a fetch call names.
What it assumes:
MARKDOWN_VAULT_MCP_SERVER_NAME.numpy store) answered those searches about ten times faster, and peaked at about 1.25 GB while searching. Choosing an embedding store has the measured costs and the limits.MARKDOWN_VAULT_MCP_INDEX_PATH, the index and that file stay in memory and are rebuilt at each start.Reach for something else for a corpus beyond the 227,640 sections it was measured at (a vector database behind a retrieval pipeline), for mostly scanned or office documents (a document management system with text recognition), or for many users who must not see each other's notes (a multi-tenant knowledge platform): every caller the server admits gets every tool it exposes.
Pick the client you use. Each line installs the released version; the Get started tutorials carry on from there.
Claude Desktop. Download the .mcpb bundle from the releases page and open it with Claude Desktop (or Settings › Extensions › Advanced settings › Install Extension…). Claude Desktop asks for the required settings itself. Tutorial.
Claude Code. Two commands inside Claude Code; the second asks for a scope. Tutorial.
/plugin marketplace add pvliesdonk/claude-plugins
/plugin install markdown-vault-mcp@pvliesdonk
A client that runs a command (stdio). To register it in Claude Code, see the Claude Code tutorial.
uv tool install "markdown-vault-mcp"
markdown-vault-mcp serve
A server for remote clients (streamable HTTP). A remote server connects the clients.
docker run --rm -p 8000:8000 --env-file .env ghcr.io/pvliesdonk/markdown-vault-mcp:latest
A compose.yml ships at the repository root and runs as-is: copy .env.example to .env, then docker compose up -d. Deploy covers authentication, OIDC, a reverse proxy and system packages (.deb/.rpm on the releases page). The server answers /health and /health/ready outside the MCP mount, and its get_server_info tool reports the running version.
The plain package covers keyword search, the write tools and git. Search by meaning, the file watcher, the summarize tool and keeping embeddings in PostgreSQL need extras; [all] installs every one:
uv tool install "markdown-vault-mcp[all]"
The Docker image, the .mcpb bundle and the Claude Code plugin already include them. Installation lists each extra.
Everything is configured through environment variables with the MARKDOWN_VAULT_MCP_ prefix. The ones most installs set:
| Variable | Default | Required | Description |
|---|---|---|---|
MARKDOWN_VAULT_MCP_SOURCE_DIR | /data/vault | No | Path to the markdown vault directory. When it does not exist, or the server cannot access it, the server starts but every tool fails with a message saying which until it is fixed (managed git mode clones into it). Symbolic links inside the vault are followed on Python 3.13+. |
MARKDOWN_VAULT_MCP_READ_ONLY | false | No | Set to true to hide the write tools (write, edit, append, delete, rename, move_folder, fetch, git_sync, the okf_* tools, create_upload_link) and serve a search-only vault. |
MARKDOWN_VAULT_MCP_WRITE_PROTECT_EXISTING | true | No | Refuse a write that would overwrite an existing file when no if_match etag is supplied. Deliberate replacement still works: read the file first, then pass if_match. Unaffected: edit, append, delete, rename. Set to false to allow blind overwrites. |
MARKDOWN_VAULT_MCP_REPORT_UNRESOLVED_LINKS | false | No | Set to true to have write, edit and append list, under unresolved_links, the target of each link the call added that get_broken_links reports. Links the note already held are left out. Off by default, leaving those responses unchanged. |
| MARKDOWN_VAULT_MCP_DEFAULT_SEARCH_MODE | auto | No | Mode used when a search call omits 'mode': auto, keyword, semantic, or hybrid. The default 'auto' picks hybrid when embeddings are configured and keyword when they are not. Pin 'keyword' to keep unqualified searches off the embedding provider (each hybrid or semantic search embeds the query, which costs an API call on a metered provider). A configured semantic/hybrid default also degrades to keyword without embeddings, so no setting can make a vault unsearchable; an explicit mode= argument is n
Only the beginning is shown; read the rest in the repo