# MCP Inspect overview

> Snapshot your MCP server, detect breaking changes in schemas and descriptions, and gate pull requests with deterministic contract checks.

An MCP server is an API contract whose consumers are partly probabilistic. Two
kinds of change break things, and existing API tooling only sees one of them:

- **Structural.** A removed tool, an argument that became required, a narrowed
  enum. A correct caller stops working.
- **Semantic.** A rewritten description, a changed annotation, different server
  instructions. A request can still validate while a model picks a different tool.

MCP Inspect treats both as contract changes.

## The loop

```
develop → inspect → diff → merge → observe → learn → safely evolve
```

| Step         | What it is                                                                                                                                                                             |
| ------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Snapshot** | Connect over stdio or streamable HTTP, discover everything the protocol describes, normalise it into a deterministic document with a SHA-256 fingerprint per entity.                   |
| **Diff**     | Compare two surfaces with an MCP-aware engine across [four severities](/docs/severities), with the old value, the new value, an explanation and a suggested migration on every change. |
| **Check**    | The same analysis in CI, with a configurable failure threshold and one pull request comment that stays current.                                                                        |
| **Observe**  | Optional telemetry, emitted by your own process, that records which argument _names_ were supplied — never their values.                                                               |

## What it is not

It is **not a proxy or a gateway**. Nothing here sits in your request path. The
inspector connects the way any MCP client would, on demand, and telemetry is
emitted asynchronously by your own process and is allowed to be dropped. A total
outage of the hosted service cannot affect your server.

## Start here

Start in the [hosted console](https://app.mcprobe.dev/signup). The
[getting started guide](/docs/getting-started) explains scheduled contract
captures and approved preview access to the local CLI. Public CLI and Action
releases are pending; the npm package named `mcp-inspect` is a different project.

The CLI works with no account and no network beyond the server being inspected once
installed. Initialize its configuration and capture a baseline:

```bash
mcp-inspect init --snapshot
# Make your change and rebuild the server, then:
mcp-inspect check --baseline-file .mcp-inspect/surface.json
```

[Getting started](/docs/getting-started) walks through the first comparison.
[MCP breaking changes](/docs/mcp-breaking-changes) explains which contract
changes can affect callers and where integration tests still matter.
