MCP server providing sementic search over Obsidian vaults
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add obsidian-tom-savage --env VAULT_PATH='<VAULT_PATH>' --env DATABASE_PATH='<DATABASE_PATH>' -- uv run obsidian-index mcp --vault '{{config.VAULT_PATH}}' --database '{{config.DATABASE_PATH}}' --reindex --watch~/.codex/config.toml
[mcp_servers.obsidian-tom-savage]
command = "uv"
args = ["run", "obsidian-index", "mcp", "--vault", "{{config.VAULT_PATH}}", "--database", "{{config.DATABASE_PATH}}", "--reindex", "--watch"]
env = { VAULT_PATH = "<VAULT_PATH>", DATABASE_PATH = "<DATABASE_PATH>" }
# codex mcp add obsidian-tom-savage --env VAULT_PATH='<VAULT_PATH>' --env DATABASE_PATH='<DATABASE_PATH>' -- uv run obsidian-index mcp --vault '{{config.VAULT_PATH}}' --database '{{config.DATABASE_PATH}}' --reindex --watch~/.cursor/mcp.json
{
"mcpServers": {
"obsidian-tom-savage": {
"command": "uv",
"args": [
"run",
"obsidian-index",
"mcp",
"--vault",
"{{config.VAULT_PATH}}",
"--database",
"{{config.DATABASE_PATH}}",
"--reindex",
"--watch"
],
"env": {
"VAULT_PATH": "<VAULT_PATH>",
"DATABASE_PATH": "<DATABASE_PATH>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"obsidian-tom-savage": {
"type": "stdio",
"command": "uv",
"args": [
"run",
"obsidian-index",
"mcp",
"--vault",
"{{config.VAULT_PATH}}",
"--database",
"{{config.DATABASE_PATH}}",
"--reindex",
"--watch"
],
"env": {
"VAULT_PATH": "<VAULT_PATH>",
"DATABASE_PATH": "<DATABASE_PATH>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"obsidian-tom-savage": {
"command": "uv",
"args": [
"run",
"obsidian-index",
"mcp",
"--vault",
"{{config.VAULT_PATH}}",
"--database",
"{{config.DATABASE_PATH}}",
"--reindex",
"--watch"
],
"env": {
"VAULT_PATH": "<VAULT_PATH>",
"DATABASE_PATH": "<DATABASE_PATH>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"obsidian-tom-savage": {
"command": "uv",
"args": [
"run",
"obsidian-index",
"mcp",
"--vault",
"{{config.VAULT_PATH}}",
"--database",
"{{config.DATABASE_PATH}}",
"--reindex",
"--watch"
],
"env": {
"VAULT_PATH": "<VAULT_PATH>",
"DATABASE_PATH": "<DATABASE_PATH>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"obsidian-tom-savage": {
"command": "uv",
"args": [
"run",
"obsidian-index",
"mcp",
"--vault",
"{{config.VAULT_PATH}}",
"--database",
"{{config.DATABASE_PATH}}",
"--reindex",
"--watch"
],
"env": {
"VAULT_PATH": "<VAULT_PATH>",
"DATABASE_PATH": "<DATABASE_PATH>"
}
}
}
}Environment variables
VAULT_PATHDATABASE_PATH
Replace the placeholders with your own credentials and keep them out of version control.