# Test the Pizzaz Widget in ChatGPT
## β
Server Status
- **Deployed**: https://chatgpt-components-0d9232341440.herokuapp.com/
- **MCP Endpoint**: https://chatgpt-components-0d9232341440.herokuapp.com/mcp
## Step 1: Connect to ChatGPT
1. Open **ChatGPT**
2. Go to **Settings β Connectors**
3. Click **"Add connector"** or **"Create new app"**
4. Enter this URL:
```
https://chatgpt-components-0d9232341440.herokuapp.com/mcp
```
5. Give it a name: **"Pizzaz Demo"**
6. Save
## Step 2: Test the Widget
1. **Start a new conversation**
2. Click the **"More" (β―)** button or **paperclip icon**
3. Select **"Pizzaz Demo"** from your connectors
4. Ask ChatGPT:
```
Show me a pizza list with pepperoni
```
or
```
I want to see pizza places with mushrooms
```
## Expected Result
You should see:
- π A **beautiful pizza list widget** appear inline
- The widget showing **"Featuring [topping] pizzas"** with your chosen topping
- A list of 5 pizza places with names, cities, and ratings
- Clean, modern styling with hover effects
## Troubleshooting
### Widget Not Showing?
1. **Disconnect and reconnect** the connector in Settings
2. **Start a fresh conversation**
3. Make sure you **added the connector** to the conversation
4. **Check Chrome flags** (if using Chrome 142+): Disable `#local-network-access-check`
### Check Server Logs
```bash
heroku logs --tail --app chatgpt-components
```
## What's Working
This is a **working copy** of the official [OpenAI Pizzaz example](https://github.com/openai/openai-apps-sdk-examples):
- β
MCP server properly configured
- β
SSE transport working
- β
Resource handlers serving widget HTML
- β
Tool definition with proper metadata
- β
Widget receives data via `window.openai.toolOutput`
## Next Steps
Once this works, we can:
### 1. Modify the Widget
Edit `widgets/pizza-list.html` to:
- Change the styling
- Add more data
- Make it interactive
### 2. Change the Data Structure
Edit `server.js` to:
- Pass different data in `structuredContent`
- Add more parameters
- Create different tools
### 3. Build Target Auth
Copy this pattern to create:
- `widgets/target-auth.html` - Target-branded login
- New tool: `authenticate-target-customer`
- Pass session data through `structuredContent`
### 4. Add More Widgets
Create additional widgets:
- Profile viewer
- Order history
- Circle rewards dashboard
## Files to Customize
```
widgets/
pizza-list.html β Modify this for UI changes
server.js β Modify this for data/tools changes
```
The pattern is simple:
1. Widget receives data via `window.openai.toolOutput`
2. Widget renders using that data
3. No API calls from the widget
4. All data comes from `structuredContent` in server response
## Architecture
```
ChatGPT
β (calls tool)
Server.js
β (returns structuredContent)
ChatGPT
β (requests resource)
Server.js (serves HTML)
β (renders with toolOutput)
Widget displays!
```