AgentHubAgentHub

url2md MCP Setup & Guide

MCP ServerMCP RegistryOfficial

io.url2md/mcp · v0.1.5

PDFs, JavaScript pages and ordinary HTML as clean Markdown. Follows robots.txt per RFC 9309.

Copy the install config on this page first, then verify docs and permissions upstream.

Overview

PDFs, JavaScript pages and ordinary HTML as clean Markdown. Follows robots.txt per RFC 9309. url2md is a MCP Server listed from MCP Registry. Transports: streamable-http, stdio. This page includes an overview, setup tutorial, install commands, and use cases for Trae, Tongyi Lingma, Cursor, Claude Code, and VS Code.

AgentHub Verified AvailabilityTested & Ready

Automated pipeline validated install commands, protocol & client compatibility

Verified At2026-10-04
Install Snippets TestedCLI & JSON config syntax verified
Protocol Handshake ReadyComplies with JSON-RPC 2.0 specifications
Origin Registry ActiveSourced from official-mcp-registry
Verified ClientsClaude Code、Claude Desktop、Cursor 等
Security Tier: A+ 级 · 官方认证推荐 (A+)·Maintained by official/verified teams, audited for standard MCP protocol compliance.

Copy by platform

Choose your platform

  1. Open or create .cursor/mcp.json in your project root
  2. Click Copy config and paste; merge only this mcpServers entry if others exist
  3. Replace <placeholders> in env with real secrets (see Environment variables below)
  4. Save, then Cmd+Shift+P → Reload Window

Pre-fill Environment Variables (Optional)

secret
Privacy Guarantee: Keys are replaced 100% locally in your browser memory and are NEVER uploaded or stored on any server.
Click to copy snippet
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@url2md-io/mcp"
      ]
    }
  }
}

Setup tutorial

  1. Open the url2md page and confirm this MCP Server (source: MCP Registry).
  2. Copy the Cursor, Claude Code, or VS Code snippet.
  3. Merge it into mcpServers and replace env placeholders with real secrets.
  4. Reload the window, then call the MCP tools from your agent chat.

Install commands

Install commands and setup steps are in the HTML so search engines and no-JS browsers can read them without running client JavaScript.

Claude Code (remote)

  1. Install Claude Code CLI (claude must work in your terminal)
  2. Click Copy config below, paste into terminal, and run
  3. Restart Claude Code after it succeeds
claude mcp add --transport http mcp https://url2md.io/mcp

Cursor — .cursor/mcp.json (remote)

  1. Open or create .cursor/mcp.json in your project root
  2. Click Copy config and paste; if you already have MCPs, merge only this entry under mcpServers
  3. Save, then Cmd+Shift+P (Ctrl+Shift+P on Windows) → Reload Window
{
  "mcpServers": {
    "mcp": {
      "url": "https://url2md.io/mcp"
    }
  }
}

VS Code — .vscode/mcp.json (remote)

  1. Install GitHub Copilot in VS Code with MCP support
  2. Open or create .vscode/mcp.json in your project root
  3. Click Copy config and paste; merge only this mcpServers entry if others exist
  4. Save and Developer: Reload Window
{
  "mcpServers": {
    "mcp": {
      "url": "https://url2md.io/mcp"
    }
  }
}

Claude Desktop — claude_desktop_config.json (remote)

  1. Open Claude Desktop config: macOS ~/Library/Application Support/Claude/claude_desktop_config.json; Windows %APPDATA%\Claude\claude_desktop_config.json
  2. Click Copy config and merge under mcpServers
  3. Fully quit and restart Claude Desktop
{
  "mcpServers": {
    "mcp": {
      "url": "https://url2md.io/mcp"
    }
  }
}

Trae — .trae/mcp.json (remote)

  1. Trae → Settings → MCP, or edit .trae/mcp.json (project) / global mcp.json
  2. Use Manual add / Raw JSON, click Copy config and paste; merge only this mcpServers entry
  3. Save, pick an MCP-capable agent (e.g. Builder with MCP), reload window if needed
{
  "mcpServers": {
    "mcp": {
      "url": "https://url2md.io/mcp"
    }
  }
}

Cherry Studio — MCP settings (remote)

  1. Cherry Studio → Settings → MCP Servers
  2. Add via JSON import or SSE/HTTP with the URL
  3. Click Copy config, paste the mcpServers entry, then enable the server
{
  "mcpServers": {
    "mcp": {
      "url": "https://url2md.io/mcp"
    }
  }
}

Tongyi Lingma — MCP config (remote)

  1. Tongyi Lingma: avatar → Settings → MCP (agent mode; plugin ~v2.5+)
  2. Click + → config file or manual SSE/HTTP with the service URL
  3. Click Copy config and merge JSON; a healthy icon means connected
{
  "mcpServers": {
    "mcp": {
      "url": "https://url2md.io/mcp"
    }
  }
}

Cline — MCP Servers (remote)

  1. VS Code Cline panel → settings gear → MCP Servers
  2. Click Copy config and paste the mcpServers entry into Cline
  3. Save; Cline reconnects and shows tools
{
  "mcpServers": {
    "mcp": {
      "url": "https://url2md.io/mcp"
    }
  }
}

WorkBuddy — .workbuddy/mcp.json (remote)

  1. WorkBuddy: sidebar Plugins → MCP Servers → Configure MCP; or edit ~/.workbuddy/mcp.json (user) / .workbuddy/mcp.json (project)
  2. Click Copy config and merge under mcpServers (Tencent WorkBuddy / CodeBuddy)
  3. Save; status should turn green — fully restart the client if needed
{
  "mcpServers": {
    "mcp": {
      "url": "https://url2md.io/mcp"
    }
  }
}

Windsurf — mcp_config.json (remote)

  1. Edit ~/.codeium/windsurf/mcp_config.json (Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json)
  2. Click Copy config and merge; remote MCP must use serverUrl (not url)
  3. Save and refresh MCP in Windsurf Cascade
{
  "mcpServers": {
    "mcp": {
      "serverUrl": "https://url2md.io/mcp"
    }
  }
}

Claude Code (local)

  1. Install Claude Code CLI
  2. Copy the command below, replace <placeholders> with real env values, then run in terminal
  3. See Environment variables below if listed
claude mcp add mcp -- npx -y @url2md-io/mcp

Cursor — .cursor/mcp.json (local)

  1. Open or create .cursor/mcp.json in your project root
  2. Click Copy config and paste; merge only this mcpServers entry if others exist
  3. Replace <placeholders> in env with real secrets (see Environment variables below)
  4. Save, then Cmd+Shift+P → Reload Window
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@url2md-io/mcp"
      ]
    }
  }
}

VS Code — .vscode/mcp.json (local)

  1. Install GitHub Copilot in VS Code with MCP support
  2. Open or create .vscode/mcp.json in your project root
  3. Click Copy config and paste; merge only this mcpServers entry if others exist
  4. Replace <placeholders> in env with real secrets
  5. Save and Developer: Reload Window
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@url2md-io/mcp"
      ]
    }
  }
}

Claude Desktop — claude_desktop_config.json (local)

  1. Open Claude Desktop claude_desktop_config.json (see remote guide for paths)
  2. Click Copy config and merge under mcpServers
  3. Replace <placeholders> in env with real secrets
  4. Fully quit and restart Claude Desktop
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@url2md-io/mcp"
      ]
    }
  }
}

Trae — .trae/mcp.json (local)

  1. Trae → Settings → MCP, or edit .trae/mcp.json / global mcp.json
  2. Click Copy config and merge mcpServers
  3. Replace <placeholders> in env with real secrets
  4. Save and reload Trae
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@url2md-io/mcp"
      ]
    }
  }
}

Cherry Studio — MCP settings (local)

  1. Cherry Studio → Settings → MCP Servers → Add (STDIO)
  2. Or import JSON: click Copy config and merge mcpServers
  3. Replace <placeholders> in env; ensure Node.js / uv (npx, uvx) are installed
  4. Enable the server and check tools load
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@url2md-io/mcp"
      ]
    }
  }
}

Tongyi Lingma — MCP config (local)

  1. Lingma Settings → MCP → + → STDIO or config file
  2. Click Copy config and merge mcpServers
  3. Replace <placeholders> in env; need Node.js 18+ (npx) or uv (uvx)
  4. Confirm connected before using tools in agent chat
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@url2md-io/mcp"
      ]
    }
  }
}

Windsurf — mcp_config.json (local)

  1. Edit ~/.codeium/windsurf/mcp_config.json
  2. Click Copy config and merge mcpServers (stdio same as Cursor)
  3. Replace <placeholders> in env, save, refresh Cascade
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@url2md-io/mcp"
      ]
    }
  }
}

Cline — MCP Servers (local)

  1. Cline panel → Settings → MCP Servers
  2. Click Copy config and merge
  3. Replace <placeholders> in env, then save
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@url2md-io/mcp"
      ]
    }
  }
}

WorkBuddy — .workbuddy/mcp.json (local)

  1. Edit ~/.workbuddy/mcp.json (user) or project .workbuddy/mcp.json
  2. Or Plugins → MCP Servers → Configure MCP and paste the JSON below
  3. Replace <placeholders> in env; on Windows prefer absolute paths for command/scripts
  4. Save, restart WorkBuddy, confirm connector status is green
{
  "mcpServers": {
    "mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@url2md-io/mcp"
      ]
    }
  }
}

Troubleshooting & Common ErrorsFAQ

Common connection errors and verified fixes for url2md

Getting 'connection closed' or exit code 1 in Cursor / Claude Code for url2md?

Usually caused by missing runtime paths or IDE environment inheritance. Fix steps: 1. Verify Node.js 18+ (npx) or Python 3.10+ (uvx) is installed; 2. Run 'which npx' or 'which uvx' in terminal, and replace 'command' with absolute path; 3. Reload or restart the client window after modifying config.

