Skip to main content
Manufact deploys a GitHub-backed mcp-use server and provides its hosted MCP URL, deployments, logs, environment variables, and client connection settings. See the Manufact dashboard documentation for service setup and dashboard workflows.

Prerequisites

Before deploying:
  • Build the server with mcp-use.
  • Commit it to an existing Git repository.
  • Configure origin as a supported GitHub repository.
  • Push the branch you intend to deploy.
  • Install the Manufact GitHub App with access to that repository.
  • Sign in to a Manufact organization.
Projects created with create-mcp-use-app@latest already contain the mcp-use executable and a deploy script. In another project, install the package:
Confirm the repository and branch before deploying:
The CLI does not install the GitHub App. If you skip the Git steps above, it can perform them after asking you:
  • If the project has no origin remote, an interactive deploy offers to create a private repository through the GitHub App, run git init when needed, commit the project, and push it to main.
  • If the working tree has uncommitted changes, it offers to run git add ., commit them, and push the branch before deploying.
--yes authorizes both without prompting. In JSON or non-interactive runs without --yes, the command stops and reports the required choice. To deploy without GitHub, see Deploy without GitHub.

Sign in

For a non-interactive environment, use one supported credential flow:
or:
--api-key and --device-code are mutually exclusive.

Start the first deployment

Run from the server project directory:
The first deploy:
  1. Resolves the GitHub repository from origin.
  2. Confirms that the Manufact GitHub App can access it.
  3. Creates a Git-backed cloud server and starts a deployment.
  4. Writes the non-secret project link to .mcp-use/cloud/link.json.
  5. Prints the server ID, deployment ID, pending status, and dashboard URL.
The command starts the deployment; it does not wait for the build to finish.
.mcp-use/cloud/link.json is the only project-local cloud linkage. Later deploys reuse its organization and server IDs.

Follow the build

Use the deployment ID printed by deploy:
Build-log following is a separate command. Once the deployment is running, read its recent runtime logs with:
List deployments when you need to recover an ID:

Redeploy and create another server

With a link file present, this starts another deployment on the linked server:
Pass --new to ignore the existing link and create a separate cloud server:
Use --yes only when you intend to accept every confirmation. It also authorizes creating a GitHub repository and committing and pushing uncommitted changes with git add .:

Implemented deploy flags

The command accepts: --root-dir and --dockerfile must stay inside the repository. Repeated --env entries override duplicate keys loaded from --env-file, and the CLI does not echo uploaded values. Flags also apply when redeploying a linked server. Before the deployment starts, --name, --branch (which becomes the production branch), --region, --root-dir, --build-command, --start-command, --dockerfile, --watch-paths, and --wait-for-ci update the server’s configuration. --env and --env-file values are written to the server’s production variables, or to the branch’s preview variables when --branch is set. To change settings without deploying, use mcp-use servers update and mcp-use servers env set or unset.

Deploy without GitHub

Pass --no-github on the first deploy to upload the local project to a platform-managed private repository instead of GitHub:
Later deploys of that linked server use the upload path automatically. The archive excludes .git, dependencies, build output, .mcp-use, .env* files, caches, coverage, OS metadata, symbolic links, and paths matched by the project root’s .gitignore. The compressed archive limit is 80 MB. --watch-paths and --wait-for-ci are GitHub-only. --no-github cannot replace the source of a linked GitHub server; add --new --yes to create a separate server.

Monorepo example

Deploy one app from an existing GitHub monorepo:
Repository-relative paths are resolved from the Git root even when the command is run inside the app directory.

Connect a client

After the deployment is running, copy the exact generated MCP URL from the Manufact dashboard. Do not infer a hostname from the server slug; the dashboard is authoritative for generated and custom domains.
Use that same exact URL in any other MCP client configuration.

More Manufact operations