# dash-improve-my-llms 2.0 — What Changed

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

**Site index:** [https://llms.2plot.dev/llms.txt](https://llms.2plot.dev/llms.txt) — every page on this site, as Markdown.  
**Network index:** [https://2plot.dev/llms.txt](https://2plot.dev/llms.txt) — The 2plot network; start here to discover sibling sites.  
**Sibling sites:** 3 more in The 2plot network — listed in the site index above.  
**Sitemap:** https://llms.2plot.dev/sitemap.xml  


## 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:

- `/robots.txt` with bot-class policies
- `/sitemap.xml` for search-engine discovery
- `/llms.txt` per page as prose for paste-into-chat use
- Static-HTML prerender for crawlers that do not run JavaScript
- A thin MCP bridge that registers the same prose as MCP resources

## 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:

```python
# 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.

```python
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:

- `/page.json`
- `/architecture.txt`
- `/architecture.toon`
- `/llms.toon` (and per-page variants)

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.
