TL;DR
- Provision a Gateway: Create an Arcade MCP Gateway from the Arcade dashboard to manage third-party integrations.
- Configure Antigravity: Point your Antigravity MCP configuration at your Arcade Gateway URL using Streamable HTTP MCP.
- Authenticate with Headers: Antigravity’s MCP OAuth support is currently unreliable, so this guide uses Arcade Headers mode instead. It uses an
Authorizationheader carrying your Arcade gateway credential, plus anArcade-User-IDheader identifying the end user. - Test the Connection: Restart Antigravity and confirm the Arcade MCP server appears in your active tools list.
- Run Authenticated Actions: Ask Antigravity to schedule Calendar events, update Notion docs, or create Linear issues directly from your editor.
- Stay Secure: Arcade handles downstream authorization, token management, and tool execution, so third-party credentials never need to live in Antigravity prompts or local MCP server definitions.
Why Use Arcade.dev to Connect Antigravity and MCP?
Having Google Antigravity autonomously schedule Google Calendar events, update Notion docs, and create Linear issues directly from your editor is a real productivity unlock. Wiring up a local MCP server is easy, but adding authenticated third-party services quickly creates configuration sprawl, credential-management risk, and raw tool schemas that are hard for agents to reason about.
Arcade.dev is an action runtime, not just a routing gateway. Its MCP gateway gives Antigravity access to agent-optimized tools through a single endpoint, with downstream token vaulting, structured execution logs, and managed tool execution handled for you.
Arcade MCP Gateways support several authentication modes, including Arcade Auth, User Source, and Arcade Headers. This guide uses Arcade Headers, sending Authorization: Bearer {your_api_key} and Arcade-User-ID: {end_user_id} on every request, because it’s currently the most dependable configuration path for Antigravity.
Antigravity MCP Quickstart: Connecting a Local Server
Before introducing a remote gateway, it helps to establish a local baseline so you can interact with external tools via Antigravity right away.
Antigravity uses a stricter schema than some other MCP clients: it requires a serverUrl parameter for remote Streamable HTTP, SSE, or websocket connections. Legacy fields like url or httpUrl aren’t supported.
Open Antigravity’s MCP settings UI to confirm your active config file path. On current setups, it’s typically located at ~/.gemini/config/mcp_config.json.

Add the following to your Antigravity MCP configuration:
{
"mcpServers": {
"my_remote_server": {
"serverUrl": "https://api.example.com/mcp",
"headers": {
"Authorization": "Bearer my_local_dev_token"
}
}
}
}
Restart Antigravity and check the internal MCP tool list or store interface to confirm your server’s tools are registered.
This native configuration is fine for initial testing, but it doesn’t provide downstream token vaulting or managed execution for authenticated third-party calls. That’s where Arcade comes in.
Why This Guide Uses Arcade Headers Instead of OAuth
Antigravity’s UI can show an Authenticate button for OAuth-enabled MCP servers, but this path isn’t reliable yet. Antigravity does not support the MCP OAuth specifications, which blocks client ID/secret authentication. Separately, HTTP MCP servers using OAuth can receive the initialize request without the bearer token attached, producing a 401 Unauthorized response. This affects both Antigravity CLI v1.0.0 and the Antigravity 2.0 IDE, since they share the same language server.
In practical testing, Antigravity can complete the browser-based OAuth flow and still return Unauthorized on initialize. That’s not an Arcade limitation, it’s a client-side gap in how Antigravity currently handles OAuth for remote MCP.
Arcade Headers mode exists precisely as a fallback for MCP clients that can’t run browser-based OAuth: it passes the Arcade gateway credential in Authorization and the verified end-user identity in Arcade-User-ID on each request. Until Antigravity’s MCP OAuth support catches up, Headers mode is the dependable path for this integration.
Why an Action Runtime Beats Raw MCP Wrappers
Adding authenticated MCP services without an action runtime exposes some predictable failure modes:
- Raw MCP tool wrappers inject large schemas into the prompt, bloating context and making tool selection harder for the agent.
- Hardcoded service credentials sitting in local files, environment variables, or process memory increase exposure through logs, accidental commits, or poorly isolated execution.
- Token lifecycle (refresh, expiry, retries) and auditability are left to each individual MCP server or wrapper to solve on its own.
| Technical dimension | Native Antigravity MCP approach | Arcade Action Runtime approach |
|---|---|---|
| Credential security | Tokens often live in local config or wrappers | Downstream tokens are managed by Arcade and never exposed to the LLM |
| Execution state | Retries and long-running state handled ad hoc | Tool execution is handled through Arcade’s runtime |
| Tool reliability | Raw MCP wrappers increase context size and tool-selection complexity | Arcade provides agent-oriented tools and gateway-managed access |
| Authentication | OAuth is currently unreliable for remote MCP in Antigravity; static credentials may be required | Header-authenticated gateway session with per-user identity via Arcade-User-ID |
Arcade’s authorization layer manages OAuth flows, token refresh, and secure token storage for tool-level authorization, so you don’t have to build custom vaulting and refresh handling around every MCP server yourself.
Step-by-Step: Configuring the Arcade MCP Gateway for Antigravity
Update your Antigravity MCP configuration to point to your Arcade MCP Gateway, using Headers mode:
//~/.gemini/config/mcp_config.json
{
"mcpServers": {
"arcade_gateway": {
"serverUrl": "https://api.arcade.dev/mcp/<YOUR-GATEWAY-SLUG>",
"headers": {
"Authorization": "Bearer <ARCADE_GATEWAY_TOKEN>",
"Arcade-User-ID": "<VERIFIED_END_USER_ID>"
}
}
}
}
Configuration parameters:
| Parameter | Description |
|---|---|
serverUrl | Your Arcade MCP Gateway URL. Use serverUrl, not url, to establish Streamable HTTP transport in Antigravity. |
Authorization | The gateway credential that authenticates the Antigravity client to Arcade, not to downstream tools. Use the narrowest credential your gateway setup supports. |
Arcade-User-ID | Maps the request to the authenticated end user for downstream authorization. Use a stable, verified user identifier. |
ARCADE_GATEWAY_TOKEN and VERIFIED_END_USER_ID are placeholders. Don’t place a broad administrator API key in an Antigravity config. Treat any key you do use as a sensitive gateway credential, and rotate it through your normal secret-management process. Since Headers mode sends these values on every request, keep the config file secure and out of version control.
Restart Antigravity and verify the Arcade MCP server appears in your active tools list before running authenticated actions.
Practical Use Cases
1. Scheduling Google Calendar Events
Antigravity can create, update, and delete events, respond to RSVPs, find mutually free time slots, and list your schedule, all without leaving the editor.
Create an event in Google Calendar for tomorrow at 2 PM to review the deployment plan.

