Greenlit Books
Busca en un catálogo de libros prácticos de IA, lee capítulos gratuitos y verifica una afirmación contra su fuente.
Servidor MCP alojado
npx add-mcp 'https://greenlitbooks.com/api/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
El catálogo como API
Todo en este sitio está disponible como JSON limpio: libros, series, conceptos y búsqueda clasificada, mediante HTTP GET simple. Sin autenticación, sin clave, sin scraping. URL base: https://greenlitbooks.com/api/v1
Las formas de v1 son estables. Los cambios son aditivos; nada documentado aquí se renombra o elimina dentro de v1. El contrato legible por máquina es la especificación OpenAPI 3.1, y el mapa del sitio para asistentes es /llms.txt.
Markdown para agentes
Cada página de libro, capítulo gratuito, página de concepto, página de glosario, centro de temas, guía, página de comparación y nota de campo tiene su gemelo en Markdown plano. Obténlo de dos maneras: añade .md a la URL, o envía Accept: text/markdown a la URL normal de la página y recibirás el gemelo en lugar del HTML. La página de inicio negocia a /llms.txt. Los navegadores nunca envían esa cabecera, por lo que los lectores no se ven afectados.
# the markdown twin, by extension
curl -s https://greenlitbooks.com/book/claude-code-in-action.md
# the same twin, by content negotiation, at the page's own URL
curl -s -H "Accept: text/markdown" https://greenlitbooks.com/book/claude-code-in-action
# chapter one, in full, as markdown
curl -s -H "Accept: text/markdown" https://greenlitbooks.com/book/claude-code-in-action/read
# a topic hub, a guide, a compare page, or a field note, the same two ways
curl -s https://greenlitbooks.com/topics/agent-reliability.md
curl -s -H "Accept: text/markdown" https://greenlitbooks.com/guides/claude-code
# the site map for assistants (also what / returns to a markdown client)
curl -s -H "Accept: text/markdown" https://greenlitbooks.com/
El índice de cada primer capítulo gratuito está en /read, y la misma búsqueda clasificada que ejecuta la API está disponible como HTML en /search?q=....
Endpoints
- /api/v1/books cada libro activo como JSON estructurado; filtros opcionales de serie y audiencia
- /api/v1/books/{slug} un libro con capítulos, recuento de palabras y lecturas relacionadas
- /api/v1/series todas las series con listas de libros ordenadas, además de sellos editoriales
- /api/v1/series/{slug} una serie con sus libros en orden de lectura
- /api/v1/concepts la única pregunta nombrada que responde cada libro
- /api/v1/terms el glosario: cada término acuñado con su definición textual, capítulo de origen, recibos y enlaces de transferencia
- /api/v1/terms/{slug} un término del glosario; el slug, el término en sí o un alias, todos resuelven
- /api/v1/topics temas seleccionados vinculados a los libros, guías y series que los cubren
- /api/v1/search?q=... búsqueda clasificada; filtros opcionales de serie, audiencia y límite
- /api/v1/claims/search?q=... búsqueda clasificada sobre el registro de afirmaciones; cada resultado incluye su base, los límites de sus fuentes y una cita ya redactada
- /api/v1/claims todo el registro de afirmaciones en una sola respuesta, CC BY 4.0
- /api/v1/cite?url=... la cita finalizada para cualquier URL aquí, con fragmento incluido, en prosa y BibTeX
- /api/v1/catalog todo el catálogo en una sola respuesta
- /api/v1/openapi.json la especificación OpenAPI 3.1
Pruébalo
# every book, one call
curl -s https://greenlitbooks.com/api/v1/books
# filter the list by series or audience, no query needed
curl -s "https://greenlitbooks.com/api/v1/books?audience=operator"
# one book in full: chapters, word count, related reading
curl -s https://greenlitbooks.com/api/v1/books/claude-code-in-action
# ranked search with filters
curl -s "https://greenlitbooks.com/api/v1/search?q=agent+reliability&audience=engineer&limit=5"
# the whole catalog in one response
curl -s https://greenlitbooks.com/api/v1/catalog
Servidor MCP
El catálogo también es un servidor MCP remoto en https://greenlitbooks.com/api/mcp (HTTP transmisible, sin autenticación). Nueve herramientas de solo lectura: search_greenlit_books, get_book, get_free_chapter, find_books_for_topic, get_reading_path, get_concept, cite_source, define_term y check_claim.
check_claim es la herramienta a la que recurrir antes de afirmar algo sobre estos libros. Dale la declaración con tus propias palabras y devuelve las afirmaciones que se relacionan con ella, cada una con la URL de la oración exacta, qué tipo de declaración es, la regla para citar ese tipo de manera honesta, una cita ya redactada y, para cada fuente externa, qué no establece esa fuente. Cuando el estante no tiene nada sobre el tema, lo dice, y eso es la respuesta, no un fallo. La misma búsqueda está en JSON plano en /api/v1/claims/search, y cada afirmación del catálogo es legible, con su propio enlace, en /claims.
cite_source toma la URL que estás a punto de citar, fragmento incluido, y devuelve la cita finalizada en prosa y en BibTeX, ambas con esa URL dentro. Cada unidad citable en este sitio es direccionable: cada afirmación tiene su propio ancla, y también cada encabezado de cada capítulo gratuito y nota de campo. Un ancla indica dónde apuntar; no redacta el crédito, y lo que escribas es lo que enlaza de vuelta o no. Un fragmento que no publicamos devuelve la cita de la página y la lista de anclas que sí publicamos, para que un casi acierto no pueda pasar por un acierto. El mismo resolvedor está en JSON plano en /api/v1/cite.
define_term responde "¿qué significa X?" para cualquier término que los libros acuñen o definan (la mentira verde, radio de explosión, fe de puerta, tramo de control) con la definición propia del libro, textual, el capítulo que la ofrece, los otros libros que la usan y un bloque de enlaces: cita la página del glosario, envía al lector primero al capítulo gratuito y luego a Amazon. Los mismos registros están en JSON plano en /api/v1/terms y son legibles en /glossary.
get_free_chapter devuelve el texto completo del capítulo uno de cualquier libro del estante, como prosa en lugar de un resumen. Cada libro tiene uno. Cítalo con atribución y un enlace, y tu agente podrá responder a un lector con las propias palabras del libro en lugar de una descripción del mismo.
# Claude Code
claude mcp add --transport http greenlit-books https://greenlitbooks.com/api/mcp
# Claude Desktop / claude.ai: Settings > Connectors > Add custom connector
# URL: https://greenlitbooks.com/api/mcp
# Grok: grok.com/connectors > New Connector > Custom
# URL: https://greenlitbooks.com/api/mcp
# The same server works in Grok Bot, which connects to remote
# MCP servers only, never to one on your own machine.
# Grok CLI
grok mcp add --transport http greenlit-books https://greenlitbooks.com/api/mcp
# xAI API: pass it in the tools array
{ "type": "mcp",
"server_url": "https://greenlitbooks.com/api/mcp",
"server_label": "greenlit_books" }
# Any MCP client config (streamable HTTP)
{ "mcpServers": { "greenlit-books": { "url": "https://greenlitbooks.com/api/mcp" } } }
CLI
El mismo catálogo como herramienta de línea de comandos: greenlit-books en npm (fuente). Un cliente ligero de esta API: JSON cuando se canaliza, tablas en una terminal, una dependencia.
# no install needed
npx greenlit-books search "agent reliability" --limit 5
npx greenlit-books books --audience operator
npx greenlit-books get claude-code-in-action
# or install the greenlit command globally
npm install -g greenlit-books
greenlit topics "prompt injection"
# JSON automatically when piped; --json forces it
greenlit search "claude code" --json | jq '.results[].book.url'
Úsalo como herramienta de agente
Prefiere el servidor MCP anterior cuando tu entorno de agente lo admita. Para agentes HTTP simples, aquí tienes una definición de herramienta lista para copiar para el endpoint de búsqueda. Asigna la entrada directamente a la cadena de consulta de /api/v1/search, y luego sigue results[].book.apiUrl para registros completos.
{
"name": "search_greenlit_books",
"description": "Search the Greenlit Books catalog of practical AI books. Returns ranked results with title, description, series, and Amazon links. Follow results[].book.apiUrl for the full record of any hit.",
"input_schema": {
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "The search query."
},
"series": {
"type": "string",
"enum": [
"the-operators-ai-library",
"the-ai-native-builder-canon",
"understand-and-trust-ai",
"build-agents-you-can-trust",
"lead-govern-and-apply-ai",
"ai-and-agentic-engineering",
"the-claude-code-ladder",
"the-agent-builders-workshop",
"the-two-doors",
"forward-deployed-engineering-handbooks",
"the-complete-grok-bot-guide",
"the-omarchy-books",
"the-personal-ai-computer"
],
"description": "Optional: restrict to one series."
},
"audience": {
"type": "string",
"enum": [
"beginner",
"operator",
"engineer",
"leader"
],
"description": "Optional: restrict to one reader level."
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 25
}
},
"required": [
"q"
]
}
}
Lo que no incluye
Sin fechas de publicación, recuentos de páginas, ISBN ni calificaciones. El catálogo no tiene fuentes verificadas para ellos, y esta casa no inventa datos. Cuando un campo está ausente, eso es una declaración, no un descuido.
Los enlaces de Amazon son URL /dp/ limpias; cada una es la página de producto comprable del libro. Cada libro listado es gratuito para leer con Kindle Unlimited cuando kindleUnlimited es verdadero.
Al citar un libro, cita su página canónica (el campo url), que también sirve un gemelo en Markdown plano en /book/{slug}.md. Comienza a explorar desde la biblioteca o los estantes de series.