Cursor quickstart: check what changed in your code
Updated November 4, 2026

On this page
Install in one click
Open Add to Cursor. Cursor opens with the server filled in and asks you to confirm (install links).
Or add it by hand to ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one (Cursor MCP docs):
{
"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 into Cursor's local plugins folder and run Developer: Reload Window (Cursor plugin docs). Then skip the one-click install.
git clone https://github.com/since-dev/mcp \
~/.cursor/plugins/local/since-devOn 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).
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 notesAre 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 downTreat 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). It tells the agent to check with Since.dev before changing a version, and to use the replacement the answer names.
| 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). 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).
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:
- In app.since.dev, pick the workspace, open API keys and choose Create API key. It starts with
sc_live_and is shown once. - Store it as a secret named
SINCE_DEV_KEYand 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). 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.
| 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). Prices change, see since.dev/#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
.mdcfile in.cursor/rules. Cursor ignores a plain.mdfile there. - A 401 means the sign-in expired or the key isn't valid. Sign in again or make a new key.
credits_exhaustedmeans 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, no sign-in needed.
- See every dated retirement and end of life on the retirement calendar.
Connect GitHub and, on Team and up, it opens fix pull requests 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.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 codeAdd 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 codeAdd 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.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp