För utvecklare

Styr Wallnode från Claude och dina egna verktyg

Med MCP-servern kan Claude, Cursor och egna skript göra allt som går att göra i appen, med en API-nyckel som du själv bestämmer vad den får göra.

Vad det är

Wallnodes MCP-server låter AI-verktyg och skript skapa tjänster, koppla GitHub-repon och publicera, byta namn, koppla domäner, ta och återställa säkerhetskopior, läsa användning och loggar och hantera support. Admins kan dessutom se hela plattformen.

  • Adress: https://wallnode.se/mcp
  • Inloggning: en API-nyckel som börjar på wn_ i headern Authorization: Bearer <nyckel>.
  • Protokoll: MCP över Streamable HTTP, utan sessioner och med JSON-svar.

Kom igång

  1. Logga in och gå till Inställningar, avsnittet API-nycklar och MCP.
  2. Skapa en nyckel. Välj behörighet och gärna en giltighetstid. Nyckeln visas bara en gång, så spara den i din lösenordshanterare.
  3. Koppla din klient enligt nästa avsnitt.

Koppla din klient

Claude Code

claude mcp add --transport http wallnode https://wallnode.se/mcp --header "Authorization: Bearer wn_..."

claude.ai

Gå till Inställningar, Connectors och lägg till en egen connector. Ange adressen med nyckeln i sökvägen. Adressen är då lika hemlig som nyckeln.

https://wallnode.se/mcp/wn_...

Cursor och andra klienter

Lägg till i mcp.json eller motsvarande:

{
  "mcpServers": {
    "wallnode": {
      "url": "https://wallnode.se/mcp",
      "headers": { "Authorization": "Bearer wn_..." }
    }
  }
}

Egna skript

Vanliga JSON-RPC-anrop med curl eller valfritt språk:

curl -s https://wallnode.se/mcp \
  -H "Authorization: Bearer $WALLNODE_KEY" -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"wallnode_list_instances","arguments":{}}}'

Behörigheter

Varje nyckel har en nivå. Verktyg som nyckeln inte får använda visas inte för klienten.

NivåFår göraExempel
LäsaSe allt, ändra inget.Tjänster, status, användning, loggar, publiceringar, domäner, säkerhetskopior och ärenden.
Läsa och ändraAllt i Läsa, plus skapa och ändra.Skapa tjänst, byta namn, starta, stoppa, publicera, rulla tillbaka, sätta miljövariabler, koppla domän och ta säkerhetskopia.
AlltAllt i Läsa och ändra, plus det som inte går att ångra.Radera tjänst, återställa eller radera säkerhetskopia, ta bort miljövariabler och ta bort API-nycklar.
  • Adminverktyg fungerar bara om nyckelns ägare har adminrollen. Rollen kontrolleras vid varje anrop.
  • Att radera en tjänst kräver att tjänstens exakta namn skickas med. Att återställa eller radera en säkerhetskopia kräver en uttrycklig bekräftelse.
  • Klienter som Claude frågar innan de kör något som inte går att ångra.

Exempel

Det här kan du be om:

  • ”Vilka av mina tjänster är nere just nu, och vad säger loggen för den senaste publiceringen?”
  • ”Skapa en webbapp från repot walldyai/kund-web på branchen main och koppla den till kund.se.”
  • ”Byt namn på bokningsappen till Bokning 2026 och publicera om den.”
  • ”Ta en säkerhetskopia av alla mina WordPress-sajter.”
  • ”Hur mycket CPU och minne har n8n-instansen använt det senaste dygnet?”
  • ”Kolla var domänen foretaget.se ligger idag och vilka DNS-poster som behövs för att koppla den.”
  • ”Som admin: vilka kunder har flest tjänster, och finns det instanser på servern som inte finns i appen?”

Det här görs i appen

Vissa saker går medvetet inte att göra via MCP:

  • Koppla GitHub-kontot eller installera GitHub-appen, eftersom du behöver godkänna i webbläsaren.
  • Ladda ner säkerhetskopior och exportera all data som zip, eftersom filer inte skickas via MCP.
  • Exportera secrets. Exporten mejlar en engångskod till ägaren, och värden på miljövariabler kan aldrig läsas.
  • Skapa API-nycklar, så att en läckt nyckel inte kan skapa fler.
  • Byta plan eller betala.
  • Sätta lösenord åt någon. Admins kan skicka en återställningslänk till användarens mejl.

