Skip to content

Search docs

Search the Skiffly documentation

MCP tools

The 41 tools of the Skiffly MCP server with their arguments. Service and environment arguments accept an id, slug or name; `environmentId` defaults to production.

Install and client configuration: MCP server guide. Tools marked destructive carry destructiveHint so clients ask before running them.

Account#

ToolArgumentsWhat it does
whoami—Current user and the workspaces the token can access; call first
list-workspaces—Workspaces with plan and role
github-installations—GitHub App installations and the install URL
list-nodesworkspaceId?Compute nodes visible to the token
billing-accountworkspaceId?Balance, plan limits, pause state, auto top-up, current usage
topup-createworkspaceId?, provider? (paypal | satqo | paddle), amountCents?, payMethod? (crypto coin and network, e.g. USDT:tron)Checkout URL for a top-up (PayPal, crypto) or a paddleTransactionId plus a dashboard link for card payments; without arguments lists providers and limits

Projects and environments#

ToolArgumentsWhat it does
list-projectsworkspaceId?, search?Projects with online/total summary
create-projectname, workspaceId?, description?, githubInstallationId?New project with a production environment
delete-project destructiveprojectIdDelete everything in the project
list-environmentsprojectIdEnvironments with ids, PR number and branch
create-environmentprojectId, name, copyFromEnvironmentId?New environment, optionally a copy
describe-environmentprojectId, environmentId?Full inventory: services with settings, domains, latest deployments, volumes, variable names
get-statusprojectId, environmentId?Per-service latest status, replicas, URLs, problems

Services#

ToolArgumentsWhat it does
list-servicesprojectIdServices and environments with source and internal hostname
create-serviceprojectId, name?, image? or repo?+branch?, rootDirectory?, builder?, dockerfilePath?, buildCommand?, port?, runtimeClass?, variables?, environmentId?, deploy?New service from an image or a repository
create-deploymentprojectId, repo, branch?, name?, rootDirectory?, dockerfilePath?, port?, variables?, environmentId?, deploy?Create a service from a repository and start its first deployment in one call
describe-serviceprojectId, serviceId, environmentId?Source, build, deploy, networking, volumes, variable names, latest deployment
get-service-configprojectId, serviceId, environmentId?Configuration only
update-serviceprojectId, serviceId, environmentId?, plus any of name, repo, image, branch, rootDirectory, builder, dockerfilePath, buildCommand, port, runtimeClass, startCommand, healthcheckPath, healthcheckTimeout, cronSchedule, sleepApplication, numReplicas, restartPolicyType, restartPolicyMaxRetries, cpuMillis, memoryMb, redeploy?Change service-wide and per-environment settings; redeploys by default
delete-service destructiveprojectId, serviceId, environmentId?Delete the service (everywhere, or in one environment)

Variables#

ToolArgumentsWhat it does
list-variablesprojectId, serviceId?, environmentId?, namesOnly?, unrendered?Service variables plus shared ones, rendered unless unrendered
set-variablesprojectId, serviceId?, environmentId?, variables, allEnvironments?, replace?, skipDeploys?Set variables; redeploys the service unless skipDeploys
delete-variables destructiveprojectId, serviceId?, environmentId?, names, allEnvironments?Delete by name

Deployments and logs#

ToolArgumentsWhat it does
deployprojectId, serviceId, environmentId?, commitSha?Fresh build of the current source
redeployprojectId, serviceId, environmentId?Deploy the latest deployment's commit again with the current settings
restart-serviceprojectId, serviceId, environmentId?Restart containers in place
list-deploymentsprojectId, serviceId?, environmentId?, status?, limit?Recent deployments
cancel-deploymentprojectId, deploymentIdCancel a queued deployment
get-logsprojectId, deploymentId? or serviceId?+environmentId?, types? (build, deploy, system), filter?, limit?Logs of a deployment or of the service's latest one

Networking#

ToolArgumentsWhat it does
generate-domainprojectId, serviceId, environmentId?, domain?, targetPort?Generated *.skiffly.cloud domain, or attach a custom domain (returns CNAME + TXT)
list-domainsprojectId, serviceId, environmentId?Domains with verification state
domain-statusprojectId, serviceId, environmentId?, domainRe-check DNS, ownership and certificate
delete-domain destructiveprojectId, serviceId, environmentId?, domainRemove a domain

Volumes#

ToolArgumentsWhat it does
create-volumeprojectId, serviceId, environmentId?, mountPath, sizeGb?, name?, redeploy?Create and attach a volume
list-volumesprojectId, serviceId?, environmentId?Volumes with size and usage
delete-volume destructiveprojectId, volumeId, environmentId?Delete a volume and its data

Backups#

ToolArgumentsWhat it does
list-backupsprojectId, volumeId (id or name), serviceId?, environmentId?Backups of a volume (nightly, manual, safety), the platform schedule and retention, latest restores
create-backupprojectId, volumeId, serviceId?, environmentId?, name?Back up a volume now (files, plus a dump for Postgres/MySQL); at most one manual backup per 10 minutes per volume
restore-backup destructiveprojectId, volumeId, backupId, serviceId?, environmentId?Replace the volume's data with a backup; a safety backup is taken first

Docs#

ToolArgumentsWhat it does
search-docsquery, limit?Search the bundled Skiffly documentation

Migration#

ToolArgumentsWhat it does
import_from_railwayrailwayToken, railwayProjectId, projectId?, createProjectName?, workspaceId?, environment?, dryRun?Recreate a Railway project on Skiffly (services, variables with ${{Service.VAR}} references, empty volumes, custom domains, TCP proxies); never copies data, never deploys. See Migrate from Railway.

Not available as tools yet: templates, metrics, staged changes. Use the CLI or GraphQL for those.