Library MCP
[library-mcp](https://github.com/lethain/library-mcp) is an MCP server for interacting with
Markdown knowledge bases. Basically, folders that may or may not have subfolders, that include
files with `.md` extension and start with metadata like:
----
title: My blog post
tags:
- python
- programming
url: /my-blog-post
---
# My blog post
Yesterday I was dreaming about...
The typical workflow in the current verison is to
retrieve recent content for a given tag, and then
discuss using that tag:
Get the next 50 posts with tag "executive",
then tell me what I should do about this problem
I am running into: ...
You can also do the same but by date ranges:
Summarize the blog posts I wrote in the past year.
You might reasonably ask "why not just upload your entire blog
into the context window?" and there are two places where this library
outperforms that approach:
1. My blog corpus is much larger than most model's context windows today.
Further, even if the context windows became exhaustively large, I wrote a lot
of mediocre stuff in the past, so maybe omitting it's a feature.
2. I have a number of distinct Markdown knowledge bases, and this lets me
operate across them in tandem.
Finally, this is a hobby project, intended for running locally on your
laptop. No humans have been harmed using this software, but it does
work pretty well!
# Tools
This MCP server exposes these tools.
### Content Search Tools
Tools for retrieving content into your context window:
* `get_by_tag` - Retrieves content by tag
* `get_by_text` - Searches content for specific text
* `get_by_slug_or_url` - Finds posts by slug or URL
* `get_by_date_range` - Gets posts published within a date range
### Tag Management Tools
Tools for navigating your knowledge base:
* `search_tags` - Searches for tags matching a query
* `list_all_tags` - Lists all tags sorted by post count and recency
### Maintenance Tools
Tools for dealing with running the tool:
* `rebuild` - Rebuilds the content index,
useful if you have added more content,
edited existing content, etc
# Setup / Installation
These instructions describe installation for [Claude Desktop](https://claude.ai/download) on OS X.
It should work similarly on other platforms.
1. Install [Claude Desktop](https://claude.ai/download).
2. Clone [library-mcp](https://github.com/lethain/library-mcp) into
a convenient location, I'm assuming `/Users/will/library-mcp`
3. Make sure you have `uv` installed, you can [follow these instructions](https://modelcontextprotocol.io/quickstart/server)
4. Go to Cladue Desktop, Setting, Developer, and have it create your MCP config file.
Then you want to update your `claude_desktop_config.json`.
(Note that you should replace `will` with your user, e.g. the output of `whoami`.
cd /Users/will/Library/Application Support/Claude
vi claude_desktop_config.json
Then add this section:
{
"mcpServers": {
"library": {
"command": "uv",
"args": [
"--directory",
"/Users/will/library-mcp",
"run",
"main.py",
"/Users/will/irrational_hugo/content"
]
}
}
}
5. Close Claude and reopen it.
6. It should work...
TDQS
Scored across 7 tools
Most tools have distinct purposes focused on different retrieval methods (by date, slug/URL, tag, text content) and tag operations, but 'get_by_slug_or_url' and 'get_by_text' could potentially overlap if users confuse slug/URL with text content queries. The descriptions help clarify, but there's minor ambiguity.
All tool names follow a consistent verb_noun pattern with underscores (e.g., get_by_date_range, list_all_tags, search_tags). The naming is predictable and readable throughout the set, with no deviations in style.
With 7 tools, this is well-scoped for a library/blog content server. It covers core retrieval operations and tag management without being overwhelming, and each tool serves a clear purpose in the domain.
The toolset provides good read/search coverage for blog content and tags, but lacks any create, update, or delete operations, which are notable gaps for a full CRUD lifecycle. Agents can retrieve and rebuild but not modify content, limiting workflow completeness.