This example demonstrates how to integrate Chrome DevTools MCP and shadcn MCP servers for frontend development workflows. The demo includes a sample React application that you can debug and inspect using MCP tools.
The frontend-mcp-demo combines:
pnpm installedexport FRONTEND_ROOT="/path/to/your/frontend/project"
The .mcp-workflows/servers.json file registers two MCP servers:
npx chrome-devtools-mcp@latest for browser debuggingnpx shadcn@latest mcp for component discovery (requires FRONTEND_ROOT)frontend_debuggerAuto-discovery workflow that exposes all Chrome DevTools and shadcn tools:
frontend_debugger:
description: "Direct access to Chrome DevTools + shadcn MCP tools"
prompt: |
You are a frontend debugger. Use Chrome DevTools MCP or shadcn MCP tools
to inspect the UI, capture screenshots, or list components.
externalServers:
- chrome-devtools
- shadcn
Usage:
describe_tools({ "workflow": "frontend_debugger" })
frontend_debugger({
"tool": "chrome-devtools:take_screenshot",
"args": {
"url": "http://localhost:5173",
"format": "png"
}
})
ui_components_helperDedicated helper for shadcn component discovery:
ui_components_helper:
description: "Dedicated shadcn MCP helper"
prompt: |
Use shadcn MCP tools to list or search components.
externalServers:
- shadcn
Usage:
ui_components_helper({
"tool": "shadcn:search_items_in_registries",
"args": {
"query": "button"
}
})
take_screenshotScripted workflow for capturing page screenshots:
take_screenshot:
description: "Capture screenshots of web pages"
runtime: scripted
parameters:
url:
type: "string"
required: true
format:
type: "string"
enum: ["png", "jpeg", "webp"]
default: "png"
steps:
- call: chrome-devtools:navigate_page
args:
url: "{{ url }}"
- call: chrome-devtools:take_screenshot
args:
format: "{{ format }}"
Usage:
take_screenshot({
"url": "http://localhost:5173",
"format": "png"
})
cd examples/frontend-mcp-demo
pnpm install
pnpm dev
http://localhost:5173export FRONTEND_ROOT="/path/to/your/frontend/project"
pnpm -r --filter ./packages/oplink dev -- --config examples/frontend-mcp-demo/.mcp-workflows
describe_tools to discover available Chrome DevTools and shadcn toolstake_screenshot({
"url": "http://localhost:5173",
"format": "png",
"wait_for": "Frontend MCP demo"
})
frontend_debugger({
"tool": "chrome-devtools:get_console_logs",
"args": {}
})
frontend_debugger({
"tool": "chrome-devtools:list_network_requests",
"args": {}
})
ui_components_helper({
"tool": "shadcn:search_items_in_registries",
"args": {
"query": "dialog"
}
})
ui_components_helper({
"tool": "shadcn:list_items_in_registries",
"args": {}
})
FRONTEND_ROOT is set to a valid project directorydescribe_tools to verify the exact tool names exposed by each server