Säkerhet

  • Nycklar sparas bara som SHA-256-hash och kan tas bort direkt i appen.
  • Varje verktyg körs som nyckelns ägare, med samma regler som i appen. Ägarskap, tjänstegränser, adminkontroller och aktivitetsloggen gäller likadant.
  • Gränsen är 240 anrop per minut och nyckel.
  • Fel visas som ett kort meddelande, aldrig som stackspår.
  • Behandla nyckeln som ett lösenord. En nyckel med nivån Allt kan radera tjänster. Använd Läsa när du bara vill titta, och sätt en giltighetstid.

Alla verktyg

Beskrivningarna är skrivna för AI-modeller och finns på engelska.

59 av 59 verktyg

Konto och planer (7)

  • wallnode_whoamiLäsa

    The account behind this API key: email, Wallnode username (part of every address), whether it is an admin, the key's scope, instance limit and current plan. Call this first.

  • wallnode_list_plansLäsa

    Lists the active Wallnode plans with price (SEK per interval, from price_cents / 100), limits (instances, apps, databases, storage, vCPU, RAM) and features. Plans are informational: only the account's instance limit (see wallnode_whoami) is enforced. Use wallnode_get_billing for the current plan.

  • wallnode_get_billingLäsa

    The account's current subscription (plan, status, period end) and its saved custom server configuration (vCPU, RAM, storage, add-ons, price in SEK, status). Read only: plans are changed in the Wallnode app.

  • wallnode_list_activityLäsa

    The account's activity log, newest first: what happened (action such as instance.created, backup.restored, domain.activated), on which resource, when and with what metadata. Filter with action_prefix (e.g. 'instance.' or 'backup.'). Admins may pass user_id or all_users: true. Returns { items, total_count, has_more, next_offset }.

  • wallnode_list_databasesLäsa

    Lists the database records of the account (name, engine, version, status, host, port, size). These are records only: Wallnode does not provision real database servers for them yet, so do not assume they accept connections. Passwords are never returned.

  • wallnode_list_api_keysLäsa

    Lists the account's API keys (id, name, prefix, scope, created, last used, expires, revoked). The key secrets are never shown. Creating keys is only possible in the Wallnode app.

  • wallnode_revoke_api_keyAllt

    Revokes an API key permanently by id (from wallnode_list_api_keys). IRREVERSIBLE: anything using that key stops working immediately. Revoking the key used for this very connection ends this session.

Tjänster (12)

  • wallnode_list_instancesLäsa

    Lists the services on this account, newest first, with stored status and address. service is one of: web (a web app deployed from GitHub, including Lovable projects), wp (WordPress), n8n (automation). Filter by service and status. Admins can pass all_users=true to list every customer's instances with owner email. status is the stored value and can lag; use wallnode_get_instance_status for the live state.

  • wallnode_get_instanceLäsa

    Full detail for one instance: stored fields, live status from the server, the active custom domain (if any) and, for web apps, the latest deployment. For deployment history use wallnode_list_deployments; for CPU/memory use the stats tools.

  • wallnode_get_instance_statusLäsa

    Asks the server for the live state of one instance: status (running, starting, installing, stopped, failed, missing, unknown), ready flag and any error. Also syncs the stored status. Use it to wait for a new instance or deployment to become ready.

  • wallnode_create_n8n_instanceLäsa och ändra

    Creates an n8n automation server and returns its address (status starts as provisioning; poll wallnode_get_instance_status until ready). Counts against the account's instance limit. If an instance with the same address already exists it is returned unchanged. For WordPress use wallnode_create_wordpress_instance; for GitHub web apps use wallnode_create_web_app.

  • wallnode_create_wordpress_instanceLäsa och ändra

    Creates a WordPress site and returns its address and the WordPress admin password. The password is shown ONLY in this response and is never stored, so pass it on to the user immediately (wallnode_reset_wordpress_password can issue a new one). Installation runs in the background for a few minutes; poll wallnode_get_instance_status. Counts against the instance limit.

  • wallnode_rename_instanceLäsa och ändra

    Changes the display name of an instance (1-80 characters). Only the name in the app changes, never the address.

  • wallnode_start_instanceLäsa och ändra

    Starts a stopped instance. Use wallnode_get_instance_status afterwards to confirm it is running.

  • wallnode_stop_instanceLäsa och ändra

    Stops a running instance. The service goes offline (its data is kept) until wallnode_start_instance is called.

  • wallnode_restart_instanceLäsa och ändra

    Restarts an instance. Short downtime. For a web app this restarts the running container only; use wallnode_deploy to rebuild from the latest commit.

  • wallnode_update_instanceLäsa och ändra

    Brings an instance up to date. n8n and WordPress: pulls the newest image and restarts (short downtime). Web apps: rebuilds and redeploys the latest commit of the tracked branch (same as wallnode_deploy) and returns the deployment.

  • wallnode_reset_wordpress_passwordLäsa och ändra

    Creates a new WordPress admin password for a WordPress instance and returns it. The old password stops working. The new password is shown ONLY in this response and is not stored.

  • wallnode_delete_instanceAllt

    PERMANENTLY deletes an instance: the container, its data, custom domain, environment variables and deployment history. This cannot be undone (take a backup first if needed). confirm_name must equal the instance's current name exactly (see wallnode_get_instance).

