MCP 서버 구현을 위한 실전 가이드



MCP 서버 구현을 위한 실전 가이드

MCP 서버는 다양한 환경에서 운영될 수 있는 강력한 툴입니다. 이번 포스트에서는 MCP 서버를 구축하는 방법과 관련된 내용을 자세히 설명하겠습니다. 로컬 서버와 원격 서버의 차이점, 파이썬을 이용한 서버 구현 방법, 그리고 MCP 서버와의 연결 방식에 대해 알아보겠습니다.

 

👉 ✅ 상세 정보 바로 확인 👈

 

MCP 서버의 운영 방식과 구조

MCP 서버는 구동 위치에 따라 로컬 서버와 원격 서버로 나뉩니다. 로컬 서버는 사용자의 데스크탑에서 직접 실행되며, 이에 따라 로컬 자원에 접근할 수 있는 장점을 지니고 있습니다. 이러한 접근성은 편리함을 제공하지만 보안적으로는 위험을 초래할 수 있습니다. 예를 들어, 악의적인 코드가 로컬 파일을 해킹할 위험이 존재하므로, 신뢰할 수 있는 서버만을 이용해야 합니다.



반면, 원격 서버는 클라우드 환경에서 운영되며, 다양한 네트워크를 통해 접근할 수 있습니다. 이 경우 HTTP/JSON-RPC를 통해 통신이 이루어지며, 보다 안전하게 데이터를 주고받을 수 있습니다. 이러한 서버 구조는 각기 다른 사용자의 요구에 맞춰 최적화된 환경을 제공합니다.

 

👉 ✅ 상세 정보 바로 확인 👈

 

MCP 서버 구현을 위한 준비 사항

MCP 서버를 구현하기 위해서는 여러 프로그래밍 언어를 사용할 수 있습니다. 현재 지원되는 언어로는 Python, TypeScript, Java, Kotlin, C#이 있으며, 이번 글에서는 Python을 중심으로 설명하겠습니다. Python의 경우, FastMCP라는 라이브러리를 통해 간편하게 서버를 설정할 수 있습니다.

Python 환경 설정 및 필요 라이브러리 설치

먼저 Python 환경을 설정하는 것이 필요합니다. 이를 위해 가상 환경을 생성하고 필요한 라이브러리를 설치해야 합니다. 다음은 MCP 서버를 설정하기 위한 기본적인 단계입니다.

bash
uv init mcp-server-tutorial
uv venv
source .venv/bin/activate
uv add "mcp[cli]"

이 과정을 통해 기본 프로젝트 폴더를 만들고, Python의 가상 환경을 설정하게 됩니다. 이후 MCP 라이브러리를 설치하여 서버를 구현할 준비를 마칩니다.

간단한 MCP 서버 코드 구현

이제 MCP 서버를 실제로 구현해보겠습니다. 다음은 특정 도시의 날씨를 반환하는 간단한 예제 코드입니다.

“`python
from mcp.server.fastmcp import FastMCP

mcp = FastMCP()

@mcp.tool()
def get_weather(city: str) -> str:
return f”{city} weather is good”

if name == “main“:
print(“Starting MCP server…”)
mcp.run(transport=”stdio”)
“`

위 코드에서는 FastMCP 인스턴스를 생성하고, get_weather라는 툴을 정의합니다. 이 툴은 사용자가 입력한 도시의 이름을 바탕으로 날씨 정보를 반환합니다. 서버가 실행되면 사용자는 입력을 통해 날씨 정보를 요청할 수 있습니다.

MCP 애플리케이션과의 연결 설정

서버가 구현되었으니, 이제는 MCP 호스트 애플리케이션과 연결해야 합니다. Anthropic의 클로드 데스크탑 애플리케이션을 설치하고, MCP 서버와의 연결 설정을 진행합니다.

MCP 서버 연결 설정

클로드 데스크탑 앱에 MCP 서버를 연결하기 위해서는 JSON 설정 파일을 수정해야 합니다. Mac의 경우, 해당 파일은 ~/Library/Application Support/Claude/claude_desktop_config.json에 위치하며, 아래와 같이 추가해 줍니다.

json
{
"mcpServers": {
"weather": {
"command": "uv",
"args": [
"--directory",
"{mcp server 파일이 있는 디렉토리 경로}",
"run",
"main.py"
]
}
}
}

이제 클로드 데스크탑을 재실행하면 MCP 서버가 등록됩니다. 이 과정이 완료되면 클라우드 애플리케이션과 서버 간의 원활한 통신이 가능해집니다.

MCP 서버 동작 확인 및 테스트

MCP 서버가 정상적으로 작동하는지 확인하기 위해서는 클라이언트를 통해 테스트를 진행해야 합니다. 클로드 데스크탑에서 날씨 정보를 질의하면, 서버가 올바른 응답을 반환하는지 확인할 수 있습니다.

서버에 “서울의 날씨는 어때?”라고 질의하면, MCP 서버가 “Seoul weather is good”이라는 응답을 생성하고, 클로드는 이를 사용자에게 전달하는 방식으로 작동하게 됩니다.

MCP 서버 검증 도구 활용

클라이언트 없이도 MCP 서버의 상태를 점검하고 싶다면, MCP Inspector를 활용할 수 있습니다. 이 도구는 서버의 작동 여부를 확인하고, 제공하는 툴 목록을 보여주는 기능을 제공합니다.

bash
npx @modelcontextprotocol/inspector uv run main.py

위 명령어를 통해 서버를 구동한 후, localhost에서 접속할 수 있는 URL이 제공됩니다. 이에 따라 웹페이지에서 서버의 상태와 제공하는 툴을 확인할 수 있습니다.

결론 및 향후 계획

이번 글에서는 MCP 서버를 구축하는 방법에 대해 자세히 설명하였습니다. 로컬과 원격 서버의 차이, Python을 이용한 구현 방법, 그리고 클라이언트와의 연결 방식 등을 살펴보았습니다. 다음 포스트에서는 MCP 클라이언트를 직접 구현하는 방법에 대해 다룰 예정입니다. 이를 통해 MCP 생태계에 대한 이해를 더욱 깊이 있게 할 수 있기를 바랍니다.