Skip to content
MEGA
Setup

Paste one URL and sign in

Connecting a megamcp connector is one address and one approval click. There is no token to paste, no client ID to register, and nothing to install. Below are the exact steps for Claude, Claude Code, and ChatGPT, plus honest answers for the handful of things that actually go wrong.

Your URL

Start with your connector URL

Every connector has one address. It is the only thing you paste into any client, and it is the only thing you need before you begin.

https://mcp.megamcp.ai/c/{connectionId}

Example:
https://mcp.megamcp.ai/c/conn_a1b2c3

Find yours in the dashboard: open your connector and look for the Connector URL row on the Overview tab, with a copy button beside it. In Team mode that row is the admin connection, and each teammate has a personal URL on the Members tab.

Copy it, never retype it
The dashboard puts a copy button beside the URL. Use it. The address you paste has to match what the connector publishes about itself, character for character, and one wrong character produces a sign-in that fails after you have already approved it.
No trailing slash, no variants
The URL ends at the connection id. Adding a slash, changing the host, or pasting a shortened form all break the match. If a client reports an invalid target, this is almost always why.
One URL per person in Team mode
A Team-mode connector gives every member their own URL and their own upstream sign-in, so your systems record who actually did what. Members find theirs on the Members tab after accepting an invite. Do not pass the admin URL around.
Authentication

Signing in is the default

Older instructions for this product told you to paste a bearer token. Ignore them. Every supported client now signs in the way a normal app does, and the connector handles registration itself.

What happens when you click Connect
Your client calls the connector, is told where to sign in, and registers itself automatically. No client ID, no secret, no copied credential. You land on a megamcp approval page that names the app asking, lists the permissions it wants, and shows where the token will be sent. Approve it and you are finished.
What you are approving

Reading data through this connector's read tools, and using its write tools, still subject to its guardrails and confirmations. The approval covers that one connection and cannot be used with any other connector.

Access expires after 60 minutes and renews quietly in the background, so a connection in regular use does not ask you again. Revoke it at any time from the dashboard and the very next request is refused.

You have to be signed in to megamcp in the same browser, with the account that owns the connector. The approval page refuses anyone else without saying whether the connection exists, so a stray second account looks exactly like a broken link. Sign in first if you are connecting from a fresh browser.

There are two different sign-ins, and people miss the second one. The one on this page is your AI client signing in to megamcp. The other is megamcp signing in to your actual software, which you do once from the connector's Settings tab in the dashboard. If your software uses OAuth, the connector deploys with a placeholder and cannot reach a single live record until that second sign-in is done. It will authenticate perfectly and fail every call.

Client 1 of 3

Connect in Claude

Works in the browser, the desktop app, and mobile, because the connector is added to your account rather than to a device. Add it once.

On Free, Pro, or Max

  1. Open Claude in a browser and go to Settings, then Connectors.
  2. Click Add custom connector.
  3. Paste your connector URL into the server URL field.
  4. Leave Advanced settings alone. The OAuth Client ID and Secret there are optional and megamcp does not need them. Leave the request-header fields empty too.
  5. Click Add, then Connect. A megamcp page opens asking you to approve access. Approve it and Claude returns to the connector list.
  6. In any chat, use the + button, choose Connectors, and switch your connector on for that conversation.

On Team or Enterprise

Only an Owner can add a custom connector, and adding it is a separate act from connecting to it. Every member signs in as themselves afterwards, which is what keeps a Team-mode connector honest about who did what.

  1. An Owner opens Admin settings, then Connectors, and clicks Add custom connector.
  2. The Owner pastes the connector URL and clicks Add. This does not sign anyone in. It only makes the connector available to the workspace.
  3. Each member then opens Settings, then Connectors, finds the entry labelled Custom, and clicks Connect to approve access for themselves.
  4. Members enable it per conversation from the + button, the same as everyone else.

