markdown-vault-mcp
by pvliesdonk
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| OLLAMA_HOST | No | Ollama server URL (not MARKDOWN_VAULT_MCP_-prefixed) | http://localhost:11434 |
| OPENAI_API_KEY | No | OpenAI API key for the OpenAI embedding provider | |
| OPENAI_BASE_URL | No | OpenAI-compatible API base URL for embeddings (alternative) | https://api.openai.com/v1 |
| FASTMCP_LOG_LEVEL | No | Log level for FastMCP internals | INFO |
| OPENAI_EMBEDDING_MODEL | No | OpenAI-compatible embedding model name (alternative) | text-embedding-3-small |
| MARKDOWN_VAULT_MCP_EXCLUDE | No | Comma-separated glob patterns to exclude from scanning | |
| MARKDOWN_VAULT_MCP_GIT_LFS | No | Enable Git LFS | true |
| FASTMCP_ENABLE_RICH_LOGGING | No | Rich key=value text by default; set to 'false' for one-JSON-object-per-record output | true |
| MARKDOWN_VAULT_MCP_BASE_URL | No | Public base URL of the server (e.g. https://mcp.example.com) | |
| MARKDOWN_VAULT_MCP_GIT_TOKEN | No | Token/password for HTTPS auth (GIT_ASKPASS) | |
| MARKDOWN_VAULT_MCP_HTTP_PATH | No | HTTP endpoint path for streamable HTTP transport | /mcp |
| MARKDOWN_VAULT_MCP_READ_ONLY | No | Set to 'false' to enable write operations | true |
| MARKDOWN_VAULT_MCP_APP_DOMAIN | No | Override the Claude app domain used for MCP Apps iframe sandboxing | |
| MARKDOWN_VAULT_MCP_INDEX_PATH | No | Path to the SQLite FTS5 index file; set for persistence across restarts | in-memory |
| MARKDOWN_VAULT_MCP_SOURCE_DIR | Yes | Path to the markdown vault directory | |
| MARKDOWN_VAULT_MCP_STATE_PATH | No | Path to the change-tracking state file | {SOURCE_DIR}/.markdown_vault_mcp/state.json |
| MARKDOWN_VAULT_MCP_SERVER_NAME | No | MCP server name shown to clients | markdown-vault-mcp |
| MARKDOWN_VAULT_MCP_BEARER_TOKEN | No | Static bearer token; any non-empty string enables auth | |
| MARKDOWN_VAULT_MCP_FILE_WATCHER | No | Enable filesystem-event watcher for external changes | true |
| MARKDOWN_VAULT_MCP_GIT_REPO_URL | No | HTTPS remote URL for managed mode; enables clone/remote validation on startup | |
| MARKDOWN_VAULT_MCP_GIT_USERNAME | No | Username for HTTPS auth prompts | x-access-token |
| MARKDOWN_VAULT_MCP_INSTRUCTIONS | No | System-level instructions injected into LLM context; defaults to a description that reflects read-only vs read-write state | |
| MARKDOWN_VAULT_MCP_KV_STORE_URL | No | Unified key-value backend for HTTP session persistence | file:///data/state |
| MARKDOWN_VAULT_MCP_OLLAMA_MODEL | No | Ollama embedding model name | nomic-embed-text |
| MARKDOWN_VAULT_MCP_OIDC_AUDIENCE | No | Expected JWT audience claim | |
| MARKDOWN_VAULT_MCP_SNIPPET_WORDS | No | Width of the snippet window (words) in search results | 200 |
| MARKDOWN_VAULT_MCP_INDEXED_FIELDS | No | Comma-separated frontmatter fields to promote to the tag index for structured filtering | |
| MARKDOWN_VAULT_MCP_OIDC_CLIENT_ID | No | OIDC client ID registered with your provider | |
| MARKDOWN_VAULT_MCP_PROMPTS_FOLDER | No | Path to a directory of .md prompt files that extend or override built-in prompts | |
| MARKDOWN_VAULT_MCP_BUILD_TIMEOUT_S | No | Maximum seconds a relational/FTS-backed tool or resource waits for the index to become queryable during a cold-start background build | 60 |
| MARKDOWN_VAULT_MCP_CHUNKS_PER_FILE | No | Maximum chunks returned per document in search results | 2 |
| MARKDOWN_VAULT_MCP_DRAIN_TIMEOUT_S | No | Maximum seconds an index-querying read tool waits for the IndexWriter to drain | 60 |
| MARKDOWN_VAULT_MCP_EMBEDDINGS_PATH | No | Path to the numpy embeddings file; required to enable semantic search | disabled |
| MARKDOWN_VAULT_MCP_EVENT_STORE_URL | No | Legacy alias for KV_STORE_URL; honoured only when KV_STORE_URL is unset | |
| MARKDOWN_VAULT_MCP_FASTEMBED_MODEL | No | FastEmbed model name | BAAI/bge-small-en-v1.5 |
| MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME | No | Git committer name for auto-commits | markdown-vault-mcp |
| MARKDOWN_VAULT_MCP_MAX_CHUNK_CHARS | No | Character cap the chunker enforces alongside MAX_CHUNK_WORDS | |
| MARKDOWN_VAULT_MCP_MAX_CHUNK_WORDS | No | Word cap per chunk | 400 |
| MARKDOWN_VAULT_MCP_OIDC_CONFIG_URL | No | OIDC discovery endpoint | |
| MARKDOWN_VAULT_MCP_OLLAMA_CPU_ONLY | No | Force Ollama to use CPU only | false |
| MARKDOWN_VAULT_MCP_OPENAI_BASE_URL | No | OpenAI-compatible API base URL for embeddings | |
| MARKDOWN_VAULT_MCP_REQUIRED_FIELDS | No | Comma-separated frontmatter fields required on every document | |
| MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL | No | Git committer email for auto-commits | noreply@markdown-vault-mcp |
| MARKDOWN_VAULT_MCP_GIT_PUSH_DELAY_S | No | Seconds of write-idle time before pushing | 30 |
| MARKDOWN_VAULT_MCP_TEMPLATES_FOLDER | No | Relative folder path where note templates live | _templates |
| MARKDOWN_VAULT_MCP_EMBEDDING_PROVIDER | No | Embedding provider: openai, ollama, or fastembed | auto-detect |
| MARKDOWN_VAULT_MCP_OIDC_CLIENT_SECRET | No | OIDC client secret | |
| MARKDOWN_VAULT_MCP_TRANSFER_TTL_MAX_S | No | Maximum permitted TTL for transfer links | 86400 |
| MARKDOWN_VAULT_MCP_FASTEMBED_CACHE_DIR | No | FastEmbed model cache directory | |
| MARKDOWN_VAULT_MCP_GIT_PULL_INTERVAL_S | No | Seconds between git fetch + ff-only update attempts | 600 |
| MARKDOWN_VAULT_MCP_MAX_NOTE_READ_BYTES | No | Maximum bytes returned by full-document read() for .md files | 262144 |
| MARKDOWN_VAULT_MCP_OIDC_JWT_SIGNING_KEY | No | JWT signing key; required on Linux/Docker | |
| MARKDOWN_VAULT_MCP_OIDC_REQUIRED_SCOPES | No | Comma-separated required scopes | openid |
| MARKDOWN_VAULT_MCP_ATTACHMENT_EXTENSIONS | No | Comma-separated allowed extensions without dot; use '*' to allow all non-.md files | |
| MARKDOWN_VAULT_MCP_GITHUB_WEBHOOK_SECRET | No | Shared secret for GitHub push-event webhook | |
| MARKDOWN_VAULT_MCP_GIT_COMMIT_NAME_CLAIM | No | OIDC claim key to use as the commit author name | |
| MARKDOWN_VAULT_MCP_GIT_COMMIT_EMAIL_CLAIM | No | OIDC claim key to use as the commit author e-mail | |
| MARKDOWN_VAULT_MCP_MAX_ATTACHMENT_SIZE_MB | No | Maximum attachment size in MB returned by read() / accepted by write() | 1.0 |
| MARKDOWN_VAULT_MCP_OPENAI_EMBEDDING_MODEL | No | OpenAI-compatible embedding model name | text-embedding-3-small |
| MARKDOWN_VAULT_MCP_TRANSFER_TTL_DEFAULT_S | No | Default token lifetime (seconds) for transfer links | 3600 |
| MARKDOWN_VAULT_MCP_FILE_WATCHER_DEBOUNCE_S | No | Seconds of quiet after the last event before triggering reindex | 2.0 |
| MARKDOWN_VAULT_MCP_LENGTH_DOWNWEIGHT_ALPHA | No | Down-weights longer chunks in ranking | 0.25 |
| MARKDOWN_VAULT_MCP_OIDC_VERIFY_ACCESS_TOKEN | No | Set 'true' to verify the upstream access token as a JWT | |
| MARKDOWN_VAULT_MCP_TRANSFER_MAX_UPLOAD_BYTES | No | Per-upload size cap for transfer links | 104857600 |
Capabilities
Server capabilities have not been inspected yet.
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
No tools | |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
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/pvliesdonk/markdown-vault-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server