
MCP server for Obsidian
MarkusPfundstein/mcp-obsidian · MCP server
Даёт агенту доступ к хранилищу Obsidian: просматривать папки и заметки, искать по тексту, дописывать и вставлять фрагменты под нужный заголовок или поле frontmatter, удалять файлы.
Обзор
| Автор | |
|---|---|
| Репозиторий | MarkusPfundstein/mcp-obsidian ↗ |
| Раздел | Работа и заметки |
| Как подключается | Python — uvx |
| Звёзды | 4 485 |
| Лицензия | MIT |
| Обновлён | 31 августа 2026 г. |
| Что понадобится | Obsidian с плагином Local REST API и его API-ключ, uv |
| Переменные и ключи |
|
Подключение
Выберите своё приложение и скопируйте готовую настройку. Значения в угловых скобках замените своими ключами.
claude mcp add obsidian -e OBSIDIAN_API_KEY=<OBSIDIAN_API_KEY> -e OBSIDIAN_HOST=<OBSIDIAN_HOST> -e OBSIDIAN_PORT=<OBSIDIAN_PORT> -- uvx mcp-obsidian
Файл: 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>"
}
}
}
}Файл: .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>"
}
}
}
}Файл: ~/.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>" }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.
Requirements
- Python >= 3.11
mcpPython SDK>=1.1.0,<2.0.0(pinned inpyproject.toml).mcp-obsidiancurrently registers its tool handlers via themcp1.x low-levelServerAPI (@app.list_tools()/@app.call_tool()), which was removed inmcp2.0. Installing with an unconstrainedmcp>=2.0will crash at import withAttributeError: 'Server' object has no attribute 'list_tools'.
Configuration
Obsidian REST API Key
There are two ways to configure the environment with the Obsidian REST API Key.
- Add to server config (preferred)
{
"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.
- Create a
.envfile 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
{
"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>"
}
}
}
}
Published Servers Configuration
{
"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>"
}
}
}
}
Docker
You can run the server in a container instead of installing uv/Python locally.
- Copy
.env.exampleto.envand fill in your Obsidian REST API key:
cp .env.example .env
By 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).
- Build the image:
docker compose build
- Point your MCP client at the container. Since MCP speaks JSON-RPC over
stdio, the client must run it with stdin attached and no pseudo-TTY — use
docker 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)
Development
Building
To prepare the package for distribution:
- Sync dependencies and update lockfile:
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 ↗.
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Вопросы и ответы
Что делает MCP-сервер MCP server for Obsidian?
Даёт агенту доступ к хранилищу Obsidian: просматривать папки и заметки, искать по тексту, дописывать и вставлять фрагменты под нужный заголовок или поле frontmatter, удалять файлы.
Как подключить MCP server for Obsidian к Claude, Cursor или VS Code?
MCP server for Obsidian запускается на вашем компьютере командой uvx. Скопируйте готовую настройку для своего приложения из блока «Подключение» — Claude Code, Claude Desktop, Cursor, VS Code или Codex.
Что нужно для работы MCP server for Obsidian?
Obsidian с плагином Local REST API и его API-ключ, uv.
MCP server for Obsidian бесплатный?
Код сервера открыт на GitHub под лицензией MIT. Сам сервис, к которому он подключается, может быть платным — смотрите тарифы автора.
Что такое MCP-сервер?
MCP (Model Context Protocol) — открытый стандарт, по которому ИИ-агенты подключаются к внешним программам и данным. MCP-сервер даёт модели новые инструменты: открыть страницу, прочитать файл, сделать запрос к базе или сервису.
Безопасно ли подключать MCP-серверы?
MCP-сервер выполняет действия от вашего имени, поэтому ставьте серверы из проверенных источников, давайте ключам минимальные права и проверяйте, что агент делает с файлами и сервисами. Не публикуйте ключи в открытых файлах настроек.