Fix Snippet
# Check binary path in terminal:
which npx
node -v
Getting 'spawn npx ENOENT' or 'command not found'?

The editor background process does not inherit your full terminal PATH. Solution: Globally install the package, or set the absolute binary path (e.g. C:\Program Files\nodejs\npx.cmd on Windows, or /usr/local/bin/npx on macOS).

Missing required environment variable or authentication failure?

url2md requires environment variables (URL2MD_PRIVATE_KEY_FILE、URL2MD_PRIVATE_KEY、URL2MD_MAX_PRICE_USD、URL2MD_MAX_SPEND_USD、URL2MD_BASE_URL、URL2MD_TIMEOUT_MS). Ensure you have added valid keys under the 'env' object in your config file without trailing whitespace.

Fix Snippet
// .cursor/mcp.json 或 claude_desktop_config.json
{
  "env": {
    "API_KEY": "your_actual_key_here"
  }
}

Tool Mock Playground

Sandbox

url2md Tool Interface Simulation · Preview tool schema & outputs without local runtime

Sandbox Ready
fn: mcpExecute the core tool interface of url2md
Request ArgumentsJSON Schema
{
  "target": "url2md",
  "action": "execute",
  "options": {
    "mode": "standard",
    "timeoutMs": 5000
  }
}
💡Parameters generated dynamically by Agent runtime
Agent Tool Output

Click 'Run Mock' above

to preview the raw response returned to the LLM

Env: AgentHub Virtual SandboxJSON-RPC 2.0

Decision Guide: Why & When to Use

Assess suitability before installing to save trial-and-error time

Best Suited For
  • When your AI Agent needs tool calling capabilities in this domain
  • Automating repetitive workflows in your IDE or terminal
  • Pairing with modern clients supporting MCP/Skill standards
When NOT to Use
  • When missing required API secrets or local runtime prerequisites
  • Pure conversational requests that don't need external system access
Recommended Workflow Pairing:

url2md + Scenario Prompt → Complete Agent Automation

MCP hands-on: install to visible results

Follow the full lab (expected UI/output + contrast checks). After installing this item, verify with the tutorial prompts.

Open tutorial →

Related resources

Often paired with

Keep exploring AgentHub

Most people compare similar tools or check scenario guides before installing—start here.

Listing badge: put AgentHub on your site

Copy either snippet into your project homepage, docs, or GitHub README. The badge is a hotlinked SVG — nothing to host — and it links back to this page so visitors can find the install steps.

PreviewListed on AgentHub: url2md
HTML
<a href="https://myagenthub.cn/p/io.url2md/mcp" title="Listed on AgentHub: url2md" target="_blank" rel="noopener">
  <img src="https://myagenthub.cn/badge/io.url2md/mcp?lang=en" alt="Listed on AgentHub: url2md" height="20" style="border:0"/>
</a>
Markdown (GitHub README)
[![Listed on AgentHub: url2md](https://myagenthub.cn/badge/io.url2md/mcp?lang=en)](https://myagenthub.cn/p/io.url2md/mcp)

Badges are generated on the fly from /badge/<package-id>, so name and listing changes propagate automatically. Keep the link target unchanged — it is what counts as the referral.

Unified Manifest

{
  "id": "io.url2md/mcp",
  "type": "mcp-server",
  "version": "0.1.5",
  "displayName": "url2md",
  "description": "PDFs, JavaScript pages and ordinary HTML as clean Markdown. Follows robots.txt per RFC 9309.",
  "homepage": "https://url2md.io",
  "distribution": {
    "packages": [
      {
        "registryType": "npm",
        "identifier": "@url2md-io/mcp",
        "version": "0.1.5",
        "transport": "stdio",
        "environmentVariables": [
          {
            "name": "URL2MD_PRIVATE_KEY_FILE",
            "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",
            "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.",
            "isSecret": true
          },
          {
            "name": "URL2MD_MAX_PRICE_USD",
            "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",
            "description": "The most this server will commit in total for as long as the process runs. Restarting resets it."
          },
          {
            "name": "URL2MD_BASE_URL",
            "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",
            "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."
          }
        ]
      }
    ],
    "remotes": [
      {
        "transport": "streamable-http",
        "url": "https://url2md.io/mcp"
      }
    ]
  },
  "dependencies": [],
  "installTargets": [
    "claude-code",
    "claude-desktop",
    "cursor",
    "vscode",
    "trae",
    "cherry-studio",
    "lingma",
    "windsurf",
    "cline",
    "workbuddy"
  ],
  "keywords": [],
  "provenance": {
    "origin": "official-mcp-registry",
    "originalId": "io.url2md/mcp",
    "originalUrl": "https://registry.modelcontextprotocol.io/v0.1/servers/io.url2md%2Fmcp/versions/latest",
    "isOfficial": true,
    "status": "active"
  }
}