# ChatGPT MCP Server Examples
> Build interactive, branded components for ChatGPT using the Model Context Protocol (MCP)
This repository contains **complete, production-ready examples** of MCP servers that demonstrate how to create rich, interactive experiences within ChatGPT. Each example showcases different UI patterns, state management techniques, and integration strategies.
## π― What You'll Learn
- How to build MCP servers that serve interactive widgets to ChatGPT
- State management across user sessions
- Dark/light mode support
- Multi-step UI flows with transitions
- API integration and data presentation
- Deployment strategies
## π Live MCP Server URLs
You can connect to these live servers directly in ChatGPT:
| MCP Server | URL | Description |
|------------|-----|-------------|
| **Authentication** | `https://chatgpt-components-0d9232341440.herokuapp.com/mcp` | Session-based authentication with 3-screen flow |
| **Product Search** | `https://chatgpt-components-0d9232341440.herokuapp.com/mcp2` | Interactive product carousel with Agentforce recommendations |
| **Checkout** | `https://chatgpt-components-0d9232341440.herokuapp.com/mcp3` | Shopping cart and checkout flow |
| **Membership** | `https://chatgpt-components-0d9232341440.herokuapp.com/mcp4` | Circle 360 membership signup with tier selection |
### How to Connect
1. Open ChatGPT β **Settings** β **Connectors**
2. Click **"Add Connector"**
3. Paste one of the URLs above
4. Start chatting! Try: *"Log me into my Target account"* or *"Search for fitness trackers"*
## π What's Included
### 4 Complete MCP Server Examples
#### 1. **Authentication Server** (`/mcp`)
- 3-screen authentication flow (login β verification β success)
- Session management with unique session IDs
- State persistence across tool calls
- Demo credentials for testing
**Example prompt:** *"I need to sign in to Target"*
#### 2. **Product Search Server** (`/mcp2`)
- Product carousel widget with images, prices, ratings
- Agentforce personalized recommendations
- Integration with Unwrangle API
- Detail view for individual products
- Dark/light mode support
**Example prompt:** *"Search Target for fitness trackers"*
#### 3. **Checkout Server** (`/mcp3`)
- Add-to-cart confirmation widget
- Complete checkout flow with pre-filled payment/shipping
- Order summary and success animations
- Single-item cart enforcement
**Example prompt:** *"Add the Fitbit to my cart and checkout"*
#### 4. **Membership Server** (`/mcp4`)
- Circle 360 membership signup
- 3-tier selection UI
- Dynamic order summary
- Processing screen with success confetti
- Demo reset endpoint for testing
**Example prompt:** *"Sign me up for Circle 360"*
## ποΈ Repository Structure
```
ChatGPT Components/
βββ server.js # Main Node.js MCP server (all 4 servers)
βββ widgets/ # Interactive HTML components
β βββ target-auth.html # Authentication widget
β βββ product-carousel.html # Product search widget
β βββ add-to-cart.html # Add to cart widget
β βββ checkout.html # Checkout widget
β βββ circle-signup.html # Membership signup widget
βββ public/ # Static pages
β βββ auth.html # External auth page (Custom GPT Actions)
β βββ privacy.html # Privacy policy
βββ docs/ # Documentation
β βββ BUILDING_MCP_SERVERS.md # Tutorial: Build your own
β βββ ARCHITECTURE.md # System design overview
β βββ examples/ # Detailed example docs
β βββ authentication.md
β βββ product-search.md
β βββ checkout.md
β βββ membership.md
βββ package.json # Dependencies
βββ Procfile # Heroku deployment config
βββ README.md # You are here
```
## π Getting Started
### Prerequisites
- Node.js 20.x or higher
- npm 10.x or higher
- (Optional) Heroku CLI for deployment
### Local Development
1. **Clone the repository**
```bash
git clone <your-repo-url>
cd ChatGPT-Components
```
2. **Install dependencies**
```bash
npm install
```
3. **Set environment variables**
```bash
export UNWRANGLE_API_KEY=your_api_key_here # For product search
```
4. **Start the server**
```bash
npm start
```
5. **Test in ChatGPT**
- Add connector: `http://localhost:8000/mcp` (or `/mcp2`, `/mcp3`, `/mcp4`)
- Start chatting!
### Deploy to Heroku
```bash
heroku create your-app-name
heroku config:set UNWRANGLE_API_KEY=your_api_key_here
git push heroku main
```
Your MCP servers will be available at:
- `https://your-app-name.herokuapp.com/mcp`
- `https://your-app-name.herokuapp.com/mcp2`
- `https://your-app-name.herokuapp.com/mcp3`
- `https://your-app-name.herokuapp.com/mcp4`
## π Learn More
- **[Building MCP Servers Tutorial](docs/BUILDING_MCP_SERVERS.md)** - Step-by-step guide to creating your own MCP server
- **[Architecture Overview](docs/ARCHITECTURE.md)** - How the system works under the hood
- **[Example Documentation](docs/examples/)** - Deep dives into each example server
## π¨ Key Features Demonstrated
### UI/UX Patterns
- β
Multi-screen flows with smooth transitions
- β
Loading states and progress indicators
- β
Success animations (checkmarks, confetti)
- β
Dark/light mode support (respects ChatGPT theme)
- β
Responsive design
- β
Form validation and error handling
### Technical Patterns
- β
Session management with unique IDs
- β
State persistence across tool calls
- β
SSE (Server-Sent Events) for real-time communication
- β
Multiple MCP servers on one Node.js app
- β
External API integration
- β
Widget-to-server communication
- β
`window.openai` API usage
### Business Logic
- β
Authentication flows
- β
Product recommendations
- β
Shopping cart management
- β
Payment/checkout flows
- β
Membership signups
## π§ Customization
Each widget is self-contained in `widgets/` and can be customized:
- **Styling**: Modify CSS within each HTML file
- **Branding**: Change colors, logos, and text
- **Flow**: Add/remove steps in multi-screen flows
- **Behavior**: Edit JavaScript event handlers
Server logic is in `server.js`:
- **Tools**: Add new tool definitions in each `createMcpXServer` function
- **Sessions**: Customize state management in `authSessions`, `cartStorage`, etc.
- **APIs**: Integrate your own backend services
## π€ Contributing
This repository is designed to be:
- **Educational**: Learn by example
- **Modular**: Copy what you need
- **Production-ready**: Use as-is or customize
Feel free to fork, modify, and build upon these examples!
## π License
MIT License - feel free to use this code in your own projects!
## π Support
- **Issues**: Open a GitHub issue
- **Questions**: Check the [documentation](docs/)
- **Examples**: See detailed guides in [docs/examples/](docs/examples/)
## π What's Next?
After exploring these examples, try:
1. Building your own MCP server from scratch
2. Combining multiple tools in creative ways
3. Integrating with your own APIs and services
4. Deploying to production
Check out **[BUILDING_MCP_SERVERS.md](docs/BUILDING_MCP_SERVERS.md)** to get started!
---
Built with β€οΈ using the [Model Context Protocol](https://modelcontextprotocol.io/)