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 Authorization header carrying your Arcade gateway credential, plus an Arcade-User-ID header 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.

Antigravity MCP Server Configuration UI for Remote Endpoints

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 dimensionNative Antigravity MCP approachArcade Action Runtime approach
Credential securityTokens often live in local config or wrappersDownstream tokens are managed by Arcade and never exposed to the LLM
Execution stateRetries and long-running state handled ad hocTool execution is handled through Arcade’s runtime
Tool reliabilityRaw MCP wrappers increase context size and tool-selection complexityArcade provides agent-oriented tools and gateway-managed access
AuthenticationOAuth is currently unreliable for remote MCP in Antigravity; static credentials may be requiredHeader-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:

ParameterDescription
serverUrlYour Arcade MCP Gateway URL. Use serverUrl, not url, to establish Streamable HTTP transport in Antigravity.
AuthorizationThe gateway credential that authenticates the Antigravity client to Arcade, not to downstream tools. Use the narrowest credential your gateway setup supports.
Arcade-User-IDMaps 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.

Antigravity scheduling a Google Calendar event via MCP tool integration

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.

Antigravity agent interacting with Notion API to update engineering documentation

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.

Antigravity automatically creating a formatted Linear issue with context


Troubleshooting Common Connection Errors

SymptomLikely CauseFix
Connection refused or 404 in AntigravityUsing url instead of serverUrl in configChange the key to "serverUrl": "<ARCADE_GATEWAY_URL>". url and httpUrl aren’t supported for remote MCP connections.
Error: calling "initialize": sending "initialize": UnauthorizedMissing or expired gateway credential, wrong auth mode, or an OAuth token not attached during initializationUse Arcade Headers mode and verify both Authorization and Arcade-User-ID are set correctly.
Antigravity shows Authenticate, but the server still returns UnauthorizedThe 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 accountShared or incorrect end-user identityVerify Arcade-User-ID is unique and maps to the intended authenticated user.
Execution Paused / timeoutMissing downstream authorization or a long-running tool callComplete the required authorization step in Arcade, then retry the tool call.
Streamable HTTP connection dropsProxies buffering or dropping streamsReview 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.