Works with an Obsidian vault through the Local REST API plugin: list, read, search, append, patch and delete notes.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add obsidian --env OBSIDIAN_API_KEY='<OBSIDIAN_API_KEY>' --env OBSIDIAN_HOST='<OBSIDIAN_HOST>' --env OBSIDIAN_PORT='<OBSIDIAN_PORT>' -- uvx mcp-obsidian~/.codex/config.toml
[mcp_servers.obsidian]
command = "uvx"
args = ["mcp-obsidian"]
env = { OBSIDIAN_API_KEY = "<OBSIDIAN_API_KEY>", OBSIDIAN_HOST = "<OBSIDIAN_HOST>", OBSIDIAN_PORT = "<OBSIDIAN_PORT>" }
# codex mcp add obsidian --env OBSIDIAN_API_KEY='<OBSIDIAN_API_KEY>' --env OBSIDIAN_HOST='<OBSIDIAN_HOST>' --env OBSIDIAN_PORT='<OBSIDIAN_PORT>' -- uvx mcp-obsidian~/.cursor/mcp.json
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<OBSIDIAN_API_KEY>",
"OBSIDIAN_HOST": "<OBSIDIAN_HOST>",
"OBSIDIAN_PORT": "<OBSIDIAN_PORT>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"obsidian": {
"type": "stdio",
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<OBSIDIAN_API_KEY>",
"OBSIDIAN_HOST": "<OBSIDIAN_HOST>",
"OBSIDIAN_PORT": "<OBSIDIAN_PORT>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<OBSIDIAN_API_KEY>",
"OBSIDIAN_HOST": "<OBSIDIAN_HOST>",
"OBSIDIAN_PORT": "<OBSIDIAN_PORT>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<OBSIDIAN_API_KEY>",
"OBSIDIAN_HOST": "<OBSIDIAN_HOST>",
"OBSIDIAN_PORT": "<OBSIDIAN_PORT>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<OBSIDIAN_API_KEY>",
"OBSIDIAN_HOST": "<OBSIDIAN_HOST>",
"OBSIDIAN_PORT": "<OBSIDIAN_PORT>"
}
}
}
}Environment variables
OBSIDIAN_API_KEYOBSIDIAN_HOSTOBSIDIAN_PORT
Replace the placeholders with your own credentials and keep them out of version control.