An **MCP server** is a project type for Model Context Protocol endpoints. Agents must authenticate before they can call a tool. Create one from [Projects](/docs/console/projects) by choosing **MCP server**.

MCP Auth appears in the sidebar only for that project type.

## Playground

Open **MCP Auth**. Connect with SSO to mint a short-lived bearer for the environment, then import tools. Tokens are scoped to the selected environment — use `dev` while iterating.

A successful playground call proves **this console session** can invoke **that** tool on **that** server. It does not authorize every agent identity in the trust store. Register those in [Agents](/docs/console/agents) (sales-gated).

## After registration

| Job | Where |
|-----|-------|
| Clients and scopes | [Authentication](/docs/console/authentication) |
| Which agents may call this server | [Agents](/docs/console/agents) |
| Which tools an agent may call | [Authorization](/docs/console/authorization) |
| Call history | [Agents](/docs/console/agents) activity, or [Audit](/docs/console/audit) |
| Abuse on the auth surface | [Lidar](/docs/console/lidar) |
| Server credentials | [Vault](/docs/console/vault) |

Each project can hold several environments, so staging tools never resolve in production.

## Controls in `@authdog/mcp-sdk`

These run inside your server. Each is opt-in.

- **Trust store** — verified non-human identities from [Agents](/docs/console/agents). Issuer revoke blocks **new** tokens when the subject is the OIDC `client_id`. Outstanding JWTs stay valid until expiry unless this control is in **enforce**.
- **Per-tool authorization** — AuthZEN check before the tool runs.
- **Audit** — invocation, denial, failure. No raw arguments.
- **Threat detection** — Lidar signals for poisoning, injection, exfil, rate abuse.

Happy path is **enforce**. Use `off` / `monitor` only while staging. See [MCP security](/guides/mcp-security) and [machine identity](/docs/machine-identity).

`@authdog/mcp-sdk` is source-only in the Authdog monorepo (`packages/mcp-sdk`). It is not published on npm.

## Related

| Read | To learn how to |
|------|-----------------|
| [Projects](/docs/console/projects) | Register an MCP server |
| [Authorization](/docs/console/authorization) | Scope tools |
| [Agents](/docs/console/agents) | Register, verify, and revoke agent identities |
| [Lidar](/docs/console/lidar) | Detect abuse |
| [Machine identity](/docs/machine-identity) | Pick M2M, Agents, service account, or PAT |
