Skip to main content
Glama
lethain

Library MCP

by lethain
README.md

[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

B3.4/5.0

Scored across 7 tools

Disambiguation4/5

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.

Naming Consistency5/5

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.

Tool Count5/5

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.

Completeness3/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues