sru-mcp
An MCP server that searches library catalogs worldwide using the SRU protocol, enabling bibliographic search without API keys.
README
sru-mcp
An MCP server that searches library catalogs worldwide using the SRU (Search/Retrieve via URL) protocol. No API keys required — SRU is an open standard supported by national libraries, university catalogs, and consortia.
Features
- 5 tools for LLM-driven bibliographic search
- 7 pre-configured servers including Library of Congress, BnF, DNB, and more
- Parses MARCXML and Dublin Core record formats
- Supports any SRU-compliant server — pass a URL or use a built-in server ID
- Raw CQL queries or high-level field-based search (title, author, ISBN, subject, etc.)
Quick Start
Install
pip install mcp[cli] httpx xmltodict
Run
python server.py
Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"sru": {
"command": "python",
"args": ["/path/to/sru-mcp/server.py"]
}
}
}
Tools
| Tool | Description |
|---|---|
sru_list_servers |
List all pre-configured library catalog servers |
sru_explain |
Get a server's capabilities, supported schemas, and indexes |
sru_list_indexes |
List available search indexes on a server |
sru_search |
Execute a raw CQL query |
sru_search_books |
Search by title, author, ISBN, subject, publisher, year, or keyword |
Example Usage
Search the Library of Congress for books by Melville:
sru_search_books(server="loc", author="Melville", title="Moby Dick")
Search the French national library with a raw CQL query:
sru_search(server="bnf", cql_query='dc.title = "Les Misérables"')
Pre-configured Servers
| ID | Name | Notes |
|---|---|---|
loc |
Library of Congress | US national catalog |
loc-names |
LC Name Authority | Personal and corporate names |
loc-subjects |
LC Subject Authority | Subject headings and genre terms |
bnf |
Bibliothèque nationale de France | French national library |
dnb |
Deutsche Nationalbibliothek | German national library |
kb |
Koninklijke Bibliotheek | Netherlands national library |
bibsys |
BIBSYS | Norwegian academic libraries |
To add a server, edit servers.json.
Development
# Install dev dependencies
pip install pytest pytest-asyncio respx
# Run tests
python3 -m pytest test_sru.py test_server.py -v
# Test with MCP Inspector
npx @modelcontextprotocol/inspector python server.py
Project Structure
server.py FastMCP server — tool definitions
sru.py SRU protocol client — HTTP, parsing, formatting
servers.json Server registry
test_sru.py Tests for sru.py (92 tests total)
test_server.py Tests for server.py
License
MIT
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.