Search / io.url2md/mcp
url2md
R2· OAuth, oncePDFs, JavaScript pages and ordinary HTML as clean Markdown. Follows robots.txt per RFC 9309.
v0.1.5 · active · website · descriptor JSON · versions
Search / io.url2md/mcp
R2· OAuth, oncePDFs, JavaScript pages and ordinary HTML as clean Markdown. Follows robots.txt per RFC 9309.
v0.1.5 · active · website · descriptor JSON · versions
{
"mcpServers": {
"url2md": {
"type": "http",
"url": "https://url2md.io/mcp"
}
}
}claude mcp add --transport http url2md https://url2md.io/mcp[mcp_servers.url2md]
url = "https://url2md.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"url2md": {
"type": "remote",
"url": "https://url2md.io/mcp",
"enabled": true
}
}
}{
"mcpServers": {
"url2md": {
"type": "http",
"url": "https://url2md.io/mcp"
}
},
"deeplink": "cursor://anysphere.cursor-deeplink/mcp/install?name=url2md&config=eyJ0eXBlIjoiaHR0cCIsInVybCI6Imh0dHBzOi8vdXJsMm1kLmlvL21jcCJ9"
}{
"servers": {
"url2md": {
"type": "http",
"url": "https://url2md.io/mcp"
}
}
}{
"mcpServers": {
"url2md": {
"httpUrl": "https://url2md.io/mcp"
}
}
}extensions:
"url2md":
enabled: true
name: "url2md"
type: streamable_http
uri: "https://url2md.io/mcp"
timeout: 300
protocol.modern, protocol.stateless, protocol.transport, protocol.list_ttlno remote answered a protocol handshake (not probed yet, unreachable, or local-only)auth.prmProtected Resource Metadata (RFC 9728) publishedauth.as_metadataauthorization server metadata reachableauth.cimdClient ID Metadata Documents supportedauth.secret_in_urlno templated URLtools.descriptions, tools.description_length, tools.schemas, tools.annotations, tools.directory_hints, tools.token_cost, tools.api_dumptool list unknown (behind auth, not probed, or empty)stability.changes, stability.rug_pulltool list unknowndeps.known_vulnsno known advisory in 21 resolved packagesdeps.mcp_sdk_version@modelcontextprotocol/server 2.1.0, no known advisorydeps.resolvable@url2md-io/[email protected] resolved: 21 packagesNo tool definition changes recorded. A server's first observation is its baseline; later probes record what changes.
Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed. How it is computed.
+dns-namespace +website +reachable +uptime-96% ~updated-36d-ago -no-repository
Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed. How it is computed.
@url2md-io/[email protected] npm20 dependencies, resolved · MCP SDK @modelcontextprotocol/server 2.1.0 · advisories checked 2026-10-19
No known advisory affects this dependency graph.
Dependency graphs from deps.dev; advisories from OSV.dev, including the GitHub Advisory Database and the PyPI Advisory Database; all CC BY 4.0. The graph is what a clean install of this version resolves today; nothing was installed or run. How it is checked.
| remote | auth | reachable | uptime 30d | p50 | protocol | last ok |
|---|---|---|---|---|---|---|
https://url2md.io/mcp streamable-http | oauth2 AS: https://url2md.io | yes | 96% | 501 ms | – | 2026-10-20 |
| package | registry | version | runtime | secrets |
|---|---|---|---|---|
@url2md-io/mcp | npm | 0.1.5 | – | URL2MD_PRIVATE_KEY |
No tools observed. Tools appear once a credential-free probe can list them.
Schemas: list_tools.
{
"name": "io.url2md/mcp",
"title": "url2md",
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
"remotes": [
{
"url": "https://url2md.io/mcp",
"type": "streamable-http"
}
],
"version": "0.1.5",
"packages": [
{
"version": "0.1.5",
"transport": {
"type": "stdio"
},
"identifier": "@url2md-io/mcp",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "URL2MD_PRIVATE_KEY_FILE",
"format": "filepath",
"description": "Path 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."
},
{
"name": "URL2MD_PRIVATE_KEY",
"isSecret": true,
"description": "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."
},
{
"name": "URL2MD_MAX_PRICE_USD",
"default": "0.10",
"description": "The 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."
},
{
"name": "URL2MD_MAX_SPEND_USD",
"default": "1.00",
"description": "The most this server will commit in total for as long as the process runs. Restarting resets it."
},
{
"name": "URL2MD_BASE_URL",
"default": "https://url2md.io",
"description": "The 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."
},
{
"name": "URL2MD_TIMEOUT_MS",
"default": "90000",
"description": "How 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."
}
]
}
],
"websiteUrl": "https://url2md.io",
"description": "PDFs, JavaScript pages and ordinary HTML as clean Markdown. Follows robots.txt per RFC 9309."
}