# 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/)