MCP server that interacts with Obsidian via the Obsidian rest API community plugin
MCP server to interact with Obsidian via the Local REST API community plugin.
The server implements multiple tools to interact with Obsidian:
Its good to first instruct Claude to use Obsidian. Then it will always call the tool.
The use prompts like this:
There are two ways to configure the environment with the Obsidian REST API Key.
{
"mcp-obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY":"<your_api_key_here>"
}
}
.env
file in the working directory with the following required variable:OBSIDIAN_API_KEY=your_api_key_here
Note: You can find the key in the Obsidian plugin config.
You need the Obsidian REST API community plugin running: https://github.com/coddingtonbear/obsidian-local-rest-api
Install and enable it in the settings and copy the api key.
On MacOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-obsidian": {
"command": "uv",
"args": [
"--directory",
"<dir_to>/mcp-obsidian",
"run",
"mcp-obsidian"
]
}
}
}
{
"mcpServers": {
"mcp-obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY" : "<YOUR_OBSIDIAN_API_KEY>"
}
}
}
}
To prepare the package for distribution:
uv sync
Since MCP servers run over stdio, debugging can be challenging. For the best debugging experience, we strongly recommend using the MCP Inspector.
You can launch the MCP Inspector via npm
with this command:
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-obsidian run mcp-obsidian
Upon launching, the Inspector will display a URL that you can access in your browser to begin debugging.
You can also watch the server logs with this command:
tail -n 20 -f ~/Library/Logs/Claude/mcp-server-mcp-obsidian.log