NLB Singapore Library MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@NLB Singapore Library MCP Serversearch for books about Singapore history"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
nlb-mcp
Unofficial FastMCP server for NLB Singapore Library Catalogue (availability + title search), implemented in Python.
What’s inside
Language: Python 3.11+
Framework: FastMCP (Python), httpx (HTTP), pydantic-settings (env), tenacity (retry)
Tools (MCP):
health_check– validate env + startup readiness.search_titles– keyword search over BRN/ISBN/Title/Author/Subject.search_titles_advanced– fielded search with pagination/sorting.availability_by_title– branch-level availability for a title/ISBN/BID.
Related MCP server: Wake County Public Library
Project layout
nlb_mcp/
config.py # env validation (API keys, base URL, timeout)
http_client.py # httpx helper with retry/timeout
nlb_client.py # thin NLB REST client wrappers
models.py # lightweight normalized response shapes
server.py # FastMCP server + tool registration (with basic logging)
help/
nlb-swagger.json # upstream API spec for referenceSetup
Create a virtualenv and install deps:
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtEnvironment:
NLB_API_KEY=your_api_key
NLB_APP_CODE=your_app_code
# optional
NLB_API_BASE=https://openweb.nlb.gov.sg/api/v2/Catalogue
REQUEST_TIMEOUT_MS=10000Run locally:
fastmcp run nlb_mcp/server.py:create_serverFastMCP Cloud entrypoint
Preferred:
nlb_mcp/server.py:create_serverDirect object exports:
nlb_mcp/server.py:server(aliasesmcp,app) FastMCP Cloud can point atnlb_mcp/server.py:create_server; it will handle OAuth2 for users. This server only uses NLBX-Api-Key/X-App-Codefrom env.
Auth model
Client/user auth is handled by FastMCP’s built-in OAuth2 provider; this server does not add another layer of user auth.
NLB API authentication uses env-provided keys only; never accept them from user input or log them.
For per-user quotas/auditing, rely on FastMCP identity context when available.
Notes / TODO
If you want stricter schemas, consider pydantic models for tool inputs/outputs.
Add caching/rate limits if upstream limits are tight; httpx + tenacity already retry transient errors.
Logging uses stdlib
logging(logger namenlb_mcp) with secret redaction; extend as needed for metrics or structured logs.
This server cannot be deployed
Maintenance
Related MCP Connectors
Search books, authors and series, get recommendations, and manage your own reading shelves.
Search books and authors across Open Library, the Internet Archive open catalog.
- LeafleOAuthnet.nanosheep
Personalised book recommendations, filtered to what's on your public library's shelf right now.
Federated search of books and papers, BibTeX/RIS citations, open-access retrieval and reading.
Related MCP Servers
- AlicenseCqualityBmaintenanceProvides comprehensive access to South Korea's National Library information system, enabling searches across 1,000+ public libraries, real-time book availability checks, borrowing trends, and location-based library discovery.2735 npmMIT
- FlicenseAqualityDmaintenanceEnables searching the Wake County Public Library catalog and all NC Cardinal libraries, returning book details including title, author, format, availability status, and direct catalog links.1-
- FlicenseAqualityDmaintenanceEnables searching the GBS Flexon Library catalog (Koha) and checking book availability.21-
- FlicenseNot gradedqualityCmaintenanceEnables searching WorldCat's library catalog for bibliographic records, editions, citations, and exports in various formats via natural language.-