Skip to main content
Glama
Axolotlpi

mcp-home-server

by Axolotlpi

mcp-home-server

可自托管的 MCP 服务器,为 Claude 提供在家庭服务器上运行 shell 脚本和读取文件的工具。运行在 Multipass 虚拟机上,并通过 Cloudflare Tunnel 暴露。

工具

工具

功能

run_script(name, args[])

在虚拟机上运行 /opt/mcp-server/scripts/{name}

read_file(path)

返回文件内容(路径不受限制 — 虚拟机即为沙盒)

update_self()

执行 git pull + systemctl restart — 自动获取新脚本


Related MCP server: MCP Research Tools

虚拟机部署

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 设置

此操作将虚拟机上的 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" — 它会在虚拟机上执行

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