Component Harvester MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Component Harvester MCP Server Fetch the 3D Pin component from Aceternity UI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Component Harvester MCP Server β¨
This MCP (Model Context Protocol) server is your AI agent's trusty sidekick for sourcing React components from popular UI libraries. It automates finding, fetching, and understanding how to integrate UI elements into your projects, supporting both direct code harvesting and CLI-based integration guidance.
Supported Libraries
Aceternity UI: Full component code and metadata harvesting.
Shadcn UI: Component metadata harvesting and CLI-based integration guidance.
(More to come soon!)
Related MCP server: shadcn MCP Server
TLDR;
This server fetches component information from Aceternity UI and Shadcn UI.
For Aceternity UI, it gets the full code and dependencies.
For Shadcn UI, it gets metadata (like dependencies, files created) and tells you how to install the component using its CLI.
The server stores this information and can generate detailed prompts for an AI agent (or you!) to integrate these components.
Example Agent Prompts:
"Fetch the '3D Pin' component from Aceternity UI and show me the code and dependencies.""List all available components from Aceternity UI.""Scan the 'Alert Dialog' component from Shadcn UI and show me how to integrate it.""List all available Shadcn UI components."
What Can It Do? π
The Component Harvester enables an AI agent to:
Discover Components: Automatically learn about available components by fetching and parsing the main JSON registries from Aceternity UI (
https://ui.aceternity.com/registry) and Shadcn UI (https://ui.shadcn.com/registry).Fetch Component Data:
Aceternity UI: Grabs detailed, structured JSON data for specific components (e.g., from
https://ui.aceternity.com/registry/[slug].json), which includes full source code, file paths, dependencies, etc.Shadcn UI: Retrieves metadata for specific components directly from its main registry JSON. This includes dependencies, file names, etc., but not the full source code (as Shadcn components are added via CLI).
Store Locally:
Maintains a central index (
data/harvested_index.json) of all processed components from all sources.Stores detailed data for each component in source-specific directories:
data/aceternity/[slug].json: Contains the full fetched JSON (including code) for an Aceternity UI component.data/shadcn/[slug].json: Stores the metadata (name, type, deps, file list) for a Shadcn UI component, as extracted from their main registry.
Generate Integration Blueprints: Produces detailed, step-by-step prompts:
Aceternity UI Prompts: Include full code, file paths, and dependency information for manual integration.
Shadcn UI Prompts: Guide using
npx shadcn-ui@latest add [slug], list expected files, and dependencies.
How It Works π§ββοΈ
1. Learning the Lay of the Land: Registry Processing
When the server starts, it fetches the main registry JSON directly from both Aceternity UI and Shadcn UI.
graph TD
subgraph Server Startup
direction LR
A1[Initiate] --> A2a[Fetch JSON from aceternity.com/registry]
A2a --> A3a[Parse Aceternity JSON & Cache Slugs]
A1 --> A2b[Fetch JSON from shadcn.com/registry]
A2b --> A3b[Parse Shadcn JSON & Cache Metadata]
end
A3a --> A4[Server Ready]
A3b --> A4The Goal: To build internal maps (
aceternityRegistryDataandshadcnRegistryData) for quick lookups.For Aceternity, it maps a normalized component name to its slug (e.g., "3D Pin" -> "3d-pin").
For Shadcn, it maps a normalized component name to its full metadata object from the registry.
2. The Treasure Hunt: Fetching/Processing Specific Component Data
Aceternity UI: When an agent requests an Aceternity component (e.g., "3D Pin"), the server uses its cached slug.
graph TD
B0[Agent Request: scan_aceternity_component] --> B1[MCP Server]
B1 --> B2{Slug in Aceternity Cache?}
B2 -- Yes --> B3[Construct URL: aceternity.com/registry/slug.json]
B3 --> B4[Fetch Component JSON via Axios]
B4 -- Full JSON Data --> B5[Parse & Store Full Component Data]
B5 --> B6[Update Main Index & In-Memory Cache]
B6 --> B7[Report Success]
B2 -- No --> B8[Report Not Found]Data Fetched: The complete JSON for the component, including source code for all its files.
Shadcn UI: When an agent requests a Shadcn component (e.g., "Alert Dialog"):
graph TD
C0[Agent Request: scan_shadcn_component] --> C1[MCP Server]
C1 --> C2{Component in Shadcn Cache?}
C2 -- Yes --> C3[Retrieve Metadata from Cache]
C3 -- Metadata (files, deps) --> C4[Store This Metadata as Component's Data]
C4 --> C5[Update Main Index & In-Memory Cache]
C5 --> C6[Report Success]
C2 -- No --> C7[Report Not Found]Data Processed: The metadata (dependencies, file list, etc.) already fetched from
https://ui.shadcn.com/registry. No individual[slug].jsonis fetched for Shadcn as it's not provided by them.
3. Keeping a Record: Component Storage
All processed component data is stored:
Individual JSON Files:
data/aceternity/[slug].json: Stores the full JSON (code, files, deps) for an Aceternity UI component.data/shadcn/[slug].json: Stores the metadata (name, type, deps, file list) for a Shadcn UI component, as extracted from their main registry.
Central Index File (
data/harvested_index.json): A manifest of all components from all sources, with metadata like name, source, slug, description, path to its specific JSON file, and last scan time.{ "aceternity:3DPin": { /* ... metadata ... */ }, "shadcn:AlertDialog": { /* ... metadata ... */ } }
An in-memory cache (inMemoryIndexCache) mirrors this index for fast access.
4. The Blueprint: Generating Integration Prompts
The get_aceternity_component_prompt and get_shadcn_component_prompt tools transform stored data into integration instructions.
Aceternity UI Prompts: Include full code, file paths, and dependency information.
Shadcn UI Prompts: Guide using
npx shadcn-ui@latest add [slug], list expected files, and dependencies.
Meet the Tools: MCP Server Endpoints π οΈ
Common Tools
list_harvested_components: Lists all components stored in the index.Input:
{ "source": "aceternity" | "shadcn" | "all" }(optional)
Aceternity UI Tools
scan_aceternity_component: Fetches and stores full data for an Aceternity UI component.Input:
{ "componentName": "string" }
get_aceternity_component_prompt: Generates a detailed integration guide (with code) for a scanned Aceternity UI component.Input:
{ "componentName": "string" }
Shadcn UI Tools
list_shadcn_components: Lists all components available in the Shadcn UI registry cache.Input:
{}
scan_shadcn_component: Processes and stores metadata for a Shadcn UI component from its main registry.Input:
{ "componentName": "string" }
get_shadcn_component_prompt: Generates an integration guide (CLI-focused) for a Shadcn UI component.Input:
{ "componentName": "string" }
The Road Ahead: Future Enhancements πΊοΈ
Smarter Prompt Generation: More context-aware advice in prompts.
Broader Horizons: Adding support for more component libraries.
Manual Cache Refresh: Tools to re-trigger registry fetching on demand.
Enhanced Error Handling: Continuous improvements for robustness.
We're excited about making component integration smoother and faster!
Available Tools
6 toolsget_aceternity_component_promptB
Retrieves a harvested Aceternity component and generates a detailed integration prompt.
Inputs: componentName (required).
get_shadcn_component_promptB
Retrieves a harvested shadcn component and generates a detailed integration prompt.
Inputs: componentName (required).
list_harvested_componentsB
Lists components that have been harvested and stored.
Inputs: source.
list_shadcn_componentsB
Lists all available shadcn UI components.
Inputs: no named parameters.
scan_aceternity_componentC
Scans a specific Aceternity UI component page and stores the component.
Inputs: componentName (required), componentURL.
scan_shadcn_componentB
Scans a specific shadcn UI component and stores it.
Inputs: componentName (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 6 tools
Each tool targets a distinct operation or component source (Aceternity vs shadcn). The list tools differentiate between all available components and those already harvested, preventing ambiguity.
All tools follow a consistent verb_noun pattern (scan_, get_, list_) using snake_case, making the tool surface predictable and easy to navigate.
6 tools is well-suited for a focused server handling two component libraries, covering scanning, retrieval with prompts, and listing without unnecessary bloat.
The tool set covers the main lifecycle (scan, list, retrieve) but lacks update or delete operations. This minor gap does not hinder the core harvesting workflow.
Maintenance
Related MCP Connectors
Find React UI components, read their docs, and get shadcn install commands.
Search shadcn registry items, read props and get exact install commands for React components.
React, Tailwind CSS and shadcn/ui components, sections and landing pages for coding agents.
React + Tailwind UI components and recipes your AI coding tool can search and install.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to discover, install, and generate code examples for shadcn/ui components, providing installation commands and usage examples for 37+ React UI components.MIT
- FlicenseAqualityDmaintenanceProvides AI assistants with direct access to shadcn/ui components and blocks, enabling real-time fetching of component source code, documentation, and implementation examples.422 npm4-
- AlicenseNot gradedqualityBmaintenanceProvides real-time access to shadcn-svelte component documentation and developer utilities using web scraping.78 npm58MIT
- AlicenseAqualityDmaintenanceProvides access to Aceternity UI component library documentation, enabling AI assistants to browse, search, and retrieve detailed information about components.331 npmMIT