url2md
PDFs, JavaScript pages and ordinary HTML as clean Markdown. Follows robots.txt per RFC 9309.
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
claude mcp add --transport http url2md 'https://url2md.io/mcp'
{
"mcpServers": {
"url2md": {
"type": "http",
"url": "https://url2md.io/mcp"
}
}
}
@url2md-io/mcpclaude mcp add url2md -e 'URL2MD_PRIVATE_KEY_FILE=<URL2MD_PRIVATE_KEY_FILE>' -e 'URL2MD_PRIVATE_KEY=<your url2md_private_key>' -e 'URL2MD_MAX_PRICE_USD=0.10' -e 'URL2MD_MAX_SPEND_USD=1.00' -e 'URL2MD_BASE_URL=https://url2md.io' -e 'URL2MD_TIMEOUT_MS=90000' -- npx -y @url2md-io/mcp@0.1.5
{
"mcpServers": {
"url2md": {
"command": "npx",
"args": [
"-y",
"@url2md-io/mcp@0.1.5"
],
"env": {
"URL2MD_PRIVATE_KEY_FILE": "<URL2MD_PRIVATE_KEY_FILE>",
"URL2MD_PRIVATE_KEY": "<your url2md_private_key>",
"URL2MD_MAX_PRICE_USD": "0.10",
"URL2MD_MAX_SPEND_USD": "1.00",
"URL2MD_BASE_URL": "https://url2md.io",
"URL2MD_TIMEOUT_MS": "90000"
}
}
}
}
Environment variables
URL2MD_PRIVATE_KEY_FILEPath to a file holding the 0x-prefixed private key of a wallet with USDC on Base. Preferred over URL2MD_PRIVATE_KEY: a path is not a secret, and a key on a command line is visible to every process on the machine. One of the two key variables is required.URL2MD_PRIVATE_KEYsecret The key itself: 0x followed by 64 hex characters. Use URL2MD_PRIVATE_KEY_FILE instead where you can. One of the two key variables is required.URL2MD_MAX_PRICE_USDThe most this server will commit for one call, in USD, across every payment round of that call. A tolled page takes two rounds and this ceiling covers both.URL2MD_MAX_SPEND_USDThe most this server will commit in total for as long as the process runs. Restarting resets it.URL2MD_BASE_URLThe url2md deployment to call. Must be https (only a loopback address may be plain http), because this is the origin every 402 is checked against.URL2MD_TIMEOUT_MSHow long to wait for one conversion, in milliseconds. The default covers the service's own worst case: 20 s of fetching plus 55 s of headless render. Do not lower it to 30 s — that is the navigation timeout inside the browser, and on a page that needed a browser your payment has already settled by the time the render starts.
Frequently asked questions
What is url2md?
PDFs, JavaScript pages and ordinary HTML as clean Markdown. Follows robots.txt per RFC 9309.
How do I install url2md?
It runs as a remote server. In Claude Code: claude mcp add --transport http url2md 'https://url2md.io/mcp'. For other clients, paste the JSON configuration from this page into their MCP settings.
Does url2md need an API key?
Yes. It expects URL2MD_PRIVATE_KEY, which you set in its configuration.
Who maintains url2md?
It is published by io.url2md. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.