MCP Clients

Directory of pages this app registers as dash.mcp resources for Claude Desktop and other MCP-aware clients.

MCP Clients — directory and integration notes

How dash-improve-my-llms 2.0 talks to MCP-aware clients (Claude Desktop,

agentic IDEs, MCP-aware chatbots) on Dash 4.3+.

What this audience needs

MCP clients speak JSON-RPC over Streamable HTTP. They don't browse the rendered UI and they don't curl /llms.txt. They expect to call resources/list to see what's available, then resources/read to fetch the body of any resource by URI.

What 2.0 registers

When add_llms_routes(app) runs, the MCP bridge walks dash.page_registry, skips any page that has been mark_hidden(), resolves each page's LLMS_DOC (either from a module-level attribute or register_page_metadata(llms_doc=...)), and registers it as an MCP resource with a URI of the form llms:///<page-path>.

Each resource carries:

What this audience does NOT get

Dash 4.3's MCP server itself exposes layouts and component metadata live as MCP resources. This package does not duplicate that — it only ships the hand-written prose. If an MCP client wants live component data, it should use Dash's native MCP endpoints.

Code sample — what a client sends

A minimal JSON-RPC resources/list looks like:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "resources/list"
}

A resources/read for one URI:

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "resources/read",
  "params": { "uri": "llms:///audiences/mcp-clients" }
}

Disabling the MCP bridge

If you want to register resources yourself or skip MCP entirely:

from dash_improve_my_llms import LLMSConfig, add_llms_routes

add_llms_routes(app, LLMSConfig(register_mcp_resources=False))

The HTTP surfaces (/llms.txt, /robots.txt, /sitemap.xml) keep working unchanged.

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: