CDSA | 홈페이지 블로그
Editorial · MCP 실무

MCP 클라이언트를 직접 만들 때
왜 에이전트 서버가 핵심인가

도구라는 말은 편하지만 손에 잘 잡히지 않는다. 채팅창 뒤에 무엇이 있어야 MCP 클라이언트가 제대로 작동하는가.

신성진  ·  한국데이터사이언티스트협회 2026. 4. 1

도구라는 표현은 편하지만 초보자에게는 너무 뭉뚱그려져 있어서 손에 잘 안 잡힙니다. 그래서 여기서는 도구라는 말을 가능한 한 기능 단위로 풀어서 설명하겠습니다. MCP를 이해할 때 중요한 것은 추상적인 도구 개념이 아니라, 실제로 어떤 입력이 들어가고 어떤 처리가 일어나며 어떤 결과가 돌아오는지입니다.

예를 들어 사용자가 "김민수 과장 이메일 알려줘"라고 물었다고 하겠습니다. 이때 시스템 안에서 일어나는 일은 막연한 도구 사용이 아닙니다. 실제로는 다음 같은 처리가 일어납니다.

즉, 여기서 말하는 기능은 "주소록 검색"이라는 추상 단어가 아니라, 더 구체적으로는 employee_name="김민수"를 입력으로 받아 직원 DB를 조회하고, 결과로 email="..." 값을 돌려주는 실행 단위입니다.

사용자가 "지난달 매출 감소 원인을 요약해줘"라고 물으면 마찬가지입니다. 여기서도 실제 내부 동작은 막연한 도구 호출이 아닙니다.

이처럼 MCP에서 말하는 것은 사실상 작은 기능 API들의 묶음이라고 보는 편이 더 정확합니다. 파일 목록 가져오기, 특정 문서 본문 읽기, 특정 기간의 매출 데이터 조회, 고객 ID로 주문 내역 조회, 노션 페이지 새로 생성하기, 이메일 초안 저장하기 같은 것들이 전부 여기에 들어갑니다.

따라서 MCP 서버를 만든다는 말은 거창한 무언가를 만든다는 뜻이 아니라, 이런 실행 가능한 기능들을 모델이 일정한 방식으로 호출할 수 있게 정리해 놓는다는 뜻입니다.

01  /  기능의 네 가지 유형직접 보이는 형태로 다시 설명하면

직접 만드는 MCP 시스템에서 모델이 사용할 수 있는 것은 대개 아래처럼 생긴 기능들입니다. 뭉뚱그린 "도구"가 아니라, 입력과 처리와 출력이 분명한 네 가지 결의 실행 단위로 나누어 보면 훨씬 또렷하게 보입니다.

1. 조회형 기능

이 종류는 어딘가에 이미 들어 있는 값을 읽어오는 기능입니다. 예를 들면 이런 것들입니다.

이 기능들은 입력값이 들어오면 저장소나 외부 시스템에서 값을 읽어서 반환합니다. 예를 들어 read_file(path)는 입력이 파일 경로이고, 출력은 파일 본문입니다. get_customer_orders(customer_id)는 입력이 고객번호이고, 출력은 주문 목록입니다.

2. 생성형 기능

이 종류는 새로운 결과물을 만드는 기능입니다. 예를 들면 이런 것들입니다.

이 기능들은 단순 조회가 아니라 새 문서나 새 텍스트를 만듭니다. 예를 들어 create_notion_page는 제목과 본문을 입력받아 노션에 새 페이지를 생성합니다. draft_email은 받는 사람, 제목, 본문을 받아 이메일 초안을 저장합니다.

3. 실행형 기능

이 종류는 실제로 어떤 행동을 일으키는 기능입니다. 예를 들면 이런 것들입니다.

이 기능들은 결과를 읽어오는 수준이 아니라 시스템 상태를 바꿉니다. 그래서 권한과 승인 통제가 중요합니다.

4. 변환형 기능

이 종류는 입력 데이터를 다른 형태로 바꾸는 기능입니다. 예를 들면 이런 것들입니다.

이 기능들은 입력을 받아 가공한 뒤 새로운 구조의 결과를 돌려줍니다.

즉, MCP에서 모델이 다루는 것은 추상적인 마법 상자가 아니라, 실제로는 이런 개별 기능들입니다. 입력이 있고, 내부 처리 로직이 있고, 출력이 있는 아주 구체적인 실행 단위들입니다.

02  /  핵심그러면 왜 에이전트 서버가 핵심인가

이제 여기서 핵심이 보입니다. 사용자가 직접 MCP 클라이언트를 만든다고 했을 때, 실제 어려운 부분은 이 기능들을 화면에 예쁘게 보여주는 것이 아닙니다. 더 중요한 것은 사용자의 질문을 보고 어떤 기능을 언제 어떤 순서로 호출할지 결정하고, 그 결과를 다시 모델에게 넣어 최종 답을 완성하는 흐름을 통제하는 것입니다.

예를 들어 사용자가 "지난달 매출 감소 원인 정리해서 노션에 회의자료 초안까지 만들어줘"라고 말하면, 실제 내부 흐름은 대략 이렇게 됩니다.

여기서 중요한 것은 어느 한 기능이 아니라 이 전체 호출 흐름입니다. 이 흐름을 누가 관리하느냐가 핵심인데, 그 역할을 맡는 것이 에이전트 서버입니다.

즉, 직접 만드는 MCP 클라이언트에서 본질은 채팅창이 아니라 다음을 처리하는 서버입니다.

이것이 없으면 화면은 있어도 제대로 동작하는 MCP 클라이언트가 되지 않습니다.

03  /  착시유명한 MCP 클라이언트가 왜 쉬워 보이는가

Claude Desktop이나 Cursor 같은 이미 완성된 제품은 이 중간 조정 계층이 이미 안에 들어 있습니다. 그래서 사용자는 마치 모델이 바로 MCP 기능을 쓰는 것처럼 느낍니다.

하지만 직접 만들 때는 다릅니다. 브라우저에 채팅창을 하나 띄운다고 끝나지 않습니다. 채팅창 뒤에서 다음을 담당하는 서버가 반드시 있어야 합니다.

이 계층이 바로 에이전트 서버입니다. 그래서 직접 만드는 MCP 클라이언트는 정확히 말하면 클라이언트를 만드는 작업이 아니라, MCP 기능들을 안전하고 순서 있게 실행시키는 에이전트 서버를 만들고 그 위에 화면을 얹는 작업에 가깝습니다.

04  /  정리아주 현실적인 기준으로 다시

직접 만드는 MCP 시스템에서 모델이 쓰는 것은 추상적인 도구가 아니라 아래 같은 실행 함수들입니다.

그리고 에이전트 서버는 이 함수들을 적절한 순서로 조합해서 하나의 업무 흐름으로 만드는 계층입니다.

즉, 직접 만드는 MCP 클라이언트의 핵심은 채팅창이 아니라 함수 호출 흐름 제어기라고 이해하는 편이 훨씬 손에 잡힙니다.


05  /  한 줄 결론흐름 제어기가 먼저다

유명한 MCP 클라이언트는 이미 내부에 함수 호출 흐름 제어기가 들어 있어서 편해 보이는 것이고, 사용자가 생짜로 직접 만들 MCP 클라이언트는 결국 그 함수 호출 흐름 제어기 — 즉 에이전트 서버를 먼저 만들어야 제대로 작동합니다.

화면은 그다음입니다.