docs: ChatGPT Custom GPT setup guide
- Step-by-step OAuth client registration - OpenAPI schema import instructions - Actions authentication config - Troubleshooting table - Tool availability status
This commit is contained in:
119
CHATGPT_SETUP.md
Normal file
119
CHATGPT_SETUP.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# ChatGPT Custom GPT — Hermes MCP Setup Guide
|
||||
|
||||
**Server:** `https://hermes.squaremcp.com`
|
||||
|
||||
---
|
||||
|
||||
## What you'll build
|
||||
|
||||
A Custom GPT in ChatGPT that can:
|
||||
- Send emails via your 7 accounts
|
||||
- Search and edit your Obsidian vault notes
|
||||
- Send WhatsApp messages (when credentialed)
|
||||
- Post to LinkedIn
|
||||
- Send Telegram messages
|
||||
- Post to Discord servers
|
||||
- Post to Instagram (when credentialed)
|
||||
|
||||
---
|
||||
|
||||
## Step 1: Register an OAuth client
|
||||
|
||||
Hermes MCP uses OAuth 2.0 for ChatGPT authentication.
|
||||
|
||||
Run this curl to register a ChatGPT client:
|
||||
|
||||
```bash
|
||||
curl -X POST "https://hermes.squaremcp.com/oauth/register" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"client_name": "ChatGPT Custom GPT",
|
||||
"redirect_uris": ["https://chat.openai.com/aip/[YOUR_GPT_ID]/oauth/callback"]
|
||||
}'
|
||||
```
|
||||
|
||||
**Save the response:**
|
||||
- `client_id`
|
||||
- `client_secret`
|
||||
|
||||
---
|
||||
|
||||
## Step 2: Get the OpenAPI schema
|
||||
|
||||
Your server's OpenAPI spec is live at:
|
||||
|
||||
```
|
||||
https://hermes.squaremcp.com/openapi.json
|
||||
```
|
||||
|
||||
ChatGPT will import this to know which endpoints are available.
|
||||
|
||||
---
|
||||
|
||||
## Step 3: Create the Custom GPT
|
||||
|
||||
1. Go to [chatgpt.com](https://chatgpt.com) → **Explore GPTs** → **Create**
|
||||
2. Configure:
|
||||
- **Name:** `Hermes Assistant`
|
||||
- **Description:** `Your personal AI assistant with access to email, notes, and social media`
|
||||
|
||||
### Actions setup
|
||||
|
||||
3. Click **Actions** → **Import from URL**
|
||||
4. Paste: `https://hermes.squaremcp.com/openapi.json`
|
||||
5. Click **Authentication** → **OAuth**
|
||||
- **Client ID:** (from Step 1)
|
||||
- **Client Secret:** (from Step 1)
|
||||
- **Authorization URL:** `https://hermes.squaremcp.com/oauth/authorize`
|
||||
- **Token URL:** `https://hermes.squaremcp.com/oauth/token`
|
||||
- **Scope:** `email profile`
|
||||
- **Token Exchange Method:** `Default (POST request)`
|
||||
|
||||
6. Click **Update** to save the OAuth config
|
||||
|
||||
### Privacy settings
|
||||
|
||||
7. Scroll to **Privacy** → toggle off if you don't want OpenAI training on your data
|
||||
|
||||
---
|
||||
|
||||
## Step 4: Test the GPT
|
||||
|
||||
Ask your GPT:
|
||||
- "Send an email to team@fetcherpay.com saying the meeting is at 2pm"
|
||||
- "Search my Obsidian notes for 'funding strategy'"
|
||||
- "Post 'Hello world' to my LinkedIn"
|
||||
- "Send a Telegram message to Garfield"
|
||||
|
||||
---
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
| Issue | Fix |
|
||||
|-------|-----|
|
||||
| "Authentication failed" | Re-register the OAuth client with the correct redirect URI |
|
||||
| "Tool not found" | Check that the endpoint is listed in `/openapi.json` |
|
||||
| "Unauthorized" | The GPT's token expired — re-authenticate in ChatGPT settings |
|
||||
|
||||
---
|
||||
|
||||
## Current tool availability
|
||||
|
||||
| Tool | Status |
|
||||
|------|--------|
|
||||
| Email (7 accounts) | ✅ Ready |
|
||||
| Obsidian vault | ✅ Ready |
|
||||
| LinkedIn profile/posts | ✅ Ready (token deployed) |
|
||||
| Telegram messaging | ✅ Ready (token deployed) |
|
||||
| Discord messaging | ⚠️ Needs bot token |
|
||||
| Instagram posts | ⚠️ Needs Business Account setup |
|
||||
| WhatsApp messaging | ⚠️ Needs Cloud API number |
|
||||
|
||||
---
|
||||
|
||||
## Next: Discord bot token
|
||||
|
||||
If you want Discord working in ChatGPT too, create a bot:
|
||||
1. [discord.com/developers/applications](https://discord.com/developers/applications) → New Application
|
||||
2. Bot tab → Copy Token
|
||||
3. Deploy: `kubectl set env deployment/hermes-mcp -n fetcherpay DISCORD_DEFAULT_BOT_TOKEN="your-token"`
|
||||
Reference in New Issue
Block a user