IT기술 관련/A.I 인공지능

커서 AI에서 사용되는 MCP 란?

호레 2025. 4. 12. 10:58
반응형

🧠 MCP (Multi-Context Prompting)란?

▶️ 기본 개념

일반적인 AI 코드 도우미는 **"지금 내가 보고 있는 파일의 일부 코드"**만 가지고 작동해요. 하지만 프로젝트는 그렇게 단순하지 않죠. 다양한 파일과 모듈이 서로 연결되어 있고, 문맥을 이해하지 못하면 정확한 코드 제안이나 리팩토링은 불가능에 가깝습니다.

그래서 Cursor는 **"여러 개의 문맥(Context)"**을 동시에 고려하도록 했고, 이 기술을 MCP라고 부릅니다.


📦 MCP가 사용하는 문맥들

Cursor의 MCP는 다음과 같은 다양한 맥락을 함께 AI에 제공합니다:

문맥 종류설명
현재 파일 현재 열려 있는 파일의 전체 내용
커서 주변 코드 커서 위치 기준 전후 수십 줄
참조 중인 다른 파일 import하고 있는 모듈들 (import x from './utils')
같이 열려 있는 탭 동시에 열려 있는 다른 파일들
파일 간 호출 관계 예: 함수 A가 함수 B를 호출하는 경우
테스트 코드 연관된 테스트 파일도 문맥으로 포함됨
명시적 프롬프트 사용자가 직접 AI에게 요청한 내용 (예: // refactor this)

이런 **다층 문맥(Multi-layered Context)**을 프롬프트로 정리해서 LLM에 보내는 구조예요.


⚙️ 내부 작동 방식 (비공식 예측 구조)

MCP는 일종의 "문맥 엔지니어링 시스템"입니다.

작동 플로우 (추정 기반 설명):

  1. 📌 사용자가 특정 위치에서 AI 기능 실행 (예: 코드 생성 요청)
  2. 📚 Cursor가 관련된 모든 문맥을 수집
    • 현재 파일
    • import된 파일
    • 관련 함수 정의
    • 테스트 코드 등
  3. 🧩 중요도에 따라 요약하거나 압축해서 LLM에 전달할 수 있도록 구성
    • context window에 맞게 trimming
  4. 🤖 AI (ex. GPT-4 or Claude)에게 전달
  5. ✍️ AI가 모든 문맥을 바탕으로 응답 생성

💡 MCP의 장점

항목설명
🔍 맥락 이해 프로젝트 구조나 타입 정의를 파악해서 제안 품질이 높음
🎯 일관성 같은 변수나 함수명을 일관되게 유지함
🧩 연결성 분리된 파일 간 의존성도 인식
🧠 추론력 함수 목적이나 버그 위치도 더 잘 유추함
🛠️ 리팩토링 정확도 단순 문자열 치환이 아니라 의미 단위 리팩토링 가능

✨ 실제 사용 예시

👇 코드 상황:

 

// utils.ts
export function formatDate(date: Date): string {
  // ...
}

// main.ts
import { formatDate } from './utils';

// 여기서 AI에게 "날짜 포맷 함수 리팩토링해줘" 요청

🧠 일반 AI:

단순히 main.ts만 보고 있어서 formatDate가 뭔지 모름 → 제대로 리팩토링 못함

🤖 Cursor MCP:

utils.ts의 formatDate 정의까지 문맥으로 넣음 → 내부 로직까지 이해하고 리팩토링 가능


🧪 내부적으로 쓰는 기술 (기술적 추정)

  • Prompt Engineering
  • Embedding 기반 유사도 검색
  • Context-aware token prioritization
  • Possibly fine-tuned LLM workflows with retrieval augmentation

📌 마무리 요약

항목내용
✅ 이름 Multi-Context Prompting (MCP)
🚀 목적 코드 생성/보조 정확도 향상
🔍 방식 여러 파일/탭/코드 범위를 한 번에 AI에게 전달
💡 효과 맥락이 풍부해져서 더 똑똑한 코드 제안 가능
🌐 사용처 Cursor AI 고유 기능
반응형