Let your AI agent connect your servers over SSH tunnels

Reach a database on another VPS without opening it to the Internet, register the initiator's key on the receiver, or confirm the client's tunnel is still up. Your agent builds and checks SSH tunnels between your VPS with the same controls you use in the panel.

What you'd ask your agent

In plain language, the way you'd say it to a person

  • “Set up a tunnel so I can reach the database from my machine”
  • “Tell me whether the client's tunnel is still up”

The tools in this domain (14)

Generated live from the server itself

Pulled from the MCP server itself on every build. Descriptions are in English because that is what the agent reads.

Cloud – SSH tunnel initiator

  • configurar_iniciador_tunel_vps: Installs this VPS as an SSH tunnel initiator (installs autossh, generates an ed25519 keypair). Returns immediately — the actual setup runs in the background (poll with ver_estado_iniciador_tunel_vps). Returns an…
  • controlar_tunel_vps: Starts, stops, or restarts a single SSH tunnel. 'stop' drops whatever is going through it.
  • crear_tunel_vps: Creates an outbound SSH tunnel from this VPS (initiator) to a remote host's receiver. remote_user is the receiver's tunnel user (see listar_claves_receptor_tunel_vps/ ver_estado_receptor_tunel_vps on the target VPS).
  • eliminar_iniciador_tunel_vps: Uninstalls the SSH tunnel initiator role from this VPS. Warning: this tears down ALL tunnels configured on this VPS at once — there is no way to uninstall the initiator role while keeping some tunnels running.
  • eliminar_tunel_vps: Deletes a single SSH tunnel from this VPS (initiator).
  • listar_tuneles_vps: Lists SSH tunnels this VPS (as initiator) has configured toward other hosts. (read only)
  • ver_estado_iniciador_tunel_vps: Status of the SSH tunnel initiator role on this VPS: install progress/failure, or (once installed) its public key (to authorize on a receiver) and tunnel count. (read only)
  • ver_tunel_vps: Full detail of one SSH tunnel, including its live systemd status. (read only)

Cloud – SSH tunnel receiver

  • agregar_clave_receptor_tunel_vps: Authorizes a public SSH key to open tunnels into this VPS's receiver.
  • configurar_receptor_tunel_vps: Installs this VPS as an SSH tunnel receiver (accepts incoming tunnels on port 2222). Returns immediately — the actual setup runs in the background (poll with ver_estado_receptor_tunel_vps). Returns an `operacion_id`:…
  • eliminar_clave_receptor_tunel_vps: Revokes an authorized SSH key from this VPS's tunnel receiver.
  • eliminar_receptor_tunel_vps: Uninstalls the SSH tunnel receiver role from this VPS (removes the tunnel user and its authorized keys).
  • listar_claves_receptor_tunel_vps: Lists the public SSH keys authorized to open tunnels into this VPS's receiver. (read only)
  • ver_estado_receptor_tunel_vps: Status of the SSH tunnel receiver role on this VPS: install progress/failure, or (once installed) the connection string other VPS use to tunnel into it. (read only)

The same thing, from the panel

Everything the agent does is also a few clicks away in the VPS panel.

How do you connect?

Three steps, and the agent handles two of them

  1. You give your agent the MCP server address — it registers itself
  2. The agent opens an authorization link in your browser
  3. You pick the scope and approve. Done: it works on your behalf

Copy, paste, done

Copy this message and paste it to your AI agent — it connects on its own and will only walk you through the part you have to do (approving access in your browser).

Connect to the ArduMaker MCP server at https://mcp.ardumaker.com/mcp (Model Context Protocol, OAuth 2.1). Add it as a remote MCP server and walk me step by step only through what I need to do myself, such as approving access in the browser.
  • Automatic discovery via OAuth metadata
  • Dynamic Client Registration (DCR)
  • PKCE — no secrets to leak
  • The session renews itself: connect once

Manual configuration (Claude Desktop, Cursor, etc.)

{
  "mcpServers": {
    "ardumaker": {
      "url": "https://mcp.ardumaker.com/mcp"
    }
  }
}

Connect your agent

Two steps per client. No API keys: you approve access in the browser and you're done.

  • Claude: Claude → Settings → Connectors → «Add custom connector». Paste the server URL and approve access in the browser.
    https://mcp.ardumaker.com/mcp
  • ChatGPT: ChatGPT → Settings → Apps & connectors → enable developer mode. Create a connector with the server URL and authorize it.
    https://mcp.ardumaker.com/mcp
  • Gemini CLI: In Gemini CLI run the command below. Approve access when the browser opens.
    gemini mcp add --transport http ardumaker https://mcp.ardumaker.com/mcp
  • Cursor: Save this block in your project's .cursor/mcp.json. Approve access when Cursor opens the browser.
    // .cursor/mcp.json
    { "mcpServers": { "ardumaker": { "url": "https://mcp.ardumaker.com/mcp" } } }
  • VS Code / Copilot: In VS Code: «MCP: Add Server» → HTTP, or save this block in .vscode/mcp.json. Approve access when the browser opens.
    // .vscode/mcp.json
    { "servers": { "ardumaker": { "type": "http", "url": "https://mcp.ardumaker.com/mcp" } } }
  • MCP: Any MCP client: point it at the server URL (HTTP, OAuth 2.1). Approve access when the browser opens.
    https://mcp.ardumaker.com/mcp

