반응형
반응형

MCP가 요즘 핫한데 어떻게 사용해 볼 수 있을까?

 

Claude desktop에서 직접 실행해볼 수 있다.

 

 

Claude Desktop 설치

 

Claude web에서는 MCP를 지원하지 않으니, Claude Desktop을 설치해야한다.

아래의 링크에서 Claude Desktop을 다운받자

https://claude.ai/download

 

 

 

 

Claude desktop을 설치한 후, 본인의 계정으로 로그인하면 채팅창을 볼 수 있다.

여기까지는 Claude web과 동일

 

 

 

 

(맥북 유저 기준) 사과 옆에 있는 Claude > 설정 을 눌러보면 아래와 같은 창을 볼 수 있다.

 

 

 

개발자를 클릭해보면 MCP를 실행할 수 있는 환경 세팅은 끝났다.

 

 


 

MCP Server 구축

 

python에서는 FastMCP를 통해서 간단하게 MCP Server을 구축할 수 있다.

 

 

FastMCP의 기본 구조는 다음과 같다.

 

 

더하기 Tool 예시

# server.py
from fastmcp import FastMCP

mcp = FastMCP(
    name="test",
    version="0.0.1",
    description="testn server"
)

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

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

 

 

Web Serach 예시

# .env

PERPLEXITY_API_KEY = 개인의 키
# mcp_server.py

import os

import requests
from dotenv import load_dotenv
from mcp.server.fastmcp import FastMCP

load_dotenv()

PERPLEXITY_API_KEY = os.getenv("PERPLEXITY_API_KEY")

url = "https://api.perplexity.ai/chat/completions"

headers = {
    "Authorization": f"Bearer {PERPLEXITY_API_KEY}",
    "Content-Type": "application/json",
}

mcp = FastMCP(
    name="web_search", version="1.0.0", description="web search using perplexity API"
)


@mcp.tool()
async def web_search(query: str):
    payload = {
        "model": "sonar",
        "messages": [
            {"role": "system", "content": "Be precise and concise."},
            {"role": "user", "content": query},
        ],
        "max_tokens": 123,
        "temperature": 0.2,
        "top_p": 0.9,
        "return_images": True,
        "top_k": 0,
        "stream": False,
        "web_search_options": {"search_context_size": "high"},
    }

    response = requests.post(url, json=payload, headers=headers)
    result = response.json()
    return result["choices"][0]["message"]["content"]


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

 

Web search Tool을 아주 간단하게 구현해서 테스트했다. (생략된 부분이 많으므로 본격적으로 사용하려면 구현이 더 필요함)

여기서 사용한 Web Search는 Perplexity이고 .env 파일에 KEY를 저장하여 사용했다.

 

 

 

Claude + MCP 서버 연결

 

다시 claude desktop으로 돌어와서

설정 편집을 누르게 되면 claude_desktop_config.json 을 수정할 수 있다.

 

여기에 아래의 json을 붙여넣기

{
  "mcpServers": {
    "web-search": {
      "command": "which python으로 python 위치 파악",
      "args": [
        "파일 위치/mcp_server.py"
      ],
      "env": {}
    }
  }
}

 

설정했으면 다시 claude desktop을 닫았다가 열면 된다.

 

 

 

 

 

 

 

만약 config파일이 잘못됐다면 연결에 실했다는 warning과 함께 log도 같이 볼 수 있다.

나같은 경우네는 conda 가상환경에서 사용하고 있었는데 "commad"에서 경로를 잘못 적어줘서 connect 오류가 난거였음

 

 

 

 

만약 성공했다면 claude desktop을 실행하자마자 "접근"이 뜨며 "허용"을 누르면 된다.

 

 

최종 결과

 

오늘 서울 날씨 어때?

 

물어봤을 때, 만약 MCP를 연결하지 않았다면

 

 

 

클로드는 실시간을 반영할 수 없기 때문에, 이러한 답변한다.

 

제 지식 범위는 2024년 10월까지로 제한되어 있어서 2025년 4월 23일 현재 서울의 실시간 날씨에 대한 정확한 정보를 제공하지 못합니다. 현재 날씨를 알기 위해서는 기상청 웹사이트나 날씨 앱을 확인하시는 것이 좋겠습니다.

서울은 일반적으로 4월 하순에는 봄 날씨로 낮 기온이 15-20도 정도이고, 아침저녁으로는 서늘할 수 있습니다. 하지만 이는 평균적인 정보일 뿐이고, 오늘의 실제 날씨는 다를 수 있습니다.

 

 

 

하지만 아까 만들어둔 "web-search" 를 연결한다면?

 

 

 

쿼리를 날리는 동시에 mcp 연결에 허용하겠냐는 팝업과 함께 "허용"을 누르면

 

 

 

웹 검색으로 오늘의 서울 날씨를  검색해서 알려준다.

반응형

+ Recent posts