{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"reddit-1sxzlh6","slug":"pullmd-gave-claude-code-an-mcp-server-so-it-stops-","name":"PullMD - gave Claude Code an MCP server so it stops burning tokens parsing HTML","type":"mcp","url":"https://i.redd.it/vu0jdtms3xxg1.png","page_url":"https://unfragile.ai/pullmd-gave-claude-code-an-mcp-server-so-it-stops-","categories":["mcp-servers"],"tags":["artificial"],"pricing":{"model":"unknown","free":false,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"reddit-1sxzlh6__cap_0","uri":"capability://tool.use.integration.html.to.markdown.conversion.via.mcp.server","name":"html-to-markdown conversion via mcp server","description":"Converts HTML content to Markdown format through a Model Context Protocol server, eliminating the need for Claude to parse raw HTML directly. The MCP server acts as a middleware that handles HTML parsing and transformation, returning clean Markdown that Claude can process with significantly reduced token overhead. This architecture offloads parsing complexity from the LLM's context window to a dedicated service.","intents":["I want Claude to analyze web content without burning tokens on HTML boilerplate","I need to feed Claude extracted web pages but want minimal token waste on markup parsing","I want to give Claude Code access to web content in a format it can reason about efficiently"],"best_for":["developers using Claude Code with frequent web content analysis","teams building Claude-powered web scraping or content analysis agents","builders optimizing token efficiency in LLM-based workflows"],"limitations":["Requires running a separate MCP server process alongside Claude Code","HTML parsing quality depends on the underlying HTML-to-Markdown library used by the server","No built-in handling of JavaScript-rendered content — only static HTML","Token savings depend on HTML-to-Markdown compression ratio, which varies by page structure"],"requires":["Claude Code or compatible MCP client","MCP server implementation (language/runtime depends on PullMD's stack)","Network connectivity between Claude Code and MCP server if remote"],"input_types":["HTML (raw or from web fetch)","HTML strings","HTML file paths"],"output_types":["Markdown text","Structured Markdown with preserved formatting"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"reddit-1sxzlh6__cap_1","uri":"capability://tool.use.integration.mcp.server.registration.and.lifecycle.management","name":"mcp server registration and lifecycle management","description":"Manages the registration, initialization, and lifecycle of the PullMD MCP server within Claude Code's environment. The server exposes tools via the MCP protocol that Claude Code can discover and invoke, handling connection setup, tool schema advertisement, and request/response marshaling between Claude and the server process.","intents":["I want to register a custom HTML processing service with Claude Code","I need Claude Code to discover and use the PullMD server's tools automatically","I want to manage the lifecycle of the MCP server (start, stop, reconnect on failure)"],"best_for":["developers integrating custom MCP servers with Claude Code","teams building extensible Claude-powered workflows","builders implementing protocol-compliant tool providers"],"limitations":["Requires MCP protocol compliance — non-compliant servers will not be discoverable","No built-in auto-restart or health checking — server crashes require manual intervention or external orchestration","Tool schema must be properly defined in MCP format or Claude Code will not recognize tools","Debugging MCP communication requires understanding the protocol specification"],"requires":["Claude Code with MCP support enabled","MCP server implementation following the Model Context Protocol specification","Proper tool schema definitions in JSON format"],"input_types":["MCP server configuration","Tool schema definitions (JSON)"],"output_types":["Tool availability in Claude Code UI","Tool invocation responses"],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"reddit-1sxzlh6__cap_2","uri":"capability://data.processing.analysis.token.efficient.context.window.management.for.web.content","name":"token-efficient context window management for web content","description":"Optimizes Claude's context window usage by pre-processing HTML into Markdown before sending to the model, reducing the token footprint of web content analysis tasks. The MCP server handles compression and formatting, allowing Claude to receive cleaner, denser information that uses fewer tokens per unit of semantic content compared to raw HTML.","intents":["I want to analyze multiple web pages with Claude without hitting context limits","I need to maximize the amount of web content Claude can reason about in a single request","I want to reduce API costs by lowering token consumption for web-based tasks"],"best_for":["cost-conscious teams running high-volume web analysis with Claude","developers building long-running agents that process many web pages","builders optimizing for context window constraints in Claude Opus or Sonnet"],"limitations":["Token savings are variable and depend on HTML structure — highly semantic HTML may compress better than bloated markup","Markdown conversion may lose some visual/layout information that was present in HTML","No adaptive compression — the server uses a fixed conversion strategy regardless of downstream token budget","Savings are only realized if Claude Code actually uses the Markdown output; if Claude re-parses or re-requests HTML, benefits are lost"],"requires":["Claude Code or compatible MCP client","PullMD MCP server running","HTML input (from web fetch, file, or string)"],"input_types":["HTML content"],"output_types":["Markdown text (compressed relative to input HTML)"],"categories":["data-processing-analysis","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"reddit-1sxzlh6__cap_3","uri":"capability://data.processing.analysis.web.content.extraction.and.normalization.for.llm.consumption","name":"web content extraction and normalization for llm consumption","description":"Extracts meaningful content from HTML pages and normalizes it into a format optimized for LLM processing. The MCP server parses HTML structure, removes boilerplate (navigation, ads, scripts), preserves semantic content, and outputs clean Markdown with proper heading hierarchy and link preservation, enabling Claude to focus on substantive content.","intents":["I want Claude to analyze a web page without being distracted by navigation menus and ads","I need to extract the main content from a web page and feed it to Claude","I want to preserve links and structure when converting HTML to a format Claude can reason about"],"best_for":["developers building web scraping agents powered by Claude","teams extracting content from news sites, documentation, or research pages","builders creating Claude-powered content analysis or summarization tools"],"limitations":["Boilerplate removal heuristics may incorrectly strip content on non-standard page layouts","No JavaScript execution — dynamic content loaded by JS will not be extracted","Link preservation depends on proper href attributes in HTML; relative links may not resolve correctly","Heading hierarchy detection relies on proper semantic HTML; pages with div-based layouts may lose structure"],"requires":["Claude Code with MCP support","PullMD MCP server","Valid HTML input"],"input_types":["HTML (raw or from web fetch)"],"output_types":["Normalized Markdown with preserved structure, links, and headings"],"categories":["data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"reddit-1sxzlh6__cap_4","uri":"capability://data.processing.analysis.markdown.formatting.preservation.with.semantic.structure","name":"markdown formatting preservation with semantic structure","description":"Converts HTML to Markdown while preserving semantic structure including heading hierarchies, emphasis (bold/italic), lists, code blocks, blockquotes, and link references. The conversion maintains the logical document structure so Claude can reason about content organization and relationships between sections, not just raw text.","intents":["I want Claude to understand the document structure of a web page, not just the text content","I need to preserve heading hierarchies so Claude can navigate long documents","I want links to remain intact so Claude can reference sources or suggest follow-up reads"],"best_for":["teams using Claude for document analysis and summarization","developers building research assistants that need to preserve source structure","builders creating Claude-powered documentation tools"],"limitations":["Complex HTML structures (nested tables, multi-column layouts) may not convert cleanly to Markdown","Markdown has limited formatting options compared to HTML — some visual styling will be lost","Code block language detection depends on HTML class attributes; unlabeled code blocks may lose language hints","Blockquote nesting depth is limited in Markdown; deeply nested quotes may flatten"],"requires":["Claude Code with MCP support","PullMD MCP server","Semantically valid HTML"],"input_types":["HTML with semantic markup (headings, lists, emphasis, links)"],"output_types":["Markdown with preserved heading hierarchy, emphasis, lists, links, and code blocks"],"categories":["data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":37,"verified":false,"data_access_risk":"moderate","permissions":["Claude Code or compatible MCP client","MCP server implementation (language/runtime depends on PullMD's stack)","Network connectivity between Claude Code and MCP server if remote","Claude Code with MCP support enabled","MCP server implementation following the Model Context Protocol specification","Proper tool schema definitions in JSON format","PullMD MCP server running","HTML input (from web fetch, file, or string)","Claude Code with MCP support","PullMD MCP server"],"failure_modes":["Requires running a separate MCP server process alongside Claude Code","HTML parsing quality depends on the underlying HTML-to-Markdown library used by the server","No built-in handling of JavaScript-rendered content — only static HTML","Token savings depend on HTML-to-Markdown compression ratio, which varies by page structure","Requires MCP protocol compliance — non-compliant servers will not be discoverable","No built-in auto-restart or health checking — server crashes require manual intervention or external orchestration","Tool schema must be properly defined in MCP format or Claude Code will not recognize tools","Debugging MCP communication requires understanding the protocol specification","Token savings are variable and depend on HTML structure — highly semantic HTML may compress better than bloated markup","Markdown conversion may lose some visual/layout information that was present in HTML","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.6,"quality":0.2,"ecosystem":0.18,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:25.061Z","last_scraped_at":"2026-05-04T07:51:19.884Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=pullmd-gave-claude-code-an-mcp-server-so-it-stops-","compare_url":"https://unfragile.ai/compare?artifact=pullmd-gave-claude-code-an-mcp-server-so-it-stops-"}},"signature":"SATPw5/USrJ+gR003t6y5DRAasZlUrgqoNbe3QI4h15zp3AiFQRBGmLwH7qW+LQ+Ia2IngvKHBMT7JpZAF+xDQ==","signedAt":"2026-06-22T05:19:59.004Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/pullmd-gave-claude-code-an-mcp-server-so-it-stops-","artifact":"https://unfragile.ai/pullmd-gave-claude-code-an-mcp-server-so-it-stops-","verify":"https://unfragile.ai/api/v1/verify?slug=pullmd-gave-claude-code-an-mcp-server-so-it-stops-","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}