libraryapi-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LIBRARYAPI_KEY | Yes | Your API key for libraryapi.dev. Get a free key at https://libraryapi.dev |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| find_libraries_near_addressA | Find the public library branches nearest to a US street address, sorted by distance. Args: address: Full US street address, e.g. "350 Fifth Ave, New York, NY" radius_miles: Search radius in miles (0.1–50, default 10) limit: Maximum branches to return (1–100, default 10) include_closed: Include temporarily-closed branches (default False) |
| find_libraries_near_coordinatesA | Find the public library branches nearest to a latitude/longitude, sorted by distance. Use this when you already have coordinates; it skips geocoding and is faster than find_libraries_near_address. Args: lat: Latitude (WGS84) lng: Longitude (WGS84) radius_miles: Search radius in miles (0.1–50, default 10) limit: Maximum branches to return (1–100, default 10) include_closed: Include temporarily-closed branches (default False) |
| get_outletA | Get the full record for one library branch (outlet) by its ID, including address, phone, coordinates, and service details. Args: outlet_id: IMLS outlet ID |
| search_librariesA | Search public library systems by name, state, and/or city. A system is the administrative entity (e.g. "Chicago Public Library") that operates one or more branch outlets. Provide at least one of name, state, or city. Args: name: Library system name (full-text search) state: Two-letter state code, e.g. "IL" city: City name (substring match) limit: Results per page (1–100, default 20) offset: Pagination offset (default 0) |
| get_libraryA | Get the full profile for a library system by its FSCS ID, including collections, staffing, visits, programs, and finances. Args: fscs_id: IMLS FSCS ID for the library system, e.g. "IL0021" |
| get_state_summaryA | Get statewide public library totals — systems, branch outlets, collections, and usage — for one state. Args: state_code: Two-letter state abbreviation, e.g. "IL" |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a distinct purpose: get_library fetches system-level data by ID, get_outlet fetches branch-level data, search_libraries finds systems by criteria, find_libraries_near_address/coordinates handle geolocation, and get_state_summary provides aggregates. No two tools overlap in a way that would confuse an agent.
All tool names follow a consistent verb_noun snake_case pattern (get_, find_, search_). The naming is predictable and clearly indicates the action and target resource.
Six tools is well-scoped for a library data API. Each tool covers a distinct query pattern (lookup by ID, search, geospatial, summary) without unnecessary redundancy or bloat.
The tool surface covers the core domain tasks: retrieving individual records (library, outlet), searching for systems, finding nearby branches by address or coordinates, and getting statewide summaries. This is a complete set for the apparent purpose of accessing public library statistics and locations.