Sru Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Sru Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
pip install mcp[cli] httpx xmltodictpython server.pyAdd to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"sru": {
"command": "python",
"args": ["/path/to/sru-mcp/server.py"]
}
}
}| 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 |
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"')| 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.
# 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.pyserver.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.pyMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.