GitHub och webbappar (5)

  • wallnode_get_github_statusLäsa

    Shows whether the GitHub integration is configured and which GitHub accounts/organisations are linked to this Wallnode account (installation_id, account, suspended). Returns the install and authorize URLs. Linking a GitHub account or installing the Wallnode GitHub App cannot be done through this server: it needs the user's own OAuth consent in a browser, so give the user the install_url and ask them to complete it on wallnode.se, then call this tool again.

  • wallnode_list_github_reposLäsa

    Lists repositories the linked GitHub installation gives Wallnode access to, most recently pushed first. Optional text filter on the name. Returns full_name (owner/name), default_branch, private. Use with wallnode_list_github_branches and wallnode_create_web_app.

  • wallnode_list_github_branchesLäsa

    Lists the branches of a repository (first 100) that is reachable through a linked GitHub installation.

  • wallnode_detect_repoLäsa

    Analyses a repository branch and returns the detected framework, package manager and suggested install/build/start commands, output dir, port, plus the names (never values) of environment variables found in .env.example style files. Run it before wallnode_create_web_app to pick build_config and know which env vars to set.

  • wallnode_create_web_appLäsa och ändra

    Creates a web app from a GitHub repository branch and starts its first deployment. The address is web.<username>[-suffix].walldy.com. Counts against the instance limit. Returns the instance and the initial deployment; follow progress with wallnode_get_deployment_logs and wallnode_get_instance_status. Get installation_id, repo and branch from the github tools; use wallnode_detect_repo to choose build_config. env values are stored encrypted and cannot be read back.

Övrigt (1)

  • wallnode_sync_github_reposLäsa och ändraAdmin

    Admin only. Refreshes which repositories the linked GitHub installations give access to, straight from GitHub. Use it after creating a new repository (for example with the GitHub CLI) and before wallnode_create_web_app, instead of the browser "Synka åtkomst" button. Optional installation_id limits it to one installation.

Publiceringar (6)

  • wallnode_list_deploymentsLäsa

    Lists deployments of a web app, newest first, with status (queued, building, deploying, ready, failed, canceled), commit and error. Use the id with wallnode_get_deployment_logs, wallnode_rollback_deployment (needs status ready) or wallnode_cancel_deployment.

  • wallnode_deployLäsa och ändra

    Builds and deploys the latest commit of the tracked branch of a web app now. Queued older deployments are superseded. Returns the new deployment; follow it with wallnode_get_deployment_logs. To redeploy an older version use wallnode_rollback_deployment.

  • wallnode_get_deployment_logsLäsa

    Reads the build/deploy log of a deployment. Pass offset 0 first, then pass the returned next_offset to continue until done is true. Long chunks are cut to the newest 16000 characters (truncated=true). Also returns the deployment status.

  • wallnode_rollback_deploymentLäsa och ändra

    Redeploys an earlier successful deployment (status ready) of a web app, reusing its built image when it still exists. The current live version is replaced. Find candidates with wallnode_list_deployments status=ready.

  • wallnode_cancel_deploymentLäsa och ändra

    Cancels a queued or running deployment. Does nothing if it has already finished. The currently live version keeps running.

  • wallnode_update_web_settingsLäsa och ändra

    Changes settings of a web app: tracked branch, auto_deploy on push, display name and build_config (replaces the whole build config, so send the complete object). Set redeploy=true to apply build changes by starting a new deployment. Provide at least one setting.

