Website Starter
Create Markdown instructions for AI agents to build, deploy, and maintain an Astro website.
Should I use this
Quality & Safety
Findings (1)
- LOWin start_website
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"website-starter": {
"url": "https://websitestarter.org/mcp"
}
}
}Remote endpoints
https://websitestarter.org/mcpstreamable-httpWhat it can do
Tool inventory
Tools (4)
🟢start_website(language, client)
Start the guided Website Starter workflow. Use this first: it asks whether a project already exists (then clone it), otherwise interviews the person, creates the instruction-only ZIP, and continues in that folder.
Input Schema
{
"type": "object",
"properties": {
"language": {
"default": "en",
"type": "string",
"enum": [
"de",
"en"
]
},
"client": {
"default": "other",
"type": "string",
"enum": [
"chatgpt",
"codex",
"claude",
"other"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢describe_starter
Describe the Website Starter instruction set, its current version, public download, and safety boundaries.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢get_starter(language)
Return a direct public link to the current neutral instruction-only Website Starter ZIP. For a guided setup, use start_website first. No login is required.
Input Schema
{
"type": "object",
"properties": {
"language": {
"description": "Language for the included instructions.",
"type": "string",
"enum": [
"de",
"en"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢create_starter(language, projectName, purpose, existingSite, existingRepo, ...)
Create a customized instruction-only Website Starter ZIP after the start_website interview. Inputs are bounded and processed transiently; nothing is stored.
Input Schema
{
"type": "object",
"properties": {
"language": {
"default": "en",
"type": "string",
"enum": [
"de",
"en"
]
},
"projectName": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"purpose": {
"type": "string",
"minLength": 1,
"maxLength": 500
},
"existingSite": {
"type": "string",
"maxLength": 300
},
"existingRepo": {
"description": "HTTPS URL of an existing GitHub repository to continue instead of starting a new website.",
"type": "string",
"maxLength": 200
},
"publicLanguages": {
"default": "en",
"type": "string",
"enum": [
"de",
"en",
"de-en"
]
},
"dynamicNeeds": {
"type": "string",
"maxLength": 300
},
"aiTool": {
"default": "codex",
"type": "string",
"enum": [
"codex",
"claude",
"cursor",
"other"
]
},
"computer": {
"default": "private",
"type": "string",
"enum": [
"private",
"dedicated"
]
}
},
"required": [
"projectName",
"purpose"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence