Skip to Content
MCP serverDebugging

Debugging

Most problems with the MCP connector fall into three buckets: the connection never completed, the tokens expired, or a tool call failed. This page covers each.

”I can’t connect”: the OAuth flow failed

Symptom: You add the server URL and either don’t get redirected, get redirected and see an error, or come back to the client without an enabled connector.

Try:

  1. Confirm the server URL is exactly https://mcp.traveler.md/mcp, including the /mcp path.
  2. Confirm you’re signed in to TravelAI in the same browser. If your client opens an in-app browser, sign in there first.
  3. Check the consent screen. If you denied any scope, the client will treat the connection as failed. Restart and approve all requested scopes.
  4. If you’re on a corporate network, OAuth redirects can be blocked. Try a personal network briefly to isolate.

If you still can’t connect, see Support.

”It worked yesterday”: token expired or revoked

Symptom: The agent says something like “I lost access to your travel preferences.” You see 401 unauthorized in client logs.

This usually means:

  • Your refresh token expired (30 days of inactivity).
  • You revoked the connection from Connections on traveler.md and forgot. Revocation takes effect on the next call, so this can surface mid-session rather than at the next sign-in.
  • The client’s stored token was wiped (signed out, reinstalled, etc).

Fix: Reconnect from your client’s connector settings. The OAuth flow will issue fresh tokens.

”The tool call failed”: agent saw an error

Symptom: The agent tried to call read_profile or another tool and got an error back.

Common error codes:

CodeMeaningWhat to do
401 unauthorizedToken invalid or expiredReconnect the connector
403 forbiddenToken missing required scopeReconnect and ensure all needed scopes are granted (for example, a write needs profile.update or trip.update)
404 not_foundThe requested trip doesn’t exist, isn’t visible to this token, or is already archivedRe-check list_trips — it hides archived trips. A missing Traveler.md is not this error: read_profile succeeds with a null version_hash, which is the signal to call create_profile
409 conflictConcurrent write detected, or a trip slug already in useRe-read before retrying: sections are replaced wholesale, so resending the same body against the current hash overwrites the other writer. A slug collision names no hash in its message and needs a different slug or title, not a retry
validation_errorA section name isn’t in the spec, a section exceeded its sentence cap, or a section was sent as an empty list without allow_clear_sectionsThe message names the offending fields. For a cap, send fewer, more concise sentences — the cap applies to the whole section you send, not just the new lines. To empty a section deliberately, resend with allow_clear_sections: true
429 rate_limitedToo many calls in a short windowBack off; the response includes Retry-After
500+Server errorContact support

Inspecting your data

You can always see exactly what the server has stored by signing in at traveler.md  and viewing your Traveler.md and any Trip.md files. If something an agent wrote looks wrong, this is where to confirm it.

Write history

Every write is versioned. From your account at traveler.md , open Settings → Activity for a log of every edit to your Traveler.md and trips — what changed, when, and which connected app did it.

There is no one-click revert. Restoring an earlier state is an ordinary write: read the current version, send back the content you want, and it becomes the new version with the old one still in the history.

Still stuck?

See Support for contact paths.