Miljövariabler (3)

  • wallnode_list_env_varsLäsa

    Lists the names (and created/updated times) of the environment variables stored for an instance. Values can never be read back, by design. Use wallnode_set_env_vars to add or replace values.

  • wallnode_set_env_varsLäsa och ändra

    Creates or replaces environment variables on an instance from a name to value map (max 200 per instance, 32 KiB per value). Values are stored encrypted and cannot be read back; existing variables with other names are left alone. Web apps need a redeploy to pick the change up (set redeploy=true or call wallnode_deploy).

  • wallnode_delete_env_varsAllt

    Permanently deletes environment variables by name from an instance. The values are gone and cannot be recovered. Web apps need a redeploy for the removal to take effect.

Domäner (6)

  • wallnode_get_domainLäsa

    Shows the custom domain of a web or WordPress instance, with a live DNS check. Returns the domain state: status (pending, active or error), the DNS records you must create at your registrar or DNS provider (each with a check result), the detected DNS provider and whether the domain is Cloudflare proxied (if so, set the records to DNS only, grey cloud). The A record value is the IP of the Wallnode server the instance runs on. Wallnode cannot change DNS for you. Only web and wp instances support custom domains.

  • wallnode_add_domainLäsa och ändra

    Attaches a custom domain to a web or WordPress instance (one domain per instance). The domain starts as pending: create the DNS records in the result, then call wallnode_check_domain. Returns the domain state: status (pending, active or error), the DNS records you must create at your registrar or DNS provider (each with a check result), the detected DNS provider and whether the domain is Cloudflare proxied (if so, set the records to DNS only, grey cloud). The A record value is the IP of the Wallnode server the instance runs on. Wallnode cannot change DNS for you.

  • wallnode_check_domainLäsa och ändra

    Re-checks the DNS records of the instance's custom domain. When every record is correct the domain is activated automatically (HTTPS follows shortly after). Returns the domain state: status (pending, active or error), the DNS records you must create at your registrar or DNS provider (each with a check result), the detected DNS provider and whether the domain is Cloudflare proxied (if so, set the records to DNS only, grey cloud). The A record value is the IP of the Wallnode server the instance runs on. Wallnode cannot change DNS for you.

  • wallnode_set_walldy_addressLäsa och ändra

    Decides what the free *.walldy.com address does once a custom domain is attached: 'redirect' sends visitors to the custom domain, 'off' makes the free address stop serving the site. Requires an existing custom domain. Returns the domain state.

  • wallnode_remove_domainLäsa och ändra

    Detaches the custom domain from the instance and removes it from the server. The site stays reachable on its free *.walldy.com address. Reversible: the domain can be added again with wallnode_add_domain (DNS records at your provider are not touched).

  • wallnode_lookup_domainLäsa

    Analyses any public domain from public DNS data: registrar, name servers (DNS provider), mail setup (MX, SPF) and web host. The domain owner (registrant) is not returned: registries hide it. Reads only public data and stores nothing. Rate limited. Use wallnode_get_domain for domains attached to your own instances.

Säkerhetskopior (4)

  • wallnode_list_backupsLäsa

    Lists the backups of an instance (automatic and manual, at most 4 are kept, oldest are replaced). Returns { max, backups: [{ id, type, created_at, size_bytes }] }. Backup ZIP downloads cannot be returned over MCP: download them in the Wallnode app (Instance, Backups).

  • wallnode_create_backupLäsa och ändra

    Creates a manual backup of an instance now. Only 4 backups are kept per instance, so the oldest one may be replaced. Returns the new backup (id) or { ok: true }. Backup ZIP downloads cannot be returned over MCP: download them in the Wallnode app (Instance, Backups).

  • wallnode_restore_backupAllt

    Restores an instance from a backup. IRREVERSIBLE: all current data of the instance is overwritten and the instance restarts. Consider wallnode_create_backup first. Requires confirm: true.

  • wallnode_delete_backupAllt

    Permanently deletes one backup of an instance. IRREVERSIBLE. Requires confirm: true.

