Skip to main content
Glama
README.md
# 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

B3.2/5.0

Scored across 5 tools

Disambiguation4/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness3/5

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.

Maintenance

ActivityInactive
ResponsivenessNo issues