Skip to main content
Glama
AkaciaNL

BasicDeploy MCP Server

deploy_app

Deploy an app from a local tarball to BasicDeploy, auto-detecting Node.js, Python, or Go (app must listen on 0.0.0.0:8080). Creates a container with PostgreSQL and S3 if needed and returns public URL.

Instructions

Deploy an application from a local tarball (.tar, .tar.gz, .tgz, or .zip) to BasicDeploy. The runtime (Node.js, Python, or Go) is auto-detected from the archive contents; the app must listen on 0.0.0.0:8080. If containerId is omitted, a new container (with DB + S3) is created for the app; if provided, the archive is deployed into that existing container. Returns the resulting container and its public URL. IMPORTANT: tarballPath is a path on the machine running THIS MCP client (i.e. the local/stdio install). When BasicDeploy is added as a REMOTE connector (Claude/ChatGPT/Gemini chat) there is no shared filesystem, so this tool cannot read your tarball — deploy with exec_command instead (write the files into the container and start the server on 0.0.0.0:8080).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
containerIdNoOptional UUID of an existing container to deploy into. Omit to create a new one.
tarballPathYesAbsolute path on local disk to the app archive (.tar, .tar.gz, .tgz, .zip)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageNo
containerIdYesTarget container UUID.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.0.3

TDQS

A5/5.0
Behavior5/5

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

Annotations already indicate readOnlyHint=false, but the description adds substantial behavioral context: runtime auto-detection, the requirement to listen on 0.0.0.0:8080, automatic creation of a container with DB and S3 when containerId is omitted, and the critical local-path constraint. There is no contradiction with the annotations.

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

Conciseness5/5

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

The description is detailed but every sentence adds necessary information: format, runtime behavior, port requirement, container behavior, return value, and the filesystem caveat. It is front-loaded with the core action and efficiently places the important limitation at the end.

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?

Given the tool's complexity, the output schema, and the annotations, the description covers all essential operational details: what inputs are needed, what happens during deployment, what is returned, and the critical limitation when used through a remote connector. Nothing critical is missing for an agent to use this tool correctly.

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

Parameters5/5

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

Schema coverage is 100%, so the schema already defines both parameters. The description adds meaningful semantics beyond the schema, especially that tarballPath refers to the local MCP client machine, and that omitting containerId provisions a new container with DB + S3 while providing it targets an existing container.

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?

The description clearly states the action: deploy an application from a local tarball to BasicDeploy. It specifies the accepted archive formats, runtime auto-detection, the required listening address, and the difference between creating a new container versus deploying into an existing one. This strongly distinguishes it from siblings like exec_command.

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?

The description explicitly says when to use this tool (local/stdio MCP client with a shared filesystem) and when not to use it (remote connector without shared filesystem), and names the alternative: deploy with exec_command instead. It also clarifies when to omit vs. provide containerId, leaving no ambiguity.

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