Zettelkasten MCP Server

A Model Context Protocol (MCP) server that implements the Zettelkasten knowledge management methodology, allowing you to create, link, explore and

Local serverstdioPython

What is the Zettelkasten MCP server?

A Model Context Protocol (MCP) server that implements the Zettelkasten knowledge management methodology, allowing you to create, link, explore and synthesize atomic notes through Claude and other MCP-compatible clients. That is what the zettelkasten mcp server brings to an AI assistant: the same capability, reachable through the Model Context Protocol rather than a separate app or dashboard.

The short version

The Zettelkasten method is a knowledge management system developed by German sociologist Niklas Luhmann, who used it to produce over 70 books and hundreds of articles. It consists of three core principles:

  • Create atomic notes with unique timestamp-based IDs
  • Link notes bidirectionally to build a knowledge graph
  • Tag notes for categorical organization
  • Search notes by content, tags, or links
  • Use markdown format for human readability and editing
  • Integrate with Claude through MCP for AI-assisted knowledge management

The tools it exposes

The server publishes 14 tools. What each one is for:

  • zk_create_note — Create a new note with a title, content, and optional tags
  • zk_get_note — Retrieve a specific note by ID or title
  • zk_update_note — Update an existing note's content or metadata
  • zk_delete_note — Delete a note
  • zk_create_link — Create links between notes
  • zk_remove_link — Remove links between notes
  • zk_search_notes — Search for notes by content, tags, or links
  • zk_get_linked_notes — Find notes linked to a specific note
  • zk_get_all_tags — List all tags in the system
  • zk_find_similar_notes — Find notes similar to a given note
  • zk_find_central_notes — Find notes with the most connections
  • zk_find_orphaned_notes — Find notes with no connections

Getting it running

Setup follows the usual MCP pattern — install or clone the server, register it in your client's configuration file, restart the client. The configuration blocks on this page cover the common clients.

What it needs from you

Configuration is passed through the environment: ZETTELKASTEN_NOTES_DIR, ZETTELKASTEN_DATABASE_PATH, ZETTELKASTEN_LOG_LEVEL. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

How it compares

Plenty of planning and project tracking servers cover similar ground. The differences that matter in practice are scope of access and how much setup stands between you and a working tool call. Zettelkasten's toolset — zk_create_note, zk_get_note, zk_update_note and 11 more — is a fair guide to whether it matches your workflow. It is maintained by entanglr; worth a glance at recent repository activity before you build anything load-bearing on it.

SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Zettelkasten.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
zk_create_noteCreate a new note with a title, content, and optional tags
zk_get_noteRetrieve a specific note by ID or title
zk_update_noteUpdate an existing note's content or metadata
zk_delete_noteDelete a note
zk_create_linkCreate links between notes
zk_remove_linkRemove links between notes
zk_search_notesSearch for notes by content, tags, or links
zk_get_linked_notesFind notes linked to a specific note
zk_get_all_tagsList all tags in the system
zk_find_similar_notesFind notes similar to a given note
zk_find_central_notesFind notes with the most connections
zk_find_orphaned_notesFind notes with no connections
zk_list_notes_by_dateList notes by creation/update date
zk_rebuild_indexRebuild the database index from Markdown files

How to install the Zettelkasten MCP server

{
  "mcpServers": {
    "zettelkasten": {
      "command": "/absolute/path/to/zettelkasten-mcp/.venv/bin/python",
      "args": [
        "-m",
        "zettelkasten_mcp.main"
      ],
      "env": {
        "ZETTELKASTEN_NOTES_DIR": "/absolute/path/to/zettelkasten-mcp/data/notes",
        "ZETTELKASTEN_DATABASE_PATH": "/absolute/path/to/zettelkasten-mcp/data/db/zettelkasten.db",
        "ZETTELKASTEN_LOG_LEVEL": "INFO"
      }
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

VariableDescriptionRequired
ZETTELKASTEN_NOTES_DIRFilesystem location the server is allowed to use.Optional
ZETTELKASTEN_DATABASE_PATHFilesystem location the server is allowed to use.Optional
ZETTELKASTEN_LOG_LEVELConfiguration value read at startup.Optional

Example prompts to try

  • Use Zettelkasten to zk create note.
  • Use Zettelkasten to zk get note.
  • Use Zettelkasten to zk update note.

Frequently asked questions

Notes are stored as Markdown files with YAML frontmatter (the source of truth) and indexed in a SQLite database for efficient querying and graph traversal. The database can be rebuilt from the Markdown files at any time.