Updated
MCP Inspector
ProCustomize
Traffic
stdio
Color
Installation
ProMCP Inspector is a Pro component
Sign in to see the source, or install it with a license key. The live preview and props above are free to explore.
Install with a key
- Add the Pro registry to
components.json:components.json { "registries": { "@uibrik-pro": { "url": "https://uibrik.com/r/pro/{name}.json", "headers": { "Authorization": "Bearer ${UIBRIK_LICENSE}" } } } } - Put your key in
.env.localand add that file to.gitignore:.env.local UIBRIK_LICENSE=your-license-key - Install it:
Terminal npx shadcn@latest add @uibrik-pro/mcp-inspector
Loading your installation…
Usage
import { McpInspector } from "@/components/uibrik/mcp-inspector/mcp-inspector";const tools = [ { name: "search_repositories", description: "Search GitHub repositories", params: [ { name: "query", type: "string", required: true, description: "Search query" }, { name: "perPage", type: "number", description: "Results per page" }, ], calls: 14, example: { query: "mcp server language:typescript", perPage: 10 }, }, { name: "get_file_contents", description: "Read a file or directory from a repository", params: [ { name: "owner", type: "string", required: true }, { name: "repo", type: "string", required: true }, { name: "path", type: "string", required: true }, ], calls: 22, example: { owner: "acme", repo: "web", path: "src/app/layout.tsx" }, }, // …6 more];const resources = [ { uri: "repo://acme/web/contents/README.md", name: "README", mimeType: "text/markdown", size: 6210 }, { uri: "repo://acme/web/contents/package.json", name: "Package manifest", mimeType: "application/json", size: 2380 }, // …3 more];const prompts = [ { name: "triage_issue", description: "Label and prioritise a new issue", args: ["owner", "repo", "issue_number"] }, { name: "review_pull_request", description: "Review a PR for bugs and style", args: ["owner", "repo", "pull_number"] }, // …1 more];<McpInspector server={{ name: … }} messages={[…]} defaultTab="traffic" transport="stdio" color="#5b7bd6" tools={tools} resources={resources} prompts={prompts} client={{ name: "Client" }} onCall={(tool, args) => {}} // McpMessage={{ method: …, ms: … }} // active={0} // tab="traffic" // onTabChange="traffic"/>Where to use MCP Inspector
MCP server docs
Shows what a server exposes and how fast it answers, in a few seconds and without a video.
Pairs with MCP Connectors and Terminal Demo
Developer tools
Drive it from a real client with `active` and `messages` to debug a connection: which call failed, which one was slow.
Pairs with Agent Trace and Tool Call
AI landing pages
A session that plays itself explains the protocol better than a diagram.
Pairs with Agent Trace
Props
McpInspector- defaultTab
- Type "traffic" | "tools" | "resources" | "prompts"
- "traffic"
- Tab shown first.
- transport
- Type "stdio" | "http" | "sse"
- "stdio"
- Transport shown under the server name (demo only, part of `server`).
- color
- Type string
- "#5b7bd6"
- Colour of the travelling dots, latency bars and the tool being called.
- serverrequired
- Type { name; version?; logo?: ReactNode; transport?: "stdio" | "http" | "sse"; protocol? }
- –
- The server in the header.
- messagesrequired
- Type McpMessage[]
- –
- The session's traffic, in order, starting with the handshake.
- McpMessage
- Type { method; params?; result?; error?; ms; notification? }
- –
- One request and its response. error marks it failed; notification has no response.
- tools
- Type { name; description?; params?: { name; type; required?; description? }[]; calls?; example? }[]
- –
- Shown once tools/list lands. calls adds to the live count; example fills the Call form.
- resources
- Type { uri; name?; mimeType?; size? }[]
- –
- Shown once resources/list lands.
- prompts
- Type { name; description?; args? }[]
- –
- Shown once prompts/list lands.
- active
- Type number
- –
- How many messages have finished, to drive it from a real connection. The next one shows in flight.
- onCall
- Type (tool, args) => unknown | Promise<unknown>
- –
- Runs a tool from its Call button. Return the result or throw an error; the call is added to the traffic with its real time.
- tab / onTabChange
- Type "traffic" | "tools" | "resources" | "prompts"
- –
- Controlled tab.
- client
- Type { name; logo?: ReactNode }
- { name: "Client" }
- The app on the other end of the wire.
- className
- Type string
- –
- Classes for the card.