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.
| Client | Works with a key? | Did we test it? |
|---|---|---|
| Claude Code | Yes | Yes, on version 2.1.251, on November 2, 2026 |
| Cursor | Yes, according to Cursor's documentation | Not in the app yet. It failed on the old 2025.09.18 CLI |
| Claude app | Yes, according to Anthropic's documentation | Not yet |
| ChatGPT | Being tested, over OAuth | Not 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
- Sign in to G3 Apply and open the Integrations section of your account.
- Click Generate key, give it a name and tick only what the assistant needs. The default is reading copilots only.
- 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.
- In Customize, open Connectors.
- Click + Add and then Add custom connector.
- Give it a name, paste the server address and click Continue.
- Under Authentication, choose No sign in.
- Under Request headers, create the
Authorizationheader with the valueBearer YOUR_KEY, using your key. - 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.
| Permission | Tools |
|---|---|
| Read copilots | list_copilots, get_copilot |
| Change copilots | create_copilot, update_copilot, pause_copilot, resume_copilot, delete_copilot |
| Read applications | list_applications, get_application, list_matches |
| Read profile | get_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
Bearerfollowed 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.