README.md•2.96 kB
# MCP Obsidian
A server implementation of the [Model Context Protocol (MCP)](https://github.com/modelcontextprotocol/protocol) for integrating with [Obsidian](https://obsidian.md/). This allows AI assistants to read, create, and manipulate notes in your Obsidian vault.
## Features
- Read the active file in Obsidian
- Delete the active file
- Insert content at specific positions (headings, block references, frontmatter)
- Append content to files
- Open specific files
- List files in your vault
- Search through your notes
## Prerequisites
- [Bun](https://bun.sh/) runtime
- [Obsidian](https://obsidian.md/) desktop application
- An MCP-compatible AI assistant
## Add to cursor
Place your secret in .env file
Choose command MCP and then enter this command
```
bun __REPO_PATH__/src/index.ts
```
## Installation
1. Clone this repository:
```bash
git clone https://github.com/gregkonush/mcp-obsidian.git
cd mcp-obsidian
```
2. Install dependencies:
```bash
bun install
```
3. Copy the example environment file and configure it:
```bash
cp .env.example .env
```
## Configuration
Edit the `.env` file with your specific configurations:
```
OBSIDIAN_BASE_URL=http://localhost:27123
OBSIDIAN_TOKEN=your_token_here
DEBUG=false
```
## Usage
Start the MCP server:
```bash
bun run src/index.ts
```
The server will start and communicate with MCP-compatible AI assistants via standard I/O.
## Available Tools
This implementation provides the following tools to AI assistants:
- `get_active_file` - Returns the content of the currently active file
- `delete_active_file` - Deletes the currently active file
- `insert_active_file` - Modifies content relative to a heading, block reference, or frontmatter field
- `append_active_file` - Appends content to the end of the active file
- `open_file` - Opens a specific file in Obsidian
- `search_simple` - Searches for documents matching a text query
- `list_files` - Lists files in the root directory of your vault
- `list_directory_files` - Lists files in a specific directory of your vault
## Development
### Project Structure
```
mcp-obsidian/
├── src/
│ ├── index.ts # Main server implementation
│ └── tools/ # Individual tool implementations
│ ├── get-active-file.ts
│ ├── delete-active-file.ts
│ └── ...
├── .env # Environment configuration
├── package.json # Project dependencies
└── tsconfig.json # TypeScript configuration
```
### Adding New Tools
To add a new tool:
1. Create a new file in the `src/tools/` directory
2. Implement the tool using the MCP SDK
3. Import and register the tool in `src/index.ts`
## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.