Website Generator MCP Server
A Model Context Protocol (MCP) server that provides website generation tools using free LLMs (Groq and Google Gemini).
Features
- Multiple LLM Providers: Support for Groq and Google Gemini APIs
- Component Generation: Generate HTML, CSS, and JavaScript separately or together
- Complete Website Generation: Create full websites with all components
- Model Selection: Choose specific models from each provider
- MCP Integration: Works with any MCP-compatible client (Claude, VS Code, etc.)
Available Tools
- generate_html - Generate HTML content using AI
- generate_css - Generate CSS styles using AI
- generate_js - Generate JavaScript functionality using AI
- generate_website - Generate complete website with all components
- get_available_models - List available models for each provider
Setup
Prerequisites
- Node.js 18 or higher
- API keys for LLM providers:
- Groq: Get free API key from console.groq.com
- Gemini: Get free API key from Google AI Studio
Installation
Clone and install dependencies:
git clone <repository-url> cd mcpserver npm install
Set up environment variables:
# Create .env file or set environment variables export GROQ_API_KEY="your_groq_api_key_here" export GEMINI_API_KEY="your_gemini_api_key_here"
Build the project:
npm run build
Running the Server
Development mode:
npm run dev
Production mode:
npm start
Watch mode (rebuilds on changes):
npm run watch
Configuration with MCP Clients
Claude Desktop
Add to your claude_desktop_config.json
:
{
"mcpServers": {
"website-generator": {
"command": "node",
"args": ["/absolute/path/to/mcpserver/build/index.js"],
"env": {
"GROQ_API_KEY": "your_groq_api_key",
"GEMINI_API_KEY": "your_gemini_api_key"
}
}
}
}
VS Code with MCP Extension
Add to your MCP configuration:
{
"name": "website-generator",
"command": "node",
"args": ["/absolute/path/to/mcpserver/build/index.js"],
"env": {
"GROQ_API_KEY": "your_groq_api_key",
"GEMINI_API_KEY": "your_gemini_api_key"
}
}
Usage Examples
Generate HTML
Use the generate_html tool with:
- prompt: "Create a modern landing page for a tech startup"
- provider: "groq" (optional, defaults to groq)
- model: "llama-3.3-70b-versatile" (optional)
Generate Complete Website
Use the generate_website tool with:
- prompt: "Build a portfolio website for a web developer"
- provider: "gemini" (optional)
- includeJs: true (optional, defaults to true)
Get Available Models
Use the get_available_models tool to see:
- Groq: llama-3.3-70b-versatile, llama-3.1-70b-versatile, llama-3.1-8b-instant, etc.
- Gemini: gemini-1.5-flash, gemini-1.5-pro, gemini-1.0-pro
Supported LLM Providers
Groq (Free Tier)
- Models: Llama 3.3 70B, Llama 3.1 70B/8B, Mixtral 8x7B, Gemma2 9B
- Rate Limits: Generous free tier with high request limits
- Strengths: Fast inference, good code generation
Google Gemini (Free Tier)
- Models: Gemini 1.5 Flash, Gemini 1.5 Pro, Gemini 1.0 Pro
- Rate Limits: Free tier with good monthly quotas
- Strengths: Strong reasoning, multimodal capabilities
Architecture
src/
├── index.ts # Main MCP server entry point
├── types.ts # TypeScript interfaces
└── llm/
├── groq.ts # Groq LLM integration
└── gemini.ts # Gemini LLM integration
Development
Project Structure
- src/index.ts: Main server with MCP tool definitions
- src/types.ts: TypeScript interfaces for type safety
- src/llm/: LLM provider implementations
- build/: Compiled JavaScript output
Adding New Providers
- Create new file in
src/llm/
- Implement
WebsiteGenerator
interface - Add to provider enum in tools
- Update documentation
Testing
Use the MCP Inspector for testing:
npx @modelcontextprotocol/inspector node build/index.js
Environment Variables
Variable | Required | Description |
---|---|---|
GROQ_API_KEY |
Optional* | API key for Groq (required if using Groq) |
GEMINI_API_KEY |
Optional* | API key for Gemini (required if using Gemini) |
*At least one API key is required for the server to function.
Error Handling
The server includes comprehensive error handling:
- API key validation on startup
- Rate limit handling with retries
- Network error recovery
- Invalid input validation
- Graceful error responses to MCP clients
License
MIT License - see LICENSE file for details.
Contributing
- Fork the repository
- Create feature branch
- Make changes with tests
- Submit pull request
Support
For issues and questions:
- Check the MCP Documentation
- Review provider API documentation
- Open GitHub issues for bugs