Skip to main content
Glama
SMABoundless

worldcat-mcp-server

by SMABoundless
README.md
# WorldCat MCP Server

An MCP (Model Context Protocol) server for searching [WorldCat](https://www.worldcat.org/), the world's largest library catalog — 500M+ records from 100,000+ libraries worldwide.

Built with [FastMCP](https://github.com/modelcontextprotocol/python-sdk) and the WorldCat Discovery API v2.

## Tools

| Tool | Description |
|------|-------------|
| `worldcat_search` | Search by keyword, title, author, subject, ISBN, ISSN, OCLC number, or advanced CQL |
| `worldcat_get_record` | Get full bibliographic record with LCSH, LC/Dewey classification, physical description |
| `worldcat_get_editions` | Find other editions and formats of a work (hardcover, ebook, translations) |
| `worldcat_get_citations` | Get formatted citations in APA, Chicago, Harvard, MLA, and Turabian |
| `worldcat_search_by_subject` | Search specifically by Library of Congress Subject Headings |
| `worldcat_export_ris` | Export results as RIS (for Zotero, EndNote, etc.) |
| `worldcat_export_bibtex` | Export results as BibTeX |

## Rich metadata

Records include:
- Library of Congress Subject Headings (LCSH)
- LC Classification and Dewey Decimal numbers
- Physical descriptions, edition statements
- Publisher, place, and date
- ISBN, ISSN, LCCN, OCLC numbers
- Summaries/abstracts and table of contents
- Online access URLs
- Edition counts across libraries

## Setup

### 1. Get WorldCat API credentials

You need a WSKey with `wcapi` scope from the [OCLC Developer Network](https://platform.worldcat.org/wskey/). Institutional access through a library is typically required.

### 2. Install

```bash
cd worldcat-mcp-server
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```

### 3. Add to Claude Desktop

Add this to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "worldcat": {
      "command": "/path/to/worldcat-mcp-server/venv/bin/python",
      "args": ["/path/to/worldcat-mcp-server/server.py"],
      "env": {
        "WORLDCAT_API_KEY": "your-wskey",
        "WORLDCAT_API_SECRET": "your-wskey-secret"
      }
    }
  }
}
```

Or if using Claude Code CLI:

```bash
claude mcp add worldcat \
  /path/to/worldcat-mcp-server/venv/bin/python \
  /path/to/worldcat-mcp-server/server.py \
  -e WORLDCAT_API_KEY=your-wskey \
  -e WORLDCAT_API_SECRET=your-wskey-secret
```

## Usage examples

- "Search WorldCat for books on the history of jazz"
- "Find the full record for OCLC number 1234567890"
- "What other editions exist for this book?"
- "Get an APA citation for this WorldCat record"
- "Search by LCSH subject heading 'African Americans -- History'"
- "Export these results as RIS for Zotero"

## License

MIT