Connect an AI agent to NuriTrip

Last updated: October 2026

Connect Claude, ChatGPT, Muse or another AI app to the NuriTrip MCP server so it can read and manage your trips. No API key or client ID is needed. You log in with your own NuriTrip account.

Pick your app

Muse

Send Muse this message. It sets up the connection and sends you a log-in link.

Connect to NuriTrip. Use this instruction at nuritrip.com/connect. No client ID needed.

Claude

Add NuriTrip from Claude’s connector directory, not from a chat. The guide walks you through it in about a minute.

Open the Claude setup guide

ChatGPT and other AI apps

Add NuriTrip as a custom MCP server in your app. No API key or client ID needed: your app registers itself when you connect.

https://mcp.nuritrip.com
  1. Open your app’s connector page. In ChatGPT: open Plugins, select the plus button, then Add custom MCP server.
  2. Paste the URL and choose OAuth. Leave client ID and secret empty.
  3. Log in and allow access. Use your NuriTrip email and the 6-digit code in your browser, then click Allow access.

Building your own agent? The quick start below covers client registration and OAuth.

Quick start for the agent

  1. Discover the auth server. Fetch https://mcp.nuritrip.com/.well-known/oauth-protected-resource. It names the authorization server.
  2. Register your client dynamically (RFC 7591). POST to the registration endpoint below. This is a public client using PKCE, so there is no client secret. Never ask the user for a client ID; register one instead.
  3. Send the user through OAuth. Open the authorize URL with response_type=code, your registered client_id, code_challenge (PKCE), redirect_uri, scope, and, critically, resource=https://mcp.nuritrip.com (RFC 8707, see the note below). The user logs in with their own email in their phone’s system browser, not inside the chat app.
  4. Exchange the code at the token endpoint, requesting the offline_access scope so you get a refresh token. Access tokens last about an hour.
  5. Verify. Call tools/list, then nuritrip_list_trips. If trips come back, the connection works.

Configuration reference

SettingValue
MCP server (Streamable HTTP, POST JSON-RPC)https://mcp.nuritrip.com
Protected-resource metadatahttps://mcp.nuritrip.com/.well-known/oauth-protected-resource
Authorization server (AuthKit)https://fair-cereal-24.authkit.app
Authorize URLhttps://fair-cereal-24.authkit.app/oauth2/authorize
Token URLhttps://fair-cereal-24.authkit.app/oauth2/token
Dynamic client registration (RFC 7591)https://fair-cereal-24.authkit.app/oauth2/registerNot advertised in openid-configuration. Supply it explicitly.
Scopesopenid email profile offline_access
Token endpoint auth methodnone (public client + PKCE)
Resource indicator (RFC 8707)https://mcp.nuritrip.com
Auth headerAuthorization: Bearer <access_token>
User-AgentBrowser-like UA required (see FAQ)

Verify it works

After the OAuth flow, make these calls against https://mcp.nuritrip.com:

POST /  {"jsonrpc":"2.0","id":1,"method":"initialize","params":{...}}
POST /  {"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
POST /  {"jsonrpc":"2.0","id":3,"method":"tools/call",
          "params":{"name":"nuritrip_list_trips","arguments":{}}}

A successful nuritrip_list_trips returns the user’s trips. An empty list with a 200 response means the connection works but the logged-in account has no trips. Check which email was used.

FAQ

Do I need a client ID or API key?

No. Use dynamic client registration (RFC 7591) at the registration endpoint above to mint your own client ID at runtime. Never ask the user to create an app, and never ask them to paste a client ID or secret into chat.

I get 401 "token verification failed".

The token audience, almost certainly. The MCP server requires aud=https://mcp.nuritrip.com. This happens when the authorization request did not include resource=https://mcp.nuritrip.com (RFC 8707). AuthKit then issues a token audience-bound to your client ID instead. Fix the authorize request and reconnect. Reconnecting with the same request will not help.

I get 403 / Cloudflare Error 1010.

Cloudflare in front of mcp.nuritrip.com blocks non-browser User-Agents. Send a browser-like User-Agent header on every request (for example, a current Chrome UA string).

The log-in page keeps asking for my email or code.

Known issue: AuthKit hands log-in off to the NuriTrip app’s own log-in page, which does not always keep a persistent session, so each OAuth attempt re-prompts. Open the log-in link in the phone’s system browser app (Safari or Chrome), not inside the chat app’s webview. That gives the session the best chance of sticking.

It worked, then stopped after about an hour.

Access tokens live about an hour. You need the offline_access scope to receive a refresh token. If you did not request it, reconnect and include it.

Which email should the user log in with?

Their own NuriTrip account email. A new or unknown email creates a brand-new empty account with zero trips. If nuritrip_list_trips returns [] on a 200 response, the connection works but it is the wrong account.

Can I reuse this token for other NuriTrip APIs?

No. Tokens are resource-bound to https://mcp.nuritrip.com. Each NuriTrip API is its own OAuth resource with its own .well-known/oauth-protected-resource metadata. Discover and authorize against each one separately.

Does the user need to install or configure anything?

Almost nothing. In apps that add connectors from a page, as in ChatGPT’s Plugins, the user pastes https://mcp.nuritrip.com once and chooses OAuth. Otherwise the user only completes the OAuth log-in on the hosted page (ideally in their phone’s browser). Client registration, token handling and API calls are the app’s job.

If the MCP server's .well-known/oauth-protected-resource names a different authorization server than the one listed here, follow the metadata.