---
title: "Cursor Quickstart: MCP Server, Rule and Skills | Since.dev"
description: "Add Since.dev to Cursor in one click, sign in with OAuth, and have the agent check dependency, AI model and runtime changes before it edits them."
canonical_url: https://since.dev/guides/cursor-quickstart
last_updated: 2026-11-04
---

# Cursor quickstart: check what changed in your code

Add the Since.dev MCP server to Cursor in one click, sign in through your browser, and the agent can check your packages, AI models and runtimes against what changed. Add our rule and it checks before it edits a manifest, Dockerfile or workflow.

Updated November 4, 2026

## Install in one click

Open [Add to Cursor](https://cursor.com/install-mcp?name=since&config=eyJ1cmwiOiJodHRwczovL2FwaS5zaW5jZS5kZXYvbWNwIn0%3D). Cursor opens with the server filled in and asks you to confirm ([install links](https://cursor.com/docs/mcp/install-links)).

Or add it by hand to `~/.cursor/mcp.json` for every project, or `.cursor/mcp.json` for one ([Cursor MCP docs](https://cursor.com/docs/mcp)):

```
{
  "mcpServers": {
    "since": {
      "url": "https://api.since.dev/mcp"
    }
  }
}
```

Turn the server on or off under Customize in Cursor's sidebar.

### Or load our plugin

For the server, a rule and four skills together, clone our [plugin repository](https://github.com/since-dev/mcp) into Cursor's local plugins folder and run Developer: Reload Window ([Cursor plugin docs](https://cursor.com/docs/plugins)). Then skip the one-click install.

```
git clone https://github.com/since-dev/mcp \
  ~/.cursor/plugins/local/since-dev
```

On Enterprise, local plugins are off until an admin allows them.

## Sign in with OAuth

Cursor supports OAuth for remote servers. When it connects, sign in to Since.dev in your browser (a free account works) and approve Cursor for one workspace. No key is stored in a file.

To confirm, ask the agent to list the Since.dev tools. It should see `whats_changed`, `check_code` and `fix_code`. Cursor's CLI, `agent`, reads the same `mcp.json`; sign it in with `agent mcp login since` ([Cursor CLI docs](https://cursor.com/docs/cli/mcp)).

## Three things to ask first

Ask in Agent chat. You don't need to name the tools, and every answer cites its source.

### Check this package.json before we upgrade

The agent sends the manifest or lockfile to `check_code`, then reads `whats_changed` from your version. You get what affects your code, with its line, and each breaking change up to the version you want. A shortened example, for a made-up package:

```
package.json line 14: acme-sdk 3.2.0
  4.0.0 removes Client.send
  use instead: Client.request
  source: the 4.0.0 release notes
```

### Are our Node version and CI runners still supported?

The agent sends `.nvmrc` to `check_code`, reads the versions out of your Dockerfile and workflows, and checks each one as a surface, such as `runtime:node@20`. Each comes back supported, deprecated, retired or unknown, with its end-of-life date, its source and what to move to.

### What retires in the next 90 days?

The agent calls `whats_changed` with a `provider` and `within` set to `90d`. You get retirements and shutdowns in that window, soonest first, with the date per platform. A shortened example for OpenAI, as of Nov 4, 2026:

```
2026-11-30  Evals and Agent Builder shut down
2026-12-11  gpt-5, o3 and others shut down
2027-01-06  tts-1 and gpt-4o-mini-tts shut down
```

Treat `needs_review` and `unknown` as not settled, never as safe.

## What the rule and skills add

The rule, `since.mdc`, has globs and `alwaysApply: false`, so Cursor attaches it when a matching file is in context ([Cursor rules docs](https://cursor.com/docs/rules)). It tells the agent to check with Since.dev before changing a version, and to use the replacement the answer names.

Files the rule attaches to, from since.mdc

| Files            | Examples                             | The agent checks                         |
| ---------------- | ------------------------------------ | ---------------------------------------- |
| Manifests        | package.json, pyproject.toml, go.mod | What a new version breaks                |
| Lockfiles        | package-lock.json, poetry.lock       | Installed versions, transitive ones too  |
| Images and CI    | Dockerfile, .github/workflows/\*.yml | Base images and runners near end of life |
| Runtime versions | .nvmrc, .python-version              | Runtime end-of-life dates                |

The four skills cover upgrades, model IDs, code written from training, and CI. The agent picks one when your task matches its description, or type `/` in Agent chat to run one ([Cursor skills docs](https://cursor.com/docs/skills)). Without the plugin, copy both into the repository and commit them:

```
git clone https://github.com/since-dev/mcp /tmp/since
mkdir -p .cursor/rules .cursor/skills
cp /tmp/since/rules/since.mdc .cursor/rules/
cp -R /tmp/since/skills/* .cursor/skills/
```

## Approvals and fixes

Cursor asks before it runs an MCP tool. `whats_changed` and `check_code` only read, so you can allowlist them: in Auto-review mode, allowlisted tools run right away ([Cursor MCP docs](https://cursor.com/docs/mcp)).

Keep `fix_code` off the allowlist, since it writes. With a snippet it returns the patch, on Team and up. With a connected repository it opens fix pull requests, on Business and Platform. Fixes count against the month's fix pull requests, not credits.

## Use an API key for CI and headless runs

OAuth needs a browser. For CI, or the CLI where nobody can sign in, use a workspace API key:

1. In [app.since.dev](https://app.since.dev), pick the workspace, open [API keys](https://app.since.dev/api-keys) and choose Create API key. It starts with `sc_live_` and is shown once.
2. Store it as a secret named `SINCE_DEV_KEY` and point the header at it:

```
{
  "mcpServers": {
    "since": {
      "url": "https://api.since.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${env:SINCE_DEV_KEY}"
      }
    }
  }
}
```

Cursor fills in `${env:SINCE_DEV_KEY}` from the environment, so the key stays out of the file. In CI, run `agent -p` with `--approve-mcps` to skip approving the server ([Cursor CLI docs](https://cursor.com/docs/cli/mcp)). A key reaches only its own workspace. Never commit one.

## What calls cost

Each call spends credits from your workspace's monthly allowance, and every response says how many are left.

Credits per call, from Since.dev pricing as of Nov 4, 2026

| Call          | With                                 | Credits                           |
| ------------- | ------------------------------------ | --------------------------------- |
| whats_changed | Any read                             | 1, plus 1 per 10 changes returned |
| check_code    | A model, package, surface or snippet | 2                                 |
| check_code    | A manifest, lockfile or repository   | 20                                |

A lockfile costs more than a single package, so check it once. `fix_code` costs what its check costs, and a call that fails costs nothing ([credits](https://since.dev/docs.md#api-credits)). Prices change, see [since.dev/#pricing](https://since.dev/index.md#pricing).

## Troubleshooting

- Not connecting: open the Output panel (`Cmd+Shift+U`), pick MCP Logs and look for connection or sign-in errors.
- The tools are missing in Agent chat: check the server is on under Customize.
- The rule never applies: it must be an `.mdc` file in `.cursor/rules`. Cursor ignores a plain `.md` file there.
- A 401 means the sign-in expired or the key isn't valid. Sign in again or make a new key.
- `credits_exhausted` means the month's credits are spent. They reset monthly.

## Where Since.dev fits

Since.dev tracks breaking releases, deprecations, model retirements and end-of-life dates, and matches each one to the file and line it hits.

- [Scan any public GitHub repository](https://since.dev/scan.md), no sign-in needed.
- See every dated retirement and end of life on the [retirement calendar](https://since.dev/calendar.md).

Connect GitHub and, on Team and up, it opens [fix pull requests](https://since.dev/docs.md#repairs) for people to review. Nothing merges or deploys.

## Questions

### Does the Add to Cursor link contain a key?

No. It carries only the server's address. You sign in after it installs, so no key goes into a link.

### Should we commit the rule and skills?

Yes, if your team uses Cursor. Files in `.cursor/rules` and `.cursor/skills` live with the project, so everyone gets the same checks.

### Does it work in Cursor's CLI?

Yes. The CLI reads the same `mcp.json` as the editor. Sign in with `agent mcp login since`, or use an API key in CI.

### Do I need a paid plan to use Since.dev in Cursor?

No. `whats_changed` and `check_code` work on every plan, Free included. Fixes start on Team.

## Related guides

### Migration guides

- [.NET 8 and .NET 9 end of support: how to move to .NET 10](https://since.dev/guides/dotnet-8-end-of-support.md).NET 8 and .NET 9 lose support on November 10, 2026. Where the version hides in your repo, how to move to .NET 10, and what to do if you can't in time.

### Quickstarts

- [Claude Code quickstart: check what changed in your code](https://since.dev/guides/claude-code-quickstart.md)Add Since.dev to Claude Code with the plugin or one command, sign in with OAuth, and ask what changed in your packages, AI models and runtimes.
- [Codex quickstart: check what changed in your code](https://since.dev/guides/codex-quickstart.md)Add Since.dev to Codex with the plugin or codex mcp add, sign in with OAuth, and check your packages, AI models and runtimes for breaking changes.

## Put your code on continuous management.

Scan a public repository now, or give your agent one line.

### See how out of date your code is.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
