sitemd
Build websites from Markdown with MCP tools. Works as an OpenClaw skill or plugin — your agent can create, manage, and deploy websites through conversation.
First Steps
- If no binary (
sitemd/sitemd does not exist) — run ./sitemd/install to download it
- Call
sitemd_status to understand the project state
- If fresh project — read files in
pages/, then create pages with sitemd_pages_create
- Call
sitemd_site_context with a content type to get site identity, conventions, and existing pages
- Validate with
sitemd_content_validate
- Deploy with
sitemd_deploy
Authentication
sitemd uses email magic links. When your owner needs to log in:
- Call
sitemd_auth_login — returns a browser URL
- Send the URL to your owner as a message (WhatsApp, Telegram, Discord, etc.)
- They tap the link and complete login in their browser
- Call
sitemd_auth_poll every few seconds until it returns approved
For automated deploys, use sitemd_auth_api_key to create a long-lived key, then set SITEMD_TOKEN in your environment.
Project Structure
sitemd — Compiled binary (run ./sitemd/sitemd launch)
install — Bootstrap script (run ./sitemd/install to download binary)
pages/ — Markdown content files with YAML frontmatter
settings/ — Site configuration (YAML frontmatter in .md files)
theme/ — CSS and HTML templates
media/ — Images and assets
site/ — Built output
MCP Tools
| Tool |
Purpose |
sitemd_status |
Project state overview |
sitemd_pages_create |
Create new pages (writes file + nav + groups) |
sitemd_pages_create_batch |
Create multiple pages in one call |
sitemd_pages_delete |
Delete a page (cleans up nav + groups) |
sitemd_groups_add_pages |
Add pages to group sidebar |
sitemd_site_context |
Site identity, pages, conventions |
sitemd_content_validate |
Validate content quality |
sitemd_seo_audit |
SEO health check with scored report |
sitemd_init |
Initialize project from template |
sitemd_build |
Build without deploying |
sitemd_deploy |
Build and deploy site |
sitemd_activate |
Activate site (permanent) |
sitemd_clone |
Clone an existing website |
sitemd_config_set |
Set backend config (routes secrets vs non-secrets) |
sitemd_auth_login |
Start login flow |
sitemd_auth_poll |
Poll for login completion |
sitemd_auth_status |
Check auth state and license info |
sitemd_auth_api_key |
Create API key for automation |
sitemd_auth_setup |
Enable user authentication |
sitemd_update_check |
Check for updates |
sitemd_update_apply |
Apply updates |
Read pages, settings, and groups files directly — no MCP tool needed for reads.
Settings Files
All configuration is in settings/*.md frontmatter:
| File |
Controls |
| meta.md |
Site title, brand name, description, URL |
| header.md |
Navigation items, brand display, search |
| footer.md |
Footer links, copyright, social |
| groups.md |
Page groups for sidebars and dropdowns |
| theme.md |
Colors, fonts, layout, light/dark/paper modes |
| build.md |
Dev server port, output directory |
| deploy.md |
Domain, deploy target |
| seo.md |
OG images, sitemaps, structured data |
Content Types
sitemd supports structured content generation. Call sitemd_site_context with a type to get conventions and existing pages. The syntax reference is below.
- page — General pages. Second person, present tense, lead with reader value.
- docs — Documentation. Imperative mood, show what to type, code blocks, tables.
- blog — Blog posts. Opinionated, date line, 400-1200 words.
- changelog — Release notes. Terse, Added/Changed/Fixed/Removed sections.
- roadmap — Product roadmap. Shipped/In Progress/Planned sections.
Markdown Extensions
Beyond standard markdown, sitemd supports rich components. The syntax reference is below.
button: Label: /slug — styled buttons. Modifiers: +outline, +big, +newtab, +color:red
card: Title / card-text: / card-image: / card-link: — responsive card grids
embed: URL — auto-detects YouTube, Vimeo, Spotify, X, CodePen, etc.
gallery: with indented  — image grid with lightbox
image-row: with indented  — equal-height image row
 — image modifiers
[text]{tooltip content} — inline tooltips
modal: id with indented content, trigger via [link](#modal:id) — modal dialogs
{#custom-id} — inline anchors
[text](url+newtab) — link modifiers
form: with indented YAML — forms
gated: type1, type2 ... /gated — gated sections
data: source / data-display: cards|list|table — dynamic data
1---2name: sitemd3description: Build and manage websites from Markdown. Create pages, generate content, configure settings, and deploy — all through MCP tools.4---56# sitemd78Build websites from Markdown with MCP tools. Works as an OpenClaw skill or plugin — your agent can create, manage, and deploy websites through conversation.910## First Steps11121. **If no binary** (`sitemd/sitemd` does not exist) — run `./sitemd/install` to download it132. Call `sitemd_status` to understand the project state143. **If fresh project** — read files in `pages/`, then create pages with `sitemd_pages_create`154. Call `sitemd_site_context` with a content type to get site identity, conventions, and existing pages164. Validate with `sitemd_content_validate`175. Deploy with `sitemd_deploy`1819## Authentication2021sitemd uses email magic links. When your owner needs to log in:22231. Call `sitemd_auth_login` — returns a browser URL242. Send the URL to your owner as a message (WhatsApp, Telegram, Discord, etc.)253. They tap the link and complete login in their browser264. Call `sitemd_auth_poll` every few seconds until it returns `approved`2728For automated deploys, use `sitemd_auth_api_key` to create a long-lived key, then set `SITEMD_TOKEN` in your environment.2930## Project Structure3132- `sitemd` — Compiled binary (run `./sitemd/sitemd launch`)33- `install` — Bootstrap script (run `./sitemd/install` to download binary)34- `pages/` — Markdown content files with YAML frontmatter35- `settings/` — Site configuration (YAML frontmatter in `.md` files)36- `theme/` — CSS and HTML templates37- `media/` — Images and assets38- `site/` — Built output3940## MCP Tools4142| Tool | Purpose |43|---|---|44| `sitemd_status` | Project state overview |45| `sitemd_pages_create` | Create new pages (writes file + nav + groups) |46| `sitemd_pages_create_batch` | Create multiple pages in one call |47| `sitemd_pages_delete` | Delete a page (cleans up nav + groups) |48| `sitemd_groups_add_pages` | Add pages to group sidebar |49| `sitemd_site_context` | Site identity, pages, conventions |50| `sitemd_content_validate` | Validate content quality |51| `sitemd_seo_audit` | SEO health check with scored report |52| `sitemd_init` | Initialize project from template |53| `sitemd_build` | Build without deploying |54| `sitemd_deploy` | Build and deploy site |55| `sitemd_activate` | Activate site (permanent) |56| `sitemd_clone` | Clone an existing website |57| `sitemd_config_set` | Set backend config (routes secrets vs non-secrets) |58| `sitemd_auth_login` | Start login flow |59| `sitemd_auth_poll` | Poll for login completion |60| `sitemd_auth_status` | Check auth state and license info |61| `sitemd_auth_api_key` | Create API key for automation |62| `sitemd_auth_setup` | Enable user authentication |63| `sitemd_update_check` | Check for updates |64| `sitemd_update_apply` | Apply updates |6566Read pages, settings, and groups files directly — no MCP tool needed for reads.6768## Settings Files6970All configuration is in `settings/*.md` frontmatter:7172| File | Controls |73|---|---|74| meta.md | Site title, brand name, description, URL |75| header.md | Navigation items, brand display, search |76| footer.md | Footer links, copyright, social |77| groups.md | Page groups for sidebars and dropdowns |78| theme.md | Colors, fonts, layout, light/dark/paper modes |79| build.md | Dev server port, output directory |80| deploy.md | Domain, deploy target |81| seo.md | OG images, sitemaps, structured data |8283## Content Types8485sitemd supports structured content generation. Call `sitemd_site_context` with a type to get conventions and existing pages. The syntax reference is below.8687- **page** — General pages. Second person, present tense, lead with reader value.88- **docs** — Documentation. Imperative mood, show what to type, code blocks, tables.89- **blog** — Blog posts. Opinionated, date line, 400-1200 words.90- **changelog** — Release notes. Terse, Added/Changed/Fixed/Removed sections.91- **roadmap** — Product roadmap. Shipped/In Progress/Planned sections.9293## Markdown Extensions9495Beyond standard markdown, sitemd supports rich components. The syntax reference is below.9697- `button: Label: /slug` — styled buttons. Modifiers: `+outline`, `+big`, `+newtab`, `+color:red`98- `card: Title` / `card-text:` / `card-image:` / `card-link:` — responsive card grids99- `embed: URL` — auto-detects YouTube, Vimeo, Spotify, X, CodePen, etc.100- `gallery:` with indented `` — image grid with lightbox101- `image-row:` with indented `` — equal-height image row102- `` — image modifiers103- `[text]{tooltip content}` — inline tooltips104- `modal: id` with indented content, trigger via `[link](#modal:id)` — modal dialogs105- `{#custom-id}` — inline anchors106- `[text](url+newtab)` — link modifiers107- `form:` with indented YAML — forms108- `gated: type1, type2` ... `/gated` — gated sections109- `data: source` / `data-display: cards|list|table` — dynamic data