DEV Community

Cover image for I turned a VS Code mobile companion into an MCP + OpenAPI control plane for Antigravity IDE (v1.0.13)
cafeTechne
cafeTechne

Posted on

I turned a VS Code mobile companion into an MCP + OpenAPI control plane for Antigravity IDE (v1.0.13)

If you want AI agents to control a live IDE session (send prompts, stop generation, switch sessions, inspect state), this release is for you.

I maintain Antigravity Link, a VS Code extension that mirrors an active Antigravity IDE session to mobile. In v1.0.13, I expanded it into a local automation bridge with:

  • an MCP server (mcp-server.mjs)
  • an OpenAPI-spec'd HTTP API (openapi.yaml)

So now OpenClaw-style workflows, LLM agents, and custom orchestrators can drive real Antigravity sessions programmatically.

TL;DR

  • ✅ Added MCP server support for agent tool calling
  • ✅ Added OpenAPI schema for typed local integration
  • ✅ Made stop generation much more reliable
  • ✅ Improved mobile mirror UX during generation
  • ✅ Expanded internationalization and improved accessibility/clarity of interaction states

What problem this solves

Antigravity IDE updates can shift DOM structure and break brittle automation assumptions. I needed something that:

  1. still works from mobile
  2. degrades gracefully when UI internals change
  3. exposes stable control surfaces for automation/agents

This release focuses on reliability under change.

New in v1.0.13: MCP + OpenAPI control surface

You can now control active Antigravity instances via local API/MCP tools:

  • get snapshot state
  • send message
  • stop generation
  • list/switch instances
  • get task/walkthrough/plan docs

That makes this useful not only as a mobile UI, but as an agent integration layer.

Stop generation reliability: what changed

One of the biggest pain points was stop behavior becoming flaky after upstream UI changes.

Before

  • stop detection relied on aria/text heuristics
  • false positives clicked the wrong controls
  • some LS RPC responses looked successful but were silent no-ops

Now

  • stop detection uses a ground-truth selector:
    • [data-tooltip-id="input-send-button-cancel-tooltip"]
  • /stop uses a dual-path strategy:
    • CancelCascadeInvocation RPC
    • direct DOM click fallback (always attempted)
  • each stop attempt writes diagnostics to ag-stop-probe.json

Result: fewer stuck generations and easier debugging when things do fail.

Mobile UX improvements

  • Stop chip dims/locks while request is in flight
  • Send button becomes a red stop button during generation
  • Mirror taps during generation route to stop (prevents accidental control activation)
  • Better loading state copy when server is connected but snapshot isn’t ready yet
  • Undo buttons hidden in mirror mode to prevent broken command-row layout

Accessibility + i18n

  • Expanded multilingual support in docs/UI
  • Clearer state transitions and interaction affordances on mobile
  • Better readability and behavior consistency in constrained viewports

API and MCP quick start

OpenAPI

See full schema in: openapi.yaml

Default local server: https://localhost:3000

Auth: Authorization: Bearer <token> (except /ping)

MCP

Run mcp-server.mjs and point your MCP client to it with:

  • AG_BRIDGE_URL
  • AG_BRIDGE_TOKEN

Then your agent can call tools like get_snapshot, send_message, stop_generation, and switch_instance.

Why this matters for AI tooling

A lot of “agentic IDE” demos skip the messy part: robust control over a real, changing UI.

This release is about that messy part:

  • stable-ish control contracts (MCP + OpenAPI)
  • fallback logic when one control path fails
  • observability for failure analysis

Links

If you’re building agent workflows around IDEs, I’d love feedback on what API/tooling surface would help next.

Top comments (0)