MCP 서버 직접 만들기 — 파이썬으로 첫 서버부터 Claude 연결까지 (2026)

내 도구·데이터를 클로드에 연결하는 MCP 서버를 직접 만들어 봅니다. uv로 환경을 잡고 FastMCP로 최소 서버를 작성해 클로드에 연결하는 과정을 단계별로 정리했습니다.

필요한 도구나 데이터가 기존 커넥터에 없다면, MCP 서버를 직접 만들어 클로드에 붙일 수 있습니다. 어렵게 들리지만 파이썬 기준으로 핵심은 의외로 짧습니다 — 환경을 잡고, 함수 하나를 "도구"로 등록하고, 클로드에 연결하면 끝입니다. 이 글은 최소 MCP 서버를 만들어 클로드에 연결하기까지를 단계별로 정리합니다.

MCP 서버 만들기 — 4단계MCP 서버 만들기 — 4단계① 환경 준비uv · MCP SDK② 도구 작성@mcp.tool()③ Claude 연결설정 · mcp add④ 사용·테스트도구 호출

MCP 서버가 하는 일

MCP 서버 — 클로드 같은 AI에게 "이런 도구를 쓸 수 있어"라고 알려 주고 실제로 실행해 주는 작은 프로그램입니다. 사내 DB 조회, 특정 API 호출, 파일 처리 같은 일을 도구로 만들어 두면 클로드가 대화 중에 그 도구를 호출합니다. 개념이 생소하면 MCP 쉬운 설명MCP 구조를 먼저 보세요. 어떤 커넥터·서버가 있는지는 커넥터·MCP 카탈로그에 정리해 두었습니다.

준비물

이 예시는 파이썬으로 만듭니다. 패키지·실행 관리는 공식 퀵스타트와 동일하게 uv를 씁니다(파이썬 3.10 이상 권장). 자바스크립트로 만들고 싶다면 아래 "타입스크립트로 만들기"를 참고하세요.

1) 환경 준비

uv를 설치하고 프로젝트를 만든 뒤 MCP SDK를 추가합니다.

curl -LsSf https://astral.sh/uv/install.sh | sh

uv init demo
cd demo
uv venv
source .venv/bin/activate
uv add "mcp[cli]"
touch server.py

위 명령은 macOS·리눅스 기준입니다. 윈도우를 포함한 전체 환경 설정은 공식 "Build an MCP server" 문서를 참고하세요.

2) 도구 작성

server.py에 함수를 만들고 @mcp.tool()로 등록하면 그 함수가 클로드가 호출할 수 있는 도구가 됩니다. 함수의 독스트링(설명)이 곧 도구 설명이 되므로 명확히 적는 것이 좋습니다.

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("demo")

@mcp.tool()
def add(a: int, b: int) -> int:
    """두 정수를 더합니다."""
    return a + b

if __name__ == "__main__":
    mcp.run(transport="stdio")

여기서는 더하기 도구 하나만 등록했습니다. 실제로는 DB 조회·API 호출 같은 함수를 같은 방식으로 추가하면 됩니다. 인자에 타입 힌트(예: a: int)를 달면 클로드가 값을 더 정확히 채웁니다.

3) Claude에 연결

Claude Desktop에서 쓰려면 설정 파일 claude_desktop_config.json에 서버를 등록합니다. --directory 경로는 프로젝트 폴더의 절대경로로 바꾸세요.

{
  "mcpServers": {
    "demo": {
      "command": "uv",
      "args": ["--directory", "/ABSOLUTE/PATH/TO/demo", "run", "server.py"]
    }
  }
}

저장 후 Claude Desktop을 재시작하면 도구 목록에 demo 서버가 나타납니다. Claude Code에서는 claude mcp add 명령으로 등록합니다 — 스코프·전송 방식까지 자세한 설명은 Claude Code MCP 설정에, 연결하는 4가지 방법 전반은 연결·사용법에 있습니다.

4) 사용·테스트

클로드에게 "demo의 add 도구로 2와 3을 더해 줘"처럼 요청하면, 클로드가 도구 사용 승인을 물은 뒤 서버를 호출합니다. 도구가 안 보이거나 연결이 안 되면 문제해결 가이드의 증상별 점검 순서를 따라가 보세요.

원격(커스텀 커넥터)으로 쓰려면

위 예시는 내 PC에서 도는 로컬(stdio) 서버로 Claude Desktop·Claude Code에 적합합니다. claude.ai 웹에서 커스텀 커넥터로 붙이려면 서버를 원격 HTTP 서버로 배포한 뒤 그 URL을 설정 → 커넥터에서 추가해야 합니다. 절차 개요는 연결·사용법(커스텀 커넥터 포함)공식 커넥터 안내를 참고하세요.

타입스크립트로 만들기

자바스크립트·타입스크립트도 공식 SDK가 있습니다. 설치는 아래와 같고, 서버 코드는 공식 문서의 TypeScript 예시를 그대로 따르길 권합니다(메서드 시그니처가 버전에 따라 바뀔 수 있어 원문 기준이 안전합니다).

npm install @modelcontextprotocol/sdk zod@3
npm install -D @types/node typescript

안전하게

직접 만든 서버든 남의 서버든, 클로드에 연결하면 그 도구가 내 데이터·시스템에 접근할 수 있습니다. 외부에 공개하거나 원격 배포할 때는 권한을 좁게 잡고 인증을 두는 것이 중요합니다. 신뢰·권한 기준은 MCP 커넥터 보안을, 이미 있는 서버는 용도별 추천어디서 찾나를 보세요.

작성·기준: 2026년 6월. 코드와 설정은 공식 "Build an MCP server" 문서를 바탕으로 했으며 SDK 버전에 따라 세부가 바뀔 수 있으니 실제 작성 시 공식 문서를 함께 확인해 주세요. 이 글은 비공식 안내입니다.

이어서 읽어보세요

이 주제, 커뮤니티에서 이야기 나눠요

'클로드 코딩' 게시판의 첫 글을 남겨보세요. 같은 주제를 보는 사람들이 모입니다.