Connect an AI assistant through MCP

An API key lets an AI assistant look up your account and, if you allow it, change your copilots. This page says which clients work today and what we actually tested.

What works today

The server accepts an API key in the Authorization header. Connecting over OAuth, where you paste the address and approve on a G3 Apply screen without copying a secret, is being tested: we checked it with a local MCP client, not yet with ChatGPT, Claude or Cursor. For now, the steps below use a key.

ClientWorks with a key?Did we test it?
Claude CodeYesYes, on version 2.1.251, on November 2, 2026
CursorYes, according to Cursor's documentationNot in the app yet. It failed on the old 2025.09.18 CLI
Claude appYes, according to Anthropic's documentationNot yet
ChatGPTBeing tested, over OAuthNot yet with ChatGPT itself

Don't confuse this with the site's public /mcp: it only answers questions about the product, doesn't reach any account and doesn't ask for a key.

Before you start: generate a key

Every client uses this address and the key you generate:

https://apply.g3infotech.app/api/mcp
  1. Sign in to G3 Apply and open the Integrations section of your account.
  2. Click Generate key, give it a name and tick only what the assistant needs. The default is reading copilots only.
  3. Choose how long it's valid and copy the key, which appears only once. Treat it like a password.

Claude Code

In the terminal, replace YOUR_KEY with your key and run:

claude mcp add --transport http g3apply https://apply.g3infotech.app/api/mcp \
  --header "Authorization: Bearer YOUR_KEY"

Check with claude mcp list: the server shows as Connected. The key is stored in plain text in Claude Code's local configuration, on your computer. Don't use --scope project with the key in the command: it would go into a file that usually ends up in Git.

More details in the Claude Code documentation.

Cursor

We haven't tested this in the Cursor app yet. These steps follow Cursor's documentation. On the cursor-agent 2025.09.18 CLI, the header wasn't sent and the connection failed: if that happens to you, update Cursor.

Open or create the file ~/.cursor/mcp.json and paste the configuration below, replacing YOUR_KEY with your key. If there are other servers already, add only the g3apply entry.

{
  "mcpServers": {
    "g3apply": {
      "url": "https://apply.g3infotech.app/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_KEY"
      }
    }
  }
}

Use the global file, not the project's .cursor/mcp.json, so the key doesn't go into Git.

Claude app (claude.ai, Desktop and Cowork)

We haven't tested this yet. These steps follow Anthropic's documentation, which says custom connectors accept a fixed credential under Request headers. The connection comes from Anthropic's servers, not your computer, and the key is stored there.

  1. In Customize, open Connectors.
  2. Click + Add and then Add custom connector.
  3. Give it a name, paste the server address and click Continue.
  4. Under Authentication, choose No sign in.
  5. Under Request headers, create the Authorization header with the value Bearer YOUR_KEY, using your key.
  6. Click Add.

On Team and Enterprise plans, everyone who uses the connector gets in with the same credential, which means with your G3 Apply account. On those plans, don't use your key.

The claude_desktop_config.json file is for local servers and doesn't work for this.

ChatGPT

Being tested. OpenAI's documentation says ChatGPT uses OAuth 2.1 and doesn't send custom API keys. G3 Apply now has OAuth, but we haven't tested it with ChatGPT itself, so we don't promise it works. Once we test it, this page will have the steps.

What each permission allows

The assistant only sees the tools of the permissions you ticked. No tool sends applications or emails, touches payments or shows contacts.

PermissionTools
Read copilotslist_copilots, get_copilot
Change copilotscreate_copilot, update_copilot, pause_copilot, resume_copilot, delete_copilot
Read applicationslist_applications, get_application, list_matches
Read profileget_profile

Automatic sending: read this before ticking Change copilots

The key has no tool to send applications. But with Change copilots, it can put a copilot in automatic sending (FULL_AUTO, with update_copilot) and turn it on (with resume_copilot). From then on, the copilot sends applications by itself.

For that, the assistant gets a proposal, confirms in a second call and also has to send confirmFullAuto. A copilot created with a key starts paused and in manual review.

These confirmations are asked of the assistant. Our server only sees the call and doesn't know whether you said yes, so don't let the client approve tools on its own with this key.

Revoking the key doesn't turn off a copilot that's already on. Pausing the copilot in G3 Apply stops it from finding and preparing new jobs and also holds what is in the sending queue until you turn it back on. A submission that already started finishes, because it can't be interrupted, and an application you send yourself from its own screen still goes out. To take an application out of the queue, open it in Applications and click Discard application.

Limits, activity and revoking

  • 60 messages per minute per key and 30 writes per hour per account. Above that, the response is 429, with the wait time in Retry-After.
  • Tool calls show up under Recent activity, in the Integrations section, with the key, IP and result.
  • Revoking takes effect at once: the next call with that key is refused.
  • The key expires on the date you choose. Changing your password or signing out of all devices also turns it off.
  • Job and company text comes from third parties and may carry instructions written to trick the assistant. The server tells the assistant to treat that text only as data, but that's no guarantee: review what it proposes.

If it doesn't connect

  • Error 401: the key is wrong, expired or revoked, or the header didn't arrive. Check the value Bearer followed by the key, or generate another.
  • The client asks you to sign in, or shows an error like Unexpected token: it didn't send the key and tried OAuth, which doesn't exist here yet. Check the header configuration.
  • Error 403: the request came from a page on another site. The server refuses this on purpose; use a terminal or desktop client.
  • INSUFFICIENT_SCOPE: a permission is missing. Generate a new key with what's missing, because you can't change the permissions of an existing key.