Claude Code 내부에서 경쟁사 백링크를 찾는 방법 (MCP를 통한 무료 활용)
요약
MCP(Model Context Protocol) 서버인 crawlgraph-mcp를 활용하여 Claude Code 내에서 경쟁사 백링크를 자동으로 분석하는 방법을 소개합니다. 별도의 SEO 대시보드 없이 단일 프롬프트로 격차 분석부터 아웃리치 이메일 초안 작성까지 에이전트가 수행하도록 설정할 수 있습니다.
핵심 포인트
- MCP 서버를 통해 Claude Code 내에서 백링크 데이터 직접 조회 가능
- crawlgraph-mcp 오픈소스를 활용한 무료 데이터 접근 방식
- 경쟁사 격차 분석(Gap Analysis) 및 자동 이메일 초안 작성 자동화
- Common Crawl 데이터를 기반으로 한 데이터 무결성 확보
백링크 조사 (Backlink prospecting)는 대시보드 → CSV 내보내기 → 육안 확인 → 도메인 복사 → 이메일로 전환하는 등 탭을 계속 옮겨 다녀야 하는 번거로운 작업입니다. 이는 필터링 및 순위 지정 (filter-and-rank) 문제이며, 바로 에이전트 (agent)가 당신을 대신해 수행해야 할 전형적인 작업입니다. 따라서 무료 MCP 서버를 사용하여 단 한 번의 프롬프트로 Claude Code (또는 Cursor / Cline / Zed / Windsurf) 내부에서 이 모든 과정을 수행하는 방법을 소개합니다.
이 과정을 따라 하는 데 별도의 제휴 관계는 필요하지 않습니다. 데이터는 공개된 Common Crawl 웹그래프 (webgraph)를 사용하며, MCP 래퍼 (wrapper)는 오픈 소스입니다.
우리가 목표로 하는 결과물
이 과정을 마치면 에이전트에 다음과 같이 입력하여 순위가 매겨지고 노이즈가 제거된 목록을 받을 수 있습니다.
"competitor-a.com, competitor-b.com, competitor-c.com에는 링크를 걸고 있지만 my-site.com에는 링크를 걸지 않은 사이트들을 찾고, 각 사이트에 보낼 짧은 아웃리치 (outreach) 이메일 초안을 작성해줘."
에이전트는 당신이 단 하나의 SEO 대시보드도 열지 않고도 경쟁사 격차 분석 (competitor gap analysis)을 실행하고, 가치가 가장 높은 타겟을 필터링하며, 이메일을 작성합니다.
1단계: MCP 서버 설치
서버는 npm에 있는 crawlgraph-mcp입니다. 이는 백링크 API를 위한 얇은 TypeScript stdio 래퍼 (wrapper)이며, 별도로 클론(clone)하거나 빌드할 필요가 없습니다.
MCP 설정(claude_desktop_config.json 또는 Claude Code용 .mcp.json)에 다음을 추가하세요:
{
"mcpServers": {
"crawlgraph": {
...
계정 페이지에서 cg_live_ 키를 가져온 후 클라이언트를 재시작하면 backlinks, gap_analysis, gap_outreach_targets, releases라는 네 가지 도구가 나타나는 것을 확인할 수 있습니다.
2단계: 데이터 무결성 확인 (sanity-check)
아웃리치에 신뢰하기 전에, 당신이 잘 알고 있는 도메인을 대상으로 테스트해 보세요. 에이전트에 다음과 같이 입력합니다:
"stripe.com에 대해 backlinks 도구를 사용해줘. 개수는 5개로 제한하고, 권위도 (authority) 순으로 정렬해줘."
그러면 상위 참조 도메인(referring domains)과 대상의 권위도 점수를 얻게 됩니다:
{
"domain": "stripe.com",
"total_linking_domains": 100000,
...
이 total_linking_domains 수치는 빠른 직관적 확인 (gut-check) 방법입니다. 현재 사용 중인 도구가 동일한 도메인에 대해 보고하는 수치와 비교해 보세요. 비슷한 범위 내에 있다면, 해당 그래프는 조사를 수행하기에 충분히 완전한 상태입니다.
3단계: 실제 실행 — 격차 분석 (gap analysis)
기본 도구(primitive)는 gap_analysis입니다. 귀하의 도메인과 2~5개의 경쟁사를 입력하면, 귀하에게는 링크를 걸지 않았지만 최소 하나 이상의 경쟁사에는 링크를 걸고 있는 모든 도메인을 반환하며, 각 도메인은 어떤 경쟁사에 링크를 걸고 있는지(found_on) 태그가 붙습니다.
가공되지 않은 출력값(raw output)은 '재료'일 뿐, 정답이 아닙니다. 1,000행짜리 데이터 덤프를 원하는 것이 아니라, 이메일을 보낼 가치가 있는 수십 개의 데이터가 필요합니다. 그 역할을 수행하는 것이 바로 상위 단계인 gap_outreach_targets입니다.
- 격차(gap) 내의 도메인 중 귀하의 경쟁사 모두에게 링크를 거는 도메인만 유지합니다 (세 곳 모두에 링크를 거는 사이트는 귀하의 니치(niche) 시장 전체를 다루고 있으며 단지 귀하를 모르고 있을 뿐이므로, 가장 잠재력이 높은 타겟입니다).
- 플랫폼/CDN 노이즈(amazonaws, github.io, facebook, 단축 URL 등)를 제거합니다.
- 살아남은 도메인들을 권위도(authority) 순으로 정렬합니다.
따라서 귀하는 곧바로 다음과 같이 명령할 수 있습니다:
"my-site.com을 대상으로 competitor-a.com, competitor-b.com, competitor-c.com에 대한 gap_outreach_targets를 실행해줘."
그러면 다음과 같은 결과를 얻게 됩니다:
{
"priority_targets": [
{ "linking_domain": "industry-roundup.com", "found_on": ["competitor-a.com","competitor-b.com","competitor-c.com"], "cg_authority": 73 },
...
4단계: 에이전트에게 아웃리치(outreach) 작성을 맡기기
이 지점이 대시보드에서 작업하는 것보다 에이전트를 사용하는 것이 압도적으로 유리한 부분입니다. 리스트가 이미 컨텍스트(context)에 포함되어 있으므로 다음과 같이 명령할 수 있습니다:
"각 우선순위 타겟(priority target)에 대해 3문장으로 구성된 아웃리치 이메일 초안을 작성해줘. 그들이 내 니치 분야에서 링크를 거는 콘텐츠의 종류를 언급하고, my-site.com이 적합하다는 점을 제안해줘. 템플릿을 쓰지 말고 구체적으로 작성해."
동일한 세션 내에서 타겟별 이메일 초안을 바로 받아볼 수 있습니다. 물론 귀하의 말투로 직접 수정해야 합니다. 수정 없이 발송되는 콜드 아웃리치(cold outreach)는 무시되기 마련이니까요. 하지만 과거에 오후 내내 걸리던 '수집 → 필터링 → 순위 지정 → 초안 작성'의 체인이 이제는 단 한 번의 대화로 끝납니다.
왜 한 곳이 아니라 2~3개의 경쟁사인가
단 한 명의 경쟁사에게만 링크를 거는 사이트는 우연이거나 유료 광고(paid placement)일 수 있습니다. 하지만 귀하의 경쟁사 중 세 곳에 링크를 거는 사이트는 귀하의 카테고리를 다루는 퍼블리셔(publisher)입니다. 그 중첩(overlap)이 바로 자격 요건입니다. 이것이 잠재 고객 리스트와 노이즈 리스트를 가르는 차이점입니다.
솔직한 한계점
- 분기별 스냅샷 (Quarterly snapshot). Common Crawl은 연간 약 4회 게시되므로, 이는 일회성 잠재 고객 발굴 (prospecting) 용도이며 실시간 링크 모니터링용은 아닙니다. "이번 주에 무엇이 변했는가"를 확인하려면 지속적 크롤링 (continuous-crawl) 도구를 사용하십시오.
- 앵커 텍스트 (Anchor text) 없음: 갭 (gap) 출력 결과에는 앵커 텍스트가 포함되지 않습니다 (웹그래프 (webgraph)는 소스→대상 엣지 (edges)로 구성됩니다).
- 할당량 (Quotas): 무료 경로는 가벼운 사용을 지원하며, 더 많은 사용을 위해서는 라이프타임 티어 (lifetime tier, 월간 백링크 호출 1,000회 + 갭 작업 50회)가 필요합니다.
이 패턴이 백링크 이상으로 중요한 이유
흥미로운 점은 SEO가 아닙니다. 잘 설계된 MCP 도구는 단순한 API 호출이 아니라 하나의 _워크플로우 (workflow)_를 인코딩할 수 있다는 점입니다. gap_outreach_targets는 단순히 엔드포인트 (endpoint)를 반영하는 것이 아니라, 그렇지 않으면 모델에게 매번 다시 설명해야 할 필터링 및 순위 지정 (filtering-and-ranking) 판단을 수행합니다. 만약 MCP 서버를 구축하고 있다면, 그것이 바로 지렛대입니다. 단순히 가공되지 않은 행 (raw rows)을 반환하는 것이 아니라, 즉시 의사결정이 가능한 답변을 반환하는 복합 도구 (composite tool)를 배포하십시오.
서버는 MIT 라이선스이며 GitHub에서 확인할 수 있습니다 (npx -y crawlgraph-mcp). 만약 갭 (gap) 전략을 시도해 보신다면, 우선순위/차순위 분리가 직접 수동으로 선택했을 결과와 일치하는지 진심으로 듣고 싶습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기