## Why It Matters

Review season is mostly small, repetitive operations: check who's behind, submit your own review, pull the register for the auditor. Kit exposes the Performance module to AI assistants two ways — the in-app agent that lives on every Performance page, and MCP tools any external client (Claude Desktop, Claude Code, or your own agents) can call against your account. Confirm charges +$3/person/month for MCP access and only above 50 employees; in Kit it's included for everyone.

Both surfaces enforce the same rules as the UI: module permissions, tenant scoping, and the [human-accountability gates](/docs/performance-ai-drafted-reviews). An assistant can submit *your* review on your say-so — it can never submit someone else's, and it can never bypass a lifecycle guard.

## The In-App Assistant

Open the AI chat on any page under [Performance](/performance) — it activates automatically, alongside the Hiring and Security agents. It can:

**Track cycle health** — "Where is H1 2026?" returns status, participant counts, and per-review progress: who's submitted, who's still owing.

**Work your queue** — "What reviews do I owe?" lists your open assignments with due dates; the agent can then save answers and submit a finished review for you, subject to every submission gate.

**Pull the register** — "Show me the evaluation register for H1 2026" returns the completion tracker — the same seven columns your auditor samples.

**Answer platform questions** — the agent searches Kit's docs inline.

## MCP Tools Reference

External MCP clients get seven tools, gated by OAuth scope:

| Tool | Scope | What it does |
|------|:-----:|--------------|
| `performance_list_cycles` | read | List cycles with status and participant counts; filter by lifecycle status |
| `performance_get_cycle` | read | One cycle's detail: participants, reviewer assignments, per-review progress |
| `performance_list_my_reviews` | read | The acting member's assigned reviews in active cycles, draft/submitted state |
| `performance_get_evaluation_register` | read | The SOC 2 register for a cycle — employee, reviewers, rating, review date, status |
| `performance_create_cycle` | write | Create a draft cycle against a published template (name, cadence, due date, self/peer flags) |
| `performance_add_participant` | write | Add a reviewee by email, with role expectations; default reviewers assigned automatically |
| `performance_submit_review` | write | Save answers and submit the acting member's **own** review for one of their assignments |

Records are addressed by prefixed IDs (`pfc_…` cycles, `pfa_…` assignments) that tools return and accept, so an agent can chain list → get → act without screen-scraping.

> [!NOTE]
> `performance_submit_review` is deliberately self-scoped: it submits only reviews assigned to the authenticated member and enforces the same required-answer and AI-draft-ownership gates as the form. There is no MCP path to submit on another person's behalf, generate an AI draft, or finalize a cycle — finalization mints immutable evidence and stays a deliberate, human, in-app act.

## Connecting an External Client

Setup lives at [Integrations > MCP Setup](/integrations/mcp/settings), with copy-paste config per client. For Claude Code:

```
claude mcp add --transport http kit https://startupkit.app/api/v1/mcp
```

On first use, your client walks through Kit's OAuth flow in the browser. Grant the `performance_read` scope for reporting, and `performance_write` only to assistants that should act. Tools respect your module access — a member without Performance access gets nothing, admin-only tools (creating cycles, adding participants, the register) require module admin, and everything is scoped to your account's data only.

## Example Prompts

| What you type | What happens |
|---------------|--------------|
| "Create an H2 2026 annual cycle on the Startup competency template, due Dec 15" | `performance_create_cycle` → a draft cycle, ready for participants |
| "Add everyone on the engineering roster as participants, role summary from this doc" | `performance_add_participant` per person, default reviewers auto-assigned |
| "Which reviews are still unsubmitted in H1 2026?" | `performance_get_cycle` → the pending list with reviewer names |
| "Submit my self-review: 4/5 overall, here are my answers…" | `performance_submit_review` → validated, stamped, submitted |
| "Get the evaluation register for the last finalized cycle as a table" | `performance_get_evaluation_register` → auditor-ready rows in chat |

## Quick Checklist

- [ ] Try the in-app agent on [Performance](/performance): "What reviews do I owe?"
- [ ] Connect your MCP client at [Integrations > MCP Setup](/integrations/mcp/settings)
- [ ] Grant `performance_read` broadly; reserve `performance_write` for trusted assistants
- [ ] Chain the audit-prep flow: list cycles → get register → hand the table to your auditor

## Next Steps

- [Connecting AI Assistants](/docs/connecting-ai-assistants) — full MCP setup, OAuth flow, and client configs
- [SOC 2 Evidence and Exports](/docs/performance-soc2-evidence-exports) — the register and exports these tools read from