Library of Congress
Busca en periódicos estadounidenses escaneados y explora el catálogo de la Biblioteca del Congreso. Sin clave de API.
Documentación
mcp-libraryofcongress
La Biblioteca del Congreso es la biblioteca nacional de los Estados Unidos, y publica en línea una gran parte de sus fondos: libros, fotografías, mapas, grabaciones sonoras, manuscritos y las páginas de los periódicos estadounidenses que se remontan al siglo XVIII. Las páginas de los periódicos han sido escaneadas y sometidas a reconocimiento óptico de caracteres, de modo que las palabras impresas en ellas pueden buscarse. Los curadores también reúnen material en colecciones digitales, cada una descrita y publicada como un conjunto propio.
Este servidor conecta un cliente de chat con esa biblioteca. Puedes buscar las palabras impresas dentro de los periódicos, buscar en el catálogo por título, creador, materia, lugar o idioma, leer un registro con su declaración de derechos y dónde se conserva el original, y enumerar las colecciones digitales. No requiere clave de API ni cuenta.
Instalación
Instalación con un clic
Claude Code
claude mcp add libraryofcongress -- npx -y mcp-libraryofcongress
Claude Desktop, Cursor y cualquier cliente que use el formato de configuración estándar
{
"mcpServers": {
"libraryofcongress": {
"command": "npx",
"args": ["-y", "mcp-libraryofcongress"]
}
}
}
Se requiere Node 24 o posterior, y no es necesario establecer ninguna variable de entorno.
Con Docker
{
"mcpServers": {
"libraryofcongress": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-libraryofcongress:3.0.2"]
}
}
}
-i mantiene abierta la entrada estándar, que es por donde viaja el protocolo, y -t se omite
porque una TTY reescribe el flujo. El contenedor necesita HTTPS saliente hacia
www.loc.gov y chroniclingamerica.loc.gov, y nada más: sin volumen, sin
puerto, sin credenciales.
Paquete, sin npm
Descarga mcp-libraryofcongress-3.0.2.mcpb desde
la última versión
y ábrelo. Un cliente que admita paquetes MCP lo instala por sí solo, sin
npm y sin archivo de configuración que editar. El paquete incluye sus dependencias,
por lo que no se descarga nada en el momento de la instalación.
Qué puedes preguntar
- "¿Qué escribieron los periódicos de Oklahoma sobre la votación de la condición de estado de 1907?"
- "Encuéntrame fotografías de viviendas de Chicago anteriores a 1920."
- "Lee ese registro y dime quién conserva el original."
- "¿Qué colecciones digitales hay sobre la Guerra Civil?"
- "¿Puedo reutilizar esa fotografía?"
La ruta habitual va de una búsqueda a un registro: una fila lleva un identifier,
y get_item lo lee.
Herramientas
| Herramienta | Qué hace |
|---|---|
search_newspapers | Busca las palabras impresas dentro de las páginas de periódicos escaneadas. |
search_items | Busca en el catálogo por título, creador, materia, lugar o idioma. |
get_item | Lee un registro, sus derechos y dónde se conserva el original. |
list_collections | Enumera las colecciones digitales publicadas por los curadores. |
search_newspapers
Busca el texto de las páginas de periódicos escaneadas, que salió de la página mediante reconocimiento óptico de caracteres.
| Argumento | Tipo | Obligatorio | Qué hace |
|---|---|---|---|
query | cadena, de 1 a 300 caracteres | sí | Las palabras que buscar en las páginas. |
location | cadena, hasta 120 caracteres | no | Un lugar donde se publicó el periódico. |
publication | cadena, hasta 200 caracteres | no | Un periódico. |
year_from | entero, de 1000 a 9999 | no | Año más temprano, inclusive. |
year_to | entero, de 1000 a 9999 | no | Año más reciente, inclusive. |
limit | entero, de 1 a 25, predeterminado 10 | no | Coincidencias a servir. |
page | entero, de 1 a 100, predeterminado 1 | no | Qué página de coincidencias. |
max_excerpt_chars | entero, de 80 a 1200, predeterminado 300 | no | Cuánto de un pasaje servir. |
max_excerpts_per_match | entero, de 1 a 10, predeterminado 3 | no | Pasajes servidos por página coincidente. |
A cambio: hits, cada uno con identifier, que get_item toma;
title; creator, que es la biblioteca que contribuyó con el escaneo; year;
page_number, la hoja dentro del número; published_on; publication con los
años en que se publicó el periódico; state; excerpts; y excerpt_kind.
excerpt_kind decide cuánto vale un extracto. Un passage es el texto
alrededor de las palabras que coincidieron, centrado en ellas. Un page_opening es el inicio de
la hoja, enviado porque el texto que la Biblioteca devolvió con la fila se detiene antes
de que aparezcan esas palabras: no contiene la coincidencia, por lo que citarlo cita otra
cosa, y source_url abre la hoja con la consulta aplicada. total cuenta
hojas de periódico, y pagina: nunca es un recuento de cuántas veces aparecen las palabras.
search_items
Busca en el catálogo, un tipo de cosa a la vez.
| Argumento | Tipo | Obligatorio | Qué hace |
|---|---|---|---|
query | cadena, de 1 a 300 caracteres | sí | Palabras a buscar. |
media_type | books, photos, maps, audio, manuscripts o newspapers | no | El catálogo a leer. |
year_from | entero, de 1000 a 9999 | no | Año más temprano, inclusive. |
year_to | entero, de 1000 a 9999 | no | Año más reciente, inclusive. |
subject | cadena, hasta 120 caracteres | no | Un encabezamiento de materia. |
location | cadena, hasta 120 caracteres | no | Un lugar. |
language | cadena, hasta 120 caracteres | no | Un idioma, escrito en inglés. |
collection | cadena, hasta 160 caracteres | no | Una colección, como la nombra list_collections. |
online_only | booleano, predeterminado true | no | Conservar los registros disponibles en línea. |
sort | relevance, newest, oldest o title, predeterminado relevance | no | Cómo se ordenan las filas. |
limit | entero, de 1 a 50, predeterminado 10 | no | Filas a servir. |
page | entero, de 1 a 100, predeterminado 1 | no | Qué página de filas. |
A cambio: items, cada uno con identifier, title, creator, year,
date tal como se publicó, que a menudo es un intervalo, is_collection y source_url.
La Biblioteca mantiene un catálogo por tipo de cosa, por lo que una búsqueda sin
media_type lee el general, y total cuenta los registros que coinciden allí.
get_item
Lee un registro. Las partes más pesadas se solicitan en lugar de servirse por defecto, y una descripción larga se pagina.
| Argumento | Tipo | Obligatorio | Qué hacer |
|---|---|---|---|
identifier | cadena, de 1 a 300 caracteres | sí | El identificador que lleva una fila. |
sections | matriz de basic, citations, resources, full_metadata, predeterminado ["basic"] | no | Qué partes devolver. |
offset | entero, 0 o más, predeterminado 0 | no | Dónde reanudar la descripción. |
max_description_chars | entero, de 200 a 20000, predeterminado 2000 | no | Cuánto de la descripción servir. |
A cambio: el registro con su title, creator, year, date, format
y source_url, más description, subjects, location, language,
part_of para las colecciones y divisiones en las que se encuentra, repository que nombra dónde
se conserva el original, call_number y rights. Un campo que el registro deja vacío
es null. next_offset continúa una descripción larga y es null al final.
Un identificador puede llevar barras: un solo número de periódico se nombra por su periódico,
su fecha y su edición juntos.
list_collections
Enumera las colecciones digitales, conjuntos de material que un curador eligió, describió y publicó juntos.
| Argumento | Tipo | Obligatorio | Qué hace |
|---|---|---|---|
limit | entero, de 1 a 50, predeterminado 20 | no | Colecciones a servir. |
page | entero, de 1 a 100, predeterminado 1 | no | Qué página de colecciones. |
searchable_only | booleano, predeterminado false | no | Conservar las colecciones a las que se puede acotar una búsqueda. |
max_description_chars | entero, de 80 a 2000, predeterminado 300 | no | Cuánto de cada descripción servir. |
A cambio: collections, cada uno con identifier, el slug por el que se
lo identifica; title; collection_filter, la redacción que search_items toma;
searchable_media_types; description; item_count; subjects; formats para
los tipos de cosas que contiene; y source_url. total cuenta las colecciones que la
Biblioteca publica, que son más que el número devuelto.
Cuánto vale el texto escaneado
Las palabras dentro de una página de periódico salieron de la página mediante reconocimiento óptico de caracteres, por lo que un extracto lleva las lecturas erróneas de ese proceso. Se sirve tal como se leyó, en lugar de corregido. Cítalo como texto escaneado y enlaza la página para que un lector pueda ver la hoja misma.
Derechos
Un registro declara sus propios derechos en rights, y los términos de la Biblioteca difieren de
un depósito a otro. Lea esa declaración antes de reutilizar cualquier cosa, y repítala
junto a lo que se muestre.
Configuración
Cada variable es opcional. Establézcalas en el bloque env de la configuración de su cliente.
| Variable | Predeterminado | Qué hace |
|---|---|---|
LOC_USER_AGENT | la identidad del proyecto | Nombra su aplicación ante la Biblioteca, con una dirección donde se pueda contactar a una persona. |
LOC_MIN_INTERVAL_MS | 6000 | Intervalo entre dos solicitudes, de 3000 a 60000. |
LOC_TIMEOUT_MS | 30000 | Plazo para una solicitud, de 1000 a 120000. |
LOC_NEWSPAPER_TIMEOUT_MS | 90000 | Plazo para una búsqueda de periódicos, de 1000 a 300000. |
LOC_MAX_RETRIES | 3 | Intentos después de una falla transitoria, de 0 a 8. |
LOC_CACHE_TTL_MS | 900000 | Cuánto tiempo permanece una respuesta en memoria, de 0 a 86400000. |
LOC_CACHE_MAX_ENTRIES | 200 | Respuestas retenidas en memoria a la vez, de 1 a 5000. |
LOC_LOG_LEVEL | error | silent, error, info o debug, escritos en stderr. |
Un valor fuera de su rango vuelve al predeterminado, y la razón se escribe en stderr.
Errores
Cada falla lleva uno de seis códigos, un mensaje y, donde ayuda, una pista que nombra el siguiente paso.
| Código | Qué sucedió | Qué hacer |
|---|---|---|
not_found | La Biblioteca respondió y no tiene tal registro. | Verifique el identificador con search_items. |
invalid_input | Los argumentos fueron rechazados antes de que saliera cualquier solicitud. | Lea el mensaje, que nombra el argumento. |
rate_limited | La Biblioteca pidió a este cliente que se desacelere. | Espere la cantidad de segundos que nombra la pista y llame de nuevo con los mismos argumentos. El registro sigue allí. |
parse_failure | La respuesta llegó en una forma que este cliente no puede leer. | Repórtelo en el rastreador de problemas. |
network_error | La solicitud no se completó. | Intente de nuevo en breve. |
timeout | La solicitud superó su plazo. | Aumente LOC_TIMEOUT_MS, o LOC_NEWSPAPER_TIMEOUT_MS para una búsqueda de periódicos. |
Como biblioteca
La capa que lee la Biblioteca se publica por sí sola, con su ritmo, su caché y sus errores, y sin protocolo adjunto.
import { LocClient } from "mcp-libraryofcongress/client";
const client = new LocClient();
const { data, cached } = await client.searchItems({ query: "tenement", mediaType: "photos" });
console.log(data.total, cached);
Cada lectura responde con { data, cached }, y lanza un error que lleva uno de los seis
códigos. El intervalo mínimo entre dos solicitudes también se aplica aquí.
Ritmo y atribución
La Biblioteca publica un límite de 20 solicitudes por minuto para su API y 10 para el
sitio en su conjunto, y el menor de los dos rige: las solicitudes salen una a la vez
con al menos seis segundos entre ellas, y el intervalo mínimo de tres segundos se mantiene
sin importar cómo esté configurado el servidor. El User-Agent siempre termina con la identidad
del proyecto y una dirección donde se pueda contactar a una persona.
Cada resultado lleva la dirección de la página desde la que se leyó. La Biblioteca del Congreso es una institución pública, y sus registros declaran sus propios derechos.
Este servidor MCP es un proyecto no oficial, sin afiliación con la Biblioteca del Congreso.
Privacidad
Este servidor no recopila nada sobre usted y no envía nada a su autor. Se ejecuta
en su máquina, contacta a www.loc.gov y chroniclingamerica.loc.gov y nada más, mantiene sus respuestas en memoria
mientras se ejecuta y no escribe nada en el disco.
PRIVACY.md declara qué lleva una solicitud y qué ajustes cambian
cualquier parte de ello.
Desarrollo
npm install
npm run build:fixtures
npm test
npm run check
Las pruebas se ejecutan contra accesorios generados y no hacen ninguna solicitud de red. La suite en vivo,
npm run test:live, hace una solicitud por ruta y se ejecuta cada noche contra la
Biblioteca misma.
Contribuciones
Errores, preguntas e ideas pertenecen en el rastreador de problemas. Las solicitudes de extracción son bienvenidas; abrir un problema primero ayuda a acordar la forma del cambio. Consulte CONTRIBUTING.md.
Licencia
MIT, consulte LICENSE. Los registros pertenecen a la Biblioteca del Congreso y a los depositantes que ella nombra, bajo los derechos que declara cada registro.
mcp-libraryofcongress (francés)
La Biblioteca del Congreso es la biblioteca nacional de los Estados Unidos, y publica en línea una gran parte de sus fondos: libros, fotografías, mapas, grabaciones sonoras, manuscritos y las páginas de los periódicos estadounidenses desde el siglo XVIII. Estas páginas de periódicos han sido digitalizadas y luego procesadas con reconocimiento óptico de caracteres, de modo que las palabras impresas en ellas son buscables. Los conservadores también reúnen documentos en colecciones digitales, cada una descrita y publicada como un conjunto completo.
Este servidor conecta un cliente de conversación a esta biblioteca. Se puede buscar en las palabras impresas dentro de los periódicos, buscar en el catálogo por título, autor, tema, lugar o idioma, leer un registro con sus condiciones de derechos y el lugar donde se conserva el original, y listar las colecciones digitales. Sin clave de API, sin cuenta.
Instalación
Instalación en un clic
Claude Code
claude mcp add libraryofcongress -- npx -y mcp-libraryofcongress
Claude Desktop, Cursor y cualquier cliente con formato de configuración estándar
{
"mcpServers": {
"libraryofcongress": {
"command": "npx",
"args": ["-y", "mcp-libraryofcongress"]
}
}
}
Se requiere Node 24 o más reciente, y no hay ninguna variable de entorno que completar.
Con Docker
{
"mcpServers": {
"libraryofcongress": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/smeet666/mcp-libraryofcongress:3.0.2"]
}
}
}
-i mantiene la entrada estándar abierta, que es el canal del protocolo, y -t se
omite porque un TTY reescribe el flujo. El contenedor necesita acceso HTTPS
saliente a www.loc.gov y chroniclingamerica.loc.gov, y nada más:
sin volúmenes, sin puertos, sin identificadores.
Bundle, sin npm
Descargue mcp-libraryofcongress-3.0.2.mcpb desde
la última publicación
y ábralo. Un cliente que gestiona bundles MCP lo instala solo, sin npm y
sin archivo de configuración que modificar. El bundle lleva sus dependencias, por lo tanto
nada se descarga en la instalación.
Lo que se puede pedir
- «¿Qué escribieron los periódicos de Oklahoma sobre la votación de admisión de 1907?»
- «Encuéntrame fotografías de edificios de apartamentos en Chicago antes de 1920.»
- «Lee este registro y dime quién conserva el original.»
- «¿Qué colecciones digitales existen sobre la Guerra de Secesión?»
- «¿Puedo reutilizar esta fotografía?»
El camino habitual va de una búsqueda a un registro: una línea lleva un
identifier, y get_item lo lee.
Las herramientas
| Herramienta | Qué hace |
|---|---|
search_newspapers | Busca en las palabras impresas de las páginas de periódicos digitalizadas. |
search_items | Busca en el catálogo por título, autor, tema, lugar o idioma. |
get_item | Lee un registro, sus derechos y el lugar de conservación del original. |
list_collections | Lista las colecciones digitales publicadas por los conservadores. |
search_newspapers
Busca en el texto de las páginas de periódicos digitalizadas, texto proveniente del reconocimiento óptico de caracteres.
| Argumento | Tipo | Requerido | Qué hace |
|---|---|---|---|
query | cadena, de 1 a 300 caracteres | sí | Las palabras a buscar en las páginas. |
location | cadena, hasta 120 caracteres | no | Un lugar de publicación del periódico. |
publication | cadena, hasta 200 caracteres | no | Un periódico en particular. |
year_from | entero, de 1000 a 9999 | no | Año más antiguo, incluido. |
year_to | entero, de 1000 a 9999 | no | Año más reciente, incluido. |
limit | entero, de 1 a 25, predeterminado 10 | no | Correspondencias a servir. |
page | entero, de 1 a 100, predeterminado 1 | no | Qué página de correspondencias. |
max_excerpt_chars | entero, de 80 a 1200, predeterminado 300 | no | La longitud de pasaje a servir. |
max_excerpts_per_match | entero, de 1 a 10, predeterminado 3 | no | Pasajes servidos por página correspondiente. |
En retorno: hits, cada uno portando identifier, que get_item retoma;
title; creator, que es la biblioteca que proporcionó la digitalización;
year; page_number, el folio dentro del número; published_on;
publication con los años de publicación del periódico; state; excerpts; y
excerpt_kind.
excerpt_kind decide qué vale un extracto. Un passage es el texto
alrededor de las palabras encontradas, centrado en ellas. Un page_opening es el comienzo del
folio, enviado porque el texto devuelto por la biblioteca con la línea
se detiene antes de que esas palabras aparezcan: no lleva la correspondencia,
por lo tanto citarlo cita otra cosa, y source_url abre el folio con la consulta
aplicada. total cuenta folios de periódicos, y pagina: nunca
es un conteo de cuántas veces aparecen las palabras.
search_items
Busca en el catálogo, un tipo de cosa a la vez.
| Argumento | Tipo | Requisito | Qué hace |
|---|---|---|---|
query | cadena, de 1 a 300 caracteres | sí | Las palabras a buscar. |
media_type | books, photos, maps, audio, manuscripts o newspapers | no | El catálogo a leer. |
year_from | entero, de 1000 a 9999 | no | Año más antiguo, incluido. |
year_to | entero, de 1000 a 9999 | no | Año más reciente, incluido. |
subject | cadena, hasta 120 caracteres | no | Un encabezamiento de materia. |
location | cadena, hasta 120 caracteres | no | Un lugar. |
language | cadena, hasta 120 caracteres | no | Un idioma, escrito en inglés. |
collection | cadena, hasta 160 caracteres | no | Una colección, tal como la nombra list_collections. |
online_only | booleano, por defecto true | no | Conservar solo los registros en línea. |
sort | relevance, newest, oldest o title, por defecto relevance | no | El orden de las filas. |
limit | entero, de 1 a 50, por defecto 10 | no | Filas a servir. |
page | entero, de 1 a 100, por defecto 1 | no | Qué página de filas. |
En retorno: items, cada uno con identifier, title, creator, year,
date tal como se publicó, a menudo un intervalo, is_collection y source_url. La
biblioteca mantiene un catálogo por tipo de cosa, por lo que una búsqueda sin
media_type lee el catálogo general, y total cuenta los registros
correspondientes.
get_item
Lee un registro. Las partes pesadas se solicitan en lugar de servirse por defecto, y una descripción larga se pagina.
| Argumento | Tipo | Requisito | Qué hace |
|---|---|---|---|
identifier | cadena, de 1 a 300 caracteres | sí | El identificador que lleva una fila. |
sections | matriz de basic, citations, resources, full_metadata, por defecto ["basic"] | no | Las partes a devolver. |
offset | entero, 0 o más, por defecto 0 | no | Dónde reanudar la descripción. |
max_description_chars | entero, de 200 a 20000, por defecto 2000 | no | La longitud de descripción a servir. |
En retorno: el registro con su title, creator, year, date, format
y source_url, más description, subjects, location, language,
part_of para las colecciones y divisiones donde se ubica, repository que
nombra el lugar de conservación del original, call_number y rights. Un campo
que el registro deja vacío vale null. next_offset continúa una descripción
larga y vale null al final. Un identificador puede llevar barras oblicuas:
un número de periódico se nombra por su título, su fecha y su edición juntos.
list_collections
Lista las colecciones digitales, conjuntos de documentos que un conservador ha elegido, descrito y publicado juntos.
| Argumento | Tipo | Requisito | Qué hace |
|---|---|---|---|
limit | entero, de 1 a 50, por defecto 20 | no | Colecciones a servir. |
page | entero, de 1 a 100, por defecto 1 | no | Qué página de colecciones. |
searchable_only | booleano, por defecto false | no | Conservar solo aquellas a las que se puede restringir una búsqueda. |
max_description_chars | entero, de 80 a 2000, por defecto 300 | no | La longitud de cada descripción a servir. |
En retorno: collections, cada una con identifier, el slug que la
direcciona; title; collection_filter, la formulación que search_items
retoma; searchable_media_types; description; item_count; subjects;
formats para los tipos de cosas que contiene; y source_url. total
cuenta las colecciones que la biblioteca publica, lo que supera el número
devuelto.
Lo que vale un texto digitalizado
Las palabras contenidas en una página de periódico provienen del reconocimiento óptico de caracteres, por lo que un extracto lleva los errores de lectura de ese procedimiento. Se sirve tal como se leyó en lugar de corregido. Cítelo como un texto digitalizado y enlace la página para que un lector pueda mirar la hoja misma.
Los derechos
Un registro enuncia sus propios derechos en rights, y las condiciones de la
biblioteca difieren de un depósito a otro. Lea esa mención antes de cualquier
reutilización y repítala junto a lo que se muestra.
Configuración
Cada variable es opcional. Se colocan en el bloque env de la
configuración del cliente.
| Variable | Por defecto | Qué hace |
|---|---|---|
LOC_USER_AGENT | la identidad del proyecto | Nombra su aplicación ante la biblioteca, con una dirección donde contactar a una persona. |
LOC_MIN_INTERVAL_MS | 6000 | Intervalo entre dos solicitudes, de 3000 a 60000. |
LOC_TIMEOUT_MS | 30000 | Tiempo de espera de una solicitud, de 1000 a 120000. |
LOC_NEWSPAPER_TIMEOUT_MS | 90000 | Tiempo de espera de una búsqueda en periódicos, de 1000 a 300000. |
LOC_MAX_RETRIES | 3 | Intentos después de un fallo pasajero, de 0 a 8. |
LOC_CACHE_TTL_MS | 900000 | Duración durante la cual una respuesta permanece en memoria, de 0 a 86400000. |
LOC_CACHE_MAX_ENTRIES | 200 | Respuestas guardadas en memoria a la vez, de 1 a 5000. |
LOC_LOG_LEVEL | error | silent, error, info o debug, escrito en la salida de error. |
Un valor fuera de su rango cae en el valor por defecto, y la razón se escribe en la salida de error.
Errores
Cada fallo lleva uno de los seis códigos, un mensaje y, cuando ayuda, una indicación del siguiente paso.
| Código | Qué sucedió | Qué hacer |
|---|---|---|
not_found | La biblioteca respondió y no tiene ese registro. | Verifique el identificador con search_items. |
invalid_input | Los argumentos fueron rechazados antes de cualquier solicitud. | Lea el mensaje, que nombra el argumento. |
rate_limited | La biblioteca pide a este cliente que reduzca la velocidad. | Espere los segundos indicados y vuelva a llamar con los mismos argumentos. El registro sigue allí. |
parse_failure | La respuesta llegó en una forma ilegible aquí. | Repórtelo en el seguimiento de incidentes. |
network_error | La solicitud no se completó. | Reintente en breve. |
timeout | La solicitud superó su tiempo de espera. | Aumente LOC_TIMEOUT_MS, o LOC_NEWSPAPER_TIMEOUT_MS para una búsqueda en periódicos. |
Como biblioteca
La capa que lee la biblioteca se publica sola, con su ritmo, su caché y sus errores, sin protocolo adjunto.
import { LocClient } from "mcp-libraryofcongress/client";
const client = new LocClient();
const { data, cached } = await client.searchItems({ query: "tenement", mediaType: "photos" });
console.log(data.total, cached);
Cada lectura responde { data, cached } y lanza un error con uno de los seis
códigos. El intervalo mínimo entre dos solicitudes también se aplica aquí.
Ritmo y atribución
La biblioteca publica un límite de 20 solicitudes por minuto para su API y de 10
para todo el sitio, y el más bajo es el que gobierna: las solicitudes
salen una a una con al menos seis segundos entre ellas, y el intervalo mínimo de
tres segundos se mantiene sin importar la configuración. El User-Agent siempre
termina con la identidad del proyecto y una dirección donde contactar a una persona.
Cada resultado lleva la dirección de la página de donde se leyó. La Library of Congress es una institución pública, y sus registros enuncian sus propios derechos.
Este MCP es un proyecto no oficial, sin afiliación con la Library of Congress.
Confidencialidad
Este servidor no recopila nada sobre usted ni envía nada a su autor. Se ejecuta en
su máquina, solo se une a www.loc.gov y chroniclingamerica.loc.gov, guarda sus respuestas en memoria mientras
se ejecuta y no escribe nada en el disco. PRIVACY.md dice qué
lleva una solicitud y qué ajustes cambian eso.
Desarrollo
npm install
npm run build:fixtures
npm test
npm run check
Las pruebas se ejecutan sobre fixtures generados y no emiten ninguna solicitud.
La suite en vivo, npm run test:live, emite una solicitud por ruta y se ejecuta
cada noche contra la propia biblioteca.
Contribuir
Las anomalías, las preguntas y las ideas tienen su lugar en el seguimiento de incidentes. Las propuestas de modificación son bienvenidas; abrir un ticket primero ayuda a acordar la forma del cambio. Ver CONTRIBUTING.md.
Licencia
MIT, ver LICENSE. Los avisos pertenecen a la Library of Congress y a los depositantes que ella designa, bajo los derechos que cada aviso establece.