Anthropic moves these labels around. Depending on your account you may find the same screens under Customize rather than Settings, or under Organization settings rather than Admin settings. The shape never changes: find Connectors, add a custom one, paste the URL, connect. Anthropic's own page is the authority on the exact wording.

Client 2 of 3

Connect in Claude Code

Two commands and a sign-in. This is also the one client where a static token is a first-class option, which is what makes it the right place to test CI.

  1. Run the add command in a terminal with your own URL in place of the example below. Nothing is validated at this point. The command only writes configuration, so a bad URL stays quiet until step three.
  2. Decide where it lives. With no scope flag the connector is added for the current project only. Add --scope user to make it available in every project on your machine, or --scope project to share it with your team through a checked-in .mcp.json.
  3. Start Claude Code and run /mcp. Pick megamcp from the list to sign in, and your browser opens the megamcp approval page. You can also run claude mcp login megamcp straight from the shell.
  4. Confirm it worked with claude mcp list. A healthy connector reads Connected. Needs authentication means step three is unfinished, and Failed to connect almost always means the URL is wrong.
# Add it (this project only)
claude mcp add --transport http megamcp https://mcp.megamcp.ai/c/conn_a1b2c3

# Or make it available in every project on this machine
claude mcp add --transport http megamcp --scope user https://mcp.megamcp.ai/c/conn_a1b2c3

# Then, inside Claude Code:
/mcp

Two things that look like faults and are not. The approval page warns you that the token is going to an address on your own computer: that is expected for a command-line app and is exactly what it should say. And the name megamcp is free to use, but workspace, claude-in-chrome, computer-use, Claude Preview, and Claude Browser are reserved names Claude Code will reject. Adding the same name twice at the same scope also fails, so remove it first with claude mcp remove megamcp.

Client 3 of 3

Connect in ChatGPT

ChatGPT needs developer mode switched on before a custom server can be added at all. Once it is on, the URL and the sign-in work the same as everywhere else.

  1. Turn on developer mode first, or no custom-server option appears at all. OpenAI documents this under Settings, then Security and login. It is a web-only feature on Pro, Plus, Business, Enterprise, and Education accounts. ChatGPT Free cannot add one.
  2. On Business or Enterprise, an admin may have to allow connected data for the workspace before the toggle does anything. If developer mode will not stay on, that is the reason.
  3. Create a developer-mode app for a remote MCP server and paste your connector URL as the server address.
  4. Choose OAuth as the authentication method. Do not choose no authentication. ChatGPT rejects a server quietly when the chosen auth mode does not match what the server actually does, and megamcp always requires authentication.
  5. Approve access on the megamcp page when ChatGPT sends you there. The connector then appears under the composer's developer-mode tool inside a conversation.

Use developer mode, not the deep-research or company-knowledge connector surfaces. Those expect a server exposing two specific tools named search and fetch. Your connector exposes tools named after your own software's operations instead, which is the entire point of it, so it belongs in developer mode. OpenAI's developer mode guide is the current authority on the settings path, which has moved more than once.

Said plainly: we have run Claude and Claude Code end to end against production, and we have not published a documented ChatGPT run. The steps above follow OpenAI's own documentation and the same open standard both Claude clients use, so we expect them to work. If ChatGPT gives you trouble, tell us rather than assuming you did it wrong, and we will get it working with you.

Scripts and CI

Tokens are the fallback

A connector ships without a static token, which is the safer default. Issue one only when something has to connect with no human present: a scheduled job, a CI step, a server-side agent.

Create one from the connector's Settings tab. It is shown exactly once, because only an encrypted form is kept, so put it in your secret manager the moment you see it. It travels as an Authorization: Bearer header on the same connector URL, and it can be rotated or removed later without rebuilding anything.

curl -X POST https://mcp.megamcp.ai/c/conn_a1b2c3 \
  -H "Authorization: Bearer $MEGAMCP_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
Claude Code: supported
Pass the token as a header on the add command. If the token is wrong, Claude Code reports the connection as failed rather than falling back to signing in, so fix the token instead of retrying.
Claude on the web: beta only
Anthropic has a Request headers section in the add-connector dialog, but documents it as a beta rolled out selectively. If you have it, enter the value including the word Bearer and the space after it. It cannot be combined with OAuth on the Authorization header, because OAuth owns that header.
ChatGPT: not possible
ChatGPT offers OAuth or no authentication and has no field for a custom header, so a token cannot be used there at all. Sign in instead.
# Claude Code, with a static token instead of signing in
claude mcp add --transport http megamcp https://mcp.megamcp.ai/c/conn_a1b2c3 \
  --header "Authorization: Bearer YOUR_TOKEN"

A token is a standing credential with no human attached, so treat it like one. Signing in is better wherever a person is present: it expires, it renews itself, it names the app that asked, and revoking it takes one click. Either way, everything runs under the same guardrails, confirmations, and rate ceilings.

Custom clients

If you write your own client

Skip this unless you are building against the connector in code. It is one default in the official client library that will otherwise cost you an afternoon.

The official MCP client library still defaults to the older protocol revision for backward compatibility. Your connector serves that revision happily, so setup, tool listing, reads, and dry runs all look fine. Writes that pause for human approval are the exception: the approval round trip does not exist in the older revision, so those calls are refused outright with a message about upgrading the client. It reads like a broken connector and it is a one-line client setting. Because it is a client-side default, it can only be fixed in your code.

const client = new Client(
  { name: "my-agent", version: "1.0.0" },
  {
    capabilities: { elicitation: {} },
    // Without this, the client speaks the older revision and every
    // approval-mode write is refused. Use "auto" to probe and fall back,
    // or { pin: "2026-07-28" } to fail loudly instead.
    versionNegotiation: { mode: "auto" },
  },
);

Your client also has to answer the approval request, not just negotiate the right revision: register an elicitation handler and decide how a human says yes. If nothing in your job needs approval-mode writes, the older revision is fine and you can ignore all of this.

Troubleshooting

When something does not work

These are the failures that actually happen, in roughly the order they happen. Almost all of them are the URL or the second sign-in.

That connection is not available on this account
You are signed in to megamcp as the wrong person, or in a browser where you are not signed in at all. The approval page needs the megamcp account that owns the connector, in the same browser. Sign in, then start the connection again from the client rather than reloading the approval page.
Sign-in never opens, or the client says it needs authentication
Nearly always the URL. Remove the connector from the client, copy the URL again from the dashboard with the copy button, and add it fresh. Check for a trailing slash and for a stray space at either end.
It connected, but no tools appear
Connecting and enabling are two different things. In Claude, switch the connector on for the conversation from the + button. In ChatGPT, enable it in the developer-mode tool. In Claude Code, run /mcp and check the tool count next to the server.
Reads work and every write fails
If the failure asks a human to approve something, that is the connector working as designed: writes pause on a preview and wait for a person. If the error says the approval round trip needs a newer protocol revision, your client is speaking an older one. See the section on writing your own client.
Sign-in worked but every call fails against your software
There are two sign-ins and only one is done. Open the connector's Settings tab in the dashboard and connect your account for the upstream software. Until that is finished the connector authenticates perfectly and reaches nothing.
A browser-based tool gets a 403
The endpoint does not serve browser origins, deliberately. Anything calling it from inside a web page is refused before authentication even runs, which is why an in-browser inspector fails while real clients work. Test with the AI client itself, with Claude Code, or with curl.
Everything is refused at once
Check whether the connector, or that one member's connection, is paused or revoked in the dashboard. Both take effect on the very next request, with nothing cached that could serve past them. A lapsed subscription has the same effect.

Before you write in, open the Activity tab. Every tool call is recorded there with what was asked, what happened, and why it failed. Send us a request id from that tab and we can answer in one reply instead of five.

No connector to connect yet?

Name your software, describe the job, and see your Connector Blueprint before you pay anything. Setup is the easy part.

Get your Blueprint