Skip to main content
Glama

urltomarkdown-mcp

npm version License: MIT

An MCP server that converts URLs and raw HTML to clean Markdown. Built on top of urltomarkdown.

Give any MCP-compatible AI assistant the ability to read web pages — just point it at a URL and get structured Markdown back, ready for summarization, analysis, or ingestion into your workflow.

Tools

convert_url_to_markdown

Fetches a URL and converts the web page to clean Markdown.

Parameter

Type

Required

Default

Description

url

string (URL)

yes

-

URL to fetch and convert

inline_title

boolean

no

true

Prepend page title as H1

ignore_links

boolean

no

false

Strip hyperlinks

readability

boolean

no

true

Use Readability for cleaner output

convert_html_to_markdown

Converts raw HTML to clean Markdown (no network request needed).

Parameter

Type

Required

Default

Description

html

string

yes

-

Raw HTML to convert

url

string (URL)

no

-

Source URL for relative links and domain filters

inline_title

boolean

no

true

Prepend page title as H1

ignore_links

boolean

no

false

Strip hyperlinks

readability

boolean

no

true

Use Readability for cleaner output

Related MCP server: stripfeed-mcp-server

Use cases

  • Research — Have your AI assistant read and summarize articles, documentation, or blog posts

  • Data extraction — Pull structured content from web pages for analysis

  • Documentation ingestion — Convert API docs or reference pages into Markdown for context

  • Content migration — Bulk convert web content to Markdown format

  • RAG pipelines — Feed clean web content into retrieval-augmented generation systems

Installation

Using npx (no install needed)

{
  "mcpServers": {
    "urltomarkdown": {
      "command": "npx",
      "args": ["-y", "urltomarkdown-mcp"]
    }
  }
}

Global install

npm install -g urltomarkdown-mcp

Then add to your MCP config:

{
  "mcpServers": {
    "urltomarkdown": {
      "command": "urltomarkdown-mcp"
    }
  }
}

From source

git clone https://github.com/SapienEx-AI/urltomarkdown-mcp.git
cd urltomarkdown-mcp
npm install
{
  "mcpServers": {
    "urltomarkdown": {
      "command": "node",
      "args": ["/path/to/urltomarkdown-mcp/src/index.js"]
    }
  }
}

Where to put the config

Client

Config file

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Claude Code

~/.claude/settings.local.json or project .mcp.json

Cursor

.cursor/mcp.json in your project root

Windsurf

~/.codeium/windsurf/mcp_config.json

How it works

This server wraps the urltomarkdown library and exposes it over the Model Context Protocol via stdio transport. Under the hood it uses:

  • Turndown for HTML-to-Markdown conversion

  • Mozilla's Readability for content extraction and noise removal

  • JSDOM for DOM parsing

The Readability pass strips navigation, sidebars, ads, and other non-content elements before conversion, producing clean output suitable for LLM consumption.

Testing

npm test

License

MIT


SapienEx — AI strategy and consulting

Available Tools

2 tools
convert_html_to_markdownB

Convert raw HTML to clean Markdown

ParametersJSON Schema
NameRequiredDescriptionDefault
htmlYesRaw HTML to convert
urlNoSource URL for resolving relative links and domain-specific filters
inline_titleNoPrepend page title as H1 heading
ignore_linksNoStrip hyperlinks from output
readabilityNoUse Readability for cleaner output

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavioral traits. It only says 'clean Markdown' without details on safety, idempotency, errors, or side effects. The conversion process, potential data loss, or formatting changes are not mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise at one sentence, front-loading the purpose. Every word earns its place, though it omits beneficial context that could be added without significant bloat.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description should explain what 'clean Markdown' entails (e.g., handling of styles, scripts, tables). It lacks details on return format, error behavior, or parameter interactions, making it incomplete for an agent to fully anticipate behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all five parameters. The description adds no extra meaning or context beyond what the schema provides, earning the baseline score.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb (convert) and the resource (HTML to Markdown). It distinguishes the tool from the sibling 'convert_url_to_markdown' by specifying 'raw HTML' input, implying the sibling handles URLs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus the sibling 'convert_url_to_markdown'. The description does not mention prerequisites, limitations, or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_url_to_markdownA

Fetch a URL and convert its web page content to clean Markdown

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL to fetch and convert
inline_titleNoPrepend page title as H1 heading
ignore_linksNoStrip hyperlinks from output
readabilityNoUse Readability for cleaner output

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must fully disclose behavior. It mentions 'fetch' implying network access, but omits details like rate limits, timeouts, caching, or error handling. The parameter 'readability' is not explained in context, though documented in the schema. The description is minimal but not misleading.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-formed sentence that communicates the core functionality without superfluous words. It is front-loaded with the action and resource, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the absence of an output schema, the description should clarify the return format. 'Clean Markdown' implies a string, but it's ambiguous. The tool is simple with 4 parameters and no nested objects, so the description covers the main action. Lacking error or edge case info prevents a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so the schema already provides parameter meanings. The tool description adds no additional detail beyond the schema, resulting in a baseline score of 3. No extra semantics are offered.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('fetch and convert') and the resource ('URL web page content') and result ('clean Markdown'). It effectively distinguishes from the sibling 'convert_html_to_markdown' by specifying URL fetching as the input method.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus the sibling 'convert_html_to_markdown'. No context is provided on prerequisites, preferred scenarios, or exclusion criteria, leaving the agent to infer usage from the tool name alone.

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.

  1. 2 tool updatesv1.0.1
    • First observedconvert_html_to_markdown
    • First observedconvert_url_to_markdown

TDQS

A3.7/5.0
Disambiguation5/5

Both tools convert content to Markdown but accept fundamentally different inputs: raw HTML vs. a URL. Their purposes are clearly distinct, with no overlap.

Naming Consistency5/5

Both tool names follow the consistent 'convert_<source>_to_markdown' pattern, using snake_case and clear verb-noun structure.

Tool Count4/5

With only two tools, the server is minimal but well-scoped for its domain of converting to Markdown. The count matches the simple purpose.

Completeness4/5

The server covers the two primary input types: raw HTML and URL. It is lacking file-based input, but for a specialized MCP server, this coverage is reasonable.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Scrapes webpages and converts them to markdown using AI-powered interaction to automatically handle cookie banners, CAPTCHAs, paywalls, and other blocking elements before extracting clean content.
    24
    48
    Apache 2.0
  • A
    license
    A
    quality
    B
    maintenance
    Converts any URL to clean, token-efficient Markdown for AI agents. Strips ads, navigation, and scripts. Supports CSS selectors, batch processing (10 URLs), token counting, and smart caching.
    3
    3
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI agents to read web pages reliably, returning clean markdown content, hyperlinks, and metadata without navigation or ad noise.
    3
    15
    MIT

Latest Blog Posts

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/SapienEx-AI/urltomarkdown-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server