Repository navigation
Releases: metavert-io/lightcms
Release list
v7.3.4 — SEO & AI (AI traffic, crawler policy, Markdown copies, feeds, IndexNow)
LightCMS v7.3 adds SEO and AI features: AI traffic analytics, controls for which AI crawlers may use your site, Markdown copies of every page, richer structured data, RSS/Atom feeds, and a per-page "hide from search & AI" option. These come on top of v7.2's IndexNow support and CMS Agent digests. The MCP server now has 128 tools.
MCP bundles (MCPB) for Claude Desktop and other MCPB clients are attached for macOS and Linux (arm64/amd64). Point LIGHTCMS_URL at your instance and provide an API key from /cm → API Keys.
Full history: CHANGELOG.md · Project page: https://metavert.io/lightcms
[7.3.4] - 2026-10-05
Fixed
- Deleting or unpublishing a legacy page with an empty
full_pathno longer deletes the homepage's static file. The empty path was being treated as/.
[7.3.3] - 2026-10-05
Fixed
- sitemap.xml now regenerates when it is more than 10 minutes old. Previously only admin-UI edits refreshed it, so pages created, changed or hidden through the API or MCP could be missing from it or listed after removal.
[7.3.2] - 2026-10-05
Fixed
- Pages created already-published (through the API, MCP, bulk create or import) now get a
published_atdate. Before this, only the explicit publish action set it, so such pages had nodatePublishedin structured data and sorted last in feeds. Unpublished drafts are unaffected.
Added
- One-time backfill for pages affected by the bug above:
POST /api/v1/maintenance/backfill-published-dates(with?dry_run=trueto preview), or thebackfill_published_datesMCP tool. It sets each affected page'spublished_atto itscreated_at. It changes metadata only (no re-render, no new versions) and records an audit-log entry. 128 MCP tools total.
[7.3.1] - 2026-10-02
Fixed
- Markdown copies: whitespace between inline siblings (e.g. two adjacent links) is kept, so links no longer run together.
[7.3.0] - 2026-10-02
Added — SEO & AI (generative engine optimization)
Every feature works on any LightCMS install. Existing sites behave as before until they change a setting, except that Markdown copies (below) are on by default.
- AI traffic analytics (Analytics → 🤖 AI traffic,
/cm/analytics/ai):- Known crawlers are identified by operator and purpose: AI training (GPTBot, ClaudeBot, CCBot, …), AI search (OAI-SearchBot, Claude-SearchBot, PerplexityBot, …), user-initiated fetches (ChatGPT-User, Claude-User, Perplexity-User, …) and classic search engines.
- Hits are counted per page, including
/llms.txt,/llms-full.txt,/robots.txt,/sitemap.xml, the Markdown copies and the feeds. - Visits referred by AI assistants (ChatGPT, Perplexity, Claude, Gemini, Copilot, …) are recognized from the referrer or from the
utm_sourcetag assistants add when they strip the referrer (e.g.?utm_source=chatgpt.com). - The report shows a daily chart by purpose, the pages AI reads most, and where AI referrals land.
- Also available as
GET /api/v1/analytics/aiand theget_ai_trafficMCP tool, and as an "AI visibility" summary in CMS Agent digests. - Crawlers such as Perplexity-User whose user agent doesn't say "bot" are now counted as bots.
- AI crawler policy (Tools → 🧭 SEO & AI,
/cm/tools/seo):- Allow or block AI training, AI search and user-initiated fetches separately, with per-crawler overrides; the result is rendered into
/robots.txt. - Optional Content-Signal line (
search/ai-input/ai-train), plus free-form extra robots.txt lines. - Classic search engines are only affected by explicit overrides.
- Allow or block AI training, AI search and user-initiated fetches separately, with per-crawler overrides; the result is rendered into
- Markdown copies of pages at
/<page>.md(homepage:/index.md):- The page body converted to clean Markdown, with title, description, source URL and dates. The converter uses only
golang.org/x/net/html, already a dependency. - Advertised with
<link rel="alternate" type="text/markdown">on every page and linked from llms.txt, per the llms.txt convention. - Copies are served with
X-Robots-Tag: noindexand a canonicalLinkheader, so they never compete with the HTML page in search. - A real page whose path ends in
.mdalways takes precedence. Can be turned off.
- The page body converted to clean Markdown, with title, description, source URL and dates. The converter uses only
- Richer structured data:
- Default author (Person or Organization, with URL and
sameAsprofiles) and per-page author override. User account names are never published automatically. - Publisher Organization with logo and
sameAslinks. - BreadcrumbList for pages in folders.
- FAQPage, built only from explicit FAQ markup:
<details><summary>…?</summary>pairs, or an "FAQ" / "Frequently Asked Questions" section whose question headings end in "?". - WebSite + Organization on the homepage.
- Types a page already declares in its own JSON-LD are not duplicated. Raw-HTML pages now get structured data too.
- Default author (Person or Organization, with URL and
- Accurate modified dates: a new
content_modified_atis stamped only when a page's rendered HTML actually changes. Site-wide re-renders (theme, template, snippet changes) don't count. It drives JSON-LDdateModified, sitemaplastmod, feeds and Markdown copies; older pages fall back toupdated_at. - RSS and Atom feeds at
/feed.xmland/atom.xml, plus/<collection>/feed.xmlfor each collection:- Full content with absolute links.
- Default selection is Blog Post and Press Release templates plus the "blog" category; configurable, or every page.
- Discoverable from every page's
<head>, robots.txt and llms.txt.
- Per-page "Hide from search engines & AI": adds
noindex(meta tag andX-Robots-Tag) and leaves the page out of the sitemap, llms.txt, feeds, Markdown copies and IndexNow. Available in the editor, REST API (noindex,author_name,author_url) and MCP content tools. - SEO & AI settings API and MCP:
GET/PUT /api/v1/seo(partial updates);get_seo_settings,update_seo_settings,get_ai_traffic(127 MCP tools total).
Fixed
- Unpublishing, moving or deleting a page in the admin editor now notifies IndexNow. The editor writes to the database directly and previously skipped the transition notifications that API and MCP edits send.
- Page canonical links are absolute URLs.
- Fork diffs show changes to the new noindex and author fields.
v4.2.0 — AI Chat Widget, Security Hardening & Performance
What's New in v4.2.0
AI Chat Widget
Add a floating AI assistant to any page with a single <script> tag. Visitor queries run a two-phase pipeline: hybrid semantic+fulltext search retrieves relevant excerpts, then Claude Haiku synthesizes a conversational answer streamed live via SSE. Works without an Anthropic key as a pure search experience. Fully configurable from the admin panel — title, colors, position, prompt templates, rate limits.
Fork MCP Tools (8 new tools → 72 total)
Eight dedicated tools for fork workspace management: list_forks, create_fork, get_fork, fork_page, remove_fork_page, merge_fork, archive_fork, delete_fork. Forks let you stage and preview sets of page edits before merging to live.
Security Hardening
SecurityHeadersmiddleware: CSP (path-aware admin vs. public policy), HSTS, X-Frame-Options, X-Content-Type-Options, Referrer-PolicySESSION_SECRETenforced at 32+ characters; server refuses to start with a weak secret- Trusted proxy config:
TrustFlyProxyreads the unspoofableFly-Client-IPheader in cloud deployments - Chat endpoint: separate per-IP (5/min) and global (30/min) rate limiters, prompt injection defense
- API body size cap on all endpoints
Performance
- Optimized content query paths
- Bulk content operations (up to 100 pages per call)
export_contentfor transform/re-import pipelines
Previous release: v1.1 · Full changelog: CHANGELOG.md
LightCMS v1.1.0
LightCMS v1.1.0
AI-native content management system with MCP server, REST API, and CLI tool.
What's New
- API Key System: Create and manage API keys from the admin panel for REST API, MCP, and CLI access
- REST API: Full
/api/v1/JSON API with Bearer token authentication for all resources - CLI Tool:
lightcmscommand-line tool for all content management operations - MCP Refactor: MCP server now connects via REST API — no direct database access needed, enabling remote MCP clients
- MCPB Packaging: MCP bundle files (.mcpb) for streamlined distribution
MCP Bundle Installation
Download the .mcpb file for your platform, or build from source:
go build -o bin/lightcms-mcp ./cmd/mcp
claude mcp add --transport stdio lightcms-mcp \
-e LIGHTCMS_URL="https://your-site.com" \
-e LIGHTCMS_API_KEY="lc_your_key_here" \
-- /path/to/bin/lightcms-mcpCLI Installation
go build -o bin/lightcms ./cmd/cli
export LIGHTCMS_URL=https://your-site.com
export LIGHTCMS_API_KEY=lc_your_key_here
lightcms content listSee README for full documentation and 10 working MCP examples.
v1.0.0
Changelog
- 18f71f2 Add Fly.io deployment configuration
- eea3b28 Add LIGHTCMS_CONFIG_DIR support for MCP server setup
- 091c8ab Add MCP registry metadata, tool annotations, and privacy policy
- 5bc6810 Add MCP server and security improvements
- af1b901 Add MIT LICENSE and clarify website management focus
- 9d67e52 Add MongoDB change stream for real-time content sync
- 469ae26 Add comprehensive MCP API reference documentation
- 2c0f8af Add search/replace, template switching, asset library, and admin branding
- 093b7f7 Add theme versioning feature
- 44d0a35 Display environment mode in Configuration page
- 974001d Fix copyright year to 2026
- 284f3a3 Fix sticky header and mobile footer layout
- 659960e Fix template rendering in range blocks and improve deleted content query
- 39d6650 Initial commit: LightCMS v1.0
- 47784d9 Remove sitemap.xml from version control
- 5a29c79 Remove unused debug and migration utilities
- fae8ae3 Security hardening and inline theme version history
- 0b99f7f Update README to emphasize AI-native design