MCP: "사용자의 인터랙션 히스토리와 컨텍스트를 메모리로 갖고, 특정 질의에 맞는 정보를 빠르게 서빙해주는 중간 브레인 서버"
GPT처럼 거대한 모델에게 필요한 맥락 정보(메모리)를 실시간으로 공급하거나 저장하는 허브 역할
MCP는 프롬프트 라우터 + 컨텍스트 어댑터 + 툴콜링 브릿지 역할
MCP 서버와 MCP 클라이언트, LLM 서버 통신 과정 요약
클라이언트에서 프롬프트를 MCP 서버에 전달, MCP 서버에서 return한 값을 프롬프트와 함께 LLM 서버로 전달해서 클라이언트는 LLM 서버의 결괏값을 받음.
구성 요소역할
| MCP Client | 사용자 입력을 전송, 최종 응답 수신 |
| MCP Server | 벡터 검색, 컨텍스트 수집, LLM 질의 준비 |
| LLM Server | 자연어 처리 및 응답 생성 (OpenAI, Mistral 등 가능) |
✅ MCP 서버 동작 개요
💡 한 줄 요약
프롬프트 → 벡터화 → 유사도 기반 컨텍스트 검색 → 관련 API 호출 → 결과 반환
🧠 구조 흐름 상세
- 입력: 유저 프롬프트 수신
예: - "이 프로젝트에 적합한 Python API 알려줘"
- 텍스트 → 임베딩(벡터화)
- LLM 또는 별도 벡터 엔진을 통해 문장 임베딩 생성 (예: OpenAI Embeddings, Sentence-BERT 등)
- 벡터 DB 조회 (유사도 검색)
- FAISS, Pinecone, Weaviate 같은 벡터 DB를 사용해서,
- 현재 프롬프트와 의미적으로 유사한 컨텍스트, 메모리, 문서, 코드 조각, API 문서 등을 검색함.
- 매칭된 API or 문서 정보 활용
- 그 정보에 따라 특정 API 호출하거나, 가이드를 생성하거나, 파일을 편집하거나 함.
- 경우에 따라 함수명, 파라미터 자동 추론 등도 이 단계에서 처리 가능.
- 결과 반환 or 후속 명령 전달
- LLM에 context로 주거나, 사용자에게 리턴하거나, 백엔드 작업 실행까지 가능.
✅ MCP 서버의 전체 흐름: 클라이언트 → 결과 반환까지
📍전체 흐름 요약
- Client가 프롬프트를 MCP에 보냄
- MCP 서버가 프롬프트를 벡터라이징하여 Vector DB에 유사 문맥/API 검색
- 관련 API를 내부에서 직접 호출하거나, 필요 정보/문서 등 Fetch
- 그 결과 + 원래 프롬프트 → 메인 LLM 서버로 전송
- LLM이 답변 생성 → MCP가 Client에게 결과 반환
MCP 벡터라이징 + API 검색 구조.
1️⃣ 전체 구성 요소 요약
구성요소역할구현 도구
| 텍스트 임베딩 | 프롬프트를 벡터화 | sentence-transformers, OpenAI Embedding API |
| 벡터 저장소 | 벡터 쿼리로 유사한 API 검색 | FAISS, Pinecone, Weaviate, Qdrant 등 |
| API 메타데이터 | 벡터화 대상 문서/설명 | API 설명 텍스트 (→ 벡터화 대상) |
## 참고
FAISS: 벡터 간 거리 계산을 통해 유사한 항목을 빠르게 찾아주는 벡터 검색 엔진
🔧 FAISS의 역할 요약
| 🧠 벡터 인덱스 생성 | 고차원 벡터들을 저장하고 탐색할 수 있도록 인덱스 구조 생성 |
| 🔍 유사도 기반 검색 | 주어진 쿼리 벡터와 유사한 벡터들을 빠르게 찾아냄 (L2 거리, Cosine 등 사용 가능) |
| ⚡ 매우 빠름 | 수십만 ~ 수억 개 벡터도 수 ms 안에 검색 가능 (GPU도 지원!) |
'Research > Study' 카테고리의 다른 글
| [2025.06.29]웹 서버 처리 구조(TCP) (0) | 2025.06.29 |
|---|---|
| [2025.06.01] System call 호출 흐름 (0) | 2025.06.01 |
| [2025.06.01] 레지스트리 편집기 (0) | 2025.06.01 |
| [Deep research][250506] Linux/QNX 환경의 C++ 보안 취약점 분석 가이드 (1) | 2025.05.06 |
| [Deep research][250501] 백엔드·앱 개발자를 위한 통계 기반 제품 개선 지식 (0) | 2025.05.01 |