2. Updating Notion Engineering Docs
The Arcade Notion toolkit can identify the current workspace, search for pages or databases by title, fetch page content as markdown, inspect object metadata, create new pages, and append markdown content to existing pages.
Find the Notion page titled "API Migration Plan" and append a summary of the changes in this branch.
For example, Antigravity can use SearchByTitle to locate the page, GetPageContentById to read the existing plan, and AppendContentToEndOfPage to add a dated implementation note, or CreatePage if the page doesn’t exist yet.

3. Creating and Updating Linear Issues
When Antigravity finds a failing test, regression risk, or follow-up task while inspecting code, it can turn that context into a scoped Linear issue with the relevant files, reproduction notes, acceptance criteria, and owner.
Create a Linear issue for the failing checkout retry test, include the failing command, link the touched files, and assign it to me.

Troubleshooting Common Connection Errors
| Symptom | Likely Cause | Fix |
|---|---|---|
Connection refused or 404 in Antigravity | Using url instead of serverUrl in config | Change the key to "serverUrl": "<ARCADE_GATEWAY_URL>". url and httpUrl aren’t supported for remote MCP connections. |
Error: calling "initialize": sending "initialize": Unauthorized | Missing or expired gateway credential, wrong auth mode, or an OAuth token not attached during initialization | Use Arcade Headers mode and verify both Authorization and Arcade-User-ID are set correctly. |
Antigravity shows Authenticate, but the server still returns Unauthorized | The bearer token isn’t being attached to the HTTP MCP initialize request (a known Antigravity-side gap) | Use Arcade Headers mode until this is resolved upstream. |
| Tool succeeds but acts on the wrong account | Shared or incorrect end-user identity | Verify Arcade-User-ID is unique and maps to the intended authenticated user. |
Execution Paused / timeout | Missing downstream authorization or a long-running tool call | Complete the required authorization step in Arcade, then retry the tool call. |
| Streamable HTTP connection drops | Proxies buffering or dropping streams | Review proxy buffering and idle timeout settings between Antigravity and the MCP server. |
A common pain point in DIY deployments is token refresh drift: in long-running agent sessions that span minutes or hours, a user’s refresh token can expire mid-session. If you’re relying on native local storage, the agent suddenly fails with an opaque auth error. Arcade avoids this by managing OAuth flows, refresh, and secure token storage for you.
Conclusion
Adding authenticated services to Antigravity means moving downstream authorization, token storage, and execution state out of local tool wrappers and into an action runtime. That’s exactly what Arcade provides.
Until Antigravity’s MCP OAuth support matures, Arcade Headers mode is the most predictable way to connect the two: Antigravity sends a gateway credential in Authorization, Arcade maps the call to the correct user via Arcade-User-ID, and Arcade handles downstream authorization and tool execution from there.
Create your first Arcade integration and test it today.
Frequently Asked Questions
Where is the Google Antigravity MCP configuration file located?
Open Antigravity’s MCP server manager and use Open MCP Config or View raw config to confirm the active path for your version. The global config lives at ~/.gemini/config/mcp_config.json, with workspace-level config under .agents/mcp_config.json.
Does serverUrl or url connect Antigravity to an MCP endpoint?
serverUrl. Antigravity requires it for remote MCP over SSE, Streamable HTTP, or websocket; legacy fields like url or httpUrl aren’t supported.
Can I use native local MCP instead of Arcade?
Yes, for personal development and internal prototypes. For authenticated third-party services, though, you’re left to handle token storage, refresh, retries, and auditability yourself for every wrapper. That’s the overhead Arcade’s gateway is built to remove.
Can I use raw MCP tool wrappers instead of Arcade’s agent-optimized tools?
You can, but raw wrappers tend to create larger tool surfaces and more credential-handling work. Arcade MCP Gateways consolidate tools from multiple servers into one managed collection instead.
Does Arcade.dev provide MCP execution logs?
Visibility depends on your dashboard and runtime setup, so check your specific Arcade plan for details.
Where should I store MCP credentials and service tokens?
Never hardcode downstream service credentials in prompts or broad local configs. Let Arcade’s managed authorization handle downstream OAuth tokens, and treat the Antigravity-to-Arcade gateway credential itself as sensitive infrastructure. Rotate it like any other secret.
Why does my Streamable HTTP MCP connection keep dropping?
Proxies and firewalls can buffer or time out long-lived connections. Check proxy buffering and idle timeout settings between Antigravity and the MCP server.


