Migrating production infrastructure? Get up to ₹10,000 in migration credits. Apply now
voroaBlog
Web Services

Claude Code MCP for Web Hosting: Deploy, Read Logs, Fix

· · 4 min read

Claude Code MCP for Web Hosting: Deploy, Read Logs, Fix

Claude Code MCP support means the agent in your terminal can talk to your hosting the same way it talks to your files. On Voroa, one command gives it deploy status, build logs and runtime logs, so a broken build becomes something it reads and repairs instead of something you describe to it. Below: the setup command, the permission rules that keep it moving, a real-shaped session where a build fails and gets fixed, and how far you can leave it alone.

Advertisement

Why a terminal agent should see the platform

Claude Code lives in the shell where you run git push. Its blind spot is what happens after the push: the build runs elsewhere, and the error lands in a dashboard it has never seen.

Voroa closes that gap with a hosted MCP server. Nothing runs on your laptop apart from Claude Code itself.

Register Voroa with claude mcp add

First, in the Voroa dashboard go to Settings, then API tokens, and create a token. It begins with voroa_cat_ and appears only once, so copy it straight away. Then in your terminal:

claude mcp add --transport http voroa https://api.getvoroa.com/mcp --header "Authorization: Bearer paste-your-token-here"

That saves the server at Claude Code’s default local scope. Avoid --scope project for this one: it writes a .mcp.json into the repository, and a token in a committed file is a leaked token. The Claude Code MCP reference explains local, project and user.

To confirm, ask Claude Code which of your Voroa services deployed last. Real names back means it is connected. If not, work through the checks in connecting an AI client to Voroa.

The token decides how far Claude Code can reach

Each token holds one scope. services:read sees services, deploys and logs. services:act adds redeploy, restart and rollback. services:write adds env variables and domains. services:admin can only propose creating or deleting things; a person approves those eight actions in the dashboard within an hour.

Two limits hold at every scope: Claude Code sees secret names but never their values, and it cannot fetch a database password. Tokens last 90 days (30 on services:admin) and cover one workspace. For a fix-and-ship loop, services:act is the right size. The whole tool list lives on the Voroa MCP server page.

Pre-approving tools so the loop does not stall

By default Claude Code asks before most shell commands. That is sensible, but a loop that pauses at every git push and every log read is not much of a loop. Add allow rules for the calls you trust:

  • Bash(git push *) lets it push without asking each time;
  • mcp__voroa__* lets it call Voroa’s tools freely.

Everything else still prompts. The token already caps what Voroa accepts, so allowing its tools is far safer than allowing every shell command.

A worked session: one failed build, fixed end to end

Diagram of four steps in order: push code, read deploy status, read build log, then fix and redeploy

Say you ask: “Add a health check route to the API and ship it.” This example assumes the service’s build command is npm run build. Here is how the session goes.

  1. Claude Code writes the route, commits and runs git push. With auto-deploy on, Voroa starts a build from that push.
  2. It calls get_deploy_history, picks out the new deploy, then polls get_service_status. The status comes back failed.
  3. It calls get_build_log. The last lines show npm ERR! Missing script: "build" because the new package.json lost its build script in the edit.
  4. It restores the script, commits, pushes, and polls again. This time the deploy goes live.
  5. If the build had passed but the service had not come up, it would have called get_runtime_logs instead, which is where a missing variable shows itself.

You typed one sentence. More prompts in this style are in the guide to shipping with a coding agent.

Leaving Claude Code to run unattended

The permission modes range from default, which asks, through acceptEdits, plan and auto (a classifier reviews each call), to bypassPermissions. The official permissions guide says to use that last one only in isolated environments. A laptop with push access to production is not isolated.

A safer recipe for long runs: keep a normal mode, add the two allow rules above, and let the Voroa token be the hard limit. Even left alone, it cannot create a billable service or delete a database, because those only ever become proposals.

When the answer is inside the container

Some faults never reach a log: a file in the wrong folder, a variable that resolved to something odd. Open the SSH Access page on your service, add your public key once, and copy the command it shows:

ssh svc-a1b2c3d4e5f6g7h8i9j0k1l2@ssh.getvoroa.com -p 2222

Run it in a second tab and paste what you find back to Claude Code. A hand edit is gone after the next deploy unless it is on a persistent disk, so diagnose there and let the agent commit the fix. Details in the SSH access guide.

FAQ

Does Claude Code need a paid Anthropic plan?

Yes: a Pro, Max, Team, Enterprise or Console account. The free claude.ai plan does not include it.

What if my token leaks?

Delete it under Settings, API tokens. It stops on the next request.

I use Codex or Cursor as well. Is it the same?

The server is the same; the client setup differs. See the Codex CLI walkthrough and Cursor’s editor setup.

Put Claude Code on your next Voroa deploy

Your code can run as Voroa web services, hosted in Mumbai and invoiced in rupees with GST. Register the server once, and the next failed build gets fixed by the agent that caused it. New to push-based deploys? Read how deploying from GitHub works.

Advertisement