tokenmarkdown-mcp
OfficialThis server provides TokenMarkdown MCP tools for fast, LLM-friendly web page extraction and API credit management.
extract_markdown: Fetches any HTTP/HTTPS URL and converts it to clean, dense Markdown, stripping HTML bloat, cookie banners, tracking scripts, and SVGs to preserve context windows.
Configurable image handling: Optionally include or exclude image links in the extracted Markdown output.
check_quota: Lets you check remaining TokenMarkdown API credits and usage status.
Useful for RAG pipelines, AI agents, and research workflows that need low-latency, token-efficient web content extraction.
Provides an n8n workflow blueprint with a webhook extractor node for automated research agents to fetch web pages and convert them to clean Markdown.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tokenmarkdown-mcpConvert https://stripe.com/docs/api to clean markdown"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
⚡ TokenMarkdown (tokenmarkdown.com)
Sub-150ms Web-to-Markdown Engine & Model Context Protocol (MCP) Server
Engineered for LLM context window efficiency, RAG pipelines, and autonomous AI coding agents.
🧭 The Problem: Prompt Bloat & Token Degradation
When autonomous agents or RAG pipelines scrape the web using Puppeteer, Jina, or Firecrawl, they dump 25,000+ tokens of navigation trees, cookie popups, tracking scripts, and inline SVGs directly into the prompt.
High Cost: $0.08+ per page in Claude 3.5 Sonnet token fees.
Slow Latency: 4 to 8 seconds per scrape.
Context Poisoning: LLMs hallucinate on irrelevant footer links and cookie consent disclaimers.
TokenMarkdown compresses web pages by 95% into dense, clean Markdown in sub-150ms, preserving your context budget and boosting reasoning accuracy.
Related MCP server: urltomarkdown-mcp
⚡ Comparison Benchmark
Feature | Raw HTML / Scrapers | Firecrawl / Jina | TokenMarkdown.com |
Average Latency | 6,200ms | 2,100ms | ⚡ 148ms |
Tokens Consumed | ~28,500 tokens | ~3,200 tokens | 🎯 ~940 tokens (95% Savings) |
Prompt Cost (Sonnet) | $0.0855 / call | $0.0096 / call | 💰 $0.0028 / call |
Zero-SDK URL Proxy | ❌ No | ❌ No | ✅ Yes ( |
Native MCP (Stdio + SSE) | ❌ No | Partial | ✅ Yes ( |
🚀 Quickstart
1. Zero-SDK Terminal / cURL Prefix Proxy
You don't even need an API key for quick testing. Prepend https://tokenmarkdown.com/ to any URL:
curl -s "https://tokenmarkdown.com/https://stripe.com/docs/api"2. Claude Desktop & Cursor IDE Setup (MCP)
Add to your Claude Desktop configuration (claude_desktop_config.json) or Cursor MCP settings:
{
"mcpServers": {
"tokenmarkdown": {
"command": "npx",
"args": ["-y", "tokenmarkdown-mcp"],
"env": {
"TOKENMARKDOWN_API_KEY": "<TOKENMARKDOWN_API_KEY>"
}
}
}
}3. REST API (POST /v1/extract)
curl -X POST "https://tokenmarkdown.com/v1/extract" \
-H "Authorization: Bearer <TOKENMARKDOWN_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"url": "https://linear.app/blog/rethinking-issue-tracking",
"include_images": false
}'Response:
{
"url": "https://linear.app/blog/rethinking-issue-tracking",
"title": "Rethinking issue tracking — Linear Blog",
"markdown": "# Rethinking issue tracking\n\nMost issue trackers are built as databases...",
"tokens": 820,
"savings_percent": 96.2,
"execution_ms": 142
}📦 1-Click Blueprints for Agencies & Automation
Clay.com Blueprint: Drop-in HTTP enrichment column to cut Clay AI credits by 90%.
n8n Workflow Blueprint: Instant webhook extractor node for automated research agents.
🏛️ developer suite & Governance
TokenMarkdown is an official developer primitive engineered by The Quite Good Project.
Parent Specification: RFC-2601 Sovereign Primitives Spec
Companion Tool: TokenEnrich.com (Sub-140ms ~180-Token Firmographics)
📄 License
MIT © 2026 The Quite Good Project.
Available Tools
2 toolscheck_quotaA
Check remaining TokenMarkdown API credits and usage status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It conveys a read-only intent through 'check' and describes the resource as remaining credits and usage status, which implies no mutation. However, it does not disclose whether the check itself consumes credits, whether authentication is required, or what the response contains.
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?
The description is a single concise sentence that front-loads the action and the object. Every word contributes meaning and there is no redundant or vague filler.
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?
For a zero-parameter, read-only status tool, the description supplies enough information to understand the call intent. The absence of an output schema means the agent does not know the exact response shape, but 'remaining credits and usage status' is a reasonable qualitative description for selecting and invoking the tool.
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?
The tool has zero parameters and the schema already reflects that completely, so there is nothing for the description to add. A zero-parameter tool receives a baseline of 4 because parameter documentation is not needed.
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?
The description states a clear verb and resource: 'Check remaining TokenMarkdown API credits and usage status.' This distinguishes it from the sibling tool extract_markdown, which is about extraction/processing, so an agent can select the right tool without extra context.
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?
The description implies the tool is for monitoring quota before or after API usage, but it does not explicitly say when to call it, whether it should be called before extract_markdown, or what conditions make the check necessary. There is no exclusion guidance, but the intended context is reasonably inferable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
extract_markdownA
Sub-150ms clean web-to-markdown extraction. Strips 95% of HTML bloat, cookie banners, tracking scripts, and SVGs to preserve LLM context windows.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The fully qualified HTTP or HTTPS URL to extract into clean markdown. | |
| include_images | No | Whether to retain image links in the markdown output (default: false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden and does so meaningfully: it discloses performance expectations, selective stripping of HTML bloat, cookie banners, tracking scripts, and SVGs. It could be more transparent about failure modes, authentication needs, or whether the extraction is read-only, but the stripping behavior is genuinely informative.
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?
The description is a single sentence that front-loads the key differentiator, states the core function, and gives concrete stripping behavior. Every clause adds value, and there is no redundant repetition of the tool name or schema.
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?
For a simple two-parameter extraction tool with a complete schema, the description adequately covers purpose, input, behavior, and output format implied by 'web-to-markdown'. It lacks explicit error/edge-case guidance and does not mention quota implications, but the overall tool context is small enough that this is a minor gap.
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 parameters url and include_images are already fully documented in the input schema. The description adds no parameter-specific detail beyond the schema, which places it at the baseline score.
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?
The description states a concrete action — extraction of a web page into clean markdown — and clearly identifies the input and intended output. It also distinguishes itself from check_quota by focusing on content extraction rather than quota status.
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?
The description provides a clear use context: extracting clean markdown for LLM context windows. It implies the tool should be chosen when minimizing HTML noise for downstream processing is important, but it does not explicitly state when not to use it or contrast it with check_quota.
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. Dates show when Glama detected each change.
2 tool updates
v1.0.0- First observed
check_quota - First observed
extract_markdown
TDQS
The two tools have completely distinct purposes: one performs the core extraction, the other monitors usage. There is no possible confusion between them.
Both tool names follow the same verb_noun pattern (extract_markdown, check_quota), creating a predictable and clean naming convention.
With only two tools, the count is slightly under the typical 3-15 range, but it fits the narrow scope of a single-purpose extraction API with quota checking. No unnecessary tools are present.
The tool surface fully covers the service's obvious domain: extracting web content to markdown and checking API quota. There are no missing operations for this focused utility.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Web scraping for AI agents. Converts URLs to clean, LLM-ready Markdown with anti-bot bypass.
Converts any URL to clean, LLM-ready Markdown using real Chrome browsers
Clean Markdown and AI-readability scoring for any URL. Built for AI agents.
11Convert files, URLs, and documents to clean, AI-ready Markdown via MCP.
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.2191MIT
- AlicenseNot gradedqualityBmaintenanceConverts web pages to Markdown for MCP clients like Claude, with support for single and batch reads, caching, fallback rendering, and SSRF protection.22MIT
- AlicenseNot gradedqualityDmaintenanceConverts any webpage into clean, LLM-ready Markdown, removing noise and supporting JavaScript rendering.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/quitegoodproject/tokenmarkdown'
If you have feedback or need assistance with the MCP directory API, please join our Discord server