Obsidian MCP
by takuya0206
Verified
# Obsidian MCP (Model Context Protocol)
Obsidian MCP is a tool that allows you to interact with your Obsidian vault using the Model Context Protocol. This enables AI assistants to read, write, and manipulate notes in your Obsidian vault through a standardized interface.
## Prerequisites
- Node.js 18 or higher
- Obsidian with [Local REST API plugin](https://github.com/coddingtonbear/obsidian-local-rest-api) installed and configured
- API key generated from the Local REST API plugin
## Setting MCP Server (e.g. Claude Desktop App)
1. Clone this repository
2. Install dependencies:
```
npm install
```
3. Build the project:
```
npm run build
```
4. Configure Claude Desktop App to use this MCP server:
```
{
"mcpServers": {
"Obsidian": {
"command": "node",
"args": ["/Users/<Your Own Path>/obsisian-mcp/build/index.js"],
"env": {
"apiKey": "<Your API Token>",
"port": "27123",
"host": "127.0.0.1"
}
}
}
}
```
## Development
Create `.env` and configure "apiKey", "port", and "host" as mentioned above.
### Available Tools
The following tools are implemented:
1. **readNote** - Read the contents of a specific note
```
{
"path": "path/to/note.md"
}
```
2. **readActiveNote** - Read the contents of the current active note
```
{}
```
3. **listNotes** - Recursively lists files and folders in the entire Vault or under a specified folder
```
{
"path": "optional/folder/path"
}
```
4. **patchNote** - Inserts content into an existing note relative to a heading, block reference, or frontmatter field
```
{
"path": "path/to/note.md",
"operation": "append|prepend|replace",
"targetType": "heading|block|frontmatter",
"target": "target_identifier",
"content": "content to insert"
}
```
5. **searchWithJsonLogic** - Search Obsidian notes using JsonLogic format queries
```
{
"query": {
// JsonLogic query object
}
}
```