소개: 모델 컨텍스트 프로토콜이 필요한 이유
Il 모델 컨텍스트 프로토콜(MCP) Anthropic이 개발한 개방형 표준은 다음과 같습니다. AI 애플리케이션이 외부 도구와 통신하는 방법. MCP는 근본적인 문제를 해결합니다. 언어 모델의 능력 현실 세계에서 행동하다, 단지 텍스트를 생성하는 것이 아닙니다.
MCP 이전에는 AI와 외부 도구 간의 모든 통합에는 다음과 같은 맞춤형 구현이 필요했습니다. 독점 프로토콜과 취약한 통합. MCP는 이러한 통신을 표준화하여 생태계를 만듭니다. USB-C처럼 모든 도구에 호환 가능한 AI가 액세스할 수 있는 곳 통합 하드웨어 커넥터.
이 시리즈에서는 기사 14개, 기초부터 구현까지 MCP를 살펴보겠습니다. 고급, 오픈 소스 프로젝트를 자세히 분석 Tech-MCP, 모노레포 31개의 MCP 서버, 85개 이상의 도구 및 6개의 공유 패키지가 포함된 TypeScript.
이 시리즈에서 배울 내용
- MCP 프로토콜과 호스트/클라이언트/서버 아키텍처의 기본 사항
- 세 가지 기본 요소: Zod 검증이 포함된 도구, 리소스 및 프롬프트
- TypeScript에서 처음부터 MCP 서버와 클라이언트를 만드는 방법
- 아키텍처 패턴: 모노레포, EventBus, 공유 패키지
- 생산성, DevOps, 데이터베이스, 프로젝트 관리를 위한 31개의 실제 MCP 서버
- 입력된 이벤트 및 서버 간 호출을 통한 서버 간 협업
- 프로덕션 환경에서의 테스트, 모범 사례 및 배포
MCP가 해결하는 문제
LLM(대형 언어 모델)은 추론과 텍스트 생성에 강력하지만 실용적인 유용성을 제한하는 근본적인 제한 사항:
- 실시간 데이터에 접근할 수 없습니다.: 훈련에는 마감일이 있으므로 AI는 최근 사건이나 업데이트된 데이터를 알 수 없습니다.
- 작업을 수행할 수 없습니다.: 파일 생성, API 호출, 데이터베이스와의 상호 작용, 배포 관리는 외부 통합 없이는 불가능한 작업입니다.
- 그들은 지역적 맥락이 없습니다: AI는 귀하의 프로젝트, 작업, 코드베이스 구조 또는 개발 환경을 알지 못합니다.
MCP는 다음을 제공하여 이러한 격차를 해소합니다. 양방향 통신 프로토콜 AI와 AI 사이 외부 세계에서는 언어 모델이 진정한 운영 보조자가 될 수 있습니다.
N x M 통합 문제
표준 없이 연결 N AI 응용 프로그램 M 외부 도구가 필요합니다 N×M 맞춤형 통합. 각 조합에는 자체 프로토콜, 자체 인증, 데이터 형식입니다. 이 접근 방식은 확장되지 않습니다.
MCP는 복잡성을 다음과 같이 줄입니다. N+M: 각 AI 애플리케이션은 MCP 클라이언트를 구현합니다. 각 도구는 MCP 서버를 구현하며 모두 동일한 표준 프로토콜을 통해 통신합니다.
비유: AI용 USB-C로서의 MCP
USB-C 이전에는 각 장치에 자체 독점 커넥터가 있었습니다. 오늘날 USB-C는 모든 것을 통합합니다. 충전, 데이터, 비디오. MCP는 AI에 대해서도 동일한 작업을 수행합니다. 즉, 연결하는 단일 표준 프로토콜입니다. 모든 언어 모델을 외부 도구에 연결하여 사용자 정의 통합을 제거합니다.
MCP 아키텍처: 호스트, 클라이언트 및 서버
MCP 아키텍처는 함께 작동하여 다음을 가능하게 하는 세 가지 핵심 구성 요소를 기반으로 합니다. AI와 외부 도구 간의 상호 작용:
1. 호스트
L'호스트 그리고 사용자가 직접 사용하는 AI 애플리케이션. 사용자 세션을 관리합니다. MCP 서버를 연결하고 도구 호출을 조정합니다. 호스트의 예는 다음과 같습니다.
- 클로드 데스크탑: Anthropic의 데스크톱 애플리케이션
- 커서 IDE: AI가 통합된 IDE
- VS 코드 MCP 확장 포함
- 맞춤형 애플리케이션 MCP SDK를 사용하는
2. 고객
Il 고객 MCP 프로토콜의 클라이언트 측을 구현하는 호스트의 소프트웨어 구성 요소입니다. 연결을 유지합니다 1:1 MCP 서버를 사용하여 다음을 관리합니다.
- La 역량 협상 초기화 중
- Il 메시지 라우팅 호스트와 서버 간 JSON-RPC
- La 수명주기 관리 연결의
3. 서버
Il 섬기는 사람 AI에 기능을 노출하는 구성 요소입니다. MCP 서버는 다음을 제공할 수 있습니다. 세 가지 유형의 기본 요소:
세 가지 MCP 기본 요소
| 원어 | 설명 | 확인하다 | Esempio |
|---|---|---|---|
| 도구 | AI가 호출할 수 있는 기능 | AI가 언제 전화할지 결정 | create-sprint, analyze-diff |
| 자원 | 애플리케이션이 읽을 수 있는 데이터 | 애플리케이션이 액세스를 제어합니다. | 파일, 데이터베이스, API 응답 |
| 프롬프트 | 재사용 가능한 사전 정의된 템플릿 | 사용자는 어떤 것을 사용할지 선택합니다. | "이 코드의 버그를 분석하세요" |
전송: 클라이언트와 서버가 통신하는 방법
Il 수송 클라이언트와 서버 간의 물리적 통신 메커니즘. MCP 지원 두 가지 주요 모드:
STDIO(표준 입력/출력)
로컬 서버의 가장 일반적인 전송입니다. 클라이언트와 서버는 다음을 통해 통신합니다. stdin e
stdout 프로세스의. 각 메시지는 줄바꿈으로 구분된 JSON-RPC 객체입니다.
운하 stderr 계속해서 로깅이 가능합니다.
- 찬성: 간단한 설정, 네트워크 구성 없음, 보안(로컬)
- 에 맞서: 로컬 전용, 연결당 하나의 프로세스
HTTP + SSE(스트리밍 가능 HTTP)
원격 서버의 경우 또는 여러 연결이 필요한 경우. 클라이언트는 HTTP POST 요청을 보냅니다. 서버가 응답하지 않음 서버에서 보낸 이벤트 스트리밍용. 세션 ID 지원 요청 사이의 상태를 유지합니다.
- 찬성: 원격 지원, 다중 연결, 확장 가능
- 에 맞서: 구성이 더 복잡하고 HTTP 서버가 필요합니다.
도구 호출 작동 방식
MCP의 작동 방식을 구체적으로 이해하기 위해 도구 호출 흐름을 단계별로 따라가 보겠습니다.
Utente: "Crea uno sprint chiamato Sprint-15"
|
v
[1] L'AI ragiona e decide di chiamare il tool "create-sprint"
|
v
[2] Il Client MCP serializza la richiesta in JSON-RPC:
{ "method": "tools/call",
"params": { "name": "create-sprint",
"arguments": { "name": "Sprint-15" } } }
|
v
[3] Il Server MCP riceve, esegue la logica, ritorna il risultato:
{ "content": [{ "type": "text", "text": "Sprint creato con id 42" }] }
|
v
[4] L'AI riceve il risultato e lo presenta all'utente:
"Ho creato lo sprint Sprint-15 (ID: 42)"
자세한 프로토콜 흐름
- 발견: 시작 시 클라이언트는 서버에 사용 가능한 도구 목록(
tools/list) - 계획: 각 도구는 검증 가능한 JSON/Zod 스키마를 사용하여 해당 매개변수를 선언합니다.
- 기도: 대화의 맥락에 따라 AI가 언제, 어떤 도구를 호출할지 자율적으로 결정
- 실행: 서버는 비즈니스 로직을 실행하고 결과를 반환합니다.
- 구성: AI는 여러 도구 호출을 결합하여 복잡한 작업을 완료할 수 있습니다.
MCP vs REST API vs AI 플러그인
MCP는 AI와 도구를 통합하는 유일한 방법은 아니지만 이에 비해 상당한 이점을 제공합니다. 전통적인 대안:
통합 접근법 간의 비교
| 특성 | REST API | AI 플러그인 | MCP |
|---|---|---|---|
| 표준화됨 | 예(HTTP) | 아니요(공급업체에 따라 다름) | 예(개방형 프로토콜) |
| 자동 검색 | No | 부분 | Si |
| 매개변수 입력 | 오픈API | 다양하다 | Zod/JSON 스키마 |
| 양방향 | No | No | Si |
| 네이티브 스트리밍 | No | 다양하다 | 예(SSE) |
| 공급업체 종속 | No | Si | No |
| 구성성 | 수동 | 제한된 | 토종의 |
개발자에게 MCP가 중요한 이유
MCP는 개발자와 AI 간 상호 작용의 패러다임 변화를 나타냅니다. 장점은 다음과 같습니다 이를 기본으로 만드는 주요 사항은 다음과 같습니다.
- 상호 운용성: MCP 서버는 Claude Desktop, Cursor, VS Code 및 다른 호환 가능한 클라이언트 수정 없이. 한 번 작성하면 어디에서나 작업할 수 있습니다.
-
구성성: AI는 다양한 서버의 도구를 단일 워크플로우로 결합할 수 있습니다.
예를 들어, 코드를 분석합니다(
code-review), 테스트 생성(test-generator), 그리고 시간을 기록합니다(time-tracking) - 모두 하나의 대화로 이루어집니다. - 안전: 프로토콜은 서버가 수행할 수 있는 작업을 명확하게 정의합니다. 사용자 민감한 작업의 승인을 항상 제어합니다.
- 개방형 생태계: 누구나 MCP 서버를 생성할 수 있습니다. 허가는 필요하지 않습니다 공급업체도 없고, 의존할 시장도 없습니다.
- 지속적인 컨텍스트: 상태 비저장 API와 달리 MCP는 다음과 같은 세션을 지원합니다. 상태를 유지하여 서버가 후속 호출 간에 컨텍스트를 유지할 수 있도록 합니다.
Tech-MCP 프로젝트: 완벽한 제품군
MCP의 강력함과 유연성을 보여주기 위해 저는 다음을 개발했습니다. Tech-MCP, 구현하는 오픈 소스 프로젝트 MCP 서버 31대 TypeScript 모노레포로 구성되어 있습니다. 이러한 서버는 전체 소프트웨어 개발 수명주기를 포괄합니다.
숫자로 보는 Tech-MCP
| 미터법 | Valore |
|---|---|
| MCP 서버 | 31 |
| 사용 가능한 도구 | 85세 이상 |
| 공유 패키지 | 6 |
| 일반적인 이벤트 | 29 |
| 언어 | 타입스크립트 5.7 |
| 실행 시간 | Node.js 20+ |
| 시스템 구축 | 터보레포 + pnpm |
서버 카테고리
31개의 서버는 개발의 모든 측면을 다루는 기능 범주로 구성됩니다.
- 생산력 (3): 코드 검토, 종속성 관리자, 프로젝트 스캐폴딩
- 데브옵스 (3): docker-compose, 로그 분석기, cicd-monitor
- 데이터베이스 (2): db-스키마-탐색기, 데이터 모의 생성기
- 선적 서류 비치 (2): API 문서, 코드베이스 지식
- 테스트 (2): 테스트 생성기, 성능 프로파일러
- 유용 (3): 정규식 작성기, http-클라이언트, 스니펫 관리자
- 프로젝트 관리 (5): 스크럼 보드, 민첩한 측정, 시간 추적, 프로젝트 경제, 회고 관리자
- 의사소통 (2): 스탠드업 노트, 환경 관리자
- 고급의 (9): 사고 관리자, 의사 결정 로그, 액세스 정책, 품질 게이트, 워크플로 조정자, 통찰력 엔진, mcp-registry, 대시보드-api
개발 환경 설정
이 시리즈를 따르고 MCP 서버 개발을 시작하려면 다음을 설치했는지 확인하십시오.
전제 조건
- Node.js 20+: JavaScript/TypeScript 런타임(
node --version) - pnpm 9+: 모노레포용 패키지 관리자(
npm install -g pnpm) - 타입스크립트 5.7+: 입력된 언어(
npx tsc --version) - 클로드 데스크탑: MCP 서버 테스트(다운로드:
claude.ai) - 힘내: Tech-MCP 저장소를 복제합니다.
Tech-MCP 복제 및 실행
전체 프로젝트를 탐색하려면 저장소를 복제하고 종속성을 설치하십시오.
# Clona il repository
git clone https://github.com/fedcal/Tech-MCP.git
cd Tech-MCP
# Installa le dipendenze con pnpm
pnpm install
# Compila tutti i pacchetti e server
pnpm build
# Verifica che tutto funzioni
pnpm test
Claude 데스크탑 구성
Claude Desktop으로 MCP 서버를 테스트하려면 구성 파일을 편집하십시오.
// macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
// Windows: %APPDATA%\Claude\claude_desktop_config.json
// Linux: ~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"scrum-board": {
"command": "node",
"args": ["path/to/Tech-MCP/servers/scrum-board/dist/index.js"],
"env": {}
}
}
}
시리즈의 구조
14개 기사로 구성된 이 시리즈는 이론적 기초부터 진보적인 경로를 따릅니다. 고급 구현까지:
기사 로드맵
| # | 주제 | 수준 |
|---|---|---|
| 01 | 모델 컨텍스트 프로토콜 소개 | 초보자 |
| 02 | 원시 MCP: 도구, 리소스 및 프롬프트 | 초보자 |
| 03 | Monorepo 아키텍처 및 프로젝트 패턴 | 중급 |
| 04 | TypeScript에서 첫 번째 MCP 서버 생성 | 중급 |
| 05 | MCP 클라이언트 생성 및 HTTP 전송 | 중급 |
| 06 | 공유 패키지: Core, EventBus 및 데이터베이스 | 중급 |
| 07-11 | 범주별 서버(생산성, DevOps, DB, PM, 고급) | 중급/고급 |
| 12 | 서버 간 및 EventBus 협업 | 고급의 |
| 13 | 테스트, 모범 사례 및 생산 | 고급의 |
| 14 | Tech-MCP: 완전한 오픈 소스 프로젝트 개요 | 고급의 |
결론
모델 컨텍스트 프로토콜은 AI와 도구 간의 통합에서 질적 도약을 나타냅니다. 개발의. 이는 API 호출에 대한 단순한 래퍼가 아니지만 구조화된 프로토콜 자동 검색, 강력한 타이핑, 양방향 통신 및 기본 구성 가능성.
다음 기사에서는 이에 대해 더 자세히 살펴보겠습니다. 세 개의 MCP 프리미티브 (도구, 리소스 및 프롬프트), 이를 정의하고 Zod로 검증하며 수명주기를 관리하는 방법을 자세히 분석합니다. 도구 핸들러의 구조와 형식을 탐색하면서 코드 작성을 시작하겠습니다. 답변 중.
모든 예제가 포함된 전체 코드는 저장소에서 사용할 수 있습니다. GitHub의 Tech-MCP.







