apply_theme
Apply a TweakCN theme preset to the project
Pull the real shadcn/ui source for a component or a block, in the framework you actually use.
LABSCO SUMMARY
What it removes is the round trip through the docs site: ask for a component or a block by name and the source and demo come back, so what gets written next is built on what the library ships rather than on what the model remembers. Adding a GitHub token is the one setup step worth doing — the unauthenticated hourly limit runs out fast.
A server over the shadcn/ui v4 repository and the TweakCN theme presets. Components and blocks come back as source you can paste, alongside their demo code and metadata — and the same tools serve React, Svelte, Vue or React Native depending on which framework the server was started for.
Node and network access — source is read from the shadcn-ui repository on GitHub when you ask for it, which is why the structure call takes an owner, a repo and a branch. Run over stdio from npm as @jpisnice/shadcn-ui-mcp-server; Claude Desktop can instead install the packaged .mcpb extension kept in the repository. Without credentials GitHub allows 60 requests an hour, which is the practical ceiling; a personal access token raises that to 5,000 and needs no scopes at all, since everything read is public. Pass it as --github-api-key or as GITHUB_PERSONAL_ACCESS_TOKEN. The framework is chosen at launch with --framework, and --ui-library base switches the React output off Radix. For multi-client setups the server also runs in SSE mode, or both at once, on a port that defaults to 7423.
One command — npx @jpisnice/shadcn-ui-mcp-server
USE CASES
Pull its source and its demo together, and check the metadata for what it depends on before wiring it in.
List the components, or the blocks grouped by category, instead of guessing at names.
Take a complete block — a dashboard or a login screen — and adapt it, with the components it uses fetched alongside.
List the themes, read the one you like, and apply it — running the dry run first to see what it would change.
Start the server for that framework and ask for the same components; the implementations that come back are the ones for your stack.
Read the directory structure at the branch and path you name, when what you need is not a named component.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
apply_themeApply a TweakCN theme preset to the project
get_blockGet source code for a specific shadcn/ui v4 block (e.g., calendar-01, dashboard-01)
get_componentGet the source code for a specific shadcn/ui v4 component
get_component_demoGet demo code illustrating how a shadcn/ui v4 component should be used
get_component_metadataGet metadata for a specific shadcn/ui v4 component
get_directory_structureGet the directory structure of the shadcn-ui v4 repository
get_themeGet details of a specific tweakcn theme
list_blocksGet all available shadcn/ui v4 blocks with categorization
list_componentsGet all available shadcn/ui v4 components
list_themesList available tweakcn themes
BEFORE YOU INSTALL
10 tools when we connected. The theming tools list_themes, get_theme and apply_theme are not described in the documentation. The --framework and --ui-library flags change which repository the tools read from, not how many there are.
CONTEXT COST
Rated by the size of the 10 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx @jpisnice/shadcn-ui-mcp-serverDownload https://github.com/Jpisnice/shadcn-ui-mcp-server/raw/master/shadcn-ui-mcp-server.mcpb from the repository
Double-click the file — Claude Desktop opens automatically
Enter your GitHub token (optional, for higher rate limits)
Click Install — the tools are available immediately
{
"mcpServers": {
"shadcn-ui": {
"command": "npx",
"args": [
"@jpisnice/shadcn-ui-mcp-server",
"--github-api-key",
"<YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>"
]
}
}
}{
"mcpServers": {
"shadcn-ui": {
"command": "npx",
"args": [
"@jpisnice/shadcn-ui-mcp-server"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_GITHUB_PERSONAL_ACCESS_TOKEN>"
}
}
}
}{
"servers": {
"shadcn-ui-mcp-server": {
"command": "npx",
"args": [
"@jpisnice/shadcn-ui-mcp-server@2.0.0",
"--framework",
"react",
"--ui-library",
"radix"
],
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
},
"type": "stdio"
}
},
"inputs": [
{
"id": "github_token",
"type": "promptString",
"description": "GitHub Personal Access Token (optional, recommended for higher rate limits)"
}
]
}git clone https://github.com/Jpisnice/shadcn-ui-mcp-server.git
cd shadcn-ui-mcp-server
docker-compose up -d
curl http://localhost:7423/health
claude mcp add --scope user --transport sse shadcn-mcp-server http://localhost:7423/sse