---
title: Manufact Cloud
description: Deploy your MCP server to Manufact Cloud with one command
icon: "/images/logo-mcp-use.svg"
---

Deploy your MCP server to **Manufact Cloud**, the recommended deployment platform for mcp-use servers. With a single command, you can deploy your server and get a production-ready URL.

## Prerequisites

**Manufact Cloud account**: Sign up at [mcp-use.com](https://mcp-use.com) or log in via CLI:

```bash
mcp-use login
```

For non-interactive flows (web onboarding, agents), use a pre-approved device code:

```bash
mcp-use login --device-code <CODE>
```

See the [CLI reference](/typescript/server/cli-reference#login---authenticate-with-manufact-cloud) for `--api-key` and `--org` options.

## Quick Deployment

Deploy your MCP server in one command:

```bash
# Install the CLI (if you are using create-mcp-use-app this step is not needed)
npm install -g @mcp-use/cli

# Login to Manufact Cloud
mcp-use login

# Deploy your server
mcp-use deploy
```

That's it! Your server will be built and deployed automatically.

## Deploy Without GitHub

You do not need a GitHub repository to deploy. Use `--no-github` to upload your local project source directly — the platform creates a managed repo and runs the normal build pipeline:

```bash
mcp-use deploy --no-github
```

This path:

- ✅ Works without a git remote or GitHub App installation
- ✅ Uploads your local files (not GitHub)
- ✅ Creates the server in the platform-managed org
- ✅ Supports redeploys — linked projects auto-detect the upload path, so `--no-github` is only needed on the first deploy

You can later connect your own GitHub repository from the server dashboard ("Connect your GitHub") if you want push-to-deploy.

<Tip>
  Web onboarding uses `mcp-use login --device-code` followed by `mcp-use deploy --no-github -y` for a fully non-interactive first deploy.
</Tip>

## GitHub Repository Deployment

If your project is a GitHub repository, `mcp-use deploy` (without `--no-github`) automatically detects it and offers to deploy from GitHub:

```bash
mcp-use deploy
```

You'll see:

```
GitHub repository detected:
  Repository: your-org/your-repo
  Branch:     main
  Commit:     abc1234

Deploy from GitHub repository your-org/your-repo? (y/n):
```

This approach:

- ✅ Deploys directly from your GitHub repository
- ✅ Automatically detects build and start commands
- ✅ Uses the latest commit from your branch
- ✅ Requires the mcp-use GitHub App on the repo and changes pushed to GitHub

## Monorepos & multiple apps

If you deploy several servers from the same repository, every push to that repo is evaluated against **each** connected server. By default a server redeploys on any push to its production branch, which in a monorepo means an unrelated change can rebuild an app you didn't touch. Two per-server filters scope that down:

- **Watch paths** (`--watch-paths`): globs matched against the push's changed files. The server only auto-deploys when a changed file matches. Empty (the default) means any change triggers a deploy.
- **Branch allow list** (`--deploy-branches`): globs of branches (besides the production branch) that are allowed to trigger auto-deploys. The production branch always deploys; an empty list allows all branches.

```bash
# Create a server that only redeploys when its own app or shared code changes
mcp-use deploy \
  --root-dir apps/iching \
  --watch-paths "apps/iching/**" "packages/shared/**"

# Tune an existing server's triggers (no redeploy of unrelated apps)
mcp-use servers update <id-or-slug> \
  --watch-paths "apps/iching/**" "packages/shared/**" \
  --deploy-branches "release/*"

# Clear the watch paths (back to "any change deploys")
mcp-use servers update <id-or-slug> --watch-paths ""
```

<Note>
Watch paths and branch patterns are also editable from the dashboard — see [Deployments](https://docs.manufact.com/dashboard/deployments) and [Server settings](https://docs.manufact.com/dashboard/settings).
</Note>

### Branch URLs and sessions

- The **production branch** serves the canonical URL `https://<slug>.deploy.mcp-use.com/mcp`. Pushing to it swaps the running container, so live MCP sessions on the canonical URL receive `mcp_session_terminated` and clients reconnect.
- Every other branch gets its own stable preview URL `https://<slug>--br-<branch>.deploy.mcp-use.com/mcp`, so you can test changes against real clients before merging. Preview deployments require the Hobby plan or higher.

`mcp-use servers update --branch <name>` changes which branch is the production branch after creation.

## After Deployment

Once deployment completes, you'll receive:

### Deployment URLs

```
✓ Deployment successful!

🌐 MCP Server URL:
   https://your-deployment/id.deploy.mcp-use.com/mcp

🔍 Inspector URL:
   https://inspector.mcp-use.com/inspect?autoConnect=https://your-deployment/id.deploy.mcp-use.com/mcp
```

The `autoConnect` parameter and other Inspector URL options are documented in [Inspector URL parameters](/inspector/url-parameters).

#### Claude Desktop Configuration

```json
{
  "mcpServers": {
    "my-server": {
      "url": "https://your-deployment/id.deploy.mcp-use.com/mcp"
    }
  }
}
```

### Test Locally First

Before deploying, test your server locally:

```bash
# Build and test locally
mcp-use build
mcp-use start
```

## Next Steps

- [Deploying to Supabase](./supabase) - Alternative deployment option
- [Configuration Guide](../configuration) - Advanced server configuration
- [UI Widgets](../mcp-apps) - Building interactive widgets
- [CLI Reference](/typescript/server/cli-reference#deploy---cloud-deployment) - All deploy and login flags
- [API Reference](/typescript/server/index#mcpserver-api-reference) - Complete API documentation
