# Obsidian Vault MCP

Connects Zotero, MinerU, and Obsidian to automate research workflows. Parses scientific PDFs into Markdown and saves structured analysis notes inside your vault.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 94
- Author: luffysolution-svg
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/luffysolution-svg/obsidian-vault-mcp
- Updated: 2026-08-11
- HTML: https://affpapa.org/en/nevibecode/mcp/obsidian-vault-mcp

## What it does

This server connects Zotero reference data and the MinerU parser directly to an Obsidian vault. It provides 31 MCP tools and 7 research workflows. Agents locate entries by their Zotero keys. They convert PDF files into Markdown with extracted figures and update vault notes automatically.

Notes use five analysis templates, including deep reads and figure explanations. Vault modifications use transactional safeguards with dry-run previews and rollbacks. That prevents data corruption during batch edits.

The target folder must be opened in Obsidian beforehand to generate `.obsidian/`. Setup fails without it. You also need Python 3.10 or newer and an active Zotero Desktop instance with its local API enabled.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `OBSIDIAN_VAULT_PATH` — keys and tokens: ask the human for the values, never commit them or put them in shared files.
- Works with: Obsidian

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add obsidian-vault-mcp -e OBSIDIAN_VAULT_PATH=<OBSIDIAN_VAULT_PATH> -- uvx zotero-obsidian-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zotero-obsidian-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add obsidian-vault-mcp --env OBSIDIAN_VAULT_PATH=<OBSIDIAN_VAULT_PATH> -- uvx zotero-obsidian-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zotero-obsidian-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "obsidian-vault-mcp": {
            "command": "uvx",
            "args": [
                "zotero-obsidian-mcp"
            ],
            "env": {
                "OBSIDIAN_VAULT_PATH": "<OBSIDIAN_VAULT_PATH>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zotero-obsidian-mcp <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "obsidian-vault-mcp": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "zotero-obsidian-mcp"
            ],
            "env": {
                "OBSIDIAN_VAULT_PATH": "<OBSIDIAN_VAULT_PATH>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zotero-obsidian-mcp <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e OBSIDIAN_VAULT_PATH=<OBSIDIAN_VAULT_PATH> obsidian-vault-mcp uvx zotero-obsidian-mcp
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from zotero-obsidian-mcp <command>

## When to use it
- Import paper metadata and notes from a local Zotero library
- Extract Markdown and diagrams from academic PDFs using MinerU
- Maintain structured analysis notes and synthesis wikis inside Obsidian
- Compare evidence and methodology across multiple papers

## Example prompts
- Search my Zotero library for photocatalysis papers and import them into the vault
- Run a full read analysis on item ABCD1234 and save the note
- Extract and explain figure 1 from paper ABCD1234

## Similar
- [Zotero MCP](https://affpapa.org/en/nevibecode/mcp/zotero-mcp.md) — MCP server · ★ 5548
- [arxiv-mcp-server](https://affpapa.org/en/nevibecode/mcp/arxiv-mcp-server.md) — MCP server · ★ 3231
- [PaperBanana](https://affpapa.org/en/nevibecode/mcp/paperbanana.md) — MCP server · ★ 2417
- [MATLAB MCP Server](https://affpapa.org/en/nevibecode/mcp/matlab-mcp-server.md) — MCP server · ★ 1716
- [Hex Research](https://affpapa.org/en/nevibecode/mcp/hex-research.md) — MCP server · ★ 583
- [DocsAgent — Zotero, Obsidian & Apple Notes MCP Server](https://affpapa.org/en/nevibecode/mcp/docsagent-zotero-obsidian-apple-notes-mcp-server.md) — MCP server · ★ 578

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
