Openlibrary MCP Server

Search books and authors, fetch editions, browse subjects, and resolve cover images.

Remote serverstreamable-http

What is the Openlibrary MCP server?

Openlibrary MCP server exists for a simple reason — assistants are far more useful when they can act on Openlibrary directly instead of describing what you should do. Search books and authors, fetch editions, browse subjects, and resolve cover images.

What you get

  • Declarative tool definitions — single file per tool, framework handles registration and validation
  • Unified error handling across all tools
  • Pluggable auth (none, jwt, oauth)
  • Swappable storage backends: in-memory, filesystem, Supabase, Cloudflare KV/R2/D1
  • Structured logging with optional OpenTelemetry tracing
  • Runs locally (stdio/HTTP) or on Cloudflare Workers from the same codebase

Setting it up

Being a remote server, there is no local install. You register the endpoint with your client, authorise it once, and the tools appear.

What the assistant can call

Once Openlibrary is connected, these are the calls the assistant has available:

  • openlibrary_search_books — Full-text book search with field filters (title, author, subject, publisher, ISBN, language), sort options, pagination, and optional live reading
  • openlibrary_get_work — Fetch a work by Open Library Work ID (OL…W) — title, description, subjects, cover IDs, and author IDs
  • openlibrary_get_editions — List editions of a work — publishers, languages, formats, ISBNs, and print run details
  • openlibrary_get_edition — Resolve up to 50 editions in one call by ISBN-10, ISBN-13, OCLC, LCCN, or Open Library Edition ID (OL…M), reporting per-identifier misses
  • openlibrary_search_authors — Search authors by name — returns Author IDs, birth/death dates, top works, and subject associations
  • openlibrary_get_author — Fetch author detail by Open Library Author ID (OL…A) — bio, dates, photo IDs, and linked identifiers from Wikidata, VIAF, ISNI, Goodreads, and
  • openlibrary_get_author_works — List works by an author — titles, cover IDs, and Work OLIDs for drilling into editions or details
  • openlibrary_get_subject — Browse works by subject tag — returns matching works with edition counts and cover IDs plus the total work count
  • openlibrary_search_inside — Full-text search inside the scanned text of Internet Archive books — returns matching items with snippets
  • openlibrary_get_cover_url — Resolve a cover image URL for a book or author photo in S/M/L size — returns a direct HTTPS URL embeddable in markdown
  • Prerequisites — The Prerequisites tool exposed by this server
  • Installation — The Installation tool exposed by this server

Configuration and credentials

You will need 4 environment variables: MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, MCP_HTTP_ENDPOINT_PATH, MCP_PUBLIC_URL. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

  • Bun v1.3.0 or higher (or Node.js ≥ 24.0.0). - No API key required — Open Library is a free, public API.

Before you rely on it

  • Your data travels to the provider's service, so the usual questions apply about what you send and what they retain.
  • With 12 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Openlibrary.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the openlibrary mcp server does with a few real requests.

Choosing this one

This sits in the cloud and infrastructure group, where several servers overlap in what they claim to do but differ sharply once you actually set them up. Openlibrary's toolset — openlibrary_search_books, openlibrary_get_work, openlibrary_get_editions and 9 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Openlibrary's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

Available tools

ToolWhat it does
openlibrary_search_booksFull-text book search with field filters (title, author, subject, publisher, ISBN, language), sort options, pagination, and optional live reading availability
openlibrary_get_workFetch a work by Open Library Work ID (OL…W) — title, description, subjects, cover IDs, and author IDs
openlibrary_get_editionsList editions of a work — publishers, languages, formats, ISBNs, and print run details
openlibrary_get_editionResolve up to 50 editions in one call by ISBN-10, ISBN-13, OCLC, LCCN, or Open Library Edition ID (OL…M), reporting per-identifier misses
openlibrary_search_authorsSearch authors by name — returns Author IDs, birth/death dates, top works, and subject associations
openlibrary_get_authorFetch author detail by Open Library Author ID (OL…A) — bio, dates, photo IDs, and linked identifiers from Wikidata, VIAF, ISNI, Goodreads, and LibraryThing
openlibrary_get_author_worksList works by an author — titles, cover IDs, and Work OLIDs for drilling into editions or details
openlibrary_get_subjectBrowse works by subject tag — returns matching works with edition counts and cover IDs plus the total work count
openlibrary_search_insideFull-text search inside the scanned text of Internet Archive books — returns matching items with snippets
openlibrary_get_cover_urlResolve a cover image URL for a book or author photo in S/M/L size — returns a direct HTTPS URL embeddable in markdown
PrerequisitesThe Prerequisites tool exposed by this server.
InstallationThe Installation tool exposed by this server.

How to install the Openlibrary MCP server

{
  "mcpServers": {
    "openlibrary-mcp-server": {
      "type": "stdio",
      "command": "bunx",
      "args": ["@cyanheads/openlibrary-mcp-server@latest"],
      "env": {
        "MCP_TRANSPORT_TYPE": "stdio",
        "MCP_LOG_LEVEL": "info"
      }
    }
  }
}

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

Configuration

  • Bun v1.3.0 or higher (or Node.js ≥ 24.0.0). - No API key required — Open Library is a free, public API.
VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
MCP_LOG_LEVELConfiguration value read at startup.Optional
MCP_HTTP_ENDPOINT_PATHFilesystem location the server is allowed to use.Optional
MCP_PUBLIC_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use Openlibrary to openlibrary search books.
  • Use Openlibrary to openlibrary get work.
  • Use Openlibrary to openlibrary get editions.

Frequently asked questions

It connects Openlibrary to MCP-compatible AI assistants such as Claude and Cursor, exposing 12 tools (openlibrary_search_books, openlibrary_get_work, openlibrary_get_editions, and more) that the assistant can call on your behalf. Instead of copying data back and forth by hand, the assistant works with Openlibrary directly.