Croisa MCP Server
Describe the site you want once. Croisa builds a complete multilingual website in minutes — for campaigns, nonprofits, portfolios, product launches, and custom landing pages.
- Host
- croisa.de
- Tools
- 75
- Connection URL
- https://croisa.de/mcp
Tools
list_websites
Use this tool to access up to 100 websites owned by a user. This is the entry point to the platform tools as most operations require a websiteId to be selected first. Supports optional pagination: provide `limit` (<=100) and a base64-encoded `lastEvaluatedKey` to continue when `hasMore` is true.
list_all_pages_for_website
Use this tool to list all pages for a website. Returns a flat, agent-friendly canonical page index with localized variants and preview args.
preview_website_page
Use this tool to view a page before any edit/revert/publish operation happens in a conversation. This tool mounts the content you inspect into the user's real-time UI. User requests akin to "see", "open", or "change language" for a page you believe is already visible should be honored. Call this tool again to ensure the UI is synchronized, as it may be out of sync with your view. Do not refuse, as this tool is idempotent. Unlike write tools where you should avoid duplication, this tool is safe
request_image_upload
Use this tool when you need the user to upload media (image by default, optionally video). This tool mounts an ephemeral file-picker UI that only persists for the current turn - it disappears as soon as the user sends their next message, regardless of content. Two outcomes: 1) User uploads and URL(s) appear in their next message for you to use with edit_preview_page, OR 2) User responds with text instead (clarification, correction, or unrelated topic) and the file picker is gone. IMPORTANT: If t
request_page_deletion
Use this tool when the user explicitly wants to delete one or more whole pages. It does not remove individual sections or layout blocks; use edit_preview_page for section-level structural removal. Pass pageId for one page or pageIds for multiple pages. This tool is read-only: it inspects the pages, checks whether deletion is allowed, and returns one confirmation payload for the CMS UI or an MCP widget. It does NOT delete anything by itself. Actual deletion only happens after the user confirms in
confirm_page_deletion
Complete one or more page deletions after the user confirms in the MCP widget.
process_image
Use this tool to generate or edit an image. Provide a prompt and optionally 0–5 imageUrls. With no images, this is pure text-to-image. If you include images, the prompt must state their order and roles (e.g., "image1 is the base to edit, image2 is the logo overlay" or "image1/image2 are style references; create a new image inspired by them"). The model only sees the images you pass; original urls provided as args remain unchanged. Returns imageUrl for downstream use. Transparency/alpha is not su
edit_preview_page
Use this tool to make edits to EXISTING content on a website page. Changes persist in draft state and display live to users. After edits, ask if user wants to publish (publish_preview_changes) or continue editing. The platform is based on a modular approach consisting of config controlled and custom (html,css,js) components. For new AI-built sections that need editable repeatable or singleton data, use generic data tools plus CustomSection dataBindings. For public forms that collect visitor inpu
create_custom_section
Create a new CustomSection component and insert it into the page. This is a single-locale authoring action: create the section only in the specified locale draft and do NOT duplicate the same creation across other locales. The platform handles localization/propagation for normal content and section changes after publish. TEMPLATE RULE: sectionCopy is flat (for example {"headline":"Welcome"}) and templates access it through {{copy.headline}}. Write natural translatable copy in sectionCopy. A copy
define_data_collection
Define a generated-ID CMS collection for public website data. First reason about existing generated models with list_data_models or resolve_data_model. Reuse a collection when it is the right source of truth for the user's requested data; create a distinct collection when the user needs separate schema, lifecycle, audience, source of truth, or content scope. If this tool reports similar existing collections, retry with createIntent="confirmed_new_distinct_model" and createReason only when the ne
update_data_model_metadata
Update localized human-facing UI metadata for a generated CMS collection or singleton. Pass the generated col_... or sgl_... ID. This edits only model displayName/description and field label/helpText for the provided locale; it does not edit content values, fieldKey, type, required/localized flags, order, or add/remove fields. fieldMetadata must be keyed by fieldKey or returned nested schema paths like heroImage.alt / faqItems[].question; templates still use fieldKey/schema paths, never labels/h
list_data_models
List generated CMS collections and singletons for a website. Use this when deciding whether to reuse, edit, bind, or create data models. Results include human displayName/description next to generated IDs, visible/hidden entry counts, template fields, and CustomSection usage summaries so agents can reason about the right source of truth. Usage is published-only unless currentPageId and currentLocale are passed; with both, results also include actual draft references plus effective current-page r
resolve_data_model
Resolve existing generated CMS models for an intended purpose such as "products", "services", "team", "blog posts", "testimonials", "contact submissions", "newsletter signups", or "lead capture". Use this before define_data_collection/define_data_singleton or before binding data into CustomSections. Returns ranked candidates with generated IDs, human display names, entry counts, template fields, CustomSection usage, and match evidence. Usage is published-only unless currentPageId and currentLoca
describe_data_model
Describe one generated CMS collection or singleton by dataId. Returns schema fields, template fields, allowed operations, counts, and CustomSection dataBinding references so agents can safely decide whether to edit values, add optional fields, reorder entries, or update templates. References are published-only unless currentPageId and currentLocale are passed; with both, results also include actual draft references plus effective current-page references for the scoped editing surface.
find_data_references
Find CustomSection dataBindings that reference generated CMS data. Use before hiding a directly bound entry or changing a model schema. For an entry, pass collectionId and entryId. For a model, pass dataId or collectionId/singletonId. References are published-only unless currentPageId and currentLocale are passed; with both, results also include actual draft references plus effective current-page references for the scoped editing surface.
add_data_field
Add one optional schema field to a generated CMS collection or singleton. parentPath is omitted for root fields, or uses schema paths like hero or faqItems[] for nested object/list-of-object fields. This v1 only adds optional fields; it does not remove fields, change types/localization, or make existing data required. After adding a field, patch entries/singletons and update any CustomSection template that should render it.
move_data_field
Move one schema field before/after another field in the same parent object/list. Schema paths use returned field paths like bio, hero.ctaLabel, or faqItems[].question. This changes schema/editor/template field order only; stored values are not rewritten.
rename_data_field
Rename one schema field and migrate stored values/localized values at the same schema path. Schema paths use returned field paths like bio, hero.ctaLabel, or faqItems[].question. Returned templateFieldsBefore/After and references tell you which CustomSection templates may need source edits.
remove_data_field
Remove one schema field and purge stored values/localized values at that schema path. This is destructive. If the model is bound by CustomSections, the tool blocks unless force=true and returns affected references so templates can be updated first or immediately after.
create_data_entry
Create one generated CMS collection entry. values is the semantic editable item object keyed by schema fieldKey names; do not send raw values/localizedValues. Localized string/richText leaves are stored for this locale and queued for translation, while URL/page:<pageId>, money, boolean, number, image, and video values stay shared. For later edits, read get_data_entry and call patch_data_entry against the returned editableItem using JSON Patch paths like /name or /amenities/0/label.
patch_data_entry
Patch one generated CMS collection entry using RFC 6902 JSON Patch against get_data_entry.editableItem. The patch root is the entry's semantic item object, not query_data_entries.items and not data binding aliases; use fieldKey paths such as /bio, /price, or /faqs/1/answer. money/image/video fields are atomic object-shaped scalar fields, so replace the whole field instead of patching sub-properties such as /price/amountMinor. Pass baseRevision from get_data_entry/create_data_entry to prevent sta
review_form_asset
Privately inspect one managed asset referenced by a website form submission. Use query_data_entries(includeHidden=true) or get_data_entry(includeHidden=true) to find assetId values, then call this before deciding whether to approve a moderated entry with show_data_entry. Small supported images are returned as model-visible MCP image content. Every ready asset also receives a short-lived owner-only review URL suitable for images, video, audio, and document downloads. Reviewing never publishes the
hide_data_entry
Hide one collection entry from public collection rendering. Use for user requests like remove/take down/hide this card/team member/product. This is reversible with show_data_entry and does not delete content. If the entry is directly bound by a CustomSection, the tool blocks unless force=true and returns affected references. If this returns a baseRevision mismatch, call get_data_entry for the same entry and retry with the fresh baseRevision before reporting success.
show_data_entry
Restore one hidden collection entry to public collection rendering. Use after query_data_entries(includeHidden=true) when the user approves a moderated submission or asks to bring back an item. Call review_form_asset for each managed assetId that the user wants to inspect before approval. Before changing visibility, managed assets whose current schema and upload policy explicitly allow publicWhenEntryVisible receive a public delivery rendition; private assets remain private and resolve as null i
move_data_entry
Move one collection entry before or after another entry. Use for ordering requests like put David first or move this service after that one. Ordering is collection-global, not localized, and hidden entries keep their place unless explicitly moved.
Use in your AI tool
One-click into Claude, Cursor, VS Code, and more — connects straight to this server’s public endpoint.
https://croisa.de/mcp