Northwestern University Libraries Digital Collections API
Agent integration with the Northwestern University Libraries Digital Collections API
Sollte ich dies verwenden
Qualität und Sicherheit
Befunde (9)
- LOWin view-work
- LOWin view-collection
- LOWin get-work
- LOWin list-collections
- LOWin similarity-search
- LOWin view-work
- LOWin view-collection
- LOWin view-search-results
- LOWin view-similar-works
Basierend auf einer automatisierten Analyse der Tool-Definitionen und der Einhaltung des Protokolls.
Kontextkosten
Dies ist die ungefähre Anzahl der Tokens, die jedes Mal verbraucht werden, wenn die Tools des Servers in den Kontext eines Modells geladen werden. Höhere Werte verringern die Aufmerksamkeit, die für andere Aufgaben verfügbar ist.
Installieren
Installation mit einem Klick
Fügen Sie dies Ihrer Datei `claude_desktop_config.json` hinzu:
{
"mcpServers": {
"dc-api": {
"command": "npx",
"args": [
"@nulib/dc-api-mcp"
]
}
}
}Ausführbare Pakete
2.11.15stdioRemote-Endpunkte
https://api.dc.library.northwestern.edu/api/v2/mcpstreamable-httpWas es kann
Tool-Inventar
Tools (8)
🟢search(query, fields, public_only, max_results, page)
Search for works in the Digital Collections using field-based and/or natural language queries. If both a natural language query and specific field values are provided, the natural language query will take priority, using the specified field values as additional constraints. The result will also include a list of aggregations that show how many results match different values for certain fields. For example, you could see how many results match each collection, work type, or visibility and use that information to refine your search. Perform an empty search to retrieve all works and their aggregations. NOTE: Structured field values enclosed in double quotes will be treated as exact, case-sensitive matches, while unquoted values will be treated as full-text searches.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"description": "A natural language query. Best for exploratory / conceptual searches.",
"type": "string"
},
"fields": {
"type": "object",
"properties": {
"abstract": {
"description": "A summary of the work",
"type": "string"
},
"alternate_title": {
"description": "Alternate titles for the work",
"type": "string"
},
"caption": {
"description": "The caption for a work",
"type": "string"
},
"collection": {
"description": "The parent collection of the work",
"type": "string"
},
"contributor": {
"description": "An entity responsible for making contributions to the work",
"type": "string"
},
"creator": {
"description": "An entity primarily responsible for making the work",
"type": "string"
},
"description": {
"description": "An account of the work",
"type": "string"
},
"genre": {
"description": "Describes what the original object is, not what it is about",
"type": "string"
},
"keywords": {
"description": "Keywords or tags used to describe this content",
"type": "string"
},
"language": {
"description": "A language of the work",
"type": "string"
},
"library_unit": {
"description": "The library unit responsible for the work",
"type": "string",
"enum": [
"Special Collections",
"Faculty Collections",
"Government and Geographic Information Collection",
"Herskovits Library",
"Music Library",
"Transportation Library",
"University Archives",
"University Main Library"
]
},
"license": {
"description": "The Creative Commons license for the work",
"type": "string",
"enum": [
"All rights reserved",
"Attribution 3.0 United States",
"Attribution 4.0 International",
"Attribution-NoDerivatives 4.0 International",
"Attribution-NoDerivs 3.0 United States",
"Attribution-NonCommercial 3.0 United States",
"Attribution-NonCommercial 4.0 International",
"Attribution-NonCommercial-NoDerivatives 4.0 International",
"Attribution-NonCommercial-NoDerivs 3.0 United States",
"Attribution-NonCommercial-ShareAlike 3.0 United States",
"Attribution-NonCommercial-ShareAlike 4.0 International",
"Attribution-ShareAlike 3.0 United States",
"Attribution-ShareAlike 4.0 International",
"CC0 1.0 Universal",
"Public Domain Mark 1.0"
]
},
"location": {
"description": "Place of publication",
"type": "string"
},
"notes": {
"description": "Notes associated with the work",
"type": "string"
},
"publisher": {
"description": "An entity responsible for making the work available",
"type": "string"
},
"rights_statement": {
"description": "The rights statement of the work",
"type": "string",
"enum": [
"Copyright Not Evaluated",
"Copyright Undetermined",
"In Copyright",
"In Copyright - Educational Use Permitted",
"In Copyright - EU Orphan Work",
"In Copyright - Non-Commercial Use Permitted",
"In Copyright - Rights-holder(s) Unlocatable or Unidentifiable",
"No Copyright - Contractual Restrictions",
"No Copyright - Non-Commercial Use Only ",
"No Copyright - Other Known Legal Restrictions",
"No Copyright - United States",
"No Known Copyright"
]
},
"style_period": {
"description": "A defined style, historical period, group, school, dynasty, movement, etc. whose characteristics are represented in the work.",
"type": "string"
},
"subject": {
"description": "The subject of the work",
"type": "string"
},
"table_of_contents": {
"description": "Used to provide the titles of separate works or parts of a resource. Information provided may also contain statements of responsibility or other sequential designations.",
"type": "string"
},
"technique": {
"description": "The technique used in the creation of the work",
"type": "string"
},
"title": {
"description": "The title of the work",
"type": "string"
},
"work_type": {
"description": "The type of the work",
"type": "string",
"enum": [
"Audio",
"Image",
"Video"
]
},
"text": {
"description": "Full text associated with the work",
"type": "string"
},
"controlled_terms": {
"description": "All controlled terms associated with the work, across all fields. Useful for searching across all controlled fields simultaneously without specifying which field.",
"type": "string"
}
},
"description": "Structured field search. Best when searching for specific known items or values, or for narrowing a search by specifying particular fields to search within."
},
"public_only": {
"default": true,
"type": "boolean",
"description": "Only include publicly available works in search results"
},
"max_results": {
"default": 10,
"description": "The maximum number of search results to return per page",
"type": "number",
"minimum": 1,
"maximum": 20
},
"page": {
"default": 1,
"description": "The page of search results to return",
"type": "number",
"minimum": 1
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Search for items in the Digital Collections using either a natural language query or specific field values. If both a natural language query and specific field values are provided, the search will return items that match the natural language query and have the specified field values."
}Ausgabe-Schema
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for the search result item"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The title of the search result item"
},
"description": {
"type": "array",
"items": {
"type": "string"
},
"description": "A brief description of the search result item"
},
"thumbnail": {
"type": "string",
"format": "uri",
"description": "A URL to a thumbnail image representing the search result item"
},
"collection": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title of the collection the search result item belongs to"
}
},
"required": [
"title"
],
"additionalProperties": false
},
"iiif_manifest": {
"type": "string",
"format": "uri",
"description": "A URL to the IIIF manifest for the search result item"
},
"visibility": {
"type": "string",
"enum": [
"Public",
"Private",
"Institution"
],
"description": "Whether the item is publicly accessible"
}
},
"required": [
"id",
"title",
"description",
"thumbnail",
"collection",
"iiif_manifest",
"visibility"
],
"additionalProperties": false
},
"description": "The search results returned from the Digital Collections API"
},
"pagination": {
"type": "object",
"properties": {
"current_page": {
"type": "number",
"description": "The current page of search results"
},
"limit": {
"type": "number",
"description": "The maximum number of search results returned per page"
},
"total_hits": {
"type": "number",
"description": "The total number of search results"
},
"total_pages": {
"type": "number",
"description": "The total number of pages of search results"
}
},
"required": [
"current_page",
"limit",
"total_hits",
"total_pages"
],
"additionalProperties": false
},
"info": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the API endpoint"
},
"description": {
"type": "string",
"description": "A description of the API endpoint"
},
"version": {
"type": "string",
"description": "The version of the API endpoint"
}
},
"required": [
"name",
"description",
"version"
],
"additionalProperties": false
},
"aggregations": {},
"explain": {
"description": "The explain output from Elasticsearch for the search query. Only included if the MCP is running in debug mode."
}
},
"required": [
"data",
"pagination",
"info"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get-work(work_id)
Retrieve the full metadata for a work from the NUL Digital Collections.
Eingabe-Schema
{
"type": "object",
"properties": {
"work_id": {
"type": "string",
"description": "The ID of the work to retrieve"
}
},
"required": [
"work_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢list-collections(public_only, max_results, page)
List collection records from the NUL Digital Collections.
Eingabe-Schema
{
"type": "object",
"properties": {
"public_only": {
"default": true,
"type": "boolean",
"description": "Only include publicly available works in search results"
},
"max_results": {
"default": 10,
"description": "The maximum number of search results to return per page",
"type": "number",
"minimum": 1,
"maximum": 20
},
"page": {
"default": 1,
"description": "The page of search results to return",
"type": "number",
"minimum": 1
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for the search result item"
},
"title": {
"type": "string",
"description": "The title of the search result item"
},
"description": {
"anyOf": [
{
"type": "string",
"description": "A brief description of the search result item"
},
{
"type": "null"
}
]
},
"thumbnail": {
"type": "string",
"format": "uri",
"description": "A URL to a thumbnail image representing the search result item"
},
"iiif_collection": {
"type": "string",
"format": "uri",
"description": "A URL to the IIIF collection for the search result item"
},
"visibility": {
"type": "string",
"enum": [
"Public",
"Private",
"Institution"
],
"description": "Whether the item is publicly accessible"
}
},
"required": [
"id",
"title",
"thumbnail",
"iiif_collection",
"visibility"
],
"additionalProperties": false
},
"description": "The search results returned from the Digital Collections API"
},
"pagination": {
"type": "object",
"properties": {
"current_page": {
"type": "number",
"description": "The current page of search results"
},
"limit": {
"type": "number",
"description": "The maximum number of search results returned per page"
},
"total_hits": {
"type": "number",
"description": "The total number of search results"
},
"total_pages": {
"type": "number",
"description": "The total number of pages of search results"
}
},
"required": [
"current_page",
"limit",
"total_hits",
"total_pages"
],
"additionalProperties": false
},
"info": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the API endpoint"
},
"description": {
"type": "string",
"description": "A description of the API endpoint"
},
"version": {
"type": "string",
"description": "The version of the API endpoint"
}
},
"required": [
"name",
"description",
"version"
],
"additionalProperties": false
},
"aggregations": {},
"explain": {
"description": "The explain output from Elasticsearch for the search query. Only included if the MCP is running in debug mode."
}
},
"required": [
"data",
"pagination",
"info"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢similarity-search(work_id, public_only, max_results, page)
Find works that are similar to a given work. Uses semantic similarity based on work embeddings.
Eingabe-Schema
{
"type": "object",
"properties": {
"work_id": {
"type": "string",
"description": "ID of a work to find similar items for."
},
"public_only": {
"default": true,
"type": "boolean",
"description": "Only include publicly available works in search results"
},
"max_results": {
"default": 10,
"description": "The maximum number of search results to return per page",
"type": "number",
"minimum": 1,
"maximum": 20
},
"page": {
"default": 1,
"description": "The page of search results to return",
"type": "number",
"minimum": 1
}
},
"required": [
"work_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "The unique identifier for the search result item"
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "The title of the search result item"
},
"description": {
"type": "array",
"items": {
"type": "string"
},
"description": "A brief description of the search result item"
},
"thumbnail": {
"type": "string",
"format": "uri",
"description": "A URL to a thumbnail image representing the search result item"
},
"collection": {
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "The title of the collection the search result item belongs to"
}
},
"required": [
"title"
],
"additionalProperties": false
},
"iiif_manifest": {
"type": "string",
"format": "uri",
"description": "A URL to the IIIF manifest for the search result item"
},
"visibility": {
"type": "string",
"enum": [
"Public",
"Private",
"Institution"
],
"description": "Whether the item is publicly accessible"
}
},
"required": [
"id",
"title",
"description",
"thumbnail",
"collection",
"iiif_manifest",
"visibility"
],
"additionalProperties": false
},
"description": "The search results returned from the Digital Collections API"
},
"pagination": {
"type": "object",
"properties": {
"current_page": {
"type": "number",
"description": "The current page of search results"
},
"limit": {
"type": "number",
"description": "The maximum number of search results returned per page"
},
"total_hits": {
"type": "number",
"description": "The total number of search results"
},
"total_pages": {
"type": "number",
"description": "The total number of pages of search results"
}
},
"required": [
"current_page",
"limit",
"total_hits",
"total_pages"
],
"additionalProperties": false
},
"info": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The name of the API endpoint"
},
"description": {
"type": "string",
"description": "A description of the API endpoint"
},
"version": {
"type": "string",
"description": "The version of the API endpoint"
}
},
"required": [
"name",
"description",
"version"
],
"additionalProperties": false
},
"aggregations": {},
"explain": {
"description": "The explain output from Elasticsearch for the search query. Only included if the MCP is running in debug mode."
}
},
"required": [
"data",
"pagination",
"info"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢view-work(work_id)
View a work from the NUL Digital Collections in an interactive viewer.
Eingabe-Schema
{
"type": "object",
"properties": {
"work_id": {
"type": "string",
"description": "The ID of the work to view"
}
},
"required": [
"work_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"iiifContentUrl": {
"type": "string",
"format": "uri",
"description": "A URL to a IIIF manifest or collection"
}
},
"required": [
"iiifContentUrl"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢view-collection(collection_id)
View a collection from the NUL Digital Collections in an interactive viewer.
Eingabe-Schema
{
"type": "object",
"properties": {
"collection_id": {
"type": "string",
"description": "The ID of the collection to view"
}
},
"required": [
"collection_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"iiifContentUrl": {
"type": "string",
"format": "uri",
"description": "A URL to a IIIF manifest or collection"
}
},
"required": [
"iiifContentUrl"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢view-search-results(query, fields, public_only, max_results, page)
View results from the search-works tool in an interactive viewer.
Eingabe-Schema
{
"type": "object",
"properties": {
"query": {
"description": "A natural language query. Best for exploratory / conceptual searches.",
"type": "string"
},
"fields": {
"type": "object",
"properties": {
"abstract": {
"description": "A summary of the work",
"type": "string"
},
"alternate_title": {
"description": "Alternate titles for the work",
"type": "string"
},
"caption": {
"description": "The caption for a work",
"type": "string"
},
"collection": {
"description": "The parent collection of the work",
"type": "string"
},
"contributor": {
"description": "An entity responsible for making contributions to the work",
"type": "string"
},
"creator": {
"description": "An entity primarily responsible for making the work",
"type": "string"
},
"description": {
"description": "An account of the work",
"type": "string"
},
"genre": {
"description": "Describes what the original object is, not what it is about",
"type": "string"
},
"keywords": {
"description": "Keywords or tags used to describe this content",
"type": "string"
},
"language": {
"description": "A language of the work",
"type": "string"
},
"library_unit": {
"description": "The library unit responsible for the work",
"type": "string",
"enum": [
"Special Collections",
"Faculty Collections",
"Government and Geographic Information Collection",
"Herskovits Library",
"Music Library",
"Transportation Library",
"University Archives",
"University Main Library"
]
},
"license": {
"description": "The Creative Commons license for the work",
"type": "string",
"enum": [
"All rights reserved",
"Attribution 3.0 United States",
"Attribution 4.0 International",
"Attribution-NoDerivatives 4.0 International",
"Attribution-NoDerivs 3.0 United States",
"Attribution-NonCommercial 3.0 United States",
"Attribution-NonCommercial 4.0 International",
"Attribution-NonCommercial-NoDerivatives 4.0 International",
"Attribution-NonCommercial-NoDerivs 3.0 United States",
"Attribution-NonCommercial-ShareAlike 3.0 United States",
"Attribution-NonCommercial-ShareAlike 4.0 International",
"Attribution-ShareAlike 3.0 United States",
"Attribution-ShareAlike 4.0 International",
"CC0 1.0 Universal",
"Public Domain Mark 1.0"
]
},
"location": {
"description": "Place of publication",
"type": "string"
},
"notes": {
"description": "Notes associated with the work",
"type": "string"
},
"publisher": {
"description": "An entity responsible for making the work available",
"type": "string"
},
"rights_statement": {
"description": "The rights statement of the work",
"type": "string",
"enum": [
"Copyright Not Evaluated",
"Copyright Undetermined",
"In Copyright",
"In Copyright - Educational Use Permitted",
"In Copyright - EU Orphan Work",
"In Copyright - Non-Commercial Use Permitted",
"In Copyright - Rights-holder(s) Unlocatable or Unidentifiable",
"No Copyright - Contractual Restrictions",
"No Copyright - Non-Commercial Use Only ",
"No Copyright - Other Known Legal Restrictions",
"No Copyright - United States",
"No Known Copyright"
]
},
"style_period": {
"description": "A defined style, historical period, group, school, dynasty, movement, etc. whose characteristics are represented in the work.",
"type": "string"
},
"subject": {
"description": "The subject of the work",
"type": "string"
},
"table_of_contents": {
"description": "Used to provide the titles of separate works or parts of a resource. Information provided may also contain statements of responsibility or other sequential designations.",
"type": "string"
},
"technique": {
"description": "The technique used in the creation of the work",
"type": "string"
},
"title": {
"description": "The title of the work",
"type": "string"
},
"work_type": {
"description": "The type of the work",
"type": "string",
"enum": [
"Audio",
"Image",
"Video"
]
},
"text": {
"description": "Full text associated with the work",
"type": "string"
},
"controlled_terms": {
"description": "All controlled terms associated with the work, across all fields. Useful for searching across all controlled fields simultaneously without specifying which field.",
"type": "string"
}
},
"description": "Structured field search. Best when searching for specific known items or values, or for narrowing a search by specifying particular fields to search within."
},
"public_only": {
"default": true,
"type": "boolean",
"description": "Only include publicly available works in search results"
},
"max_results": {
"default": 10,
"description": "The maximum number of search results to return per page",
"type": "number",
"minimum": 1,
"maximum": 20
},
"page": {
"default": 1,
"description": "The page of search results to return",
"type": "number",
"minimum": 1
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Search for items in the Digital Collections using either a natural language query or specific field values. If both a natural language query and specific field values are provided, the search will return items that match the natural language query and have the specified field values."
}Ausgabe-Schema
{
"type": "object",
"properties": {
"iiifContentUrl": {
"type": "string",
"format": "uri",
"description": "A URL to a IIIF manifest or collection"
}
},
"required": [
"iiifContentUrl"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢view-similar-works(work_id, public_only, max_results, page)
View results from the similarity-search tool in an interactive viewer.
Eingabe-Schema
{
"type": "object",
"properties": {
"work_id": {
"type": "string",
"description": "ID of a work to find similar items for."
},
"public_only": {
"default": true,
"type": "boolean",
"description": "Only include publicly available works in search results"
},
"max_results": {
"default": 10,
"description": "The maximum number of search results to return per page",
"type": "number",
"minimum": 1,
"maximum": 20
},
"page": {
"default": 1,
"description": "The page of search results to return",
"type": "number",
"minimum": 1
}
},
"required": [
"work_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Ausgabe-Schema
{
"type": "object",
"properties": {
"iiifContentUrl": {
"type": "string",
"format": "uri",
"description": "A URL to a IIIF manifest or collection"
}
},
"required": [
"iiifContentUrl"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Community
Nachweis