name: documentation-lookup
description: 학습 데이터 대신 Context7 MCP를 통해 최신 라이브러리 및 프레임워크 문서를 사용합니다. 설정 질문, API 참조, 코드 예시 또는 사용자가 프레임워크(예: React, Next.js, Prisma) 이름을 언급할 때 활성화됩니다.
origin: ECC
문서 조회 (Context7)
사용자가 라이브러리, 프레임워크 또는 API에 대해 질문할 때, 학습 데이터에 의존하는 대신 Context7 MCP(도구: resolve-library-id, query-docs)를 통해 최신 문서를 가져옵니다.
핵심 개념
- Context7: 라이브러리 및 API에 대한 실시간 문서를 노출하는 MCP 서버입니다. 학습 데이터 대신 이를 사용하세요.
- resolve-library-id: 라이브러리 이름과 쿼리를 토대로 Context7 호환 라이브러리 ID(예:
/vercel/next.js)를 반환합니다.
- query-docs: 주어진 라이브러리 ID와 질문에 대한 문서 및 코드 스니펫을 가져옵니다. 항상
resolve-library-id를 먼저 호출하여 유효한 라이브러리 ID를 얻어야 합니다.
사용 시점
사용자가 다음과 같은 요청을 할 때 활성화하세요:
- 설정 또는 구성 관련 질문 (예: "Next.js 미들웨어를 어떻게 설정하나요?")
- 라이브러리에 의존하는 코드 요청 ("...를 위한 Prisma 쿼리를 작성해줘")
- API 또는 참조 정보 필요 ("Supabase 인증 메서드에는 무엇이 있나요?")
- 특정 프레임워크나 라이브러리 언급 (React, Vue, Svelte, Express, Tailwind, Prisma, Supabase 등)
요청이 라이브러리, 프레임워크 또는 API의 정확하고 최신 동작에 의존할 때마다 이 스킬을 사용하세요. Context7 MCP가 구성된 모든 환경(예: Claude Code, Cursor, Codex)에 적용됩니다.
동작 방식
1단계: 라이브러리 ID 확인 (Resolve)
다음 인자와 함께 resolve-library-id MCP 도구를 호출합니다:
- libraryName: 사용자의 질문에서 추출한 라이브러리 또는 제품 이름 (예:
Next.js, Prisma, Supabase).
- query: 사용자의 전체 질문. 결과의 관련성 순위를 높이는 데 도움이 됩니다.
문서를 쿼리하기 전에 반드시 Context7 호환 라이브러리 ID(/org/project 또는 /org/project/version 형식)를 얻어야 합니다. 이 단계에서 유효한 ID를 얻지 못했다면 query-docs를 호출하지 마세요.
2단계: 최적의 일치 항목 선택
확인 결과에서 다음 기준에 따라 하나의 결과를 선택합니다:
- 이름 일치: 사용자가 요청한 것과 정확히 일치하거나 가장 가까운 것을 선호합니다.
- 벤치마크 점수: 점수가 높을수록 문서 품질이 좋습니다(최대 100점).
- 소스 신뢰도(Reputation): 가능한 경우 High 또는 Medium 신뢰도를 선호합니다.
- 버전: 사용자가 버전을 명시한 경우(예: "React 19", "Next.js 15"), 목록에 있다면 버전별 라이브러리 ID(예:
/org/project/v1.2.0)를 선호합니다.
3단계: 문서 가져오기 (Fetch)
다음 인자와 함께 query-docs MCP 도구를 호출합니다:
- libraryId: 2단계에서 선택한 Context7 라이브러리 ID (예:
/vercel/next.js).
- query: 사용자의 구체적인 질문 또는 작업. 관련성 높은 스니펫을 얻기 위해 구체적으로 작성하세요.
제한: 질문 하나당 query-docs(또는 resolve-library-id)를 3회 이상 호출하지 마세요. 3회 호출 후에도 답변이 불명확하다면, 불확실함을 밝히고 추측하는 대신 가지고 있는 최선의 정보를 사용하세요.
4단계: 문서 활용
- 가져온 최신 정보를 사용하여 사용자의 질문에 답변합니다.
- 도움이 된다면 문서의 관련 코드 예시를 포함하세요.
- 중요한 경우 라이브러리나 버전을 인용하세요 (예: "Next.js 15에서는...").
예시
예시: Next.js 미들웨어
libraryName: "Next.js", query: "Next.js 미들웨어를 어떻게 설정하나요?"로 resolve-library-id 호출.
- 결과에서 이름과 벤치마크 점수를 토대로 최적의 항목(예:
/vercel/next.js) 선택.
libraryId: "/vercel/next.js", query: "Next.js 미들웨어를 어떻게 설정하나요?"로 query-docs 호출.
- 반환된 스니펫과 텍스트를 사용하여 답변. 관련이 있다면 문서의 최소한의
middleware.ts 예시 포함.
예시: Prisma 쿼리
libraryName: "Prisma", query: "관계 쿼리는 어떻게 하나요?"로 resolve-library-id 호출.
- 공식 Prisma 라이브러리 ID(예:
/prisma/prisma) 선택.
- 해당
libraryId와 쿼리로 query-docs 호출.
- 문서의 짧은 코드 스니펫과 함께 Prisma Client 패턴(
include 또는 select 등) 반환.
예시: Supabase 인증 메서드
libraryName: "Supabase", query: "인증 메서드에는 무엇이 있나요?"로 resolve-library-id 호출.
- Supabase 문서 라이브러리 ID 선택.
- query-docs 호출 후, 인증 메서드를 요약하고 가져온 문서의 최소한의 예시 제공.
모범 사례
- 구체성 유지: 더 나은 관련성을 위해 가능하면 사용자의 전체 질문을 쿼리로 사용하세요.
- 버전 인식: 사용자가 버전을 언급하면, 확인 단계에서 사용 가능한 경우 버전별 라이브러리 ID를 사용하세요.
- 공식 소스 선호: 여러 일치 항목이 있는 경우 커뮤니티 포크보다 공식 또는 주요 패키지를 선호합니다.
- 민감한 데이터 제외: Context7에 보내는 모든 쿼리에서 API 키, 비밀번호, 토큰 및 기타 비밀 정보를 제거하세요. 사용자의 질문을 도구에 전달하기 전에 비밀 정보가 포함되어 있을 가능성을 항상 고려하세요.