# obsidian-mcp-server (scoped package @debjit_kundu/obsidian-mcp-server)

A lightweight MCP-style JSON-over-stdio server that exposes an Obsidian vault to LLM tooling / agents. It provides:

- Resource listing (`listResources`) – each markdown note as a resource
- Reading (`readResource`)
- Tools: `create_note`, `search_notes`, `export_all_notes`
- File watch events: created / changed / deleted

## Install (local dev)
```bash
npm install
npm run build
```

## Global install (after publishing)
```bash
npm install -g @debjit_kundu/obsidian-mcp-server
obsidian-mcp --vault /path/to/vault <<'EOF'
{"id":"1","method":"initialize","params":{"client":{"name":"cli"}}}
{"id":"2","method":"listResources"}
EOF
```

## CLI Options
```
--vault <path>          Path to Obsidian vault (directory)
--set-default           Persist vault path in ~/.config/obsidian-mcp/config.json
--no-interactive        Fail instead of prompting for vault
--exit-on-eof           (default true) Exit after stdin closes
```

## Example: Create and read a note
```bash
obsidian-mcp --vault /path/to/vault <<'EOF'
{"id":"1","method":"initialize","params":{"client":{"name":"cli"}}}
{"id":"2","method":"callTool","params":{"name":"create_note","arguments":{"title":"hello","content":"Hello world"}}}
{"id":"3","method":"readResource","params":{"uri":"obsidian-vault:///hello.md"}}
EOF
```

## Export all notes
```bash
obsidian-mcp --vault /path/to/vault <<'EOF'
{"id":"1","method":"initialize","params":{"client":{"name":"cli"}}}
{"id":"2","method":"callTool","params":{"name":"export_all_notes","arguments":{}}}
EOF
```

## Roadmap
- Pagination + filtering
- update_note / delete_note tools
- Embedding / semantic search
- Streaming chunked export

## License
MIT
