Skip to main content
Glama

Deploy a GitHub repo as a server

lavela.provision_compute_from_repo

Build a GitHub repo on lavela and run it as a server with a public URL — any runtime, no Dockerfile needed. Async: poll lavela.compute_build_status {buildId} until "ok" (URL) or "failed" (next_step has the fix). REDEPLOYING a service it already built? Use lavela.compute_rebuild — calling this again replaces the server with exactly what you give (defaults: repo root, default branch, 8080, no env). Database/cache port (5432, 6379…): private, always on, no URL — alwaysOn:true after the user OKs the price. Paid from the lavela wallet (balance: lavela.account_status; prices: https://console.lavela.dev/pricing) — confirm with the user before calling. Details: https://console.lavela.dev/docs/mcp#deploy-from-repo

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
envNoNon-secret env, e.g. {"SERVICE":"api"} (one repo, several services). Credentials: set_compute_secret.
sizeNoOmit: a new server is 512mb, a redeploy keeps its size. Above 512mb only after a paid top-up; costs more (up to US$92 a month).
gitRefNoBranch, tag or commit (default: the default branch).
mountsNoVolumes to attach, e.g. [{volume:"vol_…", path:"/data"}] (provision_volume); a redeploy without them keeps them.
subdirNoFolder to build, for a monorepo.
serviceNoService name (web/api/worker; default "web") — one call per service.
alwaysOnNoKeep the server awake (no wake-up delay), at its size's always-on price (512 MB: US$7 a month vs US$2–7 sleeping; up to US$92 at 8 GB) — confirm with the user. Omit: a new server sleeps when idle; a redeploy keeps the service's current setting. Switch later with lavela.compute_always_on.
githubUrlYesThe repo, e.g. https://github.com/owner/repo (private once GitHub is connected).
projectIdYes
internalPortNoPort the app listens on (default 8080; PORT is set to it). Only for a fixed non-8080 port — env PORT alone doesn't reroute (502s).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=false and destructiveHint=false; the description goes well beyond them, disclosing that re-calling replaces the existing server, the async build/poll lifecycle and failure handling, wallet-based billing with a balance/pricing lookup, and the private/always-on DB-cache port behavior. This is unusually rich behavioral context for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core capability and then the routing rule, and nearly every clause carries actionable information (polling, billing, port behavior). It is very dense — all-caps emphasis, stacked parentheticals, and doc links make it harder to scan than it needs to be, but there is little true filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 10-parameter mutation with nested objects, no output schema, and only two required fields, the description covers the build lifecycle, the async result path, cost/consent requirements, and per-parameter defaults and redeploy carry-over. An agent has everything needed to invoke it correctly and follow up on the build.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 90%, so the schema carries most parameter meaning. The description still adds operational semantics not in the schema — the defaults packaged as 'repo root, default branch, 8080, no env' and the rule that a redeploy keeps size, mounts, and alwaysOn unless overridden — which meaningfully changes how an agent should set or omit arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (build a GitHub repo and run it as a server with a public URL) plus the differentiator (any runtime, no Dockerfile needed). It explicitly names a sibling, lavela.compute_rebuild, as the tool for the redeploy case, so an agent can separate the two without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit when-to-use routing ('REDEPLOYING a service it already built? Use lavela.compute_rebuild'), the async follow-up loop ('poll lavela.compute_build_status {buildId} until ok/failed'), and a hard precondition to confirm payment with the user before calling. Both alternatives and a prohibited-inference condition are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources