AgentDiet AI Token Diet & Context Window Distiller
Server Details
Strips 85-97% of HTML/DOM bloat into clean Markdown or JSON with cryptographic ROI proof.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct output type: narrative Markdown (distill_webpage), structured JSON (extract_structured_data), heading/token outline (recon_webpage_skeleton), and account ledger (get_agent_wallet_status). Descriptions include explicit WHEN TO USE / WHEN NOT TO USE contrasts, eliminating overlap. An agent can confidently select the right tool.
All names use lowercase snake_case with a leading verb (distill, extract, get, recon) followed by a noun phrase. The pattern is consistent and predictable, with only 'recon' being a slight abbreviation. No mixed casing or verb-style chaos.
Four tools is well-scoped for a read-only web distillation and billing-status service. Each tool serves a unique purpose, and there is no redundant or trivial tool. The count is comfortably within the ideal 3–15 range.
Core workflows are covered: recon → distill/extract, plus wallet status. Minor gaps include no support for binary PDFs and no batch/multi-URL operation, but these are explicitly scoped out or workable via repeated calls. No dead ends for the stated purpose.
Available Tools
4 toolsdistill_webpageARead-onlyIdempotentInspect
Fetch a public HTTP(S) web page (or accept raw HTML) and distill its main prose into clean Markdown, stripping 85-97% of HTML/JS/CSS boilerplate. WHEN TO USE: Call this tool to read full or query-filtered article and documentation text; call recon_webpage_skeleton first to preview headings and token counts on unfamiliar pages, or extract_structured_data when you need JSON-LD, HTML tables, or code blocks. WHEN NOT TO USE: Do not use for binary PDFs, images, or login-walled pages. PARAMETER INTERACTIONS: Provide either url or html (when html is supplied, url is not fetched and only labels the cache key). When mode='markdown' (default), query and max_tokens are ignored; set mode='budget' to rank sections by query (BM25) and cap output at max_tokens. Omit agent_id and tx_hash during your 5 free calls. Read-only and idempotent; results are cached for 1 hour (<5ms cache hit). $0.001 per call ($0.0005 cached). Pricing: the first 5 calls per agent_id are free and failed calls are never charged. After 5 calls, the tool returns a payment-required quote (not a fatal error) with a $2 Stripe top-up link and Base/Solana USDC addresses; complete payment, then retry with your agd_pass_ key in agent_id or pass tx_hash. Example: distill_webpage(url='https://docs.stripe.com/api')
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target public HTTP(S) webpage URL to fetch (or builtin://stripe-docs for a built-in benchmark page). Private/loopback IPs are blocked. | |
| html | No | Optional raw HTML string (up to ~1.9MB) to process directly without network fetching. When provided, url is not fetched and only labels the cache entry. | |
| mode | No | Extraction mode: 'markdown' (default) returns the full cleaned page; 'budget' returns only sections matching query within max_tokens. | markdown |
| query | No | BM25 relevance keywords used to rank and filter page sections. Required for focused filtering when mode='budget'; ignored when mode='markdown'. | |
| tx_hash | No | Optional on-chain Base Mainnet (0x...) or Solana SPL USDC transaction hash. Omit unless settling an individual call directly on-chain instead of using an agd_pass_ key in agent_id. | |
| agent_id | No | Optional agent identifier or prepaid agd_pass_ session key. Omit during your 5 free trial calls to use an ID automatically derived from your client IP, or pass your agd_pass_ key after topping up. | |
| max_tokens | No | Maximum output token ceiling (50-16000, default 400). Enforced only when mode='budget'; ignored when mode='markdown'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Structured tool output payload. |
| status | Yes | Execution status ('ok' or 'payment_required'). |
| roi_proof | No | Token compression and cost-savings verification metrics. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations, which only declare read-only/idempotent/open-world/destructive=false. The description discloses 1-hour caching with <5ms hits, the 5-free-call trial, per-call and cached pricing, that failed calls are never charged, and that the payment-required response is a quote rather than a fatal error. These are exactly the operational traits an agent needs and cannot get from structured fields.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the core purpose in one sentence and uses labeled sections for routing and parameter interactions, which is easy to scan. The payment/pricing block is verbose and repeats the free-call and agd_pass_/tx_hash guidance already implied elsewhere, so a little trimming is possible, but the density is justified for a paid tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, return values need no explanation, and the description still covers everything an agent must know before calling: authentication/payment flow, caching, mode-dependent behavior, input limits, and failure semantics. Nothing required for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the PARAMETER INTERACTIONS section adds cross-parameter meaning the per-field schema text does not consolidate: url is not fetched when html is supplied, and mode='markdown' silently ignores query and max_tokens while mode='budget' applies BM25 ranking. This prevents misconfiguration rather than merely restating field docs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fetch a public HTTP(S) web page ... distill its main prose into clean Markdown') plus a quantified outcome (stripping 85-97% boilerplate). It explicitly differentiates itself from both siblings by naming recon_webpage_skeleton and extract_structured_data, so an agent can route without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains explicit WHEN TO USE and WHEN NOT TO USE sections that name the alternatives and the conditions selecting them: recon_webpage_skeleton for heading previews on unfamiliar pages, extract_structured_data for JSON-LD/tables/code, and an exclusion for PDFs, images, and login-walled pages. Nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_structured_dataARead-onlyIdempotentInspect
Extract machine-readable structured data from a web page: Schema.org JSON-LD objects, OpenGraph metadata, HTML tables parsed as JSON row arrays, fenced code blocks, section headings, and links. WHEN TO USE: Call this tool for pricing tables, API specifications, product metadata, or code snippets; use distill_webpage for narrative Markdown or recon_webpage_skeleton for a lightweight heading outline. WHEN NOT TO USE: Do not use for narrative prose extraction or binary files. PARAMETER INTERACTIONS: Provide either url or html (when html is supplied, url is not fetched and only labels the cache key). Omit agent_id and tx_hash during your 5 free calls. Read-only and idempotent; results are cached for 1 hour (<5ms cache hit). $0.001 per call ($0.0005 cached). Pricing: the first 5 calls per agent_id are free and failed calls are never charged. After 5 calls, the tool returns a payment-required quote (not a fatal error) with a $2 Stripe top-up link and Base/Solana USDC addresses; complete payment, then retry with your agd_pass_ key in agent_id or pass tx_hash. Example: extract_structured_data(url='https://docs.stripe.com/api')
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target public HTTP(S) webpage URL to fetch (or builtin://stripe-docs for a built-in benchmark page). Private/loopback IPs are blocked. | |
| html | No | Optional raw HTML string (up to ~1.9MB) to process directly without network fetching. When provided, url is not fetched and only labels the cache entry. | |
| tx_hash | No | Optional on-chain Base Mainnet (0x...) or Solana SPL USDC transaction hash. Omit unless settling an individual call directly on-chain instead of using an agd_pass_ key in agent_id. | |
| agent_id | No | Optional agent identifier or prepaid agd_pass_ session key. Omit during your 5 free trial calls to use an ID automatically derived from your client IP, or pass your agd_pass_ key after topping up. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Structured tool output payload. |
| status | Yes | Execution status ('ok' or 'payment_required'). |
| roi_proof | No | Token compression and cost-savings verification metrics. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover the safety profile (readOnly, idempotent, openWorld, non-destructive), yet the description goes well beyond them: 1-hour caching with <5ms hits, a 5-free-call trial, a non-fatal payment-required quote with Stripe/Base/Solana settlement paths, and the fact that failed calls are never charged. This is the pricing and failure-mode context an agent needs before calling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded core purpose followed by labeled WHEN TO USE / WHEN NOT TO USE / PARAMETER INTERACTIONS blocks, with the pricing detail last. The pricing paragraph is dense but each sentence carries operative information (free-call count, quote-not-error behavior, retry credentials); slightly overlong, keeping it just below a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value explanation is unnecessary, and the description instead covers routing, parameter interaction, caching, and the payment lifecycle. For a paid, cached, network-fetching extractor, nothing an agent needs to invoke it successfully is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is already 100%, so the baseline is 3, but the description adds genuine cross-parameter semantics: url or html is either/or, and when html is supplied the url only labels the cache key rather than being fetched. It also clarifies that agent_id and tx_hash should be omitted during the free calls, which the individual schema descriptions only imply.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (extract) and resource (structured data from a web page) and enumerates the concrete artifact types returned: JSON-LD, OpenGraph, HTML tables as JSON rows, code blocks, headings, links. It also names the sibling tools it is distinct from, so an agent can route correctly without opening a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit WHEN TO USE with concrete scenarios (pricing tables, API specs, product metadata, code snippets) and explicit alternative routing to distill_webpage for narrative Markdown and recon_webpage_skeleton for a lightweight outline. WHEN NOT TO USE closes the remaining ambiguity (narrative prose, binary files).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_wallet_statusARead-onlyIdempotentInspect
Inspect an agent's account ledger: remaining free trial calls (out of 5), prepaid USD balance, cumulative spend, total API calls, and total LLM tokens saved. WHEN TO USE: Call before a batch of paid tool executions or after completing a Stripe or USDC top-up to confirm your balance. WHEN NOT TO USE: Do not use to process web content, execute marketplace tools, or submit payments; use the other tools on this server for execution. PARAMETER INTERACTIONS: Omit agent_id to inspect the default trial account derived from your client IP, or pass your explicit agent_id or agd_pass_ session key to check a specific funded wallet. Free and read-only: never charges a fee or consumes a free trial call. Example: get_agent_wallet_status(agent_id='example')
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | No | Optional Agent ID or agd_pass_ session key to inspect. Omit to check the default wallet derived from your client IP. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Structured tool output payload. |
| status | Yes | Execution status ('ok' or 'payment_required'). |
| roi_proof | No | Token compression and cost-savings verification metrics. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds real context beyond that: it never charges a fee or consumes a free trial call, and the default wallet is derived from the caller's client IP. It does not discuss rate limits or caching, but the cost/free-trial guarantee is meaningful behavioral disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the ledger contents, then structured WHEN TO USE / WHEN NOT TO USE / PARAMETER INTERACTIONS / Example. The labeled sections make it scannable, though the repetition of the read-only guarantee and the worked example add a little bulk.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return-value detail is optional, yet the description still names the key fields. With a single optional parameter, no nested objects, and annotations covering safety, an agent has everything needed to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description goes slightly further by naming the agd_pass_ session-key form and framing the two modes as an interaction (omit for IP-derived trial account vs. pass explicit agent_id/session key for a funded wallet), which aids selection even though the schema states the omit behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (inspect) and resource (agent's account ledger) and enumerates exactly what is returned: trial calls out of 5, prepaid USD balance, cumulative spend, total API calls, tokens saved. This clearly separates it from the sibling web-content tools (distill_webpage, extract_structured_data, recon_webpage_skeleton), which operate on webpages rather than wallet state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit WHEN TO USE (before paid tool batches, after a Stripe or USDC top-up) and WHEN NOT TO USE (not for processing web content, executing marketplace tools, or submitting payments). The exclusion clause routes the agent back to the other server tools for execution, so the alternative is named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recon_webpage_skeletonARead-onlyIdempotentInspect
Extract an ultra-compact structural outline (under ~200 tokens) of a web page listing its H1-H4 headings and exact token count per section without returning body prose. WHEN TO USE: Call this tool first on long or unfamiliar pages to inspect structure and token cost before calling distill_webpage (with mode='budget' and a focused query). WHEN NOT TO USE: Do not use when you already need full Markdown prose (use distill_webpage) or structured tables and JSON-LD (use extract_structured_data). PARAMETER INTERACTIONS: Provide either url or html (when html is supplied, url is not fetched and only labels the cache key). Omit agent_id and tx_hash during your 5 free calls. Read-only and idempotent; results are cached for 1 hour (<5ms cache hit). $0.0002 per call. Pricing: the first 5 calls per agent_id are free and failed calls are never charged. After 5 calls, the tool returns a payment-required quote (not a fatal error) with a $2 Stripe top-up link and Base/Solana USDC addresses; complete payment, then retry with your agd_pass_ key in agent_id or pass tx_hash. Example: recon_webpage_skeleton(url='https://docs.stripe.com/api')
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Target public HTTP(S) webpage URL to fetch (or builtin://stripe-docs for a built-in benchmark page). Private/loopback IPs are blocked. | |
| html | No | Optional raw HTML string (up to ~1.9MB) to process directly without network fetching. When provided, url is not fetched and only labels the cache entry. | |
| tx_hash | No | Optional on-chain Base Mainnet (0x...) or Solana SPL USDC transaction hash. Omit unless settling an individual call directly on-chain instead of using an agd_pass_ key in agent_id. | |
| agent_id | No | Optional agent identifier or prepaid agd_pass_ session key. Omit during your 5 free trial calls to use an ID automatically derived from your client IP, or pass your agd_pass_ key after topping up. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Structured tool output payload. |
| status | Yes | Execution status ('ok' or 'payment_required'). |
| roi_proof | No | Token compression and cost-savings verification metrics. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description goes well beyond them: 1-hour caching with <5ms cache hits, $0.0002 per call, 5 free calls per agent_id, failed calls never charged, and the payment-required quote being a non-fatal error with retry paths (agd_pass_ key or tx_hash). This is unusually rich operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the core purpose, then usage, then payment mechanics, with no wasted throat-clearing. It is dense and long, and the pricing detail ('first 5 calls per agent_id are free') partially repeats the earlier free-call instruction, costing it the top score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need not be explained; the description instead covers the auth/payment lifecycle, caching, and input alternatives. Nothing an agent needs to invoke this correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds cross-parameter interaction guidance the schema only states per-field: 'Provide either url or html (when html is supplied, url is not fetched and only labels the cache key)' and 'Omit agent_id and tx_hash during your 5 free calls'. That is genuine added value over the individual field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Extract an ultra-compact structural outline... listing its H1-H4 headings and exact token count per section') with a clear negative scope ('without returning body prose'). It distinguishes itself cleanly from distill_webpage and extract_structured_data by naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Contains explicit WHEN TO USE ('first on long or unfamiliar pages to inspect structure and token cost before calling distill_webpage') and WHEN NOT TO USE sections, each naming the correct alternative and the condition that selects it. No inference is required from the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
distill_webpage - First observed
extract_structured_data - First observed
get_agent_wallet_status - First observed
recon_webpage_skeleton
Related MCP Connectors
Strips 85-97% of HTML bloat into clean Markdown, <200-token skeletons, or BM25 excerpts via MCP.
Turn any web page URL or HTML into clean Markdown or plain text for an LLM to read.
Extract and parse web pages into clean HTML, links, or Markdown. Handle dynamic, complex, or block…
Convert any webpage to clean LLM-ready markdown, extraction-first, with article and news modes.
Related MCP Servers
- AlicenseAqualityDmaintenanceConverts web pages and HTML strings into clean, LLM-optimized Markdown with metadata extraction and token estimation. It uses a lightweight, browserless approach to provide token-efficient output for more effective LLM processing.2MIT
- AlicenseAqualityDmaintenanceConverts URLs and raw HTML to clean Markdown, enabling AI assistants to read web pages for summarization, analysis, or ingestion.27 npm1MIT
- AlicenseAqualityBmaintenanceFetch any web page as clean Markdown or plain text, split it into heading-aware, token-bounded RAG chunks, convert raw HTML, and read page metadata. Uses the Web2MD API on RapidAPI with your own key (free BASIC plan).44MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI agents and LLM pipelines to fetch and crawl webpages, strip extraneous content, and convert them into clean, link-preserving Markdown for fast, token-efficient scraping.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.