MCP란, AI 에이전트와 도구를 연결하는 구조와 사용법
MCP란 Model Context Protocol의 약자로, AI 애플리케이션이 파일·데이터베이스·웹서비스·개발도구 같은 외부 시스템과 표준 방식으로 연결되게 하는 개방형 프로토콜입니다.
핵심은 모델 자체를 바꾸는 것이 아니라 Host·Client·Server가 정해진 규칙으로 통신하면서 Tools, Resources, Prompts 같은 기능을 발견하고 사용할 수 있게 만드는 데 있습니다.
이 글에서는 MCP란 무엇인지부터 Host·Client·Server 구조, Tools·Resources·Prompts, stdio·Streamable HTTP, AI 에이전트와 차이, 보안과 실제 활용 기준까지 정리합니다.
◆ MCP란 무엇이고 왜 필요한가
MCP란 AI가 외부 시스템을 사용할 때 연결 방식을 표준화하기 위해 만든 프로토콜입니다. 과거에는 각 AI 서비스가 파일, 데이터베이스, GitHub, 사내 API마다 별도 연동 코드를 만들어야 했지만 MCP를 사용하면 공통 규칙으로 도구와 데이터를 노출할 수 있습니다.
예를 들어 하나의 MCP 서버가 사내 문서 검색 기능을 제공하면 Claude Code, VS Code, Cursor, 자체 AI 앱처럼 MCP를 지원하는 여러 Host가 같은 서버에 연결할 수 있습니다.
MCP란 모델을 대체하는 기술도 아니고, AI 에이전트 자체도 아닙니다. 모델이 판단하고 에이전트가 작업 순서를 정한다면 MCP는 그 과정에서 외부 도구와 데이터를 어떻게 발견하고 호출할지를 담당하는 연결 계층에 가깝습니다.
| 구분 | 역할 | 예시 |
|---|---|---|
| AI 모델 | 이해·추론·생성 | 질문 해석, 다음 행동 판단 |
| AI 에이전트 | 목표·계획·실행 | 작업 순서 결정 |
| MCP | 외부 연결 표준 | 도구·파일·DB 연결 |
| MCP 서버 | 기능 노출 | 검색·DB·사내 API 제공 |
| MCP 클라이언트 | 서버와 통신 | 도구 목록 조회·호출 |
◆ Host·Client·Server 구조를 이해하면 쉽다
MCP 구조는 Host, Client, Server를 나눠 보면 이해하기 쉽습니다. Host는 사용자가 실제로 사용하는 AI 애플리케이션이고, Client는 Host 안에서 MCP 서버와 연결을 관리하는 구성 요소입니다.
Server는 외부 기능을 제공하는 쪽입니다. 파일시스템, 데이터베이스, GitHub, CRM, 사내 문서처럼 연결하려는 시스템을 MCP 규격에 맞게 Tools·Resources·Prompts로 노출합니다.
MCP란 이 세 구성 요소가 기능을 발견하고 호출하고 결과를 돌려받는 공통 규칙이라고 보면 됩니다. Host가 바뀌어도 Server가 같은 표준을 따르면 재사용하기 쉬운 것이 장점입니다.
◆ Tools는 실제 행동을 실행하는 기능이다
Tools는 AI가 실행할 수 있는 함수나 작업에 가깝습니다. 예를 들어 “고객 검색”, “파일 저장”, “테스트 실행”, “이슈 생성” 같은 기능을 Tool로 노출할 수 있습니다.
MCP란 단순한 데이터 조회만 위한 규격이 아니라 이런 행동형 기능까지 표준화한다는 점에서 중요합니다. Host는 서버가 제공하는 Tool 목록을 확인하고 필요한 Tool을 선택해 호출할 수 있습니다.
다만 Tool이 강력할수록 권한 위험도 커집니다. 읽기 전용 검색과 파일 삭제는 같은 수준의 권한으로 취급하면 안 되므로, 민감한 Tool은 사용자 승인이나 별도 인증을 두는 것이 좋습니다.
| MCP 기능 | 무엇을 제공하나 | 대표 예시 |
|---|---|---|
| Tools | 실행 가능한 행동 | 검색·저장·수정·API 호출 |
| Resources | 읽을 수 있는 데이터 | 파일·문서·DB 레코드 |
| Prompts | 재사용 가능한 지시 템플릿 | 분석·요약·검토 템플릿 |
◆ Resources는 읽을 데이터와 문맥을 제공한다
Resources는 AI가 참고할 수 있는 데이터나 문서를 제공합니다. 로컬 파일, 데이터베이스 결과, 기술 문서, 설정 정보처럼 읽기 중심 자료를 URI 형태로 노출할 수 있습니다.
MCP란 Tool 호출만 표준화하는 것이 아니라 어떤 데이터를 제공하고 어떻게 읽을지도 함께 정의합니다. 따라서 단순 Function Calling보다 더 넓은 연결 구조를 만들 수 있습니다.
Resources를 사용할 때는 필요한 범위만 노출해야 합니다. 전체 파일시스템이나 전체 데이터베이스를 무조건 공개하기보다 특정 폴더와 테이블처럼 최소 범위로 제한하는 편이 안전합니다.
◆ Prompts는 반복 지시를 재사용하는 방식이다
Prompts는 서버가 미리 정의해 제공하는 재사용 가능한 프롬프트 템플릿입니다. 사용자는 매번 긴 지시를 직접 작성하지 않고 Host에서 제공되는 Prompt를 선택해 사용할 수 있습니다.
예를 들어 코드리뷰 서버라면 “보안 검토”, “성능 검토”, “테스트 누락 점검” 같은 Prompt를 제공할 수 있습니다.
MCP란 데이터를 연결하는 프로토콜이라는 설명만 들으면 Prompts가 빠지기 쉽지만, 실제 스펙은 Tools와 Resources뿐 아니라 Prompt 템플릿까지 다룹니다.
◆ stdio와 Streamable HTTP는 연결 방식이 다르다
로컬 MCP 서버는 stdio 방식으로 Host가 서버 프로세스를 직접 실행하고 표준 입출력으로 통신하는 경우가 많습니다. 로컬 파일이나 개발도구처럼 한 컴퓨터 안에서 사용하는 연결에 적합합니다.
원격 MCP 서버는 Streamable HTTP 같은 네트워크 전송 방식을 사용할 수 있습니다. 여러 사용자가 동일한 서버에 접속하거나 클라우드 서비스로 제공할 때 적합합니다.
MCP란 연결 대상만 정하는 것이 아니라 이런 전송 계층과 세션, 기능 협상 같은 통신 규칙까지 포함합니다. 실제 구축에서는 로컬인지 원격인지에 따라 인증과 보안 설계도 달라집니다.
◆ Function Calling과 MCP는 같은 개념이 아니다
Function Calling은 모델이 미리 정의된 함수 목록 중 하나를 선택해 호출하도록 하는 기능입니다. 특정 앱 안에서 몇 개의 함수를 연결할 때는 이것만으로도 충분할 수 있습니다.
MCP는 더 넓은 상호운용성을 목표로 합니다. MCP Server가 Tools·Resources·Prompts를 표준 방식으로 노출하면 여러 Host가 같은 연결을 재사용할 수 있습니다.
MCP란 Function Calling을 없애는 기술이라기보다 도구 발견과 호출, 리소스, 프롬프트, 연결 관리까지 공통 규칙으로 확장한 프로토콜에 가깝습니다.
| 비교 | Function Calling | MCP |
|---|---|---|
| 범위 | 함수 호출 중심 | Tools·Resources·Prompts |
| 연결 | 앱별 구현 | 공통 Client/Server 구조 |
| 재사용성 | 구현에 따라 다름 | 여러 Host에서 재사용 가능 |
| 전송·세션 | 서비스별 | 프로토콜에서 규정 |
◆ AI 에이전트와 MCP의 관계는 이렇게 보면 된다
AI 에이전트는 목표를 받고 어떤 행동을 해야 할지 판단하며 여러 단계를 실행하는 시스템입니다. MCP는 그 에이전트가 외부 도구와 데이터를 사용할 때 연결 방법을 제공할 수 있습니다.
예를 들어 에이전트가 “프로젝트의 열린 이슈를 확인하고 우선순위를 정해줘”라는 목표를 받았다고 가정할 수 있습니다. 에이전트는 GitHub MCP 서버에서 이슈 목록을 가져오고, 필요한 정보를 분석한 뒤 결과를 정리할 수 있습니다.
MCP란 에이전트의 두뇌가 아니라 손과 눈을 외부 시스템에 연결하는 인터페이스라고 이해하면 쉽습니다.
◆ 실제로는 어떤 곳에 연결할 수 있을까
MCP 서버는 파일시스템, Git 저장소, 데이터베이스, 클라우드, 검색 서비스, 문서 시스템, 업무도구 등 다양한 기능을 노출할 수 있습니다.
공식 MCP Registry는 여러 서버를 검색할 수 있는 중앙 레지스트리를 제공하고 있습니다. 다만 레지스트리에 있다는 이유만으로 모든 서버를 자동으로 신뢰해서는 안 됩니다.
설치 전에는 서버의 개발자, 소스코드, 요청 권한, 외부 통신 범위, 업데이트 상태를 확인하는 것이 좋습니다.
◆ 보안에서는 최소 권한과 사용자 승인이 중요하다
MCP란 AI가 외부 시스템에 쉽게 연결되도록 만드는 표준이기 때문에 편리함만큼 권한 관리가 중요합니다. 파일 삭제나 데이터베이스 수정, 이메일 전송 같은 Tool이 연결돼 있다면 잘못된 호출의 영향이 클 수 있습니다.
처음에는 읽기 전용 Tool부터 연결하고, 쓰기 작업은 사용자 승인을 거치도록 하는 편이 안전합니다. 원격 서버는 인증과 전송 보안도 별도로 확인해야 합니다.
또 외부 문서나 웹페이지에 포함된 악성 지시가 에이전트의 Tool 사용을 유도하는 프롬프트 인젝션 위험도 고려해야 합니다. Host에서 Tool 호출 전에 권한을 확인하고 로그를 남기는 구조가 필요합니다.
◆ MCP를 써야 하는 경우와 안 써도 되는 경우
하나의 앱에서 함수 두세 개만 호출하고 다른 AI 도구와 공유할 계획이 없다면 기존 API나 Function Calling만으로 충분할 수 있습니다.
반대로 같은 도구를 Claude Code, Cursor, VS Code, 자체 AI 앱처럼 여러 Host에서 재사용하고 싶다면 MCP의 장점이 커집니다.
MCP란 모든 AI 프로젝트에 필수인 기술은 아닙니다. 연결 대상이 많고 상호운용성과 재사용성이 중요할 때 도입 가치가 커집니다.
◆ 자주 묻는 질문
Q. MCP란 AI 에이전트 자체를 의미하나요?
A. 아닙니다. MCP는 AI 애플리케이션과 외부 도구·데이터를 연결하는 프로토콜입니다. 목표 판단과 작업 순서를 수행하는 에이전트 구조는 별도로 존재합니다.
Q. MCP 서버를 설치하면 모든 AI에서 바로 사용할 수 있나요?
A. 해당 Host가 MCP를 지원하고 서버의 전송 방식과 인증 조건이 맞아야 합니다. 지원 범위는 Host마다 다를 수 있으므로 공식 문서를 확인해야 합니다.
Q. MCP와 API는 무엇이 다른가요?
A. API는 특정 서비스의 기능을 직접 호출하는 인터페이스이고, MCP는 AI 애플리케이션이 여러 외부 기능을 공통 규칙으로 발견하고 사용하는 연결 표준입니다. MCP 서버 내부에서 기존 API를 다시 호출할 수도 있습니다.
Q. MCP 서버는 안전한가요?
A. 프로토콜 자체보다 연결한 서버와 권한 설정이 중요합니다. 신뢰할 수 있는 서버인지 확인하고 최소 권한, 사용자 승인, 인증, 로그를 적용하는 것이 좋습니다.
◆ 공식 문서에서 확인할 현재 MCP 구조
공식 MCP TypeScript SDK는 MCP를 AI 애플리케이션과 데이터·도구 시스템을 연결하는 개방형 표준으로 설명하며, 서버가 Tools·Resources·Prompts를 노출하고 Claude Code·VS Code·Cursor 같은 Host가 연결할 수 있다고 안내합니다.
공식 MCP Registry는 표준 MCP 서버를 검색할 수 있는 중앙 레지스트리를 제공하며, 서버 배포와 메타데이터 검증을 위한 별도 API와 문서를 운영하고 있습니다.
공식 자료: Model Context Protocol 공식 TypeScript SDK
공식 자료: Official MCP Registry 문서
MCP란 AI 모델이나 에이전트를 대체하는 기술이 아니라 AI 애플리케이션이 파일·데이터·도구·서비스와 표준 방식으로 연결되도록 만드는 프로토콜입니다.
Host·Client·Server 구조와 Tools·Resources·Prompts를 이해하면 MCP의 역할이 명확해집니다. 여러 AI Host에서 같은 외부 기능을 재사용해야 할수록 표준 연결의 장점이 커집니다.
MCP란 편리한 연결 규격인 동시에 실제 행동 권한을 넓히는 기술이므로 서버 출처, 최소 권한, 인증, 사용자 승인과 로그를 함께 설계해야 안정적으로 사용할 수 있습니다.





























