library-of-babel-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOB_API_KEY | No | Leave empty for provisional guest access, until you have located the volume containing your API key. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_pageA | Retrieve the exact text on a page at a given address in the Library of Babel. Every address always returns the same content (the library never changes). Coordinates: hexagon (base-36 string id), wall (1-4), shelf (1-5), volume (1-32), page (1-410). Almost every address is gibberish — meaningful pages are found via search_text, not by browsing. |
| search_textA | Find the address of a page containing the given text (up to 3200 characters). The Library of Babel already contains every possible page, so 'search' doesn't scan anything: it constructs the exact page you asked for and inverts the address mapping to learn where that page sits. The returned address is a genuine location — get_page on it returns your text. Padding and offset are part of the page, so changing either yields a different address. Text is lowercased and restricted to the library's 29-symbol alphabet (a-z, comma, space, period); unsupported characters are dropped or converted to spaces. |
| lookup_pageA | Given a complete 3200-character page, return the address it lives at. This is the exact inverse of get_page: the text must be exactly 3200 characters drawn from the library's alphabet (a-z, comma, space, period). For partial text, use search_text instead. |
| random_pageA | Jump to a uniformly random address in the Library of Babel and return its content. Almost always gibberish — that's the point. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: get_page retrieves content by address, random_page fetches a random page, search_text finds an address for arbitrary text, and lookup_page is the exact inverse of get_page. There is no overlap or ambiguity between them.
All tool names follow the same snake_case pattern with two words, and the naming clearly reflects their function (get_page, random_page, search_text, lookup_page). The format is consistent and predictable.
With 4 tools, the server is well-scoped for the Library of Babel concept. Each tool earns its place, covering the essential operations without unnecessary bloat or missing functionality.
The tool set provides complete coverage for the domain: retrieving pages, exploring randomly, searching for text, and mapping pages back to addresses. There are no obvious gaps or dead ends for the intended use case.