본문으로 건너뛰기

© 2026 Molayo

Qiita헤드라인2026. 05. 14. 22:29

MCP 서버는 서버임에도 서브프로세스

요약

본 글은 AI가 도구(Tool)와 통신하는 프로토콜인 MCP(Message Communication Protocol)의 작동 방식에 대한 조사 내용을 담고 있습니다. 특히 FastMCP 라이브러리를 중심으로, 클라이언트가 서버를 명시적으로 실행하지 않았음에도 통신이 가능한 원리를 분석했습니다. 핵심은 FastMCP의 STDIO 트랜스포트가 표준 입출력(stdin/stdout)을 사용하여 서브프로세스 파이프를 통해 MCP 서버와 통신한다는 점입니다. 이 과정에서 클라이언트가 서버 프로세스를 실행하고 그 생명주기(Lifecycle)를 관리합니다. 또한, 동일 프로세스 내에서 통신하는 인메모리 전송 메커니즘을 사용하면 서브프로세스 관리나 네트워크 오버헤드 없이 MCP 서버와 연결할 수 있습니다.

핵심 포인트

  • MCP는 AI가 외부 툴과 통신하기 위한 프로토콜입니다.
  • FastMCP의 STDIO 트랜스포트는 표준 입출력(stdin/stdout)을 이용해 서브프로세스 파이프를 통해 클라이언트-서버 간 통신을 구현합니다.
  • 클라이언트 측에서 서버 프로세스를 실행하고 그 생명주기를 관리하는 것이 핵심 메커니즘입니다.
  • 동일 프로세스 내에서 MCP 서버와 접속할 수 있는 인메모리 전송(In-memory transfer) 방식도 존재하며, 이는 오버헤드를 줄여줍니다.

MCP에 대해 조사하던 중, FastMCP의 코드를 보면서 "서버를 커맨드라인(Command Line)에서 실행하지 않았는데, 클라이언트가 서버와 통신하고 있다"는 점이 신기하여 조사해 보았습니다.

기본 용어만 정리하면 다음과 같습니다.

용어내용
MCPAI가 툴(Tool)과 통신하기 위한 프로토콜
...

인터넷을 대략 살펴보았으나, 명령어로 실행하는 방식밖에 찾을 수 없었기에 ChatGPT로 조사했습니다.

예시로 제시된 프로그램은 다음과 같았습니다.

  • server.py
from fastmcp import FastMCP
mcp = FastMCP("sample-server")
@mcp.tool()
...
  • client.py
import asyncio
from fastmcp import Client
from fastmcp.client.transports import StdioTransport
...

이 처리 부분에서 실행 명령을 정의하고

transport = StdioTransport(
command="python",
args=["server.py"],
...

실제로 프로세스(Process)를 생성하고 있는 것은 다음 처리입니다.

async with Client(transport) as client:

공식 문서에 자세히 적혀 있었습니다.

나름대로 정리하자면・・・

FastMCP의 STDIO 트랜스포트(Transport)에서는 표준 입력(stdin)·표준 출력(stdout)을 사용하여 클라이언트와 서버가 통신합니다.

STDIO 트랜스포트를 사용하면, 서브프로세스 파이프(Subprocess Pipe)를 통해 MCP 서버와 통신합니다. 이때, 클라이언트가 서버 프로세스를 실행 및 관리하며, 그 라이프사이클(Lifecycle)을 제어합니다.

더 조사해 보니, 인메모리 전송(In-memory transfer)이라고 불리는 메커니즘을 사용하면 동일 프로세스 내에서 MCP 서버와 접속하므로, 서브프로세스 관리와 네트워크 오버헤드(Network Overhead)가 필요 없습니다.

from fastmcp import FastMCP, Client
import os
mcp = FastMCP("TestServer")
...

FastMCP에서는 STDIO 트랜스포트를 사용하면 클라이언트 측에서 서버 프로세스를 실행해 줍니다.

또한, MCP 서버는 클라이언트와 별개의 프로세스가 아니라, 서브프로세스나 동일 프로세스에서 동작시킬 수 있습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
2

댓글

0