Why agents need Markdown, not HTML, from web tools
Modern agents (LangGraph, CrewAI, OpenAI Assistants, Claude tool-use) run multi-step plans where every step's output becomes the next step's input. A web-fetch tool that returns 100k tokens of HTML eats most of the next step's context budget on layout that the agent will then have to mentally strip. Returning 5k tokens of Markdown leaves room for the actual reasoning.
MCP servers and the URL-to-Markdown pattern
For MCP (Model Context Protocol) servers exposing web access: return the page body as Markdown in the tool result, with metadata (source URL, fetch timestamp, status code) as separate fields. Anthropic's MCP guidance increasingly recommends Markdown as the canonical text format for tool returns, precisely because it's the cheapest format for agent loops to process.
The same pattern applies to OpenAI function-calling and Claude tool-use: wrap an in-house URL-to-Markdown helper (Trafilatura, Readability.py, or html2text on top of httpx) as a tool, return Markdown, let the agent reason over it directly. MDisBetter doesn't currently ship an MCP server — building your own is a few dozen lines of Python on top of the official MCP SDK.