Let your AI agent work your databases

Ask what tables exist and how they relate, pull a number without writing the SQL, add a column, or work out why a query is slow. The agent works against PostgreSQL and MySQL with the credentials you saved, and every operation lands in the history. Most of the tools in this group are read-only, and the SQL query tool rejects writes by design: your agent can explore an entire database without being able to touch it.

What you'd ask your agent

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

  • “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”

The tools in this domain (15)

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 – Databases

  • actualizar_fila_db_vps: Updates ONE row, identified by its COMPLETE primary key. There is no bulk update on purpose: an UPDATE with a wrong WHERE is one of the few things here that cannot be undone.
  • borrar_fila_db_vps: Deletes ONE row by complete primary key. Same rule as the update: one row at a time.
  • consultar_sql_db_vps: Runs a READ-ONLY SQL query, one single statement. Writes are rejected here on purpose: use the row tools or ejecutar_ddl_db_vps. Pass values through `params`, never glued into the SQL text. (read only)
  • contar_filas_db_vps: Exact COUNT(*), with the same filter as leer_filas_db_vps. It is a separate tool because on a big table it costs far more than reading a page. (read only)
  • describir_tabla_db_vps: Columns (with a normalized type that is the same for both engines), nullability, primary key, foreign keys and indexes. Read this before writing rows: it is where the real column names come from. (read only)
  • ejecutar_ddl_db_vps: Runs ONE DDL statement (CREATE / ALTER / DROP / TRUNCATE ...). If it DESTROYS data it fails with HTTP 428 and tells you `confirmacion_esperada`: the exact name of the object. Retry passing it in `confirmacion`. Do not…
  • explicar_sql_db_vps: EXPLAIN of a query, in each engine's own format (they are not comparable, and forcing a common shape would make both useless). analizar=True runs EXPLAIN ANALYZE, which DOES execute the query — PostgreSQL only. (read only)
  • guardar_credencial_db_vps: Stores the engine credentials when the client changed them by hand (the default password is the VPS slug). Encrypted at rest and NEVER returned: no tool reads it back.
  • historial_operaciones_db_vps: The log of destructive operations run against this VPS's databases: who, when, which statement, on which object, and whether it came from the web interface or from an agent. (read only)
  • insertar_fila_db_vps: Inserts ONE row. `valores` is {column: value}; columns are validated against the catalog and values travel as driver placeholders. Returns the row as it ended up, with defaults and auto-increment already resolved.
  • leer_filas_db_vps: One page of rows, WITHOUT writing SQL. `filtro` uses a whitelist of operators, `orden` takes column names with an optional '-' prefix. For the next page pass `despues_de` = the `siguiente` of the previous answer (keyset… (read only)
  • listar_bases_db_vps: Lists the databases of an engine, with size and encoding. (read only)
  • listar_motores_db_vps: Lists the database engines installed on a VPS (PostgreSQL, MySQL/MariaDB), their port, version and whether they are running. sondear=False answers from cache without touching the VPS. (read only)
  • listar_tablas_db_vps: Lists tables and views of a database, with an estimated row count (free: it comes from the engine's own statistics, it does not run COUNT(*)). (read only)
  • probar_conexion_db_vps: Checks that the backend can actually reach that engine on the VPS and log in. Use this first when something fails: it tells apart 'the VPS is off', 'the engine is down' and 'the password was changed by hand'. (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”
  • 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”
  • SSH tunnels: Tunnel receivers and initiators, keys, and the state of every connection

    For example, you ask it:

    • “Set up a tunnel so I can reach the database from my machine”
    • “Tell me whether the client's tunnel is still up”
  • 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.

  • PostgreSQL: PostgreSQL databases on the VPS with their own least-privilege user, TLS and external access limited by an IP allowlist.
  • MySQL: MySQL 8 or MariaDB databases on the VPS with their own TLS-only account, grants on its database only and IP-based external access.
  • Redis: Native Redis, one per VPS, with its own ACL user, RDB persistence, TLS and external access limited by an IP allowlist.
  • Database manager: Browse and edit the VPS PostgreSQL and MySQL from the dashboard or over MCP, through a private tunnel, with guards and auditing.

All the documentation