Användning (2)

  • wallnode_get_instance_statsLäsa

    Live resource use of one instance right now: running, status, started_at, restart_count, cpu_percent, memory (used/limit MB and percent), network and disk I/O in MB, process count. Use wallnode_get_usage for history (averages and peaks).

  • wallnode_get_usageLäsa

    Resource usage per instance from snapshots taken every 10 minutes: the latest CPU, RAM and network values plus average and maximum over the last `hours` (1 to 720, default 24). Covers your own instances. Admins may pass user_id for one user or all_users: true for everyone. Use wallnode_get_instance_stats for a live reading.

Admin (9)

  • wallnode_admin_get_server_usageLäsaAdmin

    Admin only. Host-level usage of the Wallnode server from snapshots: the latest CPU, load, RAM, disk, network and container count, plus average and maximum over the last `hours` (1 to 720, default 24).

  • wallnode_admin_get_statsLäsaAdmin

    Admin only. Live overview of the whole server: host CPU/RAM/disk, every instance with owner, usage and whether it exists in the app, containers that exist only on the server (unassigned_containers, candidates for wallnode_admin_remove_orphan), instances the app lists that are missing on the server, and the last hours of host history. Can be large.

  • wallnode_admin_list_usersLäsaAdmin

    Admin only. Lists user accounts with email, signup and last sign-in time, username, instance limit and number of instances. `search` filters on email (substring). Returns { items, total_count, has_more, next_offset }.

  • wallnode_admin_set_instance_limitLäsa och ändraAdmin

    Admin only. Sets how many instances (all services together) a user may create. 0 blocks new instances; existing ones are not touched. Returns { ok, instance_limit }.

  • wallnode_admin_set_app_resourcesLäsa och ändraAdmin

    Admin only. Sets the runtime memory (MB) and CPU limit for one GitHub web app, overriding the server default. Pass null to go back to the default. Takes effect on the next deploy, so run wallnode_deploy afterwards. Returns { ok, memory_mb, cpus }.

  • wallnode_admin_update_usernameLäsa och ändraAdmin

    Admin only. Changes a user's Wallnode username (lowercase letters, digits and dashes, 2 to 30 characters, must be unique). Existing instances keep their old addresses; only new instances use the new username.

  • wallnode_admin_send_password_resetLäsa och ändraAdmin

    Admin only. Emails a password reset message to an existing user so they can choose a new password themselves. The reset link is never shown here. Passwords cannot be set through this server.

  • wallnode_admin_remove_orphanAlltAdmin

    Admin only. Deletes a container set that exists on the server but has no instance in the app (see unassigned_containers in wallnode_admin_get_stats). IRREVERSIBLE: its data on the server is gone. Refused if the app still has an instance with that username and service. Requires confirm: true.

  • wallnode_admin_delete_userAlltAdmin

    Admin only. Permanently deletes a user account and its app records (profile, instance rows, tickets and so on). IRREVERSIBLE. It does NOT remove the user's containers on the server: delete their instances first (wallnode_delete_instance) or clean up afterwards with wallnode_admin_remove_orphan. You cannot delete yourself. Requires confirm: true.

Support (4)

  • wallnode_list_ticketsLäsa

    Lists support tickets, newest activity first. Returns { items, total_count, has_more, next_offset } with id, subject, status, priority, category, instance_id and timestamps. Admins can pass all_users: true to see every user's tickets (with the requester's email). Use wallnode_get_ticket for the conversation.

  • wallnode_get_ticketLäsa

    Returns one support ticket with its description and all messages in order (author_type is user, admin or system). Admins can read any ticket.

  • wallnode_create_ticketLäsa och ändra

    Opens a support ticket with the Wallnode team (they are notified by email). Returns the ticket id. Link an instance with instance_id when the problem concerns one. Follow up with wallnode_get_ticket or wallnode_reply_ticket.

  • wallnode_reply_ticketLäsa och ändra

    Adds a message to a ticket. Ticket owners and admins can reply. Without `status` the ticket becomes open after a customer reply and waiting after an admin reply, as in the app. Pass status (open, in_progress, waiting, resolved, closed) to set it explicitly, e.g. closed or resolved when the matter is done.