v2.0 Features

What changed in dash-improve-my-llms 2.0: narrowed scope, LLMS_DOC pattern, multi-backend support, and the MCP bridge.

dash-improve-my-llms 2.0 — What Changed

A focused rescope for the Dash 4.x / MCP era.

Why 2.0

Dash 4.1+ runs on FastAPI/Quart in addition to Flask. Dash 4.3 ships an MCP server that exposes layout and component structure live, over JSON-RPC. That made most of 1.x redundant: the package was extracting the component tree and shipping it over HTTP, which MCP now does natively and better.

2.0 narrows the package to the surfaces MCP and native Dash do NOT cover:

The LLMS_DOC pattern

Every page module exports a LLMS_DOC string. That string IS the body of /<page>/llms.txt. No layout walking, no extraction, no surprises:

# pages/analytics.py
LLMS_DOC = '''
# Analytics Dashboard

Headline metrics, a trend chart, and a recent-activity feed.
...
'''

If a page has no LLMS_DOC, the package emits a single warning at add_llms_routes() listing the missing pages, and the endpoint returns a small stub so bots still get a 200.

Multi-backend support

add_llms_routes(app) detects whether app.server is Flask, FastAPI, or Quart and dispatches to the matching adapter. Existing 1.x code on Flask keeps working unchanged.

pip install dash-improve-my-llms[flask]      # default for Dash 3.x
pip install dash-improve-my-llms[fastapi]    # Dash 4.1+
pip install dash-improve-my-llms[quart]      # Dash 4.1+ async

What was removed

These endpoints are gone in 2.0 because Dash 4.3 MCP covers the same ground better:

Helpers tied to those endpoints — TOONConfig, PageType, generate_llms_toon, extract_prose_content, mark_important, mark_component_hidden — are removed or shimmed as deprecated no-ops for one release.

The MCP bridge

When dash.mcp is available (Dash 4.3+) and enabled on the app, every non-hidden page's LLMS_DOC is registered as an MCP resource with a URI like llms:///audiences/mcp-clients. MCP-aware clients can fetch the same prose through a tool call instead of HTTP.

Note for AI agents: This is the static, prerendered view of an interactive Dash application served because we detected a non-JS user agent. Full prose docs: