Skip to content
Agentmart
Submit a tool

Lightcms

AI-native, open-source CMS (Go) with 128 MCP tools: content, agent sandbox, SEO & AI.

Connector by jonradoff · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 32
Write a review

Install

Works with Claude Desktop. Read the repository before you give any tool access to your data.

Download the bundle

MCP bundle (.mcpb): open it with Claude Desktop.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

AI-native, open-source CMS (Go) with 128 MCP tools: content, agent sandbox, SEO & AI.

Use cases: writing-editing, seo

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.

Tools
54 read · 57 write · 23 delete
Secrets
None asked for
Install scripts
None found
Runs as
Downloaded binary

Tools by what they do 134

Read from the source code; the running server may list different tools.

Read 54 · Look things up without changing anything.

  • end_user_search
  • export_content
  • get_agent_sandbox
  • get_agent_session_changes
  • get_ai_traffic
  • get_approval_request
  • get_approval_workflow
  • get_asset
  • get_backlinks
  • get_collection
  • get_content
  • get_content_lock
Show 42 more tools
  • get_content_version
  • get_content_versions
  • get_folder
  • get_fork
  • get_fork_diff
  • get_import_job
  • get_indexnow_status
  • get_link_check_results
  • get_maintenance_report
  • get_page
  • get_seo_settings
  • get_site_config
  • get_site_info
  • get_snippet
  • get_template
  • get_theme
  • get_theme_version
  • get_theme_versions
  • list_approval_requests
  • list_approval_workflows
  • list_asset_folders
  • list_assets
  • list_audit_logs
  • list_collections
  • list_comments
  • list_content
  • list_folders
  • list_forks
  • list_import_jobs
  • list_import_sources
  • list_pages
  • list_redirects
  • list_scheduled_content
  • list_snippets
  • list_templates
  • list_webhook_deliveries
  • list_webhooks
  • preview_content
  • scoped_search_replace_preview
  • search_content
  • search_replace_preview
  • search_site

Write 57 · Create, change, send or run things.

  • acquire_content_lock
  • approve_request
  • archive_fork
  • backfill_published_dates
  • bulk_create_content
  • bulk_field_operation
  • bulk_update_content
  • cancel_approval_request
  • cancel_import_job
  • create_approval_workflow
  • create_collection
  • create_comment
Show 45 more tools
  • create_content
  • create_folder
  • create_fork
  • create_import_source
  • create_redirect
  • create_snippet
  • create_template
  • create_webhook
  • force_unlock_content
  • fork_page
  • import_csv
  • import_markdown
  • merge_fork
  • pin_theme_version
  • publish_content
  • publish_multiple
  • regenerate_all_content
  • reindex_embeddings
  • reject_request
  • release_content_lock
  • repair_fork_damage
  • restore_content
  • run_maintenance_scan
  • schedule_content_publish
  • scoped_search_replace_execute
  • set_indexnow_enabled
  • start_agent_sandbox
  • start_link_check
  • submit_for_approval
  • submit_indexnow
  • trigger_import_source
  • update_approval_workflow
  • update_collection
  • update_content
  • update_content_by_path
  • update_import_source
  • update_redirect
  • update_seo_settings
  • update_site_config
  • update_snippet
  • update_template
  • update_theme
  • update_webhook
  • upload_asset
  • upload_asset_from_url

Delete 23 · Delete, drop, revoke or wipe things.

  • cancel_scheduled_publish
  • delete_approval_workflow
  • delete_asset
  • delete_collection
  • delete_comment
  • delete_content
  • delete_folder
  • delete_fork
  • delete_import_source
  • delete_redirect
  • delete_snippet
  • delete_template
Show 11 more tools
  • delete_webhook
  • end_agent_sandbox
  • purge_fork_copies
  • regenerate_webhook_secret
  • remove_fork_page
  • revert_theme_to_version
  • revert_to_version
  • rollback_agent_session
  • search_replace_execute
  • unpin_theme_version
  • unpublish_content

Network hosts it talks to 33

  • 169.254.169.254 · found in code
  • ::1 · found in code
  • a.b · found in code
  • api.anthropic.com · found in code
  • api.cloudflare.com · found in code
  • api.indexnow.org · found in code
  • api.resend.com · found in code
  • api.voyageai.com · found in code
  • cdn.jsdelivr.net · found in code
  • chatgpt.com · found in code
  • claude.ai · found in code
  • contentsignals.org · found in code
  • dash.voyageai.com · found in code
  • evil.com · found in code
  • ex.com · found in code
  • ex.net · found in code
  • external.com · found in code
  • fonts.googleapis.com · found in code
  • fonts.gstatic.com · found in code
  • github.com · found in install command, code
  • glama.ai · found in code
  • google.com · found in code
  • indexnow.org · found in code
  • lightcms.fly.dev · found in code
  • metavert.io · found in code
  • news.ycombinator.com · found in code
  • o.org · found in code
  • openai.com · found in code
  • perplexity.ai · found in code
  • resend.com · found in code
Show 3 more hosts
  • s.net · found in code
  • sitemaps.org · found in code
  • x.y · found in code

Files it touches

  • /dev/stdin

Tools (134)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • acquire_content_lockAcquire Content Lock

    Acquire an advisory lock on a content item for the current API user. Returns conflict if another user holds the lock.

  • approve_requestApprove Request

    Approve an approval request. When all required approvals are collected the content is automatically published.

  • archive_forkArchive Fork

    Archive a fork without merging it. The fork and its pages are preserved but the fork becomes read-only. Requires admin role.

  • backfill_published_datesBackfill Published Dates

    Give published pages that have no published date (created before v7.3.2) a published date equal to their creation date, for structured data and feeds. Metadata only: pages don't re-render. Use dry_run first to see the count.

  • bulk_create_contentBulk Create Content

    Create up to 100 content items in a single call using efficient batch insert. Items are inserted via MongoDB InsertMany for maximum throughput. If one item fails (e.g., duplicate path), the rest continue. Published items get their static HTML generated in parallel (up to 10 concurrent). Set upsert: true to update existing pages at the same path instead of failing on duplicates. Returns: total attempted, succeeded, failed counts, and per-item {id, full_path, success, error} details.

  • bulk_field_operationBulk Field Operation

    Apply a single field operation to all matching content pages in one call. Operations: - clear: set field to empty string - set: replace field value with a fixed string - prepend: add text before existing field value - append: add text after existing field value - wrap: surround existing value with before/after strings Use scope filters to limit which pages are affected (content_ids, folder_path, template_name, category). Set dry_run: true to preview which pages would be changed without saving. Only live pages are changed: fork copies named in content_ids come back in "skipped" as {id, reason…

  • bulk_update_contentBulk Update Content

    Update up to 100 content items in a single call. Use instead of calling update_content in a loop. Each update in the array specifies the content ID and only the fields you want to change (merge semantics on data). Use clear_fields to explicitly clear field values to empty string. Set dry_run: true to validate all IDs exist without committing changes. Returns: total attempted, succeeded, failed counts, and per-item success/error details. Tip: call list_content with include_data: true first to get IDs + current field values, transform as needed, then submit here. Recommended batch size: up to…

  • cancel_approval_requestCancel Approval Request

    Cancel a pending approval request.

  • cancel_import_jobCancel Import Job

    Cancel a running import job

  • cancel_scheduled_publishCancel Scheduled Publish

    Clear the scheduled publish time for a content item.

  • create_approval_workflowCreate Approval Workflow

    Create a new approval workflow. Trigger types: all_contributor, folder_path, template_id, tag. Mode: sequential or concurrent.

  • create_collectionCreate Collection

    Create a new content collection. Collections display grouped content with custom templates.

  • create_commentPost Comment

    Post a discussion comment on a content item. Requires discussion.post permission.

  • create_contentCreate Content

    Create a new content item. Requires a template_id, title, slug, and the data fields defined by the template. Workflow: 1. Call list_templates to find the right template and its field names. 2. Create the content with data matching those fields. 3. Call publish_content to make it live (or set published=true here to do both in one step). Set use_header=true, use_footer=true, use_theme=true for pages that should use the site layout. Always include version_comment to make history readable. Content data fields support rich markup features: - [[Wikilinks]] and [[Page Title|display text]] — link t…

  • create_folderCreate Folder

    Create a new content folder. Folders create URL path segments for organizing content.

Show 119 more tools
  • create_forkCreate Fork

    Create a new named fork workspace for staging content changes. A fork is an isolated workspace where you can edit copies of live pages without affecting the public site. When ready, an admin can merge the fork to push all changes live at once. Typical workflow: 1. create_fork — create the workspace 2. fork_page — copy pages you want to edit into the fork (returns a fork page ID) 3. update_content (with the fork page ID) — make your edits 4. merge_fork — merge all changes to the live site (admin only) Returns the fork ID needed for subsequent fork operations.

  • create_import_sourceCreate Import Source

    Create a new RSS/Atom import source that automatically pulls content from a feed

  • create_redirectCreate Redirect

    Create a new URL redirect. Use 301 for permanent redirects, 302 for temporary.

  • create_snippet

    Create a new snippet. Snippets are Go templates that render one content item in an lc:query index page. Reference by name: <!-- lc:query filter="tag:MyTag" snippet="your-snippet-name" -->

  • create_templateCreate Template

    Create a new template. Define fields with name, label, type (text, textarea, richtext, date, image, select), and options.

  • create_webhookCreate Webhook

    Create a new webhook. Returns the generated HMAC-SHA256 secret ONCE — save it immediately. Valid event types: content.create, content.update, content.publish, content.unpublish, content.delete, comment.created, content.pending_approval, asset.pending_review

  • delete_approval_workflowDelete Approval Workflow

    Delete an approval workflow.

  • delete_assetDelete Asset

    Delete an asset from the library. Removes both the file and database record.

  • delete_collectionDelete Collection

    Delete a collection. This does not delete the content in the collection.

  • delete_commentDelete Comment

    Delete a discussion comment. Requires comment.delete permission (admin only).

  • delete_contentDelete Content

    Soft-delete a content item. The content can be restored later. Removes the static HTML page.

  • delete_folderDelete Folder

    Delete an empty folder. Cannot delete folders that contain content or subfolders.

  • delete_forkDelete Fork

    Permanently delete a fork and all its page copies. Deleting a merged fork removes only its history record (and any leftover copies) — the merged live pages are not affected. Requires admin role.

  • delete_import_sourceDelete Import Source

    Delete an RSS import source

  • delete_redirectDelete Redirect

    Delete a redirect.

  • delete_snippet

    Delete a snippet by ID.

  • delete_templateDelete Template

    Delete a template. Cannot delete system templates or templates that have content using them.

  • delete_webhookDelete Webhook

    Permanently delete a webhook.

  • end_agent_sandboxEnd Agent Sandbox

    End the sandbox session. action='submit' keeps the fork for human review and merge (at /cm/forks/{id}); action='discard' permanently deletes the fork and all its changes. Agents cannot merge their own sandbox — merging is a human decision.

  • end_user_searchEnd User Search

    Search published content using full-text exact match, semantic (AI) similarity, or hybrid mode. Returns page titles, paths, and snippets.

  • export_contentExport Content

    Export content items with their full field data as a structured JSON array. Use for batch transformations: export → transform externally → re-import via bulk_update_content. Scope filters (all optional): - template_name: most useful for bulk workflows, e.g. "Concept Page" or "Blog Post" - category, folder_path, content_ids: narrower scoping options Use fields: ["field1", "field2"] to include only specific data fields instead of all fields. Only live pages are exported: fork copies named in content_ids come back in "skipped" as {id, reason}. Returns: total count and array of items with id,…

  • force_unlock_contentForce Unlock Content

    Admin only: force-release any lock on a content item regardless of who holds it.

  • fork_pageFork Page

    Copy a live page into a fork workspace so you can edit it without affecting the public site. Provide either: - path: the URL path of the page (e.g. "/about", "/blog/my-post") — preferred when you know the URL - content_id: the MongoDB ObjectID of the content item Returns the fork page ID. Use this ID with update_content to make edits: 1. fork_page → get fork_page_id 2. update_content with id=fork_page_id to edit 3. get_content with id=fork_page_id to verify 4. merge_fork when all edits are ready (admin only) If the page is already in this fork, returns the existing fork copy.

  • get_agent_sandboxGet Agent Sandbox Status

    Show whether an agent sandbox is active, and if so its fork ID, name, and the pages changed so far (with per-field diffs against live).

  • get_agent_session_changesGet Agent Session Changes

    The audit ledger for an agent session: every content item it changed, with actions and timestamps. Defaults to the current MCP session. Requires audit permissions.

  • get_ai_trafficGet AI Traffic

    AI visibility report: requests from AI crawlers by purpose (training, AI search, user-initiated fetch) and by crawler, the pages AI reads most, visits referred by AI assistants (ChatGPT, Perplexity, Claude, Gemini…), and where they land.

  • get_approval_requestGet Approval Request

    Get details of a single approval request including decisions so far.

  • get_approval_workflowGet Approval Workflow

    Get a single approval workflow by ID.

  • get_assetGet Asset

    Get asset metadata by ID or path. Does not return file content (use the serve path to access the file).

  • get_backlinksGet Backlinks

    Find all published pages that link to the given URL path. Links are tracked automatically whenever a page is published — both [[Wikilinks]] and ordinary <a href="..."> links in content fields are indexed. Use this to discover which pages reference a given page (wiki-style backlink graph), assess the impact of deleting or renaming a page, or find orphaned pages with no inbound links. Example: {"path": "/about"} returns every published page whose content contains a link to /about.

  • get_collectionGet Collection

    Get a collection by ID.

  • get_contentGet Content

    Get a single content item by ID or path. Returns full content including all field data (title, slug, full_path, data fields, published state). Prefer path when you know the URL: {"path": "/about"} Use id when you have the MongoDB ObjectID: {"id": "abc123"} Set include_rendered=true to also receive the fully rendered HTML output (template + theme header/footer applied). Useful for verifying what visitors see without publishing. Tip: to preview unsaved edits before publishing, use preview_content instead.

  • get_content_lockGet Content Lock

    Get the current advisory lock status for a content item. Returns lock holder and expiry, or {locked: false} if unlocked.

  • get_content_versionGet Content Version

    Get a specific version of a content item with full field data.

  • get_content_versionsGet Content Versions

    Get the version history for a content item. Returns list of versions with timestamps.

  • get_folderGet Folder

    Get a folder by ID.

  • get_forkGet Fork

    Get details of a fork workspace including its status and list of pages. Returns: fork metadata + array of pages (id, title, full_path, updated_at). Use the page id with get_content or update_content to read/edit fork pages.

  • get_fork_diffGet Fork Diff

    Per-field differences between each page in a fork and its live counterpart — the review surface for merging a fork. Status 'added' means the page exists only in the fork.

  • get_import_jobGet Import Job

    Get the status, results, and log of a specific import job

  • get_indexnow_statusGet IndexNow Status

    IndexNow notifies Bing, Yandex and other engines when pages change. Returns whether it is active (and why not if inactive), the key file URL, whether the key file verified, total URLs submitted, and recent submissions with HTTP results.

  • get_link_check_resultsGet Link Check Results

    Get the status and results of a link check job. Status is "running", "done", or "failed".

  • get_maintenance_reportGet Maintenance Report

    The latest site-health scan: stale pages (no update in ~6 months), published pages missing meta descriptions, and lingering drafts. Use it as a work queue — fix issues via the sandbox workflow.

  • get_pageGet Page

    Full plain-text content of one published page by URL path, with title, description, and publish date.

  • get_seo_settingsGet SEO & AI Settings

    The site's search & AI settings: AI crawler policy (training / AI search / user fetch, per-crawler overrides) with the resulting robots.txt, Markdown copies, default author/publisher for structured data, and feed settings.

  • get_site_configGet Site Config

    Get site configuration including title templates.

  • get_site_infoGet Site Info

    Name, tagline, and base URL of this site, plus pointers to llms.txt and the sitemap.

  • get_snippet

    Get a snippet by ID.

  • get_templateGet Template

    Get a single template by ID or slug. Returns full template including fields and HTML layout.

  • get_themeGet Theme

    Get current theme settings including colors, fonts, and custom HTML for header/footer.

  • get_theme_versionGet Theme Version

    Get a specific version of theme settings with full data.

  • get_theme_versionsGet Theme Versions

    Get the version history for theme settings. Returns list of versions with timestamps.

  • import_csvImport CSV

    Import content from CSV data. Each row becomes a content page. Specify which column is the title; all columns become content fields.

  • import_markdownImport Markdown

    Import one or more Markdown pages into LightCMS. Each page can include YAML frontmatter (title, slug, folder, template, published, publish_at). Ideal for bulk content creation by AI agents — generate markdown with frontmatter and import directly. Example frontmatter: --- title: My Page slug: my-page folder: /blog template: Blog Post published: false --- Page body content here.

  • list_approval_requestsList Approval Requests

    List pending approval requests. Use filter=mine to see only requests in your queue.

  • list_approval_workflowsList Approval Workflows

    List all configured approval workflows. Requires approval.manage_workflows permission.

  • list_asset_foldersList Asset Folders

    List all unique folder paths in the asset library.

  • list_assetsList Assets

    List all assets in the asset library. Assets are files like images, documents, CSS, JS, etc.

  • list_audit_logsList Audit Logs

    List recent audit log entries. Admin only. Supports filtering by action and resource type.

  • list_collectionsList Collections

    List all content collections. Collections group and display content by category.

  • list_commentsList Comments

    List all discussion comments on a content item.

  • list_contentList Content

    List all content items with optional filters. Returns content metadata including title, path, publish status, and timestamps. Add include_data: true to get full field data for all items in one call, or include_fields: ["field1", "field2"] to fetch only specific fields — both avoid per-item get_content calls for bulk workflows. Up to 20 concurrent update_content calls are safe. For larger batches, prefer bulk_update_content (up to 100 items per call).

  • list_foldersList Folders

    List all content folders. Folders organize content into URL path segments.

  • list_forksList Forks

    List all content fork workspaces. Forks let you stage changes to multiple pages as a batch before merging them live. Each fork shows its status (active/merged/archived), page count, and who created it. Use get_fork to see the specific pages in a fork.

  • list_import_jobsList Import Jobs

    List recent import jobs with their status and results

  • list_import_sourcesList Import Sources

    List all configured RSS/Atom import sources

  • list_pagesList Pages

    All published pages on this site: title, path, and meta description.

  • list_redirectsList Redirects

    List all URL redirects configured for the site.

  • list_scheduled_contentList Scheduled Content

    List all unpublished content items that have a scheduled publish time set.

  • list_snippets

    List all snippets. Snippets are reusable Go-template HTML fragments used in lc:query index page directives.

  • list_templatesList Templates

    List all available templates. Templates define content structure with fields and HTML layout.

  • list_webhook_deliveriesList Webhook Deliveries

    List recent delivery attempts for a webhook.

  • list_webhooksList Webhooks

    List all registered webhooks. Secrets are never returned.

  • merge_forkMerge Fork

    Merge all pages in a fork workspace into live content. Requires admin role. For each page in the fork: - If a matching live page exists (same URL): updates it with the fork content (fork wins). If the live page was edited after the fork was created, records a conflict but still merges. - If no live page exists at that URL: creates a new live page. It keeps the publish state it had in the fork (normally draft) unless publish_new is true, which publishes it. Pages on hold always stay drafts. After merging, the fork status changes to "merged", its page copies are deleted, and the created/update…

  • pin_theme_versionPin Theme Version

    Lock a theme version so it is protected from automatic pruning or accidental overwrite. Pinned versions are marked with locked=true in get_theme_versions. Use this to preserve milestone theme states (e.g., after a major redesign) before making further changes. Example: {"version": 5}

  • preview_contentPreview Content

    Render a content item's HTML without saving or publishing. Use this to verify what a page will look like before publishing. Also accepts optional title/data overrides to preview unsaved edits: {"id": "abc123", "data": {"body": "<p>New text</p>"}} Returns rendered_html and any warnings (missing required fields, unclosed tags, unresolved placeholders).

  • publish_contentPublish Content

    Publish a content item, making it visible on the public site. Generates the static HTML page.

  • publish_multiplePublish Multiple

    Publish multiple content items in a single call. Use this instead of calling publish_content in a loop. Examples: - Publish specific pages: {"ids": ["abc123", "def456"]} - Publish all drafts at once: {"publish_all_drafts": true} Held pages and fork copies are never published by this tool: they come back in "skipped" as {id, reason}. publish_all_drafts ignores fork copies entirely. Returns published IDs, skipped items, and any failures.

  • purge_fork_copiesPurge Fork Copies

    Delete the page copies still attached to a merged or archived fork. Requires admin role. Merges clean up after themselves since v7.4; forks merged before that kept their copies. Live pages are never touched, and the fork record is kept. Active forks are refused. Use dry_run: true first to see the count and the list of {id, full_path}. Returns the number deleted and writes an audit log entry.

  • regenerate_all_contentRegenerate All Content

    Regenerate all published static HTML pages. Use after major theme or template changes.

  • regenerate_webhook_secretRegenerate Webhook Secret

    Generate a new HMAC-SHA256 signing secret for a webhook. The old secret stops working immediately. The new secret is returned ONCE — save it.

  • reindex_embeddingsReindex Embeddings

    Regenerate vector embeddings for all published content. Required after initial setup or if embeddings become stale.

  • reject_requestReject Request

    Reject an approval request. A comment explaining the rejection is required and will be posted to the content's discussion thread.

  • release_content_lockRelease Content Lock

    Release the advisory lock on a content item held by the current API user.

  • remove_fork_pageRemove Fork Page

    Remove a page from a fork workspace (discards the fork copy, does not affect the live page).

  • repair_fork_damageRepair Fork Damage

    Repair damage the admin editor could do when saving a fork copy before v7.4.1: (1) fork copies left flagged published get the flag cleared; (2) live published pages whose generated HTML file is missing are regenerated. Page content is not changed: no versions, no IndexNow pings. A flagged copy with has_live_page=false is a page created inside its fork, where the flag meant publish-on-merge — after the repair, merge that fork with publish_new to publish it. Run with dry_run first and show the user the lists. Requires admin role.

  • restore_contentRestore Content

    Restore a soft-deleted content item. Regenerates static page if content was published.

  • revert_theme_to_versionRevert Theme to Version

    Revert theme to a previous version. Creates a new version with the old data.

  • revert_to_versionRevert to Version

    Revert content to a previous version. Creates a new version with the old data.

  • rollback_agent_sessionRollback Agent Session

    Undo every content change made by an agent session as a unit: content the session created is soft-deleted, deleted content is restored, and updated content reverts to its latest pre-session version. Defaults to the current MCP session ("undo everything I did"). Non-content changes (templates, settings) are listed for manual review but not auto-reverted.

  • run_maintenance_scanRun Maintenance Scan

    Run a site-health scan now and return the fresh report. Scans also run automatically once a day.

  • schedule_content_publishSchedule Content Publish

    Set a future publish date/time for a content item. The scheduler automatically publishes it when the time arrives.

  • scoped_search_replace_executeScoped Search Replace Execute

    Execute a search-and-replace limited to a subset of pages. ALWAYS run scoped_search_replace_preview first and show results to the user before executing. Scope options (all optional): - content_ids, folder_path, template_name, category Set auto_republish: true to immediately re-publish all previously-published pages after updating them, collapsing the execute + publish_multiple flow into one call. Only live pages are changed: fork copies named in content_ids come back in "skipped" as {id, reason}. Example: {"search": "old text", "replace": "new text", "folder_path": "/blog", "auto_republish…

  • scoped_search_replace_previewScoped Search Replace Preview

    Preview a search-and-replace limited to a subset of pages. Safer than site-wide replacement. Scope options (all optional — leave blank to match all pages): - content_ids: specific page IDs - folder_path: pages under /blog, /docs, etc. - template_name: pages using "Concept Page", "Blog Post", etc. - category: pages with a matching category Only live pages are searched: fork copies named in content_ids come back in "skipped" as {id, reason}. Example: {"search": "old text", "replace": "new text", "folder_path": "/blog"} Always run preview before execute.

  • search_contentSearch Content

    Search across all content items by title or full text. Returns matching content with paths and match context.

  • search_replace_executeSearch Replace Execute

    Execute a site-wide search-and-replace across all content. Modifies every matching page permanently. MANDATORY workflow: 1. Run search_replace_preview and show the user which pages will be affected. 2. Get explicit user confirmation before executing. 3. Run search_replace_execute with a clear version_comment. Set auto_republish: true to immediately re-publish all previously-published pages after updating them, collapsing the execute + publish_multiple flow into one call. For targeted replacements, use scoped_search_replace_execute instead.

  • search_replace_previewSearch Replace Preview

    Preview a site-wide search-and-replace without making any changes. ALWAYS run this before search_replace_execute. Returns: affected page count, total match count, and per-page field breakdown. Only live pages are searched; fork copies are never matched or rewritten. For targeted replacements (a folder, template, or category), use scoped_search_replace_preview instead.

  • search_siteSearch Site

    Full-text search across the published site. Returns matching pages with snippets.

  • set_indexnow_enabledEnable/Disable IndexNow

    Turn automatic IndexNow submission on or off for this site (on by default).

  • start_agent_sandboxStart Agent Sandbox

    Start a sandboxed editing session backed by a content fork ("pull request for content"). While the sandbox is active: - update_content / update_content_by_path transparently copy pages into the fork and edit the copies (copy-on-write). Live content is never modified. - create_content creates new pages inside the fork. - Publishing, deleting, bulk operations, and search/replace-execute are blocked. - The site is unaffected until a human reviews the fork at /cm/forks and merges it. Recommended for any multi-page or risky editing task. End with end_agent_sandbox.

  • start_link_checkStart Link Check

    Start an asynchronous broken-link check across all published content. Returns a job_id immediately. Poll get_link_check_results(job_id) until status is "done". Example workflow: start_link_check() → {job_id: "abc123"} get_link_check_results("abc123") → if status=="running", wait and retry; if "done", review broken_links

  • submit_for_approvalSubmit Content for Approval

    Explicitly submit a content item for editorial approval. Contributors must submit content for approval before it can be published.

  • submit_indexnowSubmit URLs to IndexNow

    Submit pages to IndexNow now. Changes are already submitted automatically on publish/update/delete; use this to resubmit specific paths, or all=true to submit every published page (once per hour max).

  • trigger_import_sourceTrigger Import Source

    Manually trigger an RSS import source to run immediately

  • unpin_theme_versionUnpin Theme Version

    Remove the lock from a previously pinned theme version. Example: {"version": 5}

  • unpublish_contentUnpublish Content

    Unpublish a content item, removing it from the public site. Removes the static HTML page.

  • update_approval_workflowUpdate Approval Workflow

    Update an existing approval workflow.

  • update_collectionUpdate Collection

    Update a collection's settings.

  • update_contentUpdate Content

    Update an existing content item by ID. Creates a new version automatically. Only send fields you want to change. For partial data updates, only the keys you include in "data" are changed — existing keys are preserved (merge semantics). Use clear_fields: ["field1", "field2"] to explicitly set fields to empty string. Set dry_run: true to validate the update without saving. To update by URL path instead of ID, use update_content_by_path. Always include version_comment so the version history is useful. Up to 20 concurrent update_content calls are safe. For larger batches (>20 items), prefer bulk…

  • update_content_by_pathUpdate Content by Path

    Update content identified by its URL path instead of its ID. Useful when you know the page URL but not the MongoDB ID. Example: {"path": "/about", "title": "About Us", "data": {"body": "<p>Updated content</p>"}} The path always resolves to the live page, never to a fork copy (inside an agent sandbox the write goes to the sandbox copy as usual). Only the fields you provide are changed. Always include a version_comment describing what changed.

  • update_import_sourceUpdate Import Source

    Update an RSS import source configuration

  • update_redirectUpdate Redirect

    Update an existing redirect.

  • update_seo_settingsUpdate SEO & AI Settings

    Change search & AI settings. Only the fields you pass change. Blocking AI training crawlers does not affect Google/Bing search.

  • update_site_configUpdate Site Config

    Update site configuration. Title templates support {{title}} and {{site_name}} placeholders.

  • update_snippet

    Update an existing snippet's name and/or HTML template.

  • update_templateUpdate Template

    Update an existing template. Changing the HTML layout will regenerate all content using this template.

  • update_themeUpdate Theme

    Update theme settings. Only the fields you provide are changed — all other settings are preserved (partial update, safe to call without get_theme first). Changing header_html or footer_html triggers background regeneration of all published pages. Changing colors, fonts, or custom_css does NOT require content regeneration. Use pin_theme_version to protect important milestones before making major changes.

  • update_webhookUpdate Webhook

    Update an existing webhook (name, URL, events, active). Partial update — only provided fields change.

  • upload_assetUpload Asset

    Upload or replace an asset in the asset library. Re-uploading to the same serve_path replaces the existing file in place — no need to delete first. Provide file content via one of: - file_path: Absolute local path to the file (preferred for files >100KB — avoids MCP transport size limits) - data_base64: Base64-encoded file content (fine for small files) Validates file type and MIME type for security.

  • upload_asset_from_urlUpload Asset from URL

    Fetch a public URL and store it as a LightCMS asset. Useful for importing images or files from the web without downloading them locally first. Example: {"url": "https://example.com/logo.png", "serve_path": "/assets/logo.png", "description": "Site logo"} If serve_path is omitted, the filename is derived from the URL. Returns id, serve_path, mime_type, and size.

Signals

Stars
32
Forks
7
Open issues
2
Contributors
2
Last commit
Oct 17, 2026 (12 days ago)
Last release
Oct 5, 2026 (23 days ago)

From GitHub (fetched Oct 24, 2026).

Details

Registry name
io.github.jonradoff/lightcms
Version
7.3.4
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from jonradoff

Cite this page

Lightcms MCP server. Agent Mart. https://agentmart.dev/connectors/jonradoff-lightcms (last updated 2026-10-24)