Skip to main content
Glama
Axolotlpi

mcp-home-server

by Axolotlpi

mcp-home-server

Servidor MCP autohospedable que proporciona a Claude herramientas para ejecutar scripts de shell y leer archivos en un servidor doméstico. Se ejecuta en una máquina virtual Multipass y se expone a través de Cloudflare Tunnel.

Herramientas

Herramienta

Qué hace

run_script(name, args[])

Ejecuta /opt/mcp-server/scripts/{name} en la VM

read_file(path)

Devuelve el contenido del archivo (ruta sin restricciones: la VM es el entorno aislado)

update_self()

git pull + systemctl restart: detecta nuevos scripts automáticamente


Related MCP server: MCP Research Tools

Despliegue de la 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

Permitir que el servicio se reinicie solo sin solicitar contraseña:

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

Configuración de Cloudflare Tunnel

Esto expone 127.0.0.1:8000 en la VM a una URL HTTPS pública sin abrir puertos del firewall.

1. Instalar 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. Autenticar y crear un túnel

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

Tenga en cuenta el ID del túnel que aparece tras la creación.

3. Crear el archivo de configuración

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

Reemplace <YOUR_TUNNEL_ID> y mcp.yourdomain.com con sus propios valores.

4. Enrutar DNS

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

Esto crea un registro CNAME en su panel de control de Cloudflare que apunta al túnel.

5. Ejecutar como servicio

sudo cloudflared service install
sudo systemctl enable --now cloudflared

El túnel se iniciará ahora al arrancar. Su servidor será accesible en https://mcp.yourdomain.com.


Añadir a Claude

El servidor MCP utiliza SSE. El punto de conexión es https://mcp.yourdomain.com/sse.

Claude Desktop

Edite 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"
      }
    }
  }
}

Reinicie Claude Desktop después de guardar.

Claude Code (CLI)

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

O añádalo manualmente a .claude/settings.json:

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

Añadir nuevos scripts

  1. Añada su script a scripts/ y súbalo a GitHub

  2. Dígale a Claude: "run update_self": descargará el código más reciente y se reiniciará

  3. Dígale a Claude: "run my-script.sh": se ejecutará en la VM

La conexión se interrumpirá brevemente durante el reinicio en el paso 2. Es lo esperado.

Para evitar que un script pueda ser llamado a través de la API, añada su nombre de archivo a 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.
    -