Tools Reference

All available MCP tools in Neleto

Neleto exposes 35 MCP tools across 7 categories. Each tool call requires an Authorization: Bearer <token> header.

All id fields for files and file-related tools are UUIDs (strings), while ids for pages, layouts, components, posts, and events are integers.

Pages

Tools for managing CMS pages.

page.list

List pages available in the CMS.

ids
integer[]
Filter by specific page IDs.
limit
integer
Maximum number of results to return.
offset
integer
Number of results to skip (for pagination).
language
"en" | "de"
Filter pages by language.

page.get

Load a single page with its layout, elements, and translated content.

id
integer required
The page ID.
lang
"en" | "de"
Language to load translated content in.

page.create

Create a new page including tags, meta tags, and elements.

title
string required
Page title.
route
string required
URL route for the page. Must start with / (e.g. /about).
useTailwind
boolean required
Whether to include Tailwind CSS for this page.
metaTags
object[] required
Array of meta tag objects.
tags
object[] required
Array of tag objects.
elements
object[] required
Array of page element objects.
deletedElements
integer[] required
IDs of elements to delete (use empty array [] for new pages).
template
string
Custom Handlebars template for the page.
renderMode
"prerendered" | "dynamic"
How the page is rendered. Defaults to prerendered.
layoutId
integer | null
Assign a layout to the page.
status
"draft" | "public" | null
Publication status.
description
string | null
Page description used in meta tags.
language
"en" | "de" | null
Language of the page.

page.update

Update an existing page including its nested elements. Same fields as page.create plus:

id
integer required
The ID of the page to update.

page.delete

Soft-delete a page.

id
integer required
The ID of the page to delete.

page.duplicate

Duplicate a page to a new route and title.

id
integer required
The ID of the page to duplicate.
title
string required
Title for the new duplicated page.
route
string required
URL route for the new page. Must start with / (e.g. /about-copy).

Layouts

Layouts are reusable templates that can be assigned to multiple pages.

layout.list

List page layouts.

limit
integer
Maximum number of results to return.
offset
integer
Number of results to skip.
language
"en" | "de"
Filter by language.

layout.get

Load a single layout with its element tree.

id
integer required
The layout ID.
lang
"en" | "de"
Language for translated element content.

layout.create

Create a reusable layout with template, style, script, and fixed elements.

name
string required
Display name for the layout.
elements
object[] required
Array of element objects included in the layout.
deletedElements
integer[] required
IDs of elements to delete (use [] for new layouts).
icon
string | null
Icon identifier for the layout.
template
string
Handlebars template string.
script
string
JavaScript to include.
style
string
CSS styles for the layout.
language
"en" | "de" | null
Language context.

layout.update

Update an existing layout including its element tree. Same fields as layout.create plus:

id
integer required
The ID of the layout to update.

layout.delete

Soft-delete a layout.

id
integer required
The ID of the layout to delete.

Components

Components are reusable building blocks that editors can insert on pages.

component.list

List all reusable CMS components.

No parameters required.

component.get

Load a single component by ID.

id
integer required
The component ID.

component.search

Search components by form label.

q
string required
Search query.

component.used_by_elements

List all element instances that use a given component.

id
integer required
The component ID to search usage for.

component.create

Create a new component.

icon
string required
Icon identifier for the component.
form
object required
Form definition describing the component's properties.
style
string required
CSS styles for the component.
script
string required
JavaScript for the component.
template
string required
Handlebars template string for the component.
category
"text" | "design" | "layout" | "interactive" | "media" | "misc" required
Component category for grouping in the editor.
canHaveChildren
boolean required
Whether child elements can be nested inside this component.

component.update

Update an existing component. Same fields as component.create plus:

id
integer required
The ID of the component to update.

component.delete

Delete a component and all element instances linked to it.

id
integer required
The ID of the component to delete.

Blog Posts

post.list

List blog posts.

ids
integer[]
Filter by specific post IDs.
limit
integer
Maximum number of results.
offset
integer
Number of results to skip.

post.get

Load a blog post by ID.

id
integer required
The post ID.

post.search

Search posts by title, description, or content.

q
string required
Search query.

post.create

Create a blog post.

slug
string required
URL-friendly identifier for the post.
title
string required
Post title.
description
string required
Short description shown in listings.
content
string required
Richtext content. HTML is allowed.
language
string required
Language of the post (e.g. "en" or "de").
metadata
object required
Post metadata object (can be an empty object {}).
tags
object[] required
Array of tag objects.
files
object[] required
Array of associated file objects.
status
"draft" | "public" | null
Publication status.
publishDate
string | null
ISO 8601 publish date.
heroImageId
string | null
UUID of the hero image file.
heroImage
object | null
Hero image file object (alternative to heroImageId).

post.update

Update a blog post. Same fields as post.create plus:

id
integer required
The ID of the post to update.

post.delete

Delete a blog post.

id
integer required
The ID of the post to delete.

Events

event.list

List events.

ids
integer[]
Filter by specific event IDs.
limit
integer
Maximum number of results.
offset
integer
Number of results to skip.

event.get

Load an event by ID.

id
integer required
The event ID.

