# Host MCP servers like you ship web apps

GitHub-native builds, preview URLs per branch, production endpoints with TLS and custom domains, and instant rollback, purpose-built for MCP traffic and the clients that connect to it.

[Deploy your first server](/content/signup/index.html) [Book a demo](/content/book-call/index.html)

## The fastest way from code to distribution

Iterate in preview. Ship to production. Operate with confidence. Authorize the GitHub App once: every push queues a build, streams logs, and updates the right environment. Previews mirror production routing and transport so ChatGPT, Claude, and agent clients see what users will.

### Connect GitHub

Authorize once — every push flows straight into Manufact.

Connected

[Deploy your first server](/content/signup/index.html)

### Deploy

Builds queue from your branch; previews update like your web stack.

Deployments

Queued…

### Run checks

Publishing checks validate protocol, tools, and policy before you ship.

- 01 Handshake
- 02 Tools
- 03 Security
- 04 Listing

### Publish

Go live on ChatGPT and Claude-ready endpoints from the same deploy.

Preview & promote

## Branch previews

Previews are first-class environments: share the link with design, QA, or a customer pilot. When the PR merges, promote the same revision to production or let your default branch rule do it automatically.

- Unique preview URL per branch, with no manual config
- Same routing, TLS, and transport semantics as production
- Close the PR and the preview cleans itself up

### Deployment History

View and manage deployments for this server

| Deployment | MCP URL | Source | Build |
|------------|---------|--------|-------|
| a3f2c981 | mcp.acme.com/srv/preview/feat-w… | feat/widgets | d4e5f6a |
| 7b1d4e02 | mcp.acme.com/mcp | main | a1b2c3d |
| c9012fab | mcp.acme.com/srv/preview/fix-au… | fix/auth-timeout | 88aa120 |
| e4028bcc | mcp.acme.com/srv/preview/chore-d… | chore/docs | c0ffee0 |
| 9deadb0 | mcp.acme.com/srv/preview/api-v2… | feat/api-v2 | 45sPreview |

## Logs

Watch the build line-by-line, filter by severity, and share a permalink to the exact failure. Less SSH, fewer pasted stack traces, and faster time to green.

- Structured JSON logs with full timestamps
- Filter by info, warning, error, and build step
- Retained for 90 days with full-text search

### Build Logs

#### Runtime Logs

running

00:00.0▸Cloning repository from GitHub…  
00:00.3·Checked out ref: feat/widgets (d4e5f6a)  
00:00.5·Using build image: node:20-bookworm-slim  
00:00.7▸Restoring pnpm store from build cache…  
00:00.9·Cache hit — node_modules/ (partial)  
00:01.0▸Installing dependencies (pnpm install --frozen-lockfile)  
00:04.2✓Lockfile install complete (243 packages)  
00:04.4▸Running build command (pnpm run build)  
00:05.1·vite v5.4.0 building for production…  
00:07.1✓Typecheck passed — dist/ ready  
00:07.3▸Publishing container and routing preview MCP URL…  
00:08.2·Pushed image — digest sha256:8f3c…2a1b  
00:09.0✓Health check passed — deployment active

## Configure

### Environments & secrets

Set production and preview variables from the dashboard. Keep tokens out of the repo while still deploying from Git. Rotate a key without bouncing every environment at once.

- Separate values for production and each preview environment
- Encrypted storage; secrets never land in your repository
- Update from the UI; the next deploy picks up new values automatically

### Environment Variables

Configure environment variables for your server. Changes take effect on the next deployment.

| Key                     | Value                      |
|------------------------|---------------------------|
| STRIPE_SECRET_KEY      | ••••••••••••••••          |
| DATABASE_URL           | postgresql://••••••:••••@db|
| MANUFACT_API_TOKEN     | mcp_•••••••••••••••       |
| OPENAI_API_KEY         | sk-••••••••••••••••       |
| NODE_ENV               | production                 |
| LOG_LEVEL              | info                       |
| WEBHOOK_SIGNING_SECRET | whsec_••••••••••••••      |

### Frameworks

Deploy the stack you already use.

Manufact detects your MCP framework from the repo and applies the right build and start presets. Connect GitHub once — no manual runtime config.

-  mcp-use SDK
-  MCP TypeScript SDK
-  MCP Python SDK
-  FastMCP
-  tmcp
-  xmcp
-  Skybridge

[Browse framework reference templates](/content/templates#other-frameworks/index.html)

Custom stacks with a Dockerfile are supported too.

### Managed runtime

We run your MCP server so you focus on tools, resources, and widgets, not patching images or tuning process managers.

### Branch previews

Every pull request gets a live MCP URL. Same transport and TLS path as production so regressions show up before users do.

### Domains & TLS

Bring your hostname with a CNAME. Certificates renew automatically so clients always speak HTTPS to your endpoint.

### Ready to host your MCP on Manufact Cloud?

Connect GitHub once, get a live preview URL on every branch, and promote to production with managed TLS, secrets, and deploy history.

[Deploy your first server](/content/signup/index.html) [Book a demo](/content/book-call/index.html)

## Explore the rest of the platform

Cross-client testing](/content/platform/cross-client-testing/index.html)  
Run the same checks across ChatGPT, Claude, and more.

Publishing checks](/content/platform/publishing-checks/index.html)  
Audit your MCP app against ChatGPT Apps Store and Cloud Connectors requirements.

Submission Pack](/content/platform/submission-pack/index.html)  
Generate the assets you need for marketplace submission.

Cloud Inspector](/content/platform/cloud-inspector/index.html)  
Trace, replay, and debug MCP traffic in production.

Public chat](/content/platform/public-chat/index.html)  
Embeddable chat surfaces for your product.

Analytics](/content/platform/analytics/index.html)  
Usage, latency, and reliability in one place.

[Documentation](https://docs.manufact.com/)  
Guides, API references, and deployment how-tos.
