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.
- The source of any component, with its demo code and its metadata — dependencies, description and configuration
- The whole component list, and blocks listed by category
- A complete block's implementation — a dashboard, calendar or login block — rather than a snippet of one
- The repository's directory structure at the owner, repo, branch and path you name
- TweakCN themes listed and read, and one applied to the project, with a dry run first
- Four frameworks from one server: React with either Radix or Base UI underneath, plus shadcn-svelte, shadcn-vue and react-native-reusables
- Caching over the GitHub API, so repeated reads of the same component do not spend the rate limit twice
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 install the packaged extension from the releases page instead. 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
