Skip to main content
Glama
Axolotlpi

mcp-home-server

by Axolotlpi

mcp-home-server

Claude에게 홈 서버에서 셸 스크립트를 실행하고 파일을 읽을 수 있는 도구를 제공하는 자가 호스팅 MCP 서버입니다. Multipass VM에서 실행되며 Cloudflare Tunnel을 통해 노출됩니다.

도구

도구

기능

run_script(name, args[])

VM에서 /opt/mcp-server/scripts/{name}을 실행합니다

read_file(path)

파일 내용을 반환합니다 (경로 제한 없음 — VM이 샌드박스 역할을 함)

update_self()

git pull + systemctl restart — 새로운 스크립트를 자동으로 가져옵니다


Related MCP server: MCP Research Tools

VM 배포

git clone git@github.com:Axolotlpi/mcp-home-server.git /opt/mcp-server
cp /opt/mcp-server/.env.example /opt/mcp-server/.env
nano /opt/mcp-server/.env          # set MCP_TOKEN to a long random secret
sudo bash /opt/mcp-server/setup.sh

서비스가 비밀번호 입력 없이 스스로 재시작되도록 허용합니다:

echo 'ubuntu ALL=(ALL) NOPASSWD: /bin/systemctl restart mcp-server' \
  | sudo tee /etc/sudoers.d/mcp-server

Cloudflare Tunnel 설정

이 설정은 방화벽 포트를 열지 않고도 VM의 127.0.0.1:8000을 공용 HTTPS URL로 노출합니다.

1. cloudflared 설치

curl -L https://pkg.cloudflare.com/cloudflare-main.gpg \
  | sudo tee /usr/share/keyrings/cloudflare-main.gpg > /dev/null
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-main.gpg] https://pkg.cloudflare.com/cloudflared jammy main' \
  | sudo tee /etc/apt/sources.list.d/cloudflared.list
sudo apt update && sudo apt install cloudflared -y

2. 인증 및 터널 생성

cloudflared tunnel login           # opens browser — pick your domain
cloudflared tunnel create mcp-server

생성 후 출력되는 터널 ID를 기록해 두세요.

3. 설정 파일 생성

sudo mkdir -p /etc/cloudflared
sudo tee /etc/cloudflared/config.yml <<EOF
tunnel: <YOUR_TUNNEL_ID>
credentials-file: /root/.cloudflared/<YOUR_TUNNEL_ID>.json

ingress:
  - hostname: mcp.yourdomain.com
    service: http://127.0.0.1:8000
  - service: http_status:404
EOF

<YOUR_TUNNEL_ID>와 mcp.yourdomain.com을 본인의 값으로 바꾸세요.

4. DNS 라우팅

cloudflared tunnel route dns mcp-server mcp.yourdomain.com

이 작업은 Cloudflare 대시보드에서 터널을 가리키는 CNAME 레코드를 생성합니다.

5. 서비스로 실행

sudo cloudflared service install
sudo systemctl enable --now cloudflared

이제 터널이 부팅 시 자동으로 시작됩니다. 서버는 https://mcp.yourdomain.com에서 접속할 수 있습니다.


Claude에 추가하기

이 MCP 서버는 SSE를 사용합니다. 엔드포인트는 https://mcp.yourdomain.com/sse입니다.

Claude Desktop

claude_desktop_config.json을 편집하세요:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "home-server": {
      "url": "https://mcp.yourdomain.com/sse",
      "headers": {
        "Authorization": "Bearer YOUR_MCP_TOKEN"
      }
    }
  }
}

저장 후 Claude Desktop을 재시작하세요.

Claude Code (CLI)

claude mcp add --transport sse home-server https://mcp.yourdomain.com/sse \
  --header "Authorization: Bearer YOUR_MCP_TOKEN"

또는 .claude/settings.json에 수동으로 추가하세요:

{
  "mcpServers": {
    "home-server": {
      "type": "sse",
      "url": "https://mcp.yourdomain.com/sse",
      "headers": {
        "Authorization": "Bearer YOUR_MCP_TOKEN"
      }
    }
  }
}

새로운 스크립트 추가

  1. scripts/에 스크립트를 추가하고 GitHub에 푸시합니다.

  2. Claude에게 *"run update_self"*라고 말합니다. 최신 코드를 가져와 재시작합니다.

  3. Claude에게 *"run my-script.sh"*라고 말합니다. VM에서 실행됩니다.

2단계에서 재시작하는 동안 연결이 잠시 끊어집니다. 이는 정상적인 현상입니다.

API를 통해 스크립트가 호출되지 않도록 차단하려면 blacklist.txt에 파일 이름을 추가하세요.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server that enables Claude to control your computer, similar to Anthropic's computer use but easy to set up locally.
    351 npm
    382
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Local-first MCP server that gives Claude Code web search, page reading, video transcription, and image analysis — without paid API keys. Runs SearXNG + whisper.cpp natively on Apple Silicon for zero-cost, low-latency research workflows.
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    A remote MCP server that gives Claude (and ChatGPT/Gemini) persistent read/write access to your own memory: books, games, projects, notes, and freeform facts.
    -