
MCP server that interacts with Obsidian via the Obsidian rest API community plugin
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:
mcp Python SDK >=1.1.0,<2.0.0 (pinned in pyproject.toml). mcp-obsidian currently registers its tool handlers via the mcp 1.x low-level Server API (@app.list_tools() / @app.call_tool()), which was removed in mcp 2.0. Installing with an unconstrained mcp>=2.0 will crash at import with AttributeError: 'Server' object has no attribute 'list_tools'.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>",
"OBSIDIAN_HOST": "<your_obsidian_host>",
"OBSIDIAN_PORT": "<your_obsidian_port>"
}
}
}Sometimes Claude has issues detecting the location of uv / uvx. You can use which uvx to find and paste the full path in above config in such cases.
.env file in the working directory with the following required variables:OBSIDIAN_API_KEY=your_api_key_here
OBSIDIAN_HOST=your_obsidian_host
OBSIDIAN_PORT=your_obsidian_portNote:
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"
],
"env": {
"OBSIDIAN_API_KEY": "<your_api_key_here>",
"OBSIDIAN_HOST": "<your_obsidian_host>",
"OBSIDIAN_PORT": "<your_obsidian_port>"
}
}
}
}{
"mcpServers": {
"mcp-obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<YOUR_OBSIDIAN_API_KEY>",
"OBSIDIAN_HOST": "<your_obsidian_host>",
"OBSIDIAN_PORT": "<your_obsidian_port>"
}
}
}
}You can run the server in a container instead of installing uv/Python locally.
.env.example to .env and fill in your Obsidian REST API key:cp .env.example .envBy default OBSIDIAN_HOST is set to host.docker.internal, which resolves to
your host machine from inside the container (works on Linux, Mac and Windows).
docker compose builddocker compose run --rm -T, not docker compose up:{
"mcpServers": {
"mcp-obsidian": {
"command": "docker",
"args": [
"compose",
"-f",
"<dir_to>/mcp-obsidian/docker-compose.yml",
"run",
"--rm",
"-T",
"mcp-obsidian"
]
}
}
}You can also run it manually to sanity-check the container starts:
docker compose run --rm -T mcp-obsidian(it will sit waiting for a JSON-RPC message on stdin; Ctrl+C to exit)
To prepare the package for distribution:
uv syncSince 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-obsidianUpon 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.logPick your client and paste the snippet. Each one is the same server, written the way that client expects it.
claude mcp add mcp-obsidian -- uv --directory <dir_to>/mcp-obsidian run mcp-obsidian{
"mcpServers": {
"mcp-obsidian": {
"env": {
"OBSIDIAN_HOST": "",
"OBSIDIAN_PORT": "",
"OBSIDIAN_API_KEY": ""
},
"args": [
"--directory",
"<dir_to>/mcp-obsidian",
"run",
"mcp-obsidian"
],
"command": "uv"
}
}
}code --add-mcp '{"name":"mcp-obsidian","env":{"OBSIDIAN_HOST":"","OBSIDIAN_PORT":"","OBSIDIAN_API_KEY":""},"args":["--directory","<dir_to>/mcp-obsidian","run","mcp-obsidian"],"command":"uv"}'[mcp_servers.mcp-obsidian]
command = "uv"
args = ["--directory", "<dir_to>/mcp-obsidian", "run", "mcp-obsidian"]Runs locally on your device. Your client starts the server itself, so nothing has to be hosted.
Paste this prompt into your agent. It reads this page and does the setup for you.
Read https://aiagentslisting.com/mcp/obsidian-mcp to learn what the "Obsidian MCP" MCP server does and how to install it. Add it to my coding agent's MCP configuration as documented on that page, then confirm the server connects and list the tools it exposes.Agents can also browse this directory over MCP at https://aiagentslisting.com/api/mcp
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-obsidian run mcp-obsidianThis server runs locally, so we can't read its tool list over the web yet.
Airtable Model Context Protocol Server, for allowing AI systems to interact with your Airtable
A visualization mcp & skills contains 25+ visual charts using @antvis. Using for chart generation
No tagged releases on record.
Connect to the AI Agents Listing MCP server at https://aiagentslisting.com/api/mcp using the HTTP transport and complete the sign-in when it asks. Then call the submit_review tool for the listing "obsidian-mcp" with a rating from 1 to 5 and a short note on what worked and what did not.No reviews yet
Be the first to share your experience with this tool.
Airtable Model Context Protocol Server, for allowing AI systems to interact with your Airtable
Databases
A visualization mcp & skills contains 25+ visual charts using @antvis. Using for chart generation
AI & ML Services
MCP server for Atlassian tools (Confluence, Jira)
Developer Tools
One email a week. New agents, MCP servers and skills, and what is actually getting traction.