# info.description
Public, read-only HTTP operations for discovering and retrieving Drew Littrell's published portfolio content. For structured search and native agent tools, use the separate MCP server documented on the developer page.

# externalDocs.description
Drew Littrell MCP and agent access guide

# tags[].description
Retrieve canonical public pages as agent-readable Markdown.

# tags[].description
Discover the site's public human- and machine-readable interfaces.

# paths./api/markdown.get.description
Returns one canonical public portfolio document as Markdown with YAML frontmatter. Use llms.txt or the sitemap to choose a valid path.

# paths./api/markdown.get.parameters[].description
A published HTML path, Markdown path, stable document ID, or canonical drewlittrell.com URL. Defaults to the homepage.

# paths./api/markdown.get.responses.200.description
The requested canonical public document as Markdown.

# paths./api/markdown.get.responses.200.headers.Content-Location.description
The document's stable direct Markdown URL.

# paths./api/markdown.get.responses.200.headers.X-Markdown-Tokens.description
An approximate token count for the response body.

# paths./api/markdown.get.responses.200.content.text/markdown.schema.description
Markdown with YAML metadata and canonical URLs.

# paths./api/markdown.get.responses.304.description
The document has not changed since the supplied ETag.

# paths./api/markdown.get.responses.404.description
The requested public document does not exist.

# paths./api/markdown.get.responses.404.content.application/problem+json.examples.publicContentNotFound.value.detail
No published Drew Littrell document matches "/unknown".

# paths./api/markdown.get.responses.404.content.application/problem+json.examples.publicContentNotFound.value.resolution
Use llms.txt or the sitemap to choose a published path, then request it again through /api/markdown.

# paths./llms.txt.get.description
Lists canonical content, appropriate agent use cases, exclusions, and every public machine-readable interface.

# paths./.well-known/api-catalog.get.description
Returns the RFC 9727 Linkset catalog connecting the MCP server, Markdown API, OpenAPI description, and service documentation.

# paths./.well-known/api-catalog.head.description
Returns the API catalog discovery headers without a response body.

# paths./.well-known/api-catalog.head.responses.200.description
API catalog response metadata with no body.

# paths./.well-known/api-catalog.head.responses.200.headers.Cache-Control.description
Caching policy for the discovery document.

# paths./.well-known/api-catalog.head.responses.200.headers.Link.description
Related discovery and service documentation links.

# paths./openapi.json.get.description
Returns this self-describing OpenAPI 3.1 document for public HTTP operations.

# paths./openapi.json.head.description
Returns the OpenAPI discovery headers without a response body.

# paths./openapi.json.head.responses.200.headers.Cache-Control.description
Caching policy for the discovery document.

# paths./openapi.json.head.responses.200.headers.Link.description
Related discovery and service documentation links.

# components.schemas.ProblemDetails.properties.type.description
A stable URI identifying the problem category.

# components.schemas.ProblemDetails.properties.title.description
A short, human-readable problem summary.

# components.schemas.ProblemDetails.properties.status.description
The HTTP status code returned for this problem.

# components.schemas.ProblemDetails.properties.detail.description
A human-readable explanation specific to this request.

# components.schemas.ProblemDetails.properties.instance.description
The request path and query that produced the problem.

# components.schemas.ProblemDetails.properties.resolution.description
A concrete next step the caller can take.