event.search

Search events by title, description, or content.

q
string required
Search query.

event.today

List all events happening today.

No parameters required.

event.upcoming

List upcoming events.

No parameters required.

event.create

Create an event.

slug
string required
URL-friendly identifier for the event.
title
string required
Event title.
description
string required
Short event description.
content
string required
Richtext content. HTML is allowed.
status
"draft" | "public" required
Publication status.
metadata
object required
Event metadata (can be an empty object {}).
tags
object[] required
Array of tag objects.
files
object[] required
Array of associated file objects.
publishDate
string | null
ISO 8601 publish date.
start
string | null
ISO 8601 start date/time.
end
string | null
ISO 8601 end date/time.
heroImageId
string | null
UUID of the hero image file.
heroImage
object | null
Hero image file object (alternative to heroImageId).

event.update

Update an event. Same fields as event.create plus:

id
integer required
The ID of the event to update.

event.delete

Delete an event.

id
integer required
The ID of the event to delete.

Files

File IDs are UUIDs (strings), not integers.

file.list

List files, folders, or load a single file with optional content.

path
string | null
List contents of a folder path (e.g. "/" for root), or load a specific file by path.
mimeType
string[] | null
Filter by MIME type (e.g. ["image/jpeg", "image/png"]).
ids
string[] | null
Load specific files by UUID.

file.get

Load a file with its tags by ID.

id
string required
The file UUID.

file.search

Search files by title, description, path, status, or MIME type.

q
string | null
Search query (title, description, or path).
onlyFiles
boolean | null
If true, exclude folders from results.
status
"draft" | "public" | null
Filter by status.
allowedMimeTypes
string[]
Filter by allowed MIME types.

file.create

Create a file, folder, or remote file entry. Local files are created empty on disk.

type
"folder" | "file" | "remoteFile" required
The type of entry to create.
path
string required
Full path including file name (e.g. "/images/logo.png").
tags
object[] required
Array of tag objects.
status
"draft" | "public" | null
Publication status.
title
string | null
Display title for the file.
mimeType
string | null
MIME type of the file.
description
string | null
File description.
metadata
object
File metadata.

file.upload

Upload a binary file or image using base64-encoded content.

path
string required
Full destination path including file name.
base64Data
string required
The file content as a base64-encoded string.
mimeType
string | null
MIME type (e.g. "image/png"). Auto-detected if omitted.
status
"draft" | "public" | null
Publication status.
title
string | null
Display title.
description
string | null
File description.
metadata
object
File metadata.
tags
object[] | null
Array of tag objects.
handleConflicts
boolean | null
Whether to auto-resolve path conflicts.

file.update

Update file metadata or content for local files.

id
string required
The file UUID.
fileType
"local" | "remote" required
Whether the file is stored locally or remotely.
tags
object[] required
Updated array of tag objects.
type
"folder" | "file" | "remoteFile" | null
Change the entry type.
path
string | null
New path for the file.
status
"draft" | "public" | null
Publication status.
title
string | null
Display title.
mimeType
string | null
MIME type.
description
string | null
File description.
metadata
object
File metadata.
content
string | null
New text content for local files.

file.delete

Delete one or more files or folders.

ids
string[] required
Array of file UUIDs to delete.

file.move

Move or copy files into another folder path.

ids
string[] required
Array of file UUIDs to move (or copy).
path
string required
Destination folder path (e.g. "/images/archive").
copy
boolean | null
If true, copy the files instead of moving them.

file.rename

Rename a file or folder by changing the last segment of its path.

id
string required
The file UUID to rename.
name
string required
The new file/folder name (just the last segment, not the full path).

Settings

settings.get

Load CMS settings with resolved page references and meta tags.

language
string
Language context for resolved page references.

settings.update

Update CMS settings. All fields are optional - only provided fields are changed.

title
string
Site title.
robots
string
robots.txt content.
fallbackPageId
integer | null
Page to serve for unknown routes (404 fallback).
blogPostPageId
integer | null
Page used to render individual blog posts.
eventPostPageId
integer | null
Page used to render individual event detail pages.
faviconId
string | null
UUID of the favicon file.
fileDefaultStatus
"draft" | "public"
Default status for newly uploaded files.
postDefaultStatus
"draft" | "public"
Default status for newly created blog posts.
pageDefaultStatus
"draft" | "public"
Default status for newly created pages.
eventDefaultStatus
"draft" | "public"
Default status for newly created events.
metaTags
object[]
Global meta tags applied to all pages.
emailHost
string
SMTP host.
emailPort
integer
SMTP port.
emailUser
string
SMTP username.
emailPassword
string
SMTP password.
emailFrom
string
Sender address for outgoing emails.
emailTls
"tls" | "start-tls" | "none"
TLS mode for SMTP connection.
defaultLanguage
string
Default language for the site.
languages
object[]
Available site languages. Each entry needs value (e.g. "en") and label (e.g. "English").
autoDetectBestLanguage
boolean
Automatically redirect visitors to their preferred language.
maxUploadFileSizeMb
integer
Maximum file upload size in megabytes.
tailwindConfig
string
Global Tailwind CSS configuration.