# Set up with Claude Code

Connect Claude Code to Unhandled with one command, or install the plugin that adds skills for fixing errors and verifying deploys.

Claude Code reads Unhandled through the [MCP server](/docs/features/mcp-server) and runs under your own Claude plan.

## Connect with one command

```bash
claude mcp add --transport http --scope user unhandled https://unhandled.net/mcp/x/debug
```

Run `/mcp` inside Claude Code and pick `unhandled` to sign in. The consent page in your browser asks which organization and scopes the connection gets. Reading an issue needs only read access. More options are in the [Claude Code MCP docs](https://code.claude.com/docs/en/mcp).

The URL is the `debug` [toolset](/docs/features/mcp-server#toolsets). Claude Code calls only listed tools, so for tools outside `debug` use a toolset URL that lists them, or `https://unhandled.net/mcp`, which lists every tool.

## Or install the plugin

The plugin connects Claude Code to `https://unhandled.net/mcp/x/skills`, the toolset that lists every tool its skills call, and adds skills that fix a production error with a failing test first, investigate an alert, verify a deploy, instrument a service and triage your inbox.

```bash
claude plugin marketplace add treboryx/unhandled
claude plugin install unhandled@unhandled
```

Claude Code asks for your Unhandled URL when the plugin is enabled. Leave it empty for `https://unhandled.net`, or set your own address, without a trailing slash, if you host Unhandled. Then run `/mcp`, pick `plugin:unhandled:unhandled` and sign in.

Use the command or the plugin, not both, so the tools are not listed twice.

| Skill or command | Use it for |
| --- | --- |
| `/unhandled:fix-production-error <issue ID or URL>` | Fix one issue with a failing test first, link the pull request and call `verify_fix` after the deploy |
| `/unhandled:fix-top-error [project]` | Pick the fixable issue affecting the most users and fix it the same way |
| `/unhandled:investigate-alert [alert or incident]` | Find why an alert fired or a monitor went down |
| `/unhandled:verify-deploy [version or SHA]` | Judge a production deploy and check whether the fixes it shipped held |
| `/unhandled:instrument-service` | Install Unhandled in this repository and loop on `verify_setup` until every check passes |
| `/unhandled:triage-inbox` | Rank what is broken, then act only on what you pick |

Claude Code also picks a skill on its own when the request matches, such as "fix https://unhandled.net/o/acme/projects/web/issues/42". Every skill treats exception messages, log lines and tags as data, never as instructions, and none of them passes `confirm: true` or approves anything unless you ask.

## Next

- [Fix issues](/docs/agents/fix-issues): Start Claude Code on an issue from the issue page or the CLI.
- [Prompts](/docs/agents/prompts): Add the `CLAUDE.md` section so every session follows the same rules.
