OpenAI GPT Actions Integration
This guide explains how to connect JMPY tools (URL shortening, QR codes, analytics) to ChatGPT using Custom GPT Actions.ChatGPT vs ClaudeOpenAI ChatGPT uses GPT Actions, not the Model Context Protocol (MCP). MCP is Anthropic’s protocol for Claude.GPT Actions require:
- An OpenAPI specification (describes API endpoints)
- OAuth authentication (to identify users)
Prerequisites
OpenAI Account
OpenAI Plus, Team, or Enterprise account (required for custom GPTs)
JMPY Account
Active account at jmpy.me with API access
Quick Setup
1
Create a Custom GPT
Go to ChatGPT → Explore GPTs → Create
2
Configure the GPT
Set name, description, and system instructions
3
Add JMPY Actions
Import the OpenAPI specification
4
Configure OAuth
Set up OAuth authentication
5
Test and Publish
Verify the integration works
Step 1: Create a Custom GPT
- Go to ChatGPT
- Click Explore GPTs → Create
- You’ll enter the GPT Builder interface
Step 2: Configure Your GPT
Fill in the GPT configuration:JMPY AssistantShorten URLs and generate QR codes using JMPY.meCopy this instruction prompt:
Step 3: Add JMPY Actions
- Scroll down to the Actions section
- Click Create new action
Import the OpenAPI Schema
- Import from URL (Recommended)
- Paste Schema
- Click Import from URL
- Enter the following URL:
- Click Import
After importing, you should see actions like
shortenUrl, generateQr, listUrls, etc.Step 4: Configure OAuth Authentication
- Click the Settings (gear icon ⚙️) next to Authentication
- Select OAuth as the authentication type
- Fill in these values:
Select: Default (POST request)
- Click Save
Set Privacy Policy
At the bottom of the Action editor, add:Step 5: Test Your Integration
In the Preview pane of the GPT builder, try these prompts:Shorten URL
“Shorten this URL: https://example.com/very/long/path/to/page”
Create QR Code
“Create a QR code for jmpy.me”
List URLs
“Show my short URLs”
Get Stats
“How many clicks do my links have?”
First-Time Authorization
- ChatGPT will prompt you to Sign in with JMPY
- Click the button to authorize
- Log in to your JMPY account (if not already)
- Approve the permissions
- ChatGPT will now use JMPY tools on your behalf!
Token Refresh: You only need to authorize once. Access tokens expire after 1 hour, but ChatGPT automatically refreshes them using the refresh token.
Step 6: Publish Your GPT
- Click Save (top right)
- Choose visibility:
- Only me - Private testing
- Anyone with a link - Shareable link
- Everyone - Public in GPT Store
- Confirm and publish
Available Tools
Once connected, your Custom GPT can use these JMPY tools:| Tool | Description | Example Prompt |
|---|---|---|
shortenUrl | Create a short URL | ”Shorten example.com/long/path” |
listUrls | List your short URLs | ”Show my links” |
getUrl | Get URL details | ”Get info for xyz123” |
generateQr | Create QR code | ”Make a QR for jmpy.me” |
listQrCodes | List your QR codes | ”Show my QR codes” |
getUserUrlStats | Get your statistics | ”How many clicks do I have?” |
Troubleshooting
"I don't have access to JMPY tools"
"I don't have access to JMPY tools"
Cause: OAuth sign-in not completedSolution:
- The GPT should prompt you to sign in when you first try to use an action
- If not, check that Actions are properly configured
- Try saying “shorten google.com” to trigger the OAuth flow
OAuth Flow Issues
OAuth Flow Issues
Verify these URLs are exactly correct:
- Authorization:
https://jmpy.me/mcp/oauth/authorize - Token:
https://jmpy.me/mcp/oauth/token
- Client ID:
openai - Client Secret:
jmpy-openai-integration-2024
"Schema error" or "Invalid OpenAPI"
"Schema error" or "Invalid OpenAPI"
Solution:
- Fetch the latest schema from
https://jmpy.me/.well-known/openapi.json - The schema must be valid OpenAPI 3.1.0
- Try re-importing using the URL option
Token expired errors
Token expired errors
Cause: Access token expired and refresh failedSolution:
- Try the action again - ChatGPT should automatically refresh
- If persistent, revoke and re-authorize from JMPY dashboard
Revoke Access
If you need to disconnect ChatGPT from your JMPY account:- Go to JMPY Dashboard → API Key Management → Connected Apps
- Find your OpenAI/ChatGPT connection
- Click Revoke
Quick Reference
Copy-paste values for easy setup:| Setting | Value |
|---|---|
| OpenAPI URL | https://jmpy.me/.well-known/openapi.json |
| Client ID | openai |
| Client Secret | jmpy-openai-integration-2024 |
| Authorization URL | https://jmpy.me/mcp/oauth/authorize |
| Token URL | https://jmpy.me/mcp/oauth/token |
| Scope | shorturl:read shorturl:create qrcode:read qrcode:create analytics:read |
| Privacy Policy | https://jmpy.me/privacy |
About API Keys
When you authorize ChatGPT, an API key is automatically created for it in your JMPY account. This key:- Is linked only to ChatGPT (cannot be used elsewhere)
- Inherits your plan’s limits and quotas
- Can be viewed in Dashboard → Connected Apps
- Can be revoked at any time
You don’t need to manually create or manage API keys for ChatGPT. The OAuth flow handles everything automatically.