mcp server 실습

이우철·2026년 3월 17일
  1. 라이브러리 설치
    pip install "mcp[cli]" fastmcp

  2. 코드 작성

import os
import sys
from mcp.server.fastmcp import FastMCP

# 1. MCP 서버 객체 생성
mcp = FastMCP("MyLocalAgent")

# 2. Tool(Skill) 정의
@mcp.tool()
def read_my_notes(filename: str) -> str:
    """로컬 작업 폴더 내의 텍스트 파일을 읽습니다."""
    # 현재 서버 파일(server.py)이 있는 폴더 경로를 기준으로 잡습니다.
    base_path = os.path.dirname(os.path.abspath(__file__))
    file_path = os.path.join(base_path, filename)
    
    try:
        with open(file_path, "r", encoding="utf-8") as f:
            return f.read()
    except FileNotFoundError:
        return f"파일을 찾지 못했습니다.\n찾으려는 전체 경로: {file_path}"
    except Exception as e:
        return f"에러가 발생했습니다: {str(e)}"

# 3. [핵심] 서버 실행부 추가
if __name__ == "__main__":
    # 실행 시 터미널에 로그가 남도록 stderr로 출력 (표준 출력 print는 금지)
    print("--- MCP Server Starting ---", file=sys.stderr)
    mcp.run()
  1. claude desktop 에 설정

설정 파일 위치

Windows: %APPDATA%\Claude\claude_desktop_config.json

Mac: ~/Library/Application/Support/Claude/claude_desktop_config.json

JSON 내용 수정

JSON
{
  "mcpServers": {
    "my-local-agent": {
      "command": "C:/내경로/my-mcp-server/.venv/Scripts/python.exe",
      "args": [
        "C:/내경로/my-mcp-server/server.py"
      ]
    }
  }
}
  1. 실습 테스트 및 확인
  • Claude Desktop 재시작: 설정을 반영하기 위해 앱을 완전히 껐다 켭니다.
  • 연결 확인: 채팅창 우측 하단 콘센트(🔌) 아이콘을 클릭해 my-local-agent가 활성화되었는지 확인합니다.
  • 파일 생성: my-mcp-server 폴더에 news.txt를 만들고 네이버 뉴스에서 임의 내용을 찾아 복사해 넣습니다.
  • 질문: "내 폴더에 있는 news.txt 읽어서 요약해줘."
  • 참고 : 왜 pip install "mcp[cli]"인가?: 뒤에 붙은 [cli]는 MCP 서버를 테스트하거나 관리할 때 필요한 명령줄 도구까지 함께 설치하겠다는 의미입니다
profile
개발 정리 공간 - 업무일때도 있고, 공부일때도 있고...

0개의 댓글