https://github.com/MarkusPfundstein/mcp-obsidian
MCP server that interacts with Obsidian via the Obsidian rest API community plugin
https://github.com/MarkusPfundstein/mcp-obsidian
Last synced: 5 months ago
JSON representation
MCP server that interacts with Obsidian via the Obsidian rest API community plugin
- Host: GitHub
- URL: https://github.com/MarkusPfundstein/mcp-obsidian
- Owner: MarkusPfundstein
- Created: 2024-11-29T11:07:12.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-11-29T13:31:09.000Z (about 1 year ago)
- Last Synced: 2024-11-29T13:32:36.658Z (about 1 year ago)
- Language: Python
- Size: 28.3 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-mcp-servers - mcp-obsidian - An MCP server for interacting with Obsidian via its REST API, enabling AI-powered knowledge management with the Model Context Protocol. ([Read more](/details/mcp-obsidian.md)) `mcp` `obsidian` `knowledge-base` `ai-integration` (Documentation & Learning Resources)
- awesome-mcp-servers - Obsidian - Obsidian vault integration with tools for file management, search, and content manipulation (📝 <a name="note-taking"></a>Note Taking)
- awesome-mcp-zh - MarkusPfundstein/mcp-obsidian
- awesome-mcp-servers - MarkusPfundstein/mcp-obsidian - Interacting with Obsidian via REST API (Legend / 🛠️ <a name="other-tools-and-integrations"></a>Other Tools and Integrations)
- awesome-mcp-servers - Obsidian - Interacting with Obsidian via REST API (Community Servers)
- awesome-mcp-servers - **mcp-obsidian** - MCP server that interacts with Obsidian via the Obsidian rest API community plugin `file` `http` `git` `github` `python` `pip install git+https://github.com/MarkusPfundstein/mcp-obsidian` (📦 Other)
- Awesome-MCP-Servers-directory - Obsidian - Interacting with Obsidian via REST API (Note Taking)
- awesome-mcp-servers - MarkusPfundstein/mcp-obsidian - REST APIを介してObsidianと対話 (サーバー実装 / 🛠️ <a name="other-tools-and-integrations"></a>その他のツールと統合)
- awesome-dotnet-mcp - Obsidian - Interact with Obsidian. (Servers / Python)
- awesome-mcp - Obsidian - Interact with Obsidian. (Servers / Python)
- awesome-ai-tools - mcp-obsidian - Interact with your Obsidian notes from Claude via MCP. (AI Productivity / MCP Servers)
- awesome-mcp - MarkusPfundstein/mcp-obsidian - Interacting with Obsidian via REST API (MCP Servers / 🛠️ Other Tools and Integrations)
- awesome-mcp-servers - Obsidian MCP - MCP server that interacts with Obsidian via the Obsidian rest API community plugin (Table of Contents / Other Tools and Integrations)
- best-of-mcp-servers - GitHub - 80% open · ⏱️ 28.06.2025) (Other Tools and Integrations)
README
# MCP server for Obsidian
MCP server to interact with Obsidian via the Local REST API community plugin.
## Components
### Tools
The server implements multiple tools to interact with Obsidian:
- list_files_in_vault: Lists all files and directories in the root directory of your Obsidian vault
- list_files_in_dir: Lists all files and directories in a specific Obsidian directory
- get_file_contents: Return the content of a single file in your vault.
- search: Search for documents matching a specified text query across all files in the vault
- patch_content: Insert content into an existing note relative to a heading, block reference, or frontmatter field.
- append_content: Append content to a new or existing file in the vault.
- delete_file: Delete a file or directory from your vault.
### Example prompts
Its good to first instruct Claude to use Obsidian. Then it will always call the tool.
The use prompts like this:
- Get the contents of the last architecture call note and summarize them
- Search for all files where Azure CosmosDb is mentioned and quickly explain to me the context in which it is mentioned
- Summarize the last meeting notes and put them into a new note 'summary meeting.md'. Add an introduction so that I can send it via email.
## Configuration
### Obsidian REST API Key
There are two ways to configure the environment with the Obsidian REST API Key.
1. Add to server config (preferred)
```json
{
"mcp-obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "",
"OBSIDIAN_HOST": "",
"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.
2. Create a `.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_port
```
Note:
- You can find the API key in the Obsidian plugin config
- Default port is 27124 if not specified
- Default host is 127.0.0.1 if not specified
## Quickstart
### Install
#### Obsidian REST API
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.
#### Claude Desktop
On MacOS: `~/Library/Application\ Support/Claude/claude_desktop_config.json`
On Windows: `%APPDATA%/Claude/claude_desktop_config.json`
Development/Unpublished Servers Configuration
```json
{
"mcpServers": {
"mcp-obsidian": {
"command": "uv",
"args": [
"--directory",
"/mcp-obsidian",
"run",
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "",
"OBSIDIAN_HOST": "",
"OBSIDIAN_PORT": ""
}
}
}
}
```
Published Servers Configuration
```json
{
"mcpServers": {
"mcp-obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "",
"OBSIDIAN_HOST": "",
"OBSIDIAN_PORT": ""
}
}
}
}
```
## Development
### Building
To prepare the package for distribution:
1. Sync dependencies and update lockfile:
```bash
uv sync
```
### Debugging
Since MCP servers run over stdio, debugging can be challenging. For the best debugging
experience, we strongly recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector).
You can launch the MCP Inspector via [`npm`](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) with this command:
```bash
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:
```bash
tail -n 20 -f ~/Library/Logs/Claude/mcp-server-mcp-obsidian.log
```