Markdown Vault MCP
Markdown vault MCP server with FTS5 + semantic search and frontmatter indexing
{
"mcpServers": {
"markdown-vault-mcp": {
"command": "uvx",
"args": [
"markdown-vault-mcp"
],
"env": {
"MARKDOWN_VAULT_MCP_SOURCE_DIR": "/data/vault",
"MARKDOWN_VAULT_MCP_READ_ONLY": "true",
"FASTMCP_LOG_LEVEL": "INFO",
"MARKDOWN_VAULT_MCP_EVENT_STORE_URL": "file:///data/state/events",
"MARKDOWN_VAULT_MCP_SERVER_NAME": "markdown-vault-mcp",
"MARKDOWN_VAULT_MCP_STATE_PATH": "/data/state",
"MARKDOWN_VAULT_MCP_INDEX_PATH": "<markdown_vault_mcp_index_path>",
"MARKDOWN_VAULT_MCP_EMBEDDINGS_PATH": "<markdown_vault_mcp_embeddings_path>",
"MARKDOWN_VAULT_MCP_INDEXED_FIELDS": "<markdown_vault_mcp_indexed_fields>",
"MARKDOWN_VAULT_MCP_REQUIRED_FIELDS": "<markdown_vault_mcp_required_fields>",
"MARKDOWN_VAULT_MCP_EXCLUDE": "<markdown_vault_mcp_exclude>",
"MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER": "<markdown_vault_mcp_embedding_provider>",
"OPENAI_API_KEY": "<your-openai_api_key>",
"MARKDOWN_VAULT_MCP_OLLAMA_MODEL": "nomic-embed-text",
"MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLY": "false",
"OLLAMA_HOST": "http://localhost:11434",
"MARKDOWN_VAULT_MCP_GIT_TOKEN": "<your-markdown_vault_mcp_git_token>",
"MARKDOWN_VAULT_MCP_GIT_REPO_URL": "<markdown_vault_mcp_git_repo_url>",
"MARKDOWN_VAULT_MCP_GIT_USERNAME": "x-access-token",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME": "markdown-vault-mcp",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL": "noreply@markdown-vault-mcp",
"MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_S": "30",
"MARKDOWN_VAULT_MCP_GIT_LFS": "true",
"MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_S": "600",
"MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONS": "<markdown_vault_mcp_attachment_extensions>",
"MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MB": "10",
"MARKDOWN_VAULT_MCP_TEMPLATES_FOLDER": "_templates",
"MARKDOWN_VAULT_MCP_PROMPTS_FOLDER": "<markdown_vault_mcp_prompts_folder>",
"MARKDOWN_VAULT_MCP_BEARER_TOKEN": "<your-markdown_vault_mcp_bearer_token>",
"MARKDOWN_VAULT_MCP_AUTH_MODE": "<markdown_vault_mcp_auth_mode>",
"MARKDOWN_VAULT_MCP_BASE_URL": "<markdown_vault_mcp_base_url>",
"MARKDOWN_VAULT_MCP_OIDC_CONFIG_URL": "<markdown_vault_mcp_oidc_config_url>",
"MARKDOWN_VAULT_MCP_OIDC_CLIENT_ID": "<markdown_vault_mcp_oidc_client_id>",
"MARKDOWN_VAULT_MCP_OIDC_CLIENT_SECRET": "<your-markdown_vault_mcp_oidc_client_secret>",
"MARKDOWN_VAULT_MCP_OIDC_JWT_SIGNING_KEY": "<your-markdown_vault_mcp_oidc_jwt_signing_key>",
"MARKDOWN_VAULT_MCP_OIDC_AUDIENCE": "<markdown_vault_mcp_oidc_audience>",
"MARKDOWN_VAULT_MCP_OIDC_REQUIRED_SCOPES": "openid",
"MARKDOWN_VAULT_MCP_OIDC_VERIFY_ACCESS_TOKEN": "false",
"MARKDOWN_VAULT_MCP_APP_DOMAIN": "<markdown_vault_mcp_app_domain>",
"PUID": "1000",
"PGID": "1000"
}
}
}
}{
"mcpServers": {
"markdown-vault-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"ghcr.io/pvliesdonk/markdown-vault-mcp:v1.27.1"
],
"env": {
"MARKDOWN_VAULT_MCP_SOURCE_DIR": "/data/vault",
"MARKDOWN_VAULT_MCP_READ_ONLY": "true",
"FASTMCP_LOG_LEVEL": "INFO",
"MARKDOWN_VAULT_MCP_EVENT_STORE_URL": "file:///data/state/events",
"MARKDOWN_VAULT_MCP_SERVER_NAME": "markdown-vault-mcp",
"MARKDOWN_VAULT_MCP_STATE_PATH": "/data/state",
"MARKDOWN_VAULT_MCP_INDEX_PATH": "<markdown_vault_mcp_index_path>",
"MARKDOWN_VAULT_MCP_EMBEDDINGS_PATH": "<markdown_vault_mcp_embeddings_path>",
"MARKDOWN_VAULT_MCP_INDEXED_FIELDS": "<markdown_vault_mcp_indexed_fields>",
"MARKDOWN_VAULT_MCP_REQUIRED_FIELDS": "<markdown_vault_mcp_required_fields>",
"MARKDOWN_VAULT_MCP_EXCLUDE": "<markdown_vault_mcp_exclude>",
"MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER": "<markdown_vault_mcp_embedding_provider>",
"OPENAI_API_KEY": "<your-openai_api_key>",
"MARKDOWN_VAULT_MCP_OLLAMA_MODEL": "nomic-embed-text",
"MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLY": "false",
"OLLAMA_HOST": "http://localhost:11434",
"MARKDOWN_VAULT_MCP_GIT_TOKEN": "<your-markdown_vault_mcp_git_token>",
"MARKDOWN_VAULT_MCP_GIT_REPO_URL": "<markdown_vault_mcp_git_repo_url>",
"MARKDOWN_VAULT_MCP_GIT_USERNAME": "x-access-token",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME": "markdown-vault-mcp",
"MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL": "noreply@markdown-vault-mcp",
"MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_S": "30",
"MARKDOWN_VAULT_MCP_GIT_LFS": "true",
"MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_S": "600",
"MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONS": "<markdown_vault_mcp_attachment_extensions>",
"MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MB": "10",
"MARKDOWN_VAULT_MCP_TEMPLATES_FOLDER": "_templates",
"MARKDOWN_VAULT_MCP_PROMPTS_FOLDER": "<markdown_vault_mcp_prompts_folder>",
"MARKDOWN_VAULT_MCP_BEARER_TOKEN": "<your-markdown_vault_mcp_bearer_token>",
"MARKDOWN_VAULT_MCP_AUTH_MODE": "<markdown_vault_mcp_auth_mode>",
"MARKDOWN_VAULT_MCP_BASE_URL": "<markdown_vault_mcp_base_url>",
"MARKDOWN_VAULT_MCP_OIDC_CONFIG_URL": "<markdown_vault_mcp_oidc_config_url>",
"MARKDOWN_VAULT_MCP_OIDC_CLIENT_ID": "<markdown_vault_mcp_oidc_client_id>",
"MARKDOWN_VAULT_MCP_OIDC_CLIENT_SECRET": "<your-markdown_vault_mcp_oidc_client_secret>",
"MARKDOWN_VAULT_MCP_OIDC_JWT_SIGNING_KEY": "<your-markdown_vault_mcp_oidc_jwt_signing_key>",
"MARKDOWN_VAULT_MCP_OIDC_AUDIENCE": "<markdown_vault_mcp_oidc_audience>",
"MARKDOWN_VAULT_MCP_OIDC_REQUIRED_SCOPES": "openid",
"MARKDOWN_VAULT_MCP_OIDC_VERIFY_ACCESS_TOKEN": "false",
"MARKDOWN_VAULT_MCP_APP_DOMAIN": "<markdown_vault_mcp_app_domain>",
"PUID": "1000",
"PGID": "1000"
}
}
}
}MARKDOWN_VAULT_MCP_SOURCE_DIRAbsolute path to the markdown vault directory
MARKDOWN_VAULT_MCP_READ_ONLYDisable write tools
FASTMCP_LOG_LEVELLog level for FastMCP internals; app loggers default to INFO, -v overrides both to DEBUG
MARKDOWN_VAULT_MCP_EVENT_STORE_URLEvent store backend for HTTP session persistence (file:///path or memory://)
MARKDOWN_VAULT_MCP_SERVER_NAMEMCP server name shown to clients
MARKDOWN_VAULT_MCP_STATE_PATHDirectory for index and embeddings state files
MARKDOWN_VAULT_MCP_INDEX_PATHPath to the FTS5 SQLite index file
MARKDOWN_VAULT_MCP_EMBEDDINGS_PATHPath to the numpy embeddings file
MARKDOWN_VAULT_MCP_INDEXED_FIELDSComma-separated frontmatter fields to index for search
MARKDOWN_VAULT_MCP_REQUIRED_FIELDSComma-separated frontmatter fields required on every document
MARKDOWN_VAULT_MCP_EXCLUDEComma-separated glob patterns to exclude from indexing
MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDEREmbedding provider to use
OPENAI_API_KEYOpenAI API key (required when MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER=openai)
MARKDOWN_VAULT_MCP_OLLAMA_MODELOllama embedding model name
MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLYForce CPU-only inference for Ollama
OLLAMA_HOSTOllama server base URL
MARKDOWN_VAULT_MCP_GIT_TOKENGit authentication token for push/pull
MARKDOWN_VAULT_MCP_GIT_REPO_URLRemote git repository URL for managed mode
MARKDOWN_VAULT_MCP_GIT_USERNAMEGit username for token auth
MARKDOWN_VAULT_MCP_GIT_COMMIT_NAMEGit committer name
MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAILGit committer email
MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_SSeconds to wait before pushing (batches writes)
MARKDOWN_VAULT_MCP_GIT_LFSEnable Git LFS support
MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_SSeconds between periodic git pulls (0 to disable)
MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONSComma-separated allowed attachment extensions, or * for all
MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MBMaximum attachment size in MB (0 for unlimited)
MARKDOWN_VAULT_MCP_TEMPLATES_FOLDERFolder name for note templates within the vault
MARKDOWN_VAULT_MCP_PROMPTS_FOLDERPath to user-defined MCP prompt templates
MARKDOWN_VAULT_MCP_BEARER_TOKENBearer token for authentication
MARKDOWN_VAULT_MCP_AUTH_MODEOIDC auth mode: 'remote' (JWKS validation) or 'oidc-proxy' (OAuth proxy). Auto-detected if not set.
MARKDOWN_VAULT_MCP_BASE_URLPublic base URL of this server (required for OIDC)
MARKDOWN_VAULT_MCP_OIDC_CONFIG_URLOIDC discovery endpoint URL
MARKDOWN_VAULT_MCP_OIDC_CLIENT_IDOIDC client ID
MARKDOWN_VAULT_MCP_OIDC_CLIENT_SECRETOIDC client secret
MARKDOWN_VAULT_MCP_OIDC_JWT_SIGNING_KEYSigning key for OIDC session JWTs (critical on Linux/Docker)
MARKDOWN_VAULT_MCP_OIDC_AUDIENCEExpected OIDC token audience
MARKDOWN_VAULT_MCP_OIDC_REQUIRED_SCOPESSpace-separated required OIDC scopes
MARKDOWN_VAULT_MCP_OIDC_VERIFY_ACCESS_TOKENVerify access token JWT instead of id_token
MARKDOWN_VAULT_MCP_APP_DOMAINOverride Claude app domain for MCP Apps iframe sandboxing
MARKDOWN_VAULT_MCP_SOURCE_DIRPath to the vault directory inside the container
MARKDOWN_VAULT_MCP_READ_ONLYDisable write tools
FASTMCP_LOG_LEVELLog level for FastMCP internals; app loggers default to INFO, -v overrides both to DEBUG
MARKDOWN_VAULT_MCP_EVENT_STORE_URLEvent store backend for HTTP session persistence (file:///path or memory://)
MARKDOWN_VAULT_MCP_SERVER_NAMEMCP server name shown to clients
MARKDOWN_VAULT_MCP_STATE_PATHDirectory for index and embeddings state files
MARKDOWN_VAULT_MCP_INDEX_PATHPath to the FTS5 SQLite index file
MARKDOWN_VAULT_MCP_EMBEDDINGS_PATHPath to the numpy embeddings file
MARKDOWN_VAULT_MCP_INDEXED_FIELDSComma-separated frontmatter fields to index for search
MARKDOWN_VAULT_MCP_REQUIRED_FIELDSComma-separated frontmatter fields required on every document
MARKDOWN_VAULT_MCP_EXCLUDEComma-separated glob patterns to exclude from indexing
MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDEREmbedding provider to use
OPENAI_API_KEYOpenAI API key (required when MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER=openai)
MARKDOWN_VAULT_MCP_OLLAMA_MODELOllama embedding model name
MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLYForce CPU-only inference for Ollama
OLLAMA_HOSTOllama server base URL
MARKDOWN_VAULT_MCP_GIT_TOKENGit authentication token for push/pull
MARKDOWN_VAULT_MCP_GIT_REPO_URLRemote git repository URL for managed mode
MARKDOWN_VAULT_MCP_GIT_USERNAMEGit username for token auth
MARKDOWN_VAULT_MCP_GIT_COMMIT_NAMEGit committer name
MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAILGit committer email
MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_SSeconds to wait before pushing (batches writes)
MARKDOWN_VAULT_MCP_GIT_LFSEnable Git LFS support
MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_SSeconds between periodic git pulls (0 to disable)
MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONSComma-separated allowed attachment extensions, or * for all
MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MBMaximum attachment size in MB (0 for unlimited)
MARKDOWN_VAULT_MCP_TEMPLATES_FOLDERFolder name for note templates within the vault
MARKDOWN_VAULT_MCP_PROMPTS_FOLDERPath to user-defined MCP prompt templates
PUIDRun as this UID (Docker entrypoint)
PGIDRun as this GID (Docker entrypoint)
MARKDOWN_VAULT_MCP_BEARER_TOKENBearer token for authentication
MARKDOWN_VAULT_MCP_AUTH_MODEOIDC auth mode: 'remote' (JWKS validation) or 'oidc-proxy' (OAuth proxy). Auto-detected if not set.
MARKDOWN_VAULT_MCP_BASE_URLPublic base URL of this server (required for OIDC)
MARKDOWN_VAULT_MCP_OIDC_CONFIG_URLOIDC discovery endpoint URL
MARKDOWN_VAULT_MCP_OIDC_CLIENT_IDOIDC client ID
MARKDOWN_VAULT_MCP_OIDC_CLIENT_SECRETOIDC client secret
MARKDOWN_VAULT_MCP_OIDC_JWT_SIGNING_KEYSigning key for OIDC session JWTs (critical on Linux/Docker)
MARKDOWN_VAULT_MCP_OIDC_AUDIENCEExpected OIDC token audience
MARKDOWN_VAULT_MCP_OIDC_REQUIRED_SCOPESSpace-separated required OIDC scopes
MARKDOWN_VAULT_MCP_OIDC_VERIFY_ACCESS_TOKENVerify access token JWT instead of id_token
MARKDOWN_VAULT_MCP_APP_DOMAINOverride Claude app domain for MCP Apps iframe sandboxing
AI-powered news intelligence — 21 tools for personalized monitoring, briefings, and semantic search
BuyWhere MCP server for product search, price comparison, and affiliate-ready shopping workflows.
Search and discover Agent Skills from the skills.sh registry. Powered by HAPI MCP server.