> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stateset.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Deploy the Response ChatGPT App

> Use StateSet Deploy to ship the ChatGPT widget + MCP server.

Use StateSet Deploy to build and host the Response ChatGPT app and MCP server on managed Kubernetes.

## 1) Add a Deploy Button

Add a deploy button to your repository README:

```markdown theme={null}
[![Deploy to Stateset](https://deploy.stateset.com/button.svg)](https://deploy.stateset.com/deploy?repo=YOUR_ORG/YOUR_REPO)
```

## 2) (Optional) Add `stateset.yaml`

Create a `stateset.yaml` in the repo root to configure build/runtime:

```yaml theme={null}
name: stateset-response-chatgpt-app
description: Response ChatGPT widget + MCP server

build:
  dockerfile: Dockerfile
  context: .

runtime:
  port: 3030
  health_check: /health
  readiness_check: /ready
```

## 3) Deploy

Click the deploy button, authenticate with GitHub, and wait for the build to finish.

Your app will be available at:

```
https://{app-name}.{slug}.cloud.stateset.com
```

## 4) Verify the deployment

Before wiring ChatGPT to it, confirm the service is up and the MCP endpoint is
answering:

```bash theme={null}
APP="https://{app-name}.{slug}.cloud.stateset.com"

# The readiness probe configured above
curl -sS "$APP/ready"

# The MCP endpoint, which must return an SSE stream rather than JSON
curl -sS -N -H 'Accept: text/event-stream' "$APP/mcp" | head -c 200
```

A `200` from `/ready` and an `event:` line from `/mcp` mean the app is ready to
connect. JSON or a `404` from `/mcp` means the MCP route is not mounted — check
that the container is listening on the `runtime.port` declared in
`stateset.yaml`, not on a default port.

## 5) Connect ChatGPT

Use the app URL as your MCP SSE endpoint in ChatGPT:

* `https://{app-name}.{slug}.cloud.stateset.com/mcp`

<Warning>
  The MCP endpoint is public as soon as it deploys, and an MCP server exposes
  tools that act on your StateSet data. Put authentication in front of `/mcp`
  before you connect anything real to it — a deploy URL is not a secret, and
  ChatGPT is not the only client that can reach it.
</Warning>

## Next steps

<CardGroup cols={2}>
  <Card title="Response ChatGPT app guide" icon="comments" href="/stateset-response/stateset-response-chatgpt-guide">
    Building the widget and MCP server this deploys.
  </Card>

  <Card title="StateSet Deploy" icon="rocket" href="/stateset-deploy-overview">
    The deployment service, its build pipeline and its limits.
  </Card>

  <Card title="Deploy an ACP handler" icon="handshake" href="/stateset-deploy-acp-handler">
    The same pipeline for a checkout handler.
  </Card>

  <Card title="MCP servers" icon="plug" href="/mcp-servers">
    What an MCP server exposes, and how clients connect.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.