# The Anyshift plugin on Cursor

Cursor 3.15.6 can load the Anyshift plugin from ~/.cursor/plugins/local. Here is the Linux install we verified, the OAuth consent, and the prompts that returned live production evidence.

Author: Louis Fradin

Published: 2026-08-18

Source: https://anyshift.io/blog/anyshift-plugin-on-cursor

Last Tuesday we finished verifying the [Anyshift plugin](https://github.com/anyshift-io/agent-plugin) on Cursor 3.15.6 on Linux. Codex was already working. Cursor was still marked unverified in the README, so we ran the install against our own graph until OAuth, tool discovery, and one authenticated read all passed.

The path that worked was the plugin package, not a marketplace click. We cloned it into `~/.cursor/plugins/local`, reloaded the window, completed browser OAuth when Cursor asked, and consented to one Anyshift project.

[Stephane's announcement](/blog/agent-plugin-for-every-ai-agent) is the product post. This is the Cursor walkthrough: install the plugin, finish OAuth, and use the prompts that returned production evidence.

## Install the plugin

Clone the current package into Cursor's local plugin directory:

```bash
git clone --depth 1 \
  https://github.com/anyshift-io/agent-plugin.git \
  ~/.cursor/plugins/local/agent-plugin
```

Reload the Cursor window (`Developer: Reload Window`). Cursor discovers plugins from `~/.cursor/plugins/local`. Do not symlink a checkout from outside that directory into it. Cursor 3.15.6 skips out-of-tree symlink targets.

Open **Customize** and confirm that the plugin, the packaged skill, and the Graph MCP server are enabled. Cursor then challenges you to authenticate: in our verification that showed up as `needsAuth` plus a client-side `mcp_auth` helper, which is Cursor's helper, not one of the Graph tools. After the Anyshift consent page, we started a new Agent chat so the skill and tools loaded.

The plugin already connects Graph MCP. Do not also add `https://graph.anyshift.io/mcp` to `~/.cursor/mcp.json`. Installing both registers two Cursor MCP clients against the same endpoint, and removing one of them can clear stored OAuth credentials. We did that once while testing uninstall and had to consent again.

The Graph tools are read-only. The OAuth grant is scoped to the project you pick. The open-source package contains no token, no project id, and no database name.

You need an Anyshift project that already has production graph data. If you don't, [talk to us](/contact) before you expect these prompts to return anything useful.

Cursor Marketplace one-click install is still unverified for this package. A [cursor.directory](https://cursor.directory) listing is the cleaner public path once it is live. Until then, the local plugin directory is the install we actually ran.

## What we asked it

After OAuth, Cursor discovered six Graph tools: `resolve_resource`, `get_dependencies`, `get_blast_radius`, `get_recent_changes`, `get_operational_impact`, and `query_graph`. `get_exposure` is on the current Graph surface: we have not re-run the Cursor compatibility check against it, so we're not claiming that tool here.

The first authenticated call we made was `get_recent_changes`: it came back with structured production evidence and an evidence timestamp, which was the bar we set for "this actually works."

Then we used this prompt against our graph before deploying `graph-api-production`:

> Before deploying `graph-api-production`, what should I check?

That name matched three resources: the declared service, the ECS service actually running, and its log group. The agent kept the ECS service and followed its current relationships: two upstream, two downstream, and 23 signal events from the previous 24 hours, including the task definition bump from revision 61 to 62.

Two other prompts that fit a Cursor session:

> Review my current Terraform changes. Resolve the affected production resources, then report their direct dependencies, bounded blast radius, recent related changes, post-deployment checks, and explicit unknowns.

> `checkout-worker` started restarting. What changed around it in the last two hours, and what could be affected downstream?

If a name is overloaded, start with `resolve_resource` and pass that candidate's stable id into later tools. An unqualified name is still deterministic, but it can pick a different resource kind that happens to share the name.

An empty result is not proof that nothing exists: Anyshift reports what its connected sources observed, and when they observed it.

## How do you install it in Cursor?

Clone the package into `~/.cursor/plugins/local/agent-plugin`, reload the window, confirm the plugin in **Customize**, complete browser OAuth, and start a new Agent chat. Cursor 3.15.6 or newer is the verified client. The [installation guide](https://docs.anyshift.io/pages/product/integration/production_intelligence_agent_plugin) covers Codex, VS Code, Claude Code, and the other clients.

## Why did the OAuth tokens disappear?

The plugin already loads Graph MCP. Adding the same URL in `~/.cursor/mcp.json` registers two Cursor MCP clients against the same endpoint. Removing one of them can clear stored OAuth credentials. Use the plugin, not both.

To uninstall, delete `~/.cursor/plugins/local/agent-plugin` and reload the window. If you also added a standalone MCP entry, remove the `agent-plugin` entry from `~/.cursor/mcp.json` (or the matching entry created by `cursor --add-mcp`).

You can revoke the grant from [Authorized Apps](https://app.anyshift.io/my-profile) on your Anyshift profile if you need to consent to a different project.

## Which tools should you expect?

The Cursor 3.15.6 verification found `resolve_resource`, `get_dependencies`, `get_blast_radius`, `get_recent_changes`, `get_operational_impact`, and `query_graph`. `get_exposure` is on the current Graph surface, but that Cursor row has not been re-checked against it.

The package source, releases, and compatibility table live in [`anyshift-io/agent-plugin`](https://github.com/anyshift-io/agent-plugin).

## How do you install the Anyshift plugin in Cursor?

Clone the package into ~/.cursor/plugins/local/agent-plugin, reload the Cursor window, confirm the plugin in Customize, complete browser OAuth, and start a new Agent chat. Cursor 3.15.6 or newer is the verified client.

## Why shouldn't you also add the Graph MCP URL to ~/.cursor/mcp.json?

The plugin already loads Graph MCP. Adding the same URL in ~/.cursor/mcp.json registers two Cursor MCP clients against the same endpoint. Removing one of them can clear stored OAuth credentials.

## Which Graph tools does Cursor discover?

The Cursor 3.15.6 verification found resolve_resource, get_dependencies, get_blast_radius, get_recent_changes, get_operational_impact, and query_graph. get_exposure is on the current Graph surface, but that Cursor row has not been re-checked against it.

