라즈베리파이 준비
이제 PC가 아닌 라즈베리파이에 MCP 서버(Model Context Protocol Server)를 실행해볼 예정이다. 라즈베리파이는 이전에 구입하여 다른 용도로 사용하던 라즈베리파이 4를 사용하기로 했다. 원래 라즈베리파이가 저가의 제어용 원보드 컴퓨터였는데 라즈베리파이 5는 어느덧 저가 PC 가격이 된것 같다.
이전 MCP Server의 파이썬 구현을 위한 fastmcp 모듈을 설치할 때 Python 버전이 문제가 되었다("Claude Desktop에서 파이썬으로 Local MCP 서버를 만들자." 읽기 >). 파이썬 3.10이상이어야 하는데 이전에 사용하던 라즈베리파이에는 파이썬 3.7이 설치되어 있었다. 그래서 라즈베리파이 이메저를 이용하여 최신 OS로 변경하였다. 설치 후 결과로 확인해보니 Python 3.13이 설치되어 있다.

라즈베리파이에서 MCP 서버 실행 환경
이번 예제는 아래 MCP 서버 실행 환경을 사용한다. 실행 환경은 라즈베리파이에 MCP 서버를 설치하고 Localhost에서 SSE 모드로 실행시키면 ngrok을 통해 외부 웹을 통해 노출시킨다. 다음으로 PC에서 Mcp-Remote를 통해 SSE를 stdio 모드로 바꿔 노출된 MCP 서버를 PC에서 실행하는 Claude Desktop에서 사용할 수 있게 한다. Claude Node의 경우 라즈베리파이에서 직접 실행할 수 있으나 IoT에 특화된 라즈베리파이에서 MCP 서버만 제공하고 PC에서 웹을 통해 Claude Desktop을 사용할 경우 보다 유연하고 효율적인 체계를 갖출 수 있다. 또한 무료 버전인 Claude Desktop만 사용하여 IOT 제어 MPC 서버를 경험할 수 있다.

1/3 라즈베리파이에서 MCP 서버 실행
RGB LED를 클로드 데스크탑을 이용하여 제어하는 MCP 서버를 라즈베리파이에 설치한다. 예제는 라즈베리파이의 MCP 서버는 RGB LED를 클로드 데스크탑을 이용하여 제어한다.
먼저 라즈베리피 파이에 RGB LED를 연결한다. RGB LED는 GPIO 16, 20 그리고 21를 순서대로 사용한다.

실제 연결한 사진은 다음과 같다.

이제 라즈베리파이에 MCP 서버를 실행시킬 수 있는 환경을 설치한다. Apt를 업데이트 한다.
sudo apt update
파이썬에 이번 예제에 필요한 모듈을 설치한다.
sudo apt install -y swig build-essential python3-dev liblgpio-dev python3-lgpio
다음으로 MCP 서버 개발을 위한 가상 환경을 관리하는 도구인 uv를 설치한다.
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc
MCP 서버 개발 프로젝트를 만들기 위해 "pimcp" 디렉터리를 만들고 이동한다.
mkdir pimcp
cd pimcp
uv를 이용하여 프로젝트를 생성한다.
uv init
프로젝트에 필요 모듈을 설치한다.
uv add fastmcp gpiozero
이제 MCP 서버인 pimcp.py 를 다음과 같이 작성한다.
from fastmcp import FastMCP
from gpiozero import RGBLED
# Initialize MCP Server
mcp = FastMCP("RGBLEDControl")
# RGB LED -> Red: 16, Green: 20, Blue: 21
led = RGBLED(red=16, green=20, blue=21)
@mcp.tool()
def manual_led_control(r: float, g: float, b: float):
"""Tool 1: Manually set the RGB LED color using values between 0.0 and 1.0."""
led.color = (r, g, b)
return f"LED successfully set to RGB({r}, {g}, {b})"
if __name__ == "__main__":
# Start the SSE server on the Pi
mcp.run(transport="sse", host="0.0.0.0", port=8000)
Fastmcp 서버를 실행한다.
uv run pimcp.py
실행 후 아래와 같이 uv로 만든 가상환경에 pigpio와 lgpio가 설치되지 않았다는 경고가 출력되었다.
/home/pi/pimcp/.venv/lib/python3.13/site-packages/gpiozero/devices.py:300: PinFactoryFallback: Falling back from pigpio: No module named 'pigpio'
그러므로 추가로 다음과 같이 uv add로 가상 환경에 pigpio와 lgpio 환경을 추가하였다.
uv add lgpio
uv add pigpio
다시 uv run pimcp.py를 실행하면 다음 화면을 만나게 된다.

계속, "라즈베리파이에 MCP 서버를 설치하자(2/2)" 읽기 >
참고
RGBLED 파이썬 프로그램
from gpiozero import RGBLED
from time import sleep
# 핀 번호 설정 (캐소드형인 경우 active_high=True 기본값 사용)
rgbled = RGBLED(red=16, green=20, blue=21)
# 빨간색 켜기
rgbled.color = (1, 0, 0)
sleep(1)
# 초록색 켜기
rgbled.color = (0, 1, 0)
sleep(1)
# 파란색 켜기
rgbled.color = (0, 0, 1)
sleep(1)
# 끄기
rgbled.off()
2026 NDo
2026/9/8 처음 2026/9/8
'production > MCP server' 카테고리의 다른 글
| ngrok과 mcp-remote로 Claude Desktop 연결 (2/2) 라즈베리파이에서 MCP 서버 실행 (0) | 2026.09.13 |
|---|---|
| Claude Desktop에서 Database 서버에 접근하는 MCP 서버를 만들자. (0) | 2026.08.21 |
| Claude Desktop이 사진을 찍고 설명하는 Local MCP 서버를 만들자. (0) | 2026.08.17 |
| Claude Desktop이 스피커로 말하게 하는 Local MCP 서버를 만들자. (0) | 2026.08.17 |
| Claude Desktop에서 파이썬으로 Local MCP 서버를 만들자. (0) | 2026.08.17 |