# Claude Code setup

Claude Code can drive a Fivexer workspace directly — create and route tasks, inspect why a match went the way it did, check queues and stats — without you writing any integration code.

The fastest way in is the **Fivexer plugin**: one install, then a browser sign-in. No API key to copy, nothing to put in your shell profile.

## Before you start

You need Claude Code 2.x or newer (`claude --version`) and a Fivexer workspace. [Signing up](https://5xer.com) creates a sandbox workspace automatically, so there is nothing to configure and nothing to pay for while you try it.

You do **not** need to visit the API keys page. OAuth issues the credential for you.

## Install the plugin

A marketplace is a catalog Claude Code reads to find plugins. Add Fivexer's, then install from it:

```
bashclaude plugin marketplace add fivexer/claude-plugin
claude plugin install fivexer@fivexer
```

Inside a Claude Code session the same two steps are `/plugin marketplace add fivexer/claude-plugin` and `/plugin install fivexer@fivexer`. Those are slash commands — typed into a shell they give you `bash: /plugin: No such file or directory`, and some hosts (the VS Code extension among them) report `/plugin isn't available in this environment`. The `claude plugin …` commands above work everywhere.

Confirm it landed:

```
bashclaude plugin list
```

## Sign in

The plugin connects to the hosted endpoint over OAuth. First find the server's name — Claude Code namespaces servers that come from a plugin as `plugin:<plugin>:<server>`:

```
bashclaude mcp list
```

```
plugin:fivexer:fivexer: https://api.5xer.com/mcp (HTTP) - ! Needs authentication
```

Then sign in with that full name:

```
bashclaude mcp login plugin:fivexer:fivexer
```

A browser opens, shows a consent screen naming your workspace and the access being granted, and stores the token. On a server, in a container, or over SSH, ask for the URL instead:

```
bashclaude mcp login plugin:fivexer:fivexer --no-browser
```

Open the printed URL anywhere, approve, then paste the URL you land on back at the prompt. This still needs an interactive terminal to paste into — over SSH, use `ssh -t`.

### What you are granting

| Scope | What it permits |
| --- | --- |
| `fivexer:read` | List and read tasks, workers, decisions, stats |
| `fivexer:write` | Create and mutate tasks, workers, teams, skills |
| `openid`, `email` | Identify the account for the consent record |

Authorization is code + PKCE with dynamic client registration, so no secret is ever pre-shared and your client identity is minted at first sign-in. Tokens refresh in the background — see [staying connected](/docs/agentic/mcp/) for how long a grant lasts and where to revoke one.

## Check it works

```
bashclaude mcp get plugin:fivexer:fivexer
```

A healthy server reports `✔ Connected`. `! Needs authentication` means the sign-in did not complete; `⏸ Pending approval` means the config is there but you have not approved the server yet — start a session and accept the prompt.

Then ask Claude for something read-only:

```
List my Fivexer workers and show the 5 oldest queued tasks.
```

It should reach for `list_workers` and `list_tasks`. If it asks you for an API key or a base URL instead, it is running the local stdio server rather than the hosted one.

## What you get

62 tools covering tasks, workers, skills, teams, rostering, decisions, learning, quotas and analytics — the full surface is broken down on the [MCP server](/docs/agentic/mcp/) page.

The plugin also carries a **skill**, which is the part that is easy to overlook. It teaches Claude the routing rules that surprise people: eligibility is tag overlap, a `routingWeights` entry of `0` is a hard veto that nothing overrides, wildcards are suffix-only (`lang:*`, never `skill:*:node`), and every match writes a decision trace worth reading before you change any weights. Without it, an agent guesses at those and generates plausible-looking requests that quietly do the wrong thing.

## Day to day

```
bashclaude plugin list                        # what's installed
claude plugin update fivexer              # pull a new version (restart to apply)
claude plugin disable fivexer             # keep it installed, stop loading it
claude plugin uninstall fivexer

claude mcp logout plugin:fivexer:fivexer  # clear stored credentials
claude mcp login plugin:fivexer:fivexer   # sign in again
```

Note the split: **plugin** commands take the short name `fivexer`, **mcp** commands take the namespaced `plugin:fivexer:fivexer`.

To move to a different workspace, log out, log back in, and pick the other workspace at consent.

## Without the plugin

The same tools are available by connecting to the hosted endpoint yourself, which is the right choice if you do not want the bundled skill or you manage MCP config centrally:

```
bashclaude mcp add --transport http fivexer https://api.5xer.com/mcp
claude mcp login fivexer
```

Added this way the server keeps the name you gave it, so it is plain `fivexer` rather than `plugin:fivexer:fivexer`.

Or run the server locally against a workspace key — useful in CI, or anywhere a browser sign-in is impractical:

```
bashclaude mcp add fivexer \
  -e FIVEXER_API_KEY=sk_test_... \
  -e FIVEXER_BASE_URL=https://api.5xer.com \
  -- npx -y @fivexer/mcp
```

Both variables are required. Keys come from your console's API keys page; `sk_test_` keys are sandbox, `sk_live_` are production. See [Auth & keys](/docs/concepts/auth-and-keys/) for what a workspace key reaches.

## Troubleshooting

| Symptom | Cause | Fix |
| --- | --- | --- |
| `bash: /plugin: No such file or directory` | Slash command typed in a shell | Use `claude plugin …` |
| `/plugin isn't available in this environment` | The host does not expose slash commands | Use `claude plugin …` |
| `No MCP server named "fivexer"` | Plugin servers are namespaced | Use `plugin:fivexer:fivexer`; `claude mcp list` prints the exact name |
| Tools do not appear after installing | Plugins load at session start | Restart Claude Code |
| `⏸ Pending approval` | Server config not yet approved | Start a session and accept the prompt |
| `! Needs authentication`, or 401s on every call | Not signed in, or the grant was revoked | `claude mcp login plugin:fivexer:fivexer` |
| "stdin isn't a terminal" during `--no-browser` | Sign-in was piped or run non-interactively | Re-run in a real terminal; over SSH use `ssh -t` |
| Claude asks for `FIVEXER_API_KEY` | You are on the local stdio config | `claude plugin update fivexer`, then restart |

## Related

- [MCP server](/docs/agentic/mcp/) — the full tool surface, hosted connectors for claude.ai and ChatGPT, and Cursor / Claude Desktop config.
- [`@fivexer/agent`](/docs/agentic/agent/) — the other direction: run an AI agent *as* a worker that receives routed tasks.
- [Quickstart](/docs/quickstart/) — the same operations from code rather than from an agent.