What your agent can do

Practically everything you do yourself, under the same rules and permissions

  • VPS and commands: Create and control servers, run commands, read logs and metrics, manage Linux users

    For example, you ask it:

    • “Spin up a mid-tier VPS and hand it to me with Docker already installed”
    • “Find out why the server is at 90% RAM and tell me which process is eating it”
    • “Pull the last 200 lines of the nginx log from the production server”
    • “Create a Linux user for the new dev with access only to their own folder”
  • Domains, DNS and nginx: Your own domains and their DNS records, nginx configuration, reverse proxies and port forwards

    For example, you ask it:

    • “Point this domain at the staging VPS and turn on SSL”
    • “Add the TXT record Google is asking for to verify the domain”
    • “Set up a reverse proxy to port 3000 for the new app”
    • “Check my domain's DNS and tell me whether the nameservers point where they should”
  • Email: Mail domains, mailboxes, aliases, filters and folders — plus reading and sending messages

    For example, you ask it:

    • “Create a mailbox for the new dev with a 5 GB quota”
    • “Set up a contact@ alias that fans out to the whole team”
    • “Check whether anything from billing arrived this week and summarize it”
    • “Configure the mail DNS for the new domain and verify it's correct”
  • Databases: PostgreSQL and MySQL: explore the schema, query, insert, edit rows and run DDL

    For example, you ask it:

    • “Show me what tables the production database has and how they relate”
    • “Count how many orders came in yesterday and group them by status”
    • “Add a cancellation-date column to the customers table”
    • “This query is slow: explain the plan and tell me which index is missing”
  • Projects and team: Stages, tasks, checklists, calendar, meetings, attachments and audit trail

    For example, you ask it:

    • “Load the tasks for the new stage and split them by who's actually available”
    • “Which task should I pick up now, given what's already unblocked?”
    • “Book a one-hour meeting with the team when everyone is free”
    • “Summarize what moved on the project this week from the activity log”
  • Services and scheduled tasks: systemd services and cron jobs: create, edit, start, stop and read their logs

    For example, you ask it:

    • “Run the API as a systemd service that starts on boot”
    • “The worker keeps crashing: check the systemd logs and tell me what's going on”
    • “Schedule the database backup every day at 3 AM”
  • GitHub deploys: Link repos, redeploy, and read the commits and logs of every deployment

    For example, you ask it:

    • “Redeploy the frontend repo and tell me if the build fails”
    • “Which commit is running in production right now?”
    • “Show me the log of the last deploy that errored out”
  • WordPress: Sites, Elementor, WooCommerce, plugins, SEO, backups, staging and moves, on your own VPS

    For example, you ask it:

    • “Create a WooCommerce store on my VPS with 3 products and publish it at store.mydomain.com”
    • “Take a backup and then change Elementor's global colors”
    • “Bring my site from this UpdraftPlus backup”
    • “Try the redesign on staging and, if it looks good, publish it to production”
  • AI and search keys: Router IA keys and Search API tokens: create them, revoke them and check usage

    For example, you ask it:

    • “Create a Router IA key for the new project and hand it to me”
    • “How much have I spent on searches this month?”
  • Blog and content: Write, translate and publish blog posts, with their sections and images

    For example, you ask it:

    • “Write a post about the launch and translate it into Spanish and Portuguese”
    • “Publish the draft that's been sitting there since last week”
  • Workspace and usage: Contracted services, usage for the period, and the workspace's verification status

    For example, you ask it:

    • “What services am I paying for, and how much has this month run up?”
    • “Tell me what's still missing for the workspace to be verified”
  • Issue reporting: The agent can report a problem when something breaks, and look up its reports

    For example, you ask it:

    • “Report this failure with the details of what you were doing”
    • “Which issues have I reported, and what state are they in?”

See the full reference

The tools in this domain · See everything the MCP does

How it works under the hood

The technical documentation for what this page covers: what each tool does, what changes, how to verify it and which MCP tools operate it.

  • SSH tunnels: Persistent SSH tunnel between two VPS with autossh: a receiver service shows up on the initiator's localhost without being exposed.

All the documentation