Skip to main content
Glama

sitebay_create_site

Create a new WordPress site on SiteBay with custom domain, admin credentials, and optional Git integration or ready-made templates.

Instructions

Create a new WordPress site (SiteLiveCreate schema).

Args: team_id: Team UUID that owns the site fqdn: The fully qualified domain name for the new site (e.g., "www.example.org") wordpress_blog_name: Blog/site title wordpress_first_name: Admin first name wordpress_last_name: Admin last name wordpress_email: Admin email address wordpress_username: Admin username wordpress_password: Admin password (strong) git_url: Optional Git repository URL ready_made_site_name: Optional ready-made site name is_free: Optional flag for free plan

Returns: Success message with new site details and access information

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
team_idYes
fqdnYes
wordpress_blog_nameYes
wordpress_first_nameYes
wordpress_last_nameYes
wordpress_emailYes
wordpress_usernameYes
wordpress_passwordYes
git_urlNo
ready_made_site_nameNo
is_freeNo

Implementation Reference

  • Primary MCP tool handler registered with @mcp.tool for 'sitebay_create_site'. Handles context, client initialization, input validation, delegates to core logic in sites.py, and provides comprehensive error handling with ctx.error calls.
    @mcp.tool async def sitebay_create_site( ctx: Context, team_id: str, fqdn: str, wordpress_blog_name: str, wordpress_first_name: str, wordpress_last_name: str, wordpress_email: str, wordpress_username: str, wordpress_password: str, git_url: Optional[str] = None, ready_made_site_name: Optional[str] = None, is_free: Optional[bool] = None, ) -> str: """ Create a new WordPress site (SiteLiveCreate schema). Args: team_id: Team UUID that owns the site fqdn: The fully qualified domain name for the new site (e.g., "www.example.org") wordpress_blog_name: Blog/site title wordpress_first_name: Admin first name wordpress_last_name: Admin last name wordpress_email: Admin email address wordpress_username: Admin username wordpress_password: Admin password (strong) git_url: Optional Git repository URL ready_made_site_name: Optional ready-made site name is_free: Optional flag for free plan Returns: Success message with new site details and access information """ try: await ctx.info(f"Starting site creation for: {fqdn}") client = await initialize_client() # Basic validation if not fqdn or '.' not in fqdn: raise ValueError("Invalid domain name provided") if not team_id: raise ValueError("team_id is required") result = await sites.sitebay_create_site( client, team_id, fqdn, wordpress_blog_name, wordpress_first_name, wordpress_last_name, wordpress_email, wordpress_username, wordpress_password, git_url, ready_made_site_name, is_free, ) await ctx.info(f"Successfully created site: {fqdn}") return result except ValueError as e: await ctx.error(f"Validation error creating site {fqdn}: {str(e)}") return f"❌ Validation Error: {str(e)}" except ValidationError as e: await ctx.error(f"SiteBay validation error creating site {fqdn}: {str(e)}") error_msg = f"❌ Validation Error - Please check your input:\n{str(e)}\n" if hasattr(e, 'field_errors') and e.field_errors: error_msg += "\nSpecific field errors:\n" for field, msg in e.field_errors.items(): error_msg += f" • {field}: {msg}\n" error_msg += "\nPlease adjust your parameters and try again." return error_msg except SiteBayError as e: await ctx.error(f"SiteBay API error creating site {fqdn}: {str(e)}") return f"❌ SiteBay Error: {str(e)}" except Exception as e: await ctx.error(f"Unexpected error creating site {fqdn}: {str(e)}") return f"❌ Unexpected error: {str(e)}"
  • Core handler logic for site creation. Constructs the site_data dictionary from parameters and calls client.create_site(site_data). Formats the success response with site details or error message.
    async def sitebay_create_site( client: SiteBayClient, team_id: str, fqdn: str, wordpress_blog_name: str, wordpress_first_name: str, wordpress_last_name: str, wordpress_email: str, wordpress_username: str, wordpress_password: str, git_url: Optional[str] = None, ready_made_site_name: Optional[str] = None, is_free: Optional[bool] = None, ) -> str: """ Create a new WordPress site (SiteLiveCreate schema). Args: team_id: Team UUID fqdn: New site domain wordpress_blog_name: Blog/site title wordpress_first_name: Admin first name wordpress_last_name: Admin last name wordpress_email: Admin email wordpress_username: Admin username wordpress_password: Admin password git_url: Optional repository URL ready_made_site_name: Optional ready-made site name is_free: Optional free plan flag Returns: Formatted string with new site details """ try: site_data: Dict[str, Any] = { "team_id": team_id, "fqdn": fqdn, "wordpress_blog_name": wordpress_blog_name, "wordpress_first_name": wordpress_first_name, "wordpress_last_name": wordpress_last_name, "wordpress_email": wordpress_email, "wordpress_username": wordpress_username, "wordpress_password": wordpress_password, } if git_url: site_data["git_url"] = git_url if ready_made_site_name: site_data["ready_made_site_name"] = ready_made_site_name if is_free is not None: site_data["is_free"] = is_free site = await client.create_site(site_data) result = f"✅ **Site Created Successfully!**\n\n" result += f"• **Domain**: {site.get('fqdn')}\n" result += f"• **Active**: {site.get('active', 'Unknown')}\n" result += f"• **HTTP Auth Enabled**: {site.get('http_auth_enabled', 'Unknown')}\n" result += f"• **Admin Username**: {wordpress_username}\n" result += f"• **Admin Email**: {wordpress_email}\n" if git_url: result += f"• **Git URL**: {git_url}\n" if ready_made_site_name: result += f"• **Ready-made**: {ready_made_site_name}\n" if is_free is not None: result += f"• **Plan**: {'Free' if is_free else 'Paid'}\n" result += "\n🚀 Your WordPress site is being deployed and will be ready shortly!" return result except SiteBayError as e: return f"Error creating site: {str(e)}"
  • Registration of the 'sitebay_create_site' tool via the @mcp.tool decorator in the FastMCP server.
    @mcp.tool

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sitebay/sitebay-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server