An MCP (Model Context Protocol) server for Obsidian that provides HTTP-based tools to read and write files in your Obsidian vault.
- List notes (optionally filtered by a query)
- Read note content by file name
- Create notes by file name and content
- Streamable HTTP-based MCP protocol
GET /mcp- isn't supported yetPOST /mcp- Streamable HTTP JSON-RPC endpointDELETE /mcp- isn't supported yet
The server exposes the following MCP tools:
Get a list of notes, optionally filtered by a query string.
Parameters:
query(string, optional): The query to search for notes (default: "")
Read a note from the Obsidian vault.
Parameters:
fileName(string, required): The name of the note file (e.g., "My Note.md")
Create a new note with the given file name and content.
Parameters:
fileName(string, required): The name of the note file (e.g., "My Note.md")content(string, required): The content of the note in markdown format
Append content after a specific line in an existing note. Returns an error if the note does not exist or the line is out of range.
Parameters:
fileName(string, required): The name of the note file (e.g., "My Note.md")line(number, required): The 1-based line number to append aftercontent(string, required): The content to append in markdown formatconfirmed(boolean, required): Whether appending to the note is confirmed
Connect to this server using any MCP-compatible client. The server uses Streamable HTTP for the transport layer over HTTP.
Example connection URL: http://127.0.0.1:3333/mcp
HOST(optional): Host interface to bind (default:127.0.0.1).PORT(optional): Port to listen on (default:3333).NOTES_PATH(required): Path to the directory with Obsidian notes. Must be non-empty.
The Docker image is configured via environment variables. Provide NOTES_PATH at runtime.
MIT