| name | documentation-lookup |
| description | 학습 데이터 대신 Context7 MCP를 통해 최신 라이브러리 및 프레임워크 문서를 사용합니다. 설정 질문, API 참조, 코드 예시 또는 사용자가 프레임워크(예: React, Next.js, Prisma) 이름을 언급할 때 활성화됩니다. |
| origin | ECC |
문서 조회 (Context7)
사용자가 라이브러리, 프레임워크 또는 API에 대해 질문할 때, 학습 데이터에 의존하는 대신 Context7 MCP(도구: resolve-library-id 및 query-docs)를 통해 최신 문서를 가져옵니다.
핵심 개념
- Context7: 최신 문서를 노출하는 MCP 서버입니다. 라이브러리 및 API에 대해 학습 데이터 대신 이를 사용하세요.
- resolve-library-id: 라이브러리 이름과 쿼리로부터 Context7 호환 라이브러리 ID(예:
/vercel/next.js)를 반환합니다.
- query-docs: 주어진 라이브러리 ID와 질문에 대한 문서 및 코드 스니펫을 가져옵니다. 유효한 라이브러리 ID를 얻기 위해 항상 resolve-library-id를 먼저 호출해야 합니다.
사용 시점
다음의 경우 이 스킬을 활성화하세요:
- 설정 또는 구성 질문 (예: "Next.js 미들웨어를 어떻게 설정하나요?")
- 특정 라이브러리에 의존하는 코드 요청 ("...를 위한 Prisma 쿼리를 작성해 줘")
- API 또는 참조 정보 필요 ("Supabase 인증 방식에는 무엇이 있나요?")
- 특정 프레임워크나 라이브러리 언급 (React, Vue, Svelte, Express, Tailwind, Prisma, Supabase 등)
요청이 라이브러리, 프레임워크 또는 API의 정확하고 최신 동작에 의존할 때마다 이 스킬을 사용하세요. Context7 MCP가 구성된 모든 하네스(예: Claude Code, Cursor, Codex)에 적용됩니다.
작동 방식
1단계: 라이브러리 ID 확인
resolve-library-id MCP 도구를 다음 파라미터와 함께 호출합니다:
- libraryName: 사용자의 질문에서 추출한 라이브러리 또는 제품 이름 (예:
Next.js, Prisma, Supabase).
- query: 사용자의 전체 질문. 이는 결과의 관련성 순위를 높이는 데 도움이 됩니다.
문서를 쿼리하기 전에 반드시 Context7 호환 라이브러리 ID(/org/project 또는 /org/project/version 형식)를 얻어야 합니다. 이 단계에서 유효한 라이브러리 ID를 얻지 못한 채 query-docs를 호출하지 마세요.
2단계: 최적의 매치 선택
해결 결과에서 다음 기준에 따라 하나를 선택합니다:
- 이름 일치: 사용자가 요청한 것과 정확히 일치하거나 가장 가까운 것을 선호합니다.
- 벤치마크 점수: 점수가 높을수록 문서 품질이 좋음을 나타냅니다 (100점이 최고).
- 소스 평판 (Source reputation): 가능한 경우 High 또는 Medium 평판을 선호합니다.
- 버전: 사용자가 버전을 명시한 경우(예: "React 19", "Next.js 15"), 나열된 버전별 라이브러리 ID(예:
/org/project/v1.2.0)를 선호합니다.
3단계: 문서 가져오기
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 키, 비밀번호, 토큰 및 기타 시크릿을 삭제하세요. resolve-library-id나 query-docs에 전달하기 전에 사용자의 질문에 시크릿이 포함되어 있을 가능성을 염두에 두세요.