PullMD - Claude Code가 HTML 파싱에 토큰을 낭비하지 않도록 해주는 MCP 서버
PullMD - gave Claude Code an MCP server so it stops burning tokens parsing HTML
핵심 요약
Claude Code가 웹 페이지를 읽을 때 HTML 보일러플레이트를 제거하고 깔끔한 마크다운만 추출해 토큰 소모를 획기적으로 줄여주는 자체 호스팅 MCP 서버.
- 토큰 효율화 — HTML 보일러플레이트를 제거하고 핵심 콘텐츠만 추출하여 토큰 소모를 획기적으로 줄임.
- MCP 지원 — Claude Code, Desktop, Cursor 등 MCP 호환 도구와 즉시 연동 가능.
- 자체 호스팅 — Docker 기반으로 외부 서비스 없이 로컬 환경에서 안전하게 실행 가능.
- 다중 추출 전략 — Cloudflare, Trafilatura, Playwright 등을 조합해 JS 렌더링 사이트까지 완벽 대응.
여러분 안녕하세요,
지난 몇 주 동안 두 가지 문제 때문에 짜증이 나서 이걸 만들었습니다:
1. 모바일 복사-붙여넣기는 너무 끔찍합니다. 폰으로 긴 레딧 스레드나 블로그 글을 보다가 Claude한테 물어보고 싶을 때, 길게 눌러서 선택하고, 내비게이션/사이드바/푸터 피해서 드래그하고, 복사하고, 앱 전환해서 붙여넣기까지... 어려운 건 아니지만 너무 귀찮아서 해결하고 싶었습니다.
2. Claude Code가 HTML 보일러플레이트에 토큰을 낭비합니다. 에이전트가 원본 HTML을 가져와서 불필요한 부분을 파싱하게 두는 건 엄청나게 비효율적입니다. 일반적인 기사는 80%가 내비게이션/쿠키 배너/푸터이고, 콘텐츠는 20%뿐입니다. 에이전트가 질문에 답하기 전에 쿠키 배너와 씨름할 필요는 없죠.
그래서 PullMD를 만들었습니다. 어떤 URL이든 깔끔한 마크다운으로 변환해주는 완전한 자체 호스팅 Docker 스택이며, MCP를 완벽하게 지원해서 Claude Code(및 Desktop, Cursor 등 MCP 호환 도구)가 미리 정제된 콘텐츠를 직접 받을 수 있습니다. 제3자 서비스 없이 여러분의 서버에서 직접 실행됩니다.
세 줄로 끝내는 셀프 호스팅
Docker Hub에 멀티 아키텍처 이미지(linux/amd64, linux/arm64)가 있습니다. 설정 없는 compose:
mkdir pullmd && cd pullmd
curl -O https://raw.githubusercontent.com/AeternaLabsHQ/pullmd/main/docker-compose.yml
docker compose up -d
# → http://localhost:3000
스택에는 세 가지 서비스가 포함됩니다: 메인 앱(Node.js), Trafilatura 사이드카(Python), Playwright 사이드카(선택 사항, JS가 많은 페이지를 위한 약 3.7GB Chromium 번들 - 끄면 PullMD가 정적 추출로 조용히 전환됨). 합리적인 기본값과 Traefik 예시가 포함되어 있으며 GHCR 미러도 사용 가능합니다.
Claude 사용자를 위한 작동 방식
/mcp에 있는 MCP 서버(Streamable HTTP, 상태 비저장)는 세 가지 도구를 제공합니다:
read_url- URL을 가져와 변환get_share- 이전에 가져온 변환본을 공유 ID로 검색list_recent- 최근 변환 목록 확인
Claude Code에 한 줄로 추가:
claude mcp add --transport http pullmd https://your-instance.example.com/mcp
Claude Desktop은 JSON 설정에 추가하세요:
{
"mcpServers": {
"pullmd": {
"type": "http",
"url": "https://your-instance.example.com/mcp"
}
}
}
Claude Code 스킬 번들 - 실행 중인 인스턴스가 URL이 포함된 을 생성합니다. 에 넣고 Claude Code를 재시작하면 웹 읽기 요청 시 스킬이 활성화됩니다. MCP 서버를 추가하고 싶지 않지만 Claude가 PullMD를 사용하도록 유도하고 싶을 때 유용합니다.


