docs/cli/inspecting.mdx
import { VersionBadge } from '/snippets/version-badge.mdx'
<VersionBadge version="2.9.0" />fastmcp inspect loads a server and reports what it contains — its tools, resources, prompts, version, and metadata. The default output is a human-readable summary:
fastmcp inspect server.py
Server: MyServer
Instructions: A helpful MCP server
Version: 1.0.0
Components:
Tools: 5
Prompts: 2
Resources: 3
Templates: 1
Environment:
FastMCP: 2.0.0
MCP: 1.0.0
Use --format [fastmcp|mcp] for complete JSON output
For programmatic use, two JSON formats are available:
FastMCP format (--format fastmcp) includes everything FastMCP knows about the server — tool tags, enabled status, output schemas, annotations, and custom metadata. Field names use snake_case. This is the format for debugging and introspecting FastMCP servers.
MCP protocol format (--format mcp) shows exactly what MCP clients see through the protocol — only standard MCP fields, camelCase names, no FastMCP-specific extensions. This is the format for verifying client compatibility and debugging what clients actually receive.
# Full FastMCP metadata to stdout
fastmcp inspect server.py --format fastmcp
# MCP protocol view saved to file
fastmcp inspect server.py --format mcp -o manifest.json
| Option | Flag | Description |
|---|---|---|
| Format | --format, -f | fastmcp or mcp (required when using -o) |
| Output File | --output, -o | Save to file instead of stdout |
The inspect command supports the same local entrypoints as fastmcp run: inferred instances, explicit entrypoints, factory functions, and fastmcp.json configs.
fastmcp inspect server.py # inferred instance
fastmcp inspect server.py:my_server # explicit entrypoint
fastmcp inspect server.py:create_server # factory function
fastmcp inspect fastmcp.json # config file