Skip to content

docs: add per-tool MCP setup guides (OAuth 2.1, no API key) - #302

Merged
dodeja merged 5 commits into
mainfrom
docs/mcp-setup-guides
Jul 22, 2026
Merged

docs: add per-tool MCP setup guides (OAuth 2.1, no API key)#302
dodeja merged 5 commits into
mainfrom
docs/mcp-setup-guides

Conversation

@claude

@claude claude Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Requested by Akshay Dodeja · Slack thread

Before: The MCP docs only covered Claude Desktop and Cursor, and told users an API key was required ("API key only — OAuth not required for this release", "OAuth is not available for the hosted MCP server yet").

After: Per-tool setup guides for Claude (claude.ai, Claude Desktop, Claude Code), ChatGPT, Cursor, Microsoft Copilot (Copilot Studio), VS Code (GitHub Copilot), and a generic "Other MCP clients" page — all leading with OAuth 2.1: paste https://mcp.terminal49.com, sign in with Terminal49 credentials in the browser, done. No API key needed. API-key header auth (Authorization: Token ...) stays documented as a fallback for clients without OAuth support and for local stdio development.

How:

  • Added docs/mcp/setup/{claude,chatgpt,cursor,microsoft-copilot,vs-code,other-clients}.mdx (each: OAuth-first steps, test prompts, troubleshooting, related links).
  • Updated docs/mcp/home.mdx — OAuth-first TL;DR, setup-guide cards, rewrote the Authentication section, removed the "OAuth is not available yet" note.
  • Updated docs/api-docs/in-depth-guides/mcp.mdx — OAuth-first auth section and client config section (manual API-key configs kept as fallback), fixed the stale Cursor config shape, updated prerequisites and 401 troubleshooting.
  • Wired the new pages into docs/docs.json under a new Setup Guides group in the MCP tab.

OAuth support verified against the live server: https://mcp.terminal49.com/.well-known/oauth-protected-resource points to https://auth.terminal49.com, which advertises authorization code + PKCE (S256), refresh tokens, and dynamic client registration.

Checks run: git diff --check, docs.json JSON parse, npx mintlify broken-links (no broken links), stale-phrasing grep.

🤖 Generated with Claude Code

https://claude.ai/code/session_01QyDxMSSqV5YouCP4akxXi4


Generated by Claude Code

Greptile Summary

This PR adds OAuth-first setup guides for the Terminal49 MCP server. The main changes are:

  • New guides for Claude, ChatGPT, Cursor, Microsoft Copilot, VS Code, and other clients.
  • OAuth-first authentication and troubleshooting guidance.
  • Updated Cursor configuration and API-key fallback examples.
  • New Mintlify navigation entries and cross-links.

Confidence Score: 5/5

The documentation is mergeable after the OAuth deployment prerequisite is clarified.

  • Navigation, links, anchors, and client configuration shapes are consistent.
  • The no-key OAuth flow fails when the hosted handler's AuthKit flag is disabled.

docs/api-docs/in-depth-guides/mcp.mdx

Important Files Changed

Filename Overview
docs/api-docs/in-depth-guides/mcp.mdx Rewrites authentication and client configuration around OAuth, but presents the flow without its deployment prerequisite.
docs/docs.json Registers all six new setup guides under the MCP navigation tab.
docs/mcp/home.mdx Adds an OAuth-first overview, setup cards, and generic client configuration.
docs/mcp/setup/claude.mdx Adds setup instructions for claude.ai, Claude Desktop, and Claude Code.
docs/mcp/setup/chatgpt.mdx Adds ChatGPT custom-connector setup and troubleshooting guidance.
docs/mcp/setup/cursor.mdx Adds Cursor OAuth and API-key configuration using the current MCP schema.
docs/mcp/setup/microsoft-copilot.mdx Adds Copilot Studio setup through OAuth dynamic discovery.
docs/mcp/setup/other-clients.mdx Documents generic OAuth discovery and API-key fallback behavior.
docs/mcp/setup/vs-code.mdx Adds VS Code remote MCP setup for GitHub Copilot agent mode.

Fix All in Codex

Prompt To Fix All With AI
Fix the following 1 code review issue. Work through them one at a time, proposing concise fixes.

---

