QMD

Local search over Markdown notes, docs and meeting transcripts: keywords, semantic search and reranking, with an MCP server

CLIEditors’ pickMedium risk

tobi/qmd

Install

npm install -g @tobilu/qmd
qmd collection add ~/notes --name notes
qmd embed

Requires Node.js 22 or newer.

This is third-party code. Review the repository files before installing.

What it does

QMD indexes folders of Markdown files as collections and searches them three ways: BM25 full text, vector embeddings, and a hybrid mode with model reranking. All GGUF models run on your machine. You can attach context descriptions to collections, which come back with matching documents and help the agent pick the right file. Results come as JSON or file lists, and the MCP server gives the agent search and document retrieval tools.

Who it is for. For people who keep notes, a knowledge base or docs in Markdown and want an agent to search them without the cloud.

Good fit when

  • The agent needs to search a large set of notes or docs
  • Data must not go to external search services
  • You need semantic search, not only word matching

Not a fit when

  • There are few files and plain grep is enough
  • Documents are not text files, for example PDFs or scans

Example request

Find everything in my notes about quarterly planning

Limitations

Requires Node.js 22 or newer, plus Homebrew SQLite on macOS. Three GGUF models are downloaded from Hugging Face on first use, and embedding and reranking load the CPU or GPU. For non-English text the README suggests switching the embedding model.

How to disable. Remove the qmd entry from the MCP config or the qmd plugin in Claude Code, then run npm uninstall -g @tobilu/qmd. The index and models live in ~/.cache/qmd.

Security check

  • Reads and indexes selected folders on disk
  • Downloads models from the network on first use

README in short

The README explains the search pipeline: the query is expanded, sent to full-text and vector search, then fused and reranked by a model. It covers commands for collections, context and embeddings, the MCP server over stdio and HTTP, a Claude Code plugin and library use from Node.js and Bun. It also details how the HTTP server blocks requests from foreign web pages, and lists system requirements. MIT licensed.

FAQ

Is MCP required?

No. The agent can call qmd in the terminal, and the --json and --files flags exist for that. MCP gives tighter integration.

Can one server serve several clients?

Yes, qmd mcp --http starts a long-lived server on localhost:8181 so models are not reloaded for each client.

Editors’ pick

A CLI for every Google Workspace API with JSON output and agent skills: Drive, Gmail, Calendar, Sheets and more

CLIHigh risk31K
Editors’ pick

A task manager for AI-driven development: breaks a PRD into dependent tasks and guides the agent through them via MCP or CLI

MCP serverMedium risk28.1K
Editors’ pick

Anthropic's official plugins for knowledge work roles: sales, support, product, marketing, legal, finance, data and enterprise search

PluginHigh risk24K
Editors’ pick

An MCP server for Jira and Confluence, cloud and self-hosted: search, create and edit issues and pages

MCP serverHigh risk5.9K