Context7: AI 코딩 도구에 최신 문서를 주입하는 MCP 서버
AI 코딩 도구를 쓰다 보면 한 번쯤 이런 경험을 해보셨을 겁니다. Next.js 15의 새로운 API를 물어봤더니 Next.js 13 방식으로 답변하거나, 최근 메이저 버전에서 완전히 바뀐 설정 방법 대신 이미 폐기된 옛날 코드를 뱉어내는 경우요. AI 모델은 학습 데이터의 지식 컷오프(knowledge cutoff) 이후에 변경된 내용을 모르기 때문에 어쩔 수 없이 겪게 되는 문제입니다.
Context7은 이걸 해결하려고 만들어진 MCP 서버예요. 9,000개 이상의 오픈소스 라이브러리 공식 문서를 인덱싱해두고, AI 코딩 도구가 코드를 생성할 때 최신 문서와 코드 예제를 실시간으로 끌어다 쓸 수 있게 해줍니다.
Context7이 풀려는 문제
LLM은 학습 시점의 데이터를 기반으로 답변합니다. 학습 데이터에 포함되지 않은 최신 버전의 API나 설정 방식에 대해서는 정확한 답변을 내놓기 어렵죠. React 19, Tailwind CSS 4, Next.js 15처럼 메이저 업데이트가 있었던 라이브러리를 쓸 때 이 문제가 특히 두드러집니다.
Tailwind CSS 4에서는 설정 파일 방식이 완전히 달라졌는데 AI 도구에게 “Tailwind CSS 설정해줘”라고 하면 높은 확률로 tailwind.config.js를 만들어줍니다. 존재하지 않는 API를 자신 있게 알려주는 이른바 “환각(hallucination)” 현상도 빈번하고요.
Context7은 프롬프트에 “use context7”이라는 한 마디만 붙이면 이 문제를 해결해줍니다. AI 도구가 코드를 생성하기 전에 공식 문서에서 관련 내용을 가져와 컨텍스트 윈도우에 넣어주는 방식이에요.
동작 원리
Context7의 내부 파이프라인은 다섯 단계로 이루어져 있습니다.
공식 문서에서 코드 스니펫과 설명을 파싱(Parse) 하고, LLM을 활용해 추출한 내용에 부가 설명을 보강(Enrich) 합니다. 그 뒤 시맨틱 검색이 가능하도록 벡터로 임베딩(Vectorize) 하고, 자체 알고리즘으로 리랭킹(Rerank) 해서 검색 정확도를 높여요. 마지막 단계는 Redis를 통한 캐싱(Cache)으로 응답 속도를 끌어올립니다.
MCP(Model Context Protocol) 서버로서 두 가지 도구를 노출하는데요. resolve-library-id는 라이브러리 이름을 Context7 내부 ID로 변환합니다. “next.js”라고 입력하면 /vercel/next.js 같은 형태의 ID를 돌려주죠. query-docs는 이 ID와 검색어를 받아 관련 문서와 코드 예제를 가져옵니다.
실제로 쓸 때는 이 과정이 뒤에서 자동으로 이뤄지기 때문에 개발자가 따로 신경 쓸 건 없어요. “use context7”만 프롬프트에 붙이면 AI 도구가 알아서 resolve-library-id → query-docs 순서로 호출해서 문서를 가져옵니다.
설치와 설정
가장 간단한 방법은 CLI를 사용한 자동 설정입니다. 이 명령어 하나로 OAuth 인증부터 API 키 생성, MCP 서버와 Skill 설치까지 알아서 처리해줍니다.
bunx ctx7 setup
먼저 MCP 서버와 CLI 중 어떤 방식으로 접근할지 선택합니다.
❯ bunx ctx7 setup
? How should your agent access Context7?
❯ MCP server
Agent calls Context7 tools via MCP protocol to retrieve up-to-date library docs
CLI + Skills
Installs a find-docs skill that guides your agent to fetch up-to-date library docs using ctx7 CLI commands
MCP server를 선택하면 MCP 서버 설정과 함께 context7-mcp이라는 스킬이 설치됩니다. AI 도구가 MCP 프로토콜을 통해 resolve-library-id → query-docs 도구를 호출하는 방식이에요. MCP를 지원하는 도구라면 어디서든 동일하게 동작합니다.
CLI + Skills를 선택하면 find-docs라는 스킬이 설치돼요. AI 도구가 MCP 도구 대신 ctx7 library → ctx7 docs bash 명령어를 실행해서 문서를 가져옵니다. MCP를 지원하지 않는 환경에서도 사용할 수 있다는 게 장점이에요.
MCP 서버를 선택하면 어떤 AI 도구에 설정할지 고릅니다.
✔ How should your agent access Context7? MCP server
? Which agents do you want to set up?
❯◯ Claude Code
◯ Cursor
◯ OpenCode
도구를 선택하면 브라우저가 열리면서 OAuth 인증이 진행됩니다.
✔ Which agents do you want to set up? Claude Code
Opening browser to log in...
✔ Login successful!
✔ Authenticated
✔ Context7 setup complete
Claude Code
+ MCP server configured with API Key
/Users/dale/.claude.json
+ Rule installed
/Users/dale/.claude/rules/context7.md
+ Skill installed
/Users/dale/.claude/skills/context7-mcp/SKILL.md
대화형 설정을 하지 않고, 특정 도구에만 설정하고 싶으면 플래그를 붙이면 돼요.
bunx ctx7 setup --cursor # Cursor
bunx ctx7 setup --claude # Claude Code
bunx ctx7 setup --opencode # OpenCode
수동으로 MCP 설정을 하고 싶다면 클로드 코드의 MCP 설정에 다음처럼 추가하면 됩니다. 로컬에서 MCP 서버 프로세스를 실행하는 방식(stdio)이라 별도 API 키 없이도 바로 사용할 수 있어요.
{
"mcpServers": {
"context7": {
"command": "npx",
"args": ["-y", "@upstash/context7-mcp@latest"]
}
}
}
로컬에 Node.js를 설치할 수 없는 환경이라면 원격 MCP URL을 사용할 수도 있습니다. 이 경우 context7.com 대시보드에서 API 키를 발급받아야 해요.
{
"mcpServers": {
"context7": {
"type": "http",
"url": "https://mcp.context7.com/mcp",
"headers": {
"CONTEXT7_API_KEY": "🔑"
}
}
}
}
대부분의 경우 첫 번째 방식(stdio)이 설정도 간단하고 API 키 관리도 필요 없어서 추천됩니다.
실제 사용 예시
사용법은 정말 간단해요. 기존 프롬프트 끝에 “use context7”만 추가하면 됩니다.
Next.js에서 미들웨어를 사용해 인증 안 된 사용자를 리다이렉트하는 코드를 작성해줘. use context7
이렇게 하면 AI 도구가 Context7 MCP 서버를 호출해서 Next.js 공식 문서에서 미들웨어 관련 최신 내용을 가져옵니다. 그 문서를 바탕으로 코드를 생성하니까 학습 데이터에만 의존할 때보다 훨씬 정확한 코드를 받을 수 있어요.
특정 라이브러리를 명시적으로 지정할 수도 있습니다.
use library /supabase/supabase for API and docs
ctx7 CLI
Context7은 MCP 서버뿐 아니라 CLI도 제공합니다. AI 도구 없이 터미널에서 직접 문서를 검색하고 싶을 때 유용해요. “CLI + Skills” 방식으로 설정하면 AI 도구가 이 CLI를 자동으로 호출하지만, 개발자가 수동으로 실행할 수도 있습니다. 설치 없이 bunx ctx7 또는 npx ctx7@latest로 바로 실행 가능합니다.
사용법은 2단계입니다. 먼저 ctx7 library로 라이브러리 이름을 Context7 ID로 변환하고, 그 ID를 ctx7 docs에 넘겨서 문서를 가져옵니다.
# 1단계: 라이브러리 ID 조회
bunx ctx7 library nextjs "app router에서 미들웨어 설정하는 방법"
# 2단계: 해당 라이브러리의 문서 검색
bunx ctx7 docs /vercel/next.js "app router에서 미들웨어 설정하는 방법"
ctx7 library에 넘기는 검색어는 필수이고 결과 랭킹에 직접 영향을 줍니다. “react”처럼 이름만 넘기면 비슷한 이름의 라이브러리가 여러 개 뜰 수 있는데, "useEffect 클린업 함수에서 비동기 처리" 같이 의도를 담은 문장을 함께 넘기면 원하는 라이브러리를 정확하게 찾아줘요. 결과에는 라이브러리 ID, 설명, 코드 스니펫 수, 소스 신뢰도(High/Medium/Low), 벤치마크 점수, 사용 가능한 버전 목록이 포함됩니다.
ctx7 docs의 쿼리도 마찬가지로 구체적일수록 좋습니다. "middleware" 같은 단어 하나보다 "app router에서 미들웨어 설정하는 방법" 같은 문장이 더 정확한 결과를 돌려줘요. 결과에는 코드 스니펫(언어별 코드 블록)과 정보 스니펫(설명 텍스트)이 함께 나옵니다. 특정 버전의 문서가 필요하면 라이브러리 ID 뒤에 버전을 붙이면 됩니다. 사용 가능한 버전 목록은 ctx7 library 결과에서 확인할 수 있어요.
# 최신 인덱싱된 버전
bunx ctx7 docs /vercel/next.js "app router 설정"
# 특정 버전
bunx ctx7 docs /vercel/next.js/v14.3.0-canary.87 "app router 설정"
CLI는 인증 없이도 동작하지만 무료 티어의 요청 한도에 걸리면 bunx ctx7 login으로 OAuth 인증을 하거나 CONTEXT7_API_KEY 환경 변수를 설정해서 한도를 올릴 수 있습니다.
llms.txt와의 관계
Context7은 llms.txt라는 표준도 적극적으로 활용합니다. llms.txt는 robots.txt의 LLM 버전 같은 건데, 웹사이트가 LLM에게 자신의 콘텐츠 구조를 알려주는 파일이에요.
Context7은 오픈소스 패키지의 llms.txt 파일을 자동으로 생성하고 인덱싱합니다. 패키지 관리자가 직접 llms.txt를 만들지 않아도 Context7이 공식 문서를 분석해서 검색 가능한 형태로 변환해주는 거죠. context7.com에서 라이브러리를 검색하면 인덱싱된 문서를 미리 확인해볼 수도 있고요.
지원하는 라이브러리
2026년 3월 기준으로 9,000개 이상의 라이브러리가 인덱싱되어 있습니다. React, Vue, Next.js, Astro, Supabase, Prisma, Tailwind CSS 같은 인기 라이브러리는 대부분 포함되어 있고 버전별 문서도 관리돼요. 다만 아주 최신 릴리스는 인덱싱에 며칠 걸릴 수 있습니다.
Cursor, Claude Code, VS Code Copilot, Windsurf 등 MCP 프로토콜을 지원하는 도구라면 어디서든 사용 가능합니다. MCP Registry에서 Context7을 검색하면 설치 방법도 간편하게 확인할 수 있어요.
가격 정책
Context7은 무료 티어와 유료 플랜을 제공합니다. 무료로 월 1,000건까지 요청할 수 있어서 개인 개발이나 학습 용도로는 충분해요. 유료 플랜은 월 $10입니다. 원래는 무료 한도가 6,000건으로 넉넉했는데 2026년 1월에 1,000건으로 줄었으니 참고하세요.
ContextCrush 보안 취약점
Context7을 쓸 때 알아둬야 할 보안 이슈가 하나 있습니다. 2026년 2월에 보안 연구 기업 Noma Security가 “ContextCrush”라는 취약점을 발견했어요.
어떤 공격이냐면, Context7에 악성 라이브러리를 등록하고 “Custom Rules” 형태로 악성 지시를 심어놓는 겁니다. 개발자가 해당 라이브러리의 문서를 요청하면 AI 도구가 이 악성 지시를 신뢰할 수 있는 문서로 받아들이게 되죠. 개념 증명(PoC)에서는 .env 파일에서 인증 정보를 빼내거나 로컬 파일을 삭제하는 시나리오가 시연되었습니다.
다행히 실제 악용 사례는 보고되지 않았고 Upstash 팀이 신고 5일 만에 패치를 배포했어요. 하지만 이 사건은 MCP 프로토콜 자체의 구조적 한계를 보여줬습니다. MCP 스펙에는 신뢰할 수 있는 도구 메타데이터와 그렇지 않은 것을 구분하는 표준 메커니즘이 아직 없거든요. 외부 MCP 서버를 사용할 때는 이런 공급망 공격 가능성을 항상 염두에 두는 게 좋겠습니다.
대안 도구들
Context7 말고도 비슷한 문제를 풀려는 도구가 여럿 있습니다.
GitMCP는 GitHub 저장소의 llms.txt나 README를 직접 읽어오는 방식이에요. 별도의 인덱싱 서버 없이 동작하기 때문에 중앙 서버에 의존하지 않고 설정도 필요 없습니다. 무료고요.
Docfork는 Context7과 비슷하게 9,000개 이상의 라이브러리를 지원하는데 MIT 라이선스로 완전한 오픈소스입니다. 자체 서버를 운영할 수도 있어서 보안이 중요한 환경에서 고려해볼 만해요.
Cognition(Devin 개발사)이 만든 DeepWiki는 좀 다른 접근을 취합니다. 단순한 문서 검색을 넘어 저장소의 아키텍처 다이어그램이나 내부 구조까지 AI로 분석해주는 게 특징이에요.
넓은 라이브러리 커버리지가 필요하면 Context7이나 Docfork, 외부 서버 의존 없이 가볍게 쓰고 싶다면 GitMCP가 적합합니다.
Thoughtworks 기술 레이더 등재
Context7은 Thoughtworks Technology Radar에서 “Trial” 등급을 받기도 했습니다. “Trial”은 리스크를 감당할 수 있는 프로젝트에서 시도해볼 만하다는 뜻인데요. Thoughtworks는 Context7이 코드 환각을 크게 줄이고 오래된 학습 데이터에 대한 의존도를 낮춘다고 평가했어요.
다만 한계도 함께 언급했습니다. 클라우드 의존성 때문에 오프라인에서는 못 쓰고, 쿼리가 Upstash 서버를 거쳐야 하며, 큰 응답이 컨텍스트 윈도우를 잡아먹을 수 있다는 점이에요. 도입을 검토할 때 참고하면 좋겠습니다.
마치며
Context7은 AI 코딩 도구의 가장 큰 약점인 “오래된 지식”을 보완해주는 도구입니다. 프롬프트에 “use context7” 한 줄만 추가하면 최신 공식 문서를 기반으로 코드를 생성할 수 있으니 최신 프레임워크를 다루는 프로젝트에서 특히 유용해요. 다만 ContextCrush 사건에서 봤듯이 외부 MCP 서버의 보안은 항상 신경 써야 합니다. 민감한 프로젝트에서는 AI 도구의 권한 설정을 꼼꼼히 살피고 생성된 코드를 반드시 리뷰하는 습관을 갖는 게 좋겠습니다.
더 자세한 내용은 Context7 공식 문서를 참고하세요.
This work is licensed under
CC BY 4.0