Website Builder MCP Server
# Website Builder MCP Server
A Model Context Protocol (MCP) server for automated website generation with Excel data integration.
## ๐ Features
- โ
**Multiple Website Templates** - Portfolio, blog, catalog, directory
- โ
**Excel Data Integration** - Build websites directly from Excel files
- โ
**Component Generation** - Navbar, hero, cards, forms with multiple styles
- โ
**Responsive Design** - Modern CSS framework with mobile support
- โ
**MCP Protocol** - Full Model Context Protocol server implementation
- โ
**Automated Pages** - Generate individual pages from Excel rows
## ๐ Excel Integration
Transform Excel spreadsheets into complete websites:
### **Product Catalog** ๐ฆ
- **Excel Format:** Product Name, Description, Price, Category, Image
- **Generates:** Product grid, individual product pages, category filtering
- **Perfect for:** E-commerce sites, inventory displays
### **Staff Directory** ๐ฅ
- **Excel Format:** Name, Title, Department, Email, Phone, Bio
- **Generates:** Team overview, individual profiles, department pages
- **Perfect for:** Company websites, organization directories
### **Portfolio Sites** ๐ผ
- **Excel Format:** Project Name, Description, Technologies, Link, Status
- **Generates:** Project showcase, technology filtering, project details
- **Perfect for:** Developer portfolios, agency showcases
### **Custom Data Sites** ๐
- **Excel Format:** Any structured data
- **Generates:** Data tables, searchable listings, custom layouts
- **Perfect for:** Reports, listings, catalogs
## ๐ ๏ธ Installation
```bash
# Clone the repository
git clone https://github.com/pmkhairnarr/website-builder-mcp.git
cd website-builder-mcp
# Install dependencies
npm install
# Start the MCP server
npm start
```
## ๐ Usage
### Basic Website Creation
```javascript
// Create website from template
{
"name": "create_website",
"arguments": {
"name": "my-portfolio",
"template": "portfolio",
"title": "My Portfolio",
"description": "Showcasing my work"
}
}
```
### Excel-Powered Websites
```javascript
// Build from Excel file
{
"name": "build_from_excel",
"arguments": {
"excelFile": "./examples/sample-products.xlsx",
"template": "catalog",
"siteName": "product-catalog",
"sheetName": "Products"
}
}
```
## ๐ Project Structure
```
website-builder-mcp/
โโโ server.js # Main MCP server
โโโ package.json # Dependencies & scripts
โโโ templates/ # HTML/CSS templates
โ โโโ base.html # Base page template
โ โโโ styles.css # Responsive CSS framework
โโโ examples/ # Sample Excel files
โ โโโ sample-products.xlsx
โ โโโ sample-directory.xlsx
โ โโโ sample-portfolio.xlsx
โโโ websites/ # Generated websites
โโโ tests/ # Test files
```
## ๐ง Available Tools
### Core Tools
- **`create_website`** - Create from templates
- **`add_page`** - Add pages to existing sites
- **`generate_component`** - Create HTML components
- **`list_websites`** - List all created sites
### Excel Tools
- **`build_from_excel`** - Generate complete sites from Excel data
## ๐ Excel File Format
### Product Catalog Example
| Product Name | Description | Price | Category | Image | In Stock |
|--------------|-------------|-------|----------|-------|----------|
| Wireless Headphones | High-quality wireless... | $199.99 | Electronics | image.jpg | Yes |
### Staff Directory Example
| Name | Title | Department | Email | Phone | Bio |
|------|-------|------------|-------|-------|-----|
| John Smith | Software Engineer | Engineering | john@company.com | 555-0101 | Experienced developer... |
### Portfolio Example
| Project Name | Description | Technologies | Link | Status |
|--------------|-------------|--------------|------|---------|
| E-commerce Platform | Full-stack solution... | React, Node.js | github.com/... | Completed |
## ๐งช Testing
```bash
# Test Excel integration
npm run test:excel
# Test MCP server
npm test
# Run direct functionality test
node direct-test.js
```
## ๐ Generated Websites
Websites are created in the `websites/` directory with:
- **Responsive HTML** pages
- **Modern CSS** styling
- **Site configuration** (site.json)
- **Navigation** between pages
- **Mobile-friendly** design
## ๐ MCP Integration
Use with MCP-compatible clients:
- **VS Code with MCP extension**
- **Claude Desktop**
- **Custom MCP clients**
## ๐ API Documentation
### MCP Server Configuration
```json
{
"mcpServers": {
"website-builder": {
"command": "node",
"args": ["server.js"],
"cwd": "./website-builder-mcp"
}
}
}
```
## ๐ค Contributing
1. Fork the repository
2. Create feature branch (`git checkout -b feature/amazing-feature`)
3. Commit changes (`git commit -m 'Add amazing feature'`)
4. Push to branch (`git push origin feature/amazing-feature`)
5. Open Pull Request
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## ๐ฏ Use Cases
- **Business Websites** - Generate company sites from employee data
- **Product Showcases** - Create catalogs from inventory spreadsheets
- **Portfolio Sites** - Build project showcases from work data
- **Directory Sites** - Create searchable listings from contact data
- **Report Sites** - Transform data reports into web presentations
## ๐ Advanced Features
- **Automatic slug generation** for SEO-friendly URLs
- **Responsive grid layouts** for all device sizes
- **Smart column detection** for Excel processing
- **Template customization** for brand consistency
- **Batch processing** for large datasets
- **Error handling** with detailed feedback
---
**Built with โค๏ธ for the AI Development Community**TDQS
Scored across 5 tools
Most tools have distinct purposes: create_website, add_page, and generate_component target different aspects of website creation and modification, while build_from_excel and list_websites serve separate data import and listing functions. However, add_page and generate_component could be slightly ambiguous in scope, as both involve adding elements to a website, though their descriptions clarify one is for pages and the other for components.
The naming follows a consistent verb_noun pattern throughout, such as create_website, add_page, and list_websites, which enhances readability and predictability. There is a minor deviation with build_from_excel, which uses a prepositional phrase instead of a simple noun, but this does not significantly disrupt the overall consistency.
With 5 tools, the count is well-scoped for a website builder server, covering core operations like creation, modification, listing, and data import. Each tool appears to earn its place without redundancy, making the set manageable and focused on essential website-building tasks.
The tool surface covers key creation and listing functions but has notable gaps in lifecycle management. For example, there are tools to create and add pages, but no update or delete operations for websites or pages, which could lead to dead ends for agents needing to modify or remove existing content. The domain of website building is partially addressed, but missing CRUD operations limit completeness.