### Issue 1 of 1
docs/api-docs/in-depth-guides/mcp.mdx:51-55
**OAuth Depends on Deployment Flag**

When `T49_MCP_AUTHKIT_ENABLED` is not `true`, the hosted handler omits OAuth discovery from its authentication challenge and does not resolve OAuth Bearer tokens. In that deployment state, a client following this new no-key flow either never opens sign-in or returns to a `401` after sign-in, so this unconditional guidance should be published only with AuthKit enabled or should state that prerequisite.

Reviews (1): Last reviewed commit: "docs: add per-tool MCP setup guides with..." | Re-trigger Greptile

Greptile also left 1 inline comment on this PR.

Add setup guides for connecting Claude (claude.ai, Desktop, Claude Code),
ChatGPT, Cursor, Microsoft Copilot Studio, VS Code (GitHub Copilot), and
any other MCP client to the Terminal49 MCP server.

The hosted server now supports OAuth 2.1 (authorization code + PKCE with
dynamic client registration via auth.terminal49.com), so the guides lead
with browser sign-in using Terminal49 credentials — no API key required.
API-key header auth remains documented as a fallback for clients without
OAuth support and for local stdio development.

Update the MCP overview and quickstart to remove the stale 'API key only /
OAuth not available' language, and add the new pages to the MCP tab nav
in docs.json under a Setup Guides group.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QyDxMSSqV5YouCP4akxXi4
@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
api Ready Ready Preview, Comment Jul 22, 2026 9:57pm

Request Review

@mintlify

mintlify Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
terminal49 🟢 Ready View Preview Jul 22, 2026, 6:05 PM

@mintlify

mintlify Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
terminal49 🟡 Building Jul 22, 2026, 6:04 PM

@dodeja
dodeja marked this pull request as ready for review July 22, 2026 18:31
Comment on lines 51 to +55

**Authentication**: API key only (OAuth not required for this release).
Pass `Authorization: Token YOUR_API_KEY`. Use the `Token` scheme for API keys. The `Bearer` scheme is reserved for WorkOS OAuth access tokens — it currently accepts API keys for backward compatibility, but once OAuth is enabled, `Bearer` accepts only WorkOS tokens.
**Authentication**: OAuth 2.1 (recommended) or API key.

The hosted endpoint always requires the `Authorization` header. Only the [local stdio server](#local-stdio-development) reads the `T49_API_TOKEN` environment variable instead of a header.
- **OAuth 2.1** – no API key needed. Add `https://mcp.terminal49.com` to your client; it discovers the authorization server (`https://auth.terminal49.com`) via protected resource metadata, registers itself with Dynamic Client Registration, and opens your browser so you can sign in with your Terminal49 credentials. Tokens are stored and refreshed by the client.
- **API key** – for clients that can't run a browser OAuth flow, pass `Authorization: Token YOUR_API_KEY`. Use the `Token` scheme for API keys; the `Bearer` scheme is used for OAuth access tokens, which OAuth clients obtain automatically.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 OAuth Depends on Deployment Flag

When T49_MCP_AUTHKIT_ENABLED is not true, the hosted handler omits OAuth discovery from its authentication challenge and does not resolve OAuth Bearer tokens. In that deployment state, a client following this new no-key flow either never opens sign-in or returns to a 401 after sign-in, so this unconditional guidance should be published only with AuthKit enabled or should state that prerequisite.

Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/api-docs/in-depth-guides/mcp.mdx
Line: 51-55

Comment:
**OAuth Depends on Deployment Flag**

When `T49_MCP_AUTHKIT_ENABLED` is not `true`, the hosted handler omits OAuth discovery from its authentication challenge and does not resolve OAuth Bearer tokens. In that deployment state, a client following this new no-key flow either never opens sign-in or returns to a `401` after sign-in, so this unconditional guidance should be published only with AuthKit enabled or should state that prerequisite.

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

Fix in Codex

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: b8d0afbc48

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread docs/api-docs/in-depth-guides/mcp.mdx Outdated

The manual configurations below use an API key instead. Use them for clients or environments where the browser OAuth flow isn't practical.

### Claude Desktop (manual, API key)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Remove the unsupported Claude API-key fallback

Claude Desktop's native connector cannot consume static API-key headers from this configuration; the repository's client-specific source explicitly says claude.ai and Claude Desktop must use the WorkOS OAuth flow (packages/mcp/WORKOS_MCP_SETUP.md:89-91). Labeling this as a supported manual fallback sends users to edit a config the connector does not use, so remove this section or document a genuinely supported proxy/stdio route instead.

AGENTS.md reference: AGENTS.md:L77-L80

Useful? React with 👍 / 👎.

Comment on lines +55 to +58
curl -X POST https://mcp.terminal49.com \
-H "Authorization: Token $T49_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"tools/list","id":1}'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Add the required Accept header to the curl check

When an API-key user copies this connectivity check, curl sends Accept: */*, but an MCP Streamable HTTP POST must accept both JSON and event streams, so the SDK transport rejects the request instead of listing tools. The repository's working MCP client sends Accept: application/json, text/event-stream (and the protocol-version header) in packages/mcp/scripts/oauth-test-client.mjs:549-552; include those headers here so the advertised verification command is copy-pasteable.

AGENTS.md reference: docs/AGENTS.md:L33-L38

Useful? React with 👍 / 👎.

Comment thread docs/mcp/setup/chatgpt.mdx Outdated
<Step title="Use it in a chat">
In a new chat, enable the **Terminal49** connector from the tools menu (with Developer mode active), then ask:

> "Using Terminal49, track container CAIU1234567 with Maersk."

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Use a non-mutating connection test

For a newly connected account where this placeholder container is not already tracked, this prompt invokes track_container, the server's only write tool, and creates a real tracking request (packages/mcp/src/server.ts:87). Because CAIU1234567 is not one of the deterministic TEST-TR-* numbers documented for testing, following the setup guide can add a failed or pending record and consume a tracking slot on limited plans; use the read-only tools-list prompt here, or use a documented test number with the TEST SCAC.

AGENTS.md reference: docs/AGENTS.md:L33-L38

Useful? React with 👍 / 👎.

…nly test prompts, curl Accept headers

- Remove the Claude Desktop manual API-key config from the MCP quickstart:
  claude.ai/Claude Desktop must use the OAuth connector flow (see
  packages/mcp/WORKOS_MCP_SETUP.md); point API-key local dev at the stdio server
- Replace the connection-test prompt on all setup pages and the MCP overview
  with a read-only search_container prompt, since track_container is the
  server's only write tool and creates a real tracking request
- Add Accept and MCP-Protocol-Version headers to the curl connectivity checks,
  matching the headers the OAuth test client sends

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QyDxMSSqV5YouCP4akxXi4
…or one-click install

- Move Claude Code setup out of the Claude guide into its own page
  (mcp/setup/claude-code) and add it to the Setup Guides nav, the MCP
  overview list/cards, and cross-references in related guides
- claude.mdx: link directly to the claude.ai Add custom connector dialog
- chatgpt.mdx: link directly to the ChatGPT create-connector screen
- cursor.mdx: add a one-click Install MCP Server button (Cursor
  install-link with base64 server config), keeping manual mcp.json steps

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QyDxMSSqV5YouCP4akxXi4
…-plugins

Add install instructions for the Terminal49 plugin marketplace:
- Claude Code and Cursor setup guides get an 'Alternative: install the
  Terminal49 plugin' section with the marketplace install commands
- MCP overview gets an 'Agent plugins' section covering Claude Code,
  Codex, GitHub Copilot CLI, and Cursor installs

The plugin bundles the hosted MCP server connection with a shared
container-tracking skill; auth remains the same browser OAuth flow.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QyDxMSSqV5YouCP4akxXi4
- Add docs/mcp/setup/agent-plugins.mdx with per-platform install tabs
  (Claude Code, Cursor, Codex, GitHub Copilot CLI), skill overview,
  troubleshooting, and related guides
- Replace the Agent plugins section on the MCP overview with a setup-guide
  card and a TL;DR list entry
- Shrink the plugin alternative sections in the Claude Code and Cursor
  guides to short pointers so install commands live in one place
- Add the page to the Setup Guides nav group and to guide lists in the
  MCP quickstart and other-clients pages

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QyDxMSSqV5YouCP4akxXi4
@dodeja
dodeja merged commit 7986289 into main Jul 22, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants