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.
    -