MCP 배운 기념 간단하게 사용해보기1

먼저 claude desktop 설치

 

https://claude.ai/download

 

 

etc-image-0

 

 

 

 

이렇게 코드 작성하고 server.py로 저장

 

# server.py
from mcp.server.fastmcp import FastMCP

# Create an MCP server
mcp = FastMCP("Demo")


# Add an addition tool
@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b

@mcp.tool()
def gcd(a,b):

    """find gcd two number"""

    while b != 0:

        a,b = b,a%b
    
    return a


# Add a dynamic greeting resource
@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"

 

 

claude desktop 화면

 

etc-image-1

 

 

 

좌측 상단에 파일 - 설정 보면

 

etc-image-2

 

 

 

개발자 쪽에 설치된 MCP 서버를 확인할 수 있다

 

etc-image-3

 

 

 

먼저 server.py가 있는 폴더에서

 

 

etc-image-4

 

 

 

pip install uv로 uv설치

 

 

etc-image-5

 

 

pyproject.toml파일을 다음과 같이 작성

 

[project]
requires-python = ">=3.10"
name = "mcp-project"  # project 이름
version = "0.1.0"
dependencies = [
    "mcp[cli]>=1.6.0",
]

 

 

 

이후 uv add "mcp[cli]"로 하면 .venv라는 가상환경에 설치가 되는 것을 확인할 수 있다

 

 

etc-image-6

 

 

source .venv/Scripts/activate로 가상환경 실행

 

etc-image-7

 

 

 

mcp install server.py하면 Demo라는 서버가 claude에 설치된다는 것을 확인

 

 

etc-image-8

 

 

 

그림과 같이 MCP tools 2개 사용 가능이라는 버튼이 뜬다

 

 

etc-image-9

 

 

설정에도 Demo라는 MCP 서버가 실행중임을 확인

 

우측에 휴지통 버튼을 누르면 서버를 삭제할수도 있다

 

 

etc-image-10

 

 

 

1+2라고 쳐보면 다음과 같이 Demo의 도구를 허용하시겠습니까?하면서

 

Claude가 MCP를 쓸지 말지 경고창이 뜬다

 

etc-image-11

 

 

 

etc-image-12

 

 

 

gcd를 구해달라고하면 다음과 같이 gcd 함수를 쓸지 말지 결정해달라고도 뜬다

 

 

etc-image-13

 

 

 

헉 근데 에러나네?

 

입력받을때 기본이 string으로 들어오나봐

 

etc-image-14

 

 

코드를 다음과 같이 수정하면 a,b를 int로 받아준다

 

@mcp.tool()
def gcd(a: int, b: int):

    """find gcd two number"""

    while b != 0:

        a,b = b,a%b
    
    return a

 

 

이후에 claude를 다시시작하면 서버를 굳이 다시 설치 안해도 알아서 반영이 되어있더라고

 

 

etc-image-15

 

 

 

최대공약수라고해도 신기하게 알아먹긴하는듯?

 

etc-image-16

 

 

무료라 끝나버린

 

claude말고는 안되는것 같기는한디

728x90