The feature will be ready for general availability (GA) soon! Sign up here
If you have a Starter or Professional subscription, upgrade to the Enterprise plan.
Overview
The Preset MCP (Model Context Protocol) server allows AI assistants like Claude and ChatGPT to interact with your Preset workspace — listing dashboards, querying datasets, executing SQL, and more.
Prerequisites
-
A Preset account with access to a workspace
-
Your Preset workspace MCP URL:
https://<workspace-slug>.<region>.app.preset.io/mcp
| Auth Method | AI Client | Plan Requirements |
|---|---|---|
| OAuth | Claude (Web, Desktop, Code) | Free (1 connector), Pro, Max, Team, or Enterprise |
| OAuth | ChatGPT | Plus, Pro, Business, Enterprise, or Edu |
| OAuth | Gemini CLI | Free |
| JWT / Bearer | Any (programmatic) | Preset API credentials (Token Name + Secret) |
Method 1: OAuth (Recommended)
Claude Web (claude.ai)
Steps
- Open claude.ai in your browser
- Click on your profile icon or go to Settings
- Navigate to Connectors
- Click Add custom connector
- Fill in the details:
- Name: A descriptive name (e.g.,
My Preset Workspace) - URL: Your workspace MCP URL (e.g.,
https://<workspace-slug>.<region>.app.preset.io/mcp)
- Name: A descriptive name (e.g.,
- Click Add
- You'll be redirected to authenticate with Preset via OAuth
Reference: Getting Started with Custom Connectors Using Remote MCP
Claude Desktop
Option 1: Using Connectors (Recommended)
- Open Claude Desktop
- Click on your profile icon or go to Settings
- Navigate to Connectors
- Click Add custom connector
- Fill in the details:
- Name: A descriptive name (e.g.,
My Preset Workspace) - URL: Your workspace MCP URL
- Name: A descriptive name (e.g.,
- Click Add
- Authenticate with Preset when prompted
Option 2: Manual JSON Configuration
If connectors aren't available on your plan, you can configure via JSON:
- Open Claude Desktop
- Click the Settings icon
- Select the Developer tab
- Click Edit Config to open
claude_desktop_config.json
- Config file locations by OS
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\\Claude\\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
- macOS:
Add the following to your config. This uses mcp-remote to proxy the connection to the remote MCP server with OAuth:
{
"mcpServers": {
"preset-workspace": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"https://<workspace-slug>.<region>.app.preset.io/mcp"
]
}
}
}
- Save the file
- Completely quit and restart Claude Desktop
- Look for the hammer/tools icon in the bottom-right corner to confirm the server is connected
- A browser window will open for OAuth authentication on first connection
Reference: Getting Started with Local MCP Servers on Claude Desktop
Claude Code (Terminal)
Claude Code is Anthropic's terminal-based coding assistant. It supports OAuth for MCP servers via the CLI.
Steps
Step 1: Add the MCP server (one time)
claude mcp add --transport http preset-mcp https://<workspace-slug>.<region>.app.preset.io/mcp
Step 2: Launch Claude Code
claude
Step 3: Trigger the OAuth flow
Once inside the Claude Code session, run:
/mcp
This will open a browser window where you can authenticate with Preset. After logging in, the connection will be established and Preset tools will be available in your session.
ChatGPT Web
Step 1: Enable Developer Mode (if needed)
- Click on your profile icon at the top left of the ChatGPT page
- Select Settings
- Go to Apps and Connectors
- Scroll down and select Advanced Settings
- Enable Developer Mode
Step 2: Add the MCP Server
- Press the + button in the chat composer
- Click Add sources
- Go to App -> Connect more
- Click Create app
- Fill in the details:
- Name: A descriptive name (e.g.,
My Preset Workspace) - MCP server URL: Your workspace MCP URL
- Name: A descriptive name (e.g.,
- Press I understand and continue
- Authenticate with Preset when prompted via OAuth
Reference: Connect from ChatGPT
Gemini CLI (Terminal)
Gemini CLI is Google's open-source terminal-based AI agent. It supports remote MCP servers with automatic OAuth discovery — no token management required.
Prerequisites
- Gemini CLI installed
Steps
Step 1: Add the MCP server configuration
Add your Preset workspace to ~/.gemini/settings.json:
{
"mcpServers": {
"preset": {
"url": "https://<workspace-slug>.<region>.app.preset.io/mcp"
}
}
}
Replace <workspace-slug> and <region> with the values from your Preset workspace URL.
Step 2: Launch Gemini CLI and authenticate
Start Gemini CLI:
gemini
Then authenticate with the Preset MCP server:
/mcp auth preset
A browser window will open for OAuth authentication. Log in with your Preset credentials. You should see:
ℹ ✅ Successfully authenticated with MCP server 'preset'!
ℹ Restarting MCP server 'preset'...
ℹ Successfully authenticated and reloaded tools for 'preset'
Step 3: Verify the connection
Try a command like "List my dashboards" or "What datasets are available?"
Notes:
- The OAuth token is cached in
~/.gemini/mcp-oauth-tokens.jsonfor subsequent sessions - If your token expires or you encounter a stale session, delete the cached token and re-authenticate:
rm ~/.gemini/mcp-oauth-tokens.json
gemini
Multiple Workspaces
To connect to multiple Preset workspaces, add entries with unique names:
{
"mcpServers": {
"preset-production": {
"url": "https://<workspace-1-slug>.<region>.app.preset.io/mcp"
},
"preset-staging": {
"url": "https://<workspace-2-slug>.<region>.app.preset.io/mcp"
}
}
}
Reference: Gemini CLI MCP Server Documentation
Method 2: JWT Authentication via API Token
Step 1: Generate API Credentials in Preset Manager
- Log in to your Preset workspace
- Navigate to Settings -> API Keys (or your team's API key management page)
- Click Create API Key (or equivalent)
- You will receive two values:
| Value | Description |
|---|---|
| API Token Name | A UUID identifier for the token |
| API Token Secret | A secret value — save this securely; it is only shown once |
Step 2: Exchange Credentials for a JWT
Use the Preset Auth API to exchange your API token name and secret for a JWT access token.
Example curl request:
curl --location 'https://api.app.preset.io/v1/auth/' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
--data '{
"name": "YOUR_API_TOKEN_NAME",
"secret": "YOUR_API_TOKEN_SECRET"
}'
Example response:
{
"payload": {
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
Extract the access_token value from the response — this is your JWT.
Reference: Preset API Docs - Authentication
Step 3: Use the JWT with MCP
Once you have a JWT, include it in the Authorization header when making requests to the MCP server:
curl -X POST 'https://<workspace-slug>.<region>.app.preset.io/mcp' \
--header 'Authorization: Bearer YOUR_JWT_TOKEN' \
--header 'Content-Type: application/json' \
--data '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
-
Claude Desktop JSON config with JWT
For Claude Desktop with JSON config, you can use
mcp-remotewith the bearer token:{ "mcpServers": { "preset-workspace": { "command": "npx", "args": [ "-y", "mcp-remote@latest", "https://<workspace-slug>.<region>.app.preset.io/mcp", "--header", "Authorization: Bearer YOUR_JWT_TOKEN" ] } } }
Method 3: Bearer Token (Direct)
Option A: Using a Browser Session Cookie
If you are logged into your Preset workspace in a browser:
- Open your browser's Developer Tools (F12 or right-click -> Inspect)
- Go to the Application (Chrome) or Storage (Firefox) tab
- Under Cookies, find the cookie for your Preset workspace domain
- Look for the session cookie (commonly named
session,preset_session, or similar — the exact name may vary by environment) - Copy the cookie value — this is a valid JWT
You can then use this value as a Bearer token in the Authorization header:
curl -X POST 'https://<workspace-slug>.<region>.app.preset.io/mcp' \
--header 'Authorization: Bearer <paste-cookie-value-here>' \
--header 'Content-Type: application/json' \
--data '{"jsonrpc": "2.0", "method": "tools/list", "id": 1}'
-
Claude Desktop JSON config with Bearer Token
{ "mcpServers": { "preset-workspace": { "command": "npx", "args": [ "-y", "mcp-remote@latest", "https://<workspace-slug>.<region>.app.preset.io/mcp", "--header", "Authorization: Bearer <paste-cookie-value-here>" ] } } }
Option B: Using an Existing JWT
If you've already obtained a JWT through any method (API exchange, another tool, etc.), you can paste it directly into the Bearer token header as shown above.
API Endpoints Reference
| Environment | Auth API | MCP URL Pattern |
|---|---|---|
| Production | https://api.app.preset.io/v1/auth/ |
https://<slug>.<region>.app.preset.io/mcp |
| Sandbox | https://api.app-sdx.preset.io/v1/auth/ |
https://<slug>.<region>.app-sdx.preset.io/mcp |
| Staging | https://api.app-stg.preset.io/v1/auth/ |
https://<slug>.<region>.app-stg.preset.io/mcp |
| Local Dev | http://manager.local.preset.zone/api/v1/auth/ |
http://<slug>.local.preset.zone/mcp |
Troubleshooting
Connection Issues
- Ensure you're using
https://in the URL (nothttp://) - Verify your Preset workspace is accessible and not hibernated
- Check that you have the required subscription plan for your AI client
Authentication Issues
- OAuth: Clear your browser cookies and try re-authenticating
- JWT: Verify your API token and secret are correct. Tokens expire — re-generate if needed
- Cookie: Session cookies expire. Log back into your workspace and copy a fresh cookie
- Ensure you're authenticating against the correct workspace endpoint
- Ensure that the workspace you're accessing has MCP connections enabled.
Server Not Appearing in AI Client
- Claude Desktop: Completely quit and restart the application after config changes
- Claude Web / ChatGPT: Refresh the page and check your connectors list
- Verify the MCP URL format is correct:
https://<workspace-slug>.<region>.app.preset.io/mcp
Common Errors
| Error | Cause | Fix |
|---|---|---|
| 401 Unauthorized | Token is invalid or expired | Re-generate a JWT or re-authenticate via OAuth |
| 403 Forbidden | Insufficient permissions or MCP not enabled | Check workspace access and MCP feature status |
| Connection Refused | Wrong URL or inactive workspace | Verify workspace URL and that workspace is active |
Security Notes
- Review permission scopes during OAuth authentication
- The MCP connection allows the AI assistant to access your Preset data based on your user permissions and role
- Store API credentials securely — never share your API Token Secret
- JWT tokens should be treated as sensitive credentials