Tools Reference
Reference for the tools and resources exposed by the Elements CMS MCP server.
This page lists the tools your connected AI assistant can use through the Elements CMS MCP server. You do not need to call these tools directly. The assistant chooses them when you ask for things like listing posts, editing content, uploading media, or restoring a version.
Before using this reference, connect an MCP client with the MCP Server setup guide.
How inputs work
Every tool receives a small JSON object. The assistant builds that object for you, but a few terms appear often:
Folder index - each content folder and resource folder has a numeric index, starting at
0. The assistant can discover these withcontent_list_collectionsorresources_list.Subpath - an optional subfolder inside a content or resource folder. Empty means the folder root.
Role restrictions - every tool acts as the user bound to the token or OAuth connection. Owner-only and admin-only actions still require the matching role.
api_... keys and mcp_... tokens are separate. The tools on this page use the MCP server, not the JSON REST API.
Content
content_list_collections
content_list_collectionsLists configured content collections, including each folder's index, label, path, and field schema.
Inputs: none.
Example prompt: "What content collections does this site have?"
content_create_collection
content_create_collectionCreates and registers a new top-level content collection. If the directory does not exist, the CMS creates it recursively before registering the collection. When the destination is ambiguous, the assistant should confirm the server filesystem path before using this tool.
Required:
labelstring,pathstring.Restriction: admin role required.
Example prompt: "Create a new content collection called Case Studies next to my blog folder."
content_list_items
content_list_itemsLists Markdown items inside a collection. Licensed installs can also drill into a subfolder.
Required:
folderinteger.Optional:
subpathstring.Example prompt: "Show me all posts in the blog folder."
content_read_item
content_read_itemReads a single Markdown item, including frontmatter and body.
Required:
folderinteger,filestring.Optional:
subpathstring.Example prompt: "Read the full text of my latest press release."
content_create_item
content_create_itemCreates a Markdown item in a collection. The filename is prefixed with today's date by default. If no slug is supplied, the slug is derived from the title.
Required:
folderinteger,fmobject.Optional:
subpathstring,slugstring,bodystring,date_prefixboolean.Example prompt: "Draft a new blog post titled 'Spring update' with tags 'news' and 'product'."
content_update_item
content_update_itemUpdates an existing Markdown item. New frontmatter fields merge over old ones, and omitted fields are preserved. If body is supplied, it replaces the Markdown body.
Required:
folderinteger,filestring.Optional:
subpathstring,slugstring,fmobject,bodystring.Example prompt: "Set yesterday's post status to published."
content_delete_item
content_delete_itemDeletes a Markdown item and cleans up its version history.
Required:
folderinteger,filestring.Optional:
subpathstring.Example prompt: "Delete the draft titled 'Scratch notes'."
Resources and Media
resources_list
resources_listLists files inside a resource folder.
Required:
folderinteger.Optional:
subpathstring.Example prompt: "What is in my press-kit folder?"
resources_upload_request
resources_upload_requestMints a one-shot upload URL that expires after 120 seconds. This is the preferred upload path because file bytes do not pass through the conversation.
Required:
folderinteger,filenamestring.Optional:
subpathstring,media_onlyboolean.Example prompt: "Upload these three photos to the gallery folder."
resources_upload
resources_uploadUploads a tiny file inline as base64. Use this only for files under roughly 256 KB. For larger files, use resources_upload_request.
Required:
folderinteger,filenamestring,content_b64string.Optional:
subpathstring.Example prompt: "Save this SVG I just pasted as favicon.svg in the root resources folder."
media_upload
media_uploadUploads a tiny image inline as base64 and validates that the content is an allowed image type. Use this only for images under roughly 256 KB.
Required:
filenamestring,content_b64string.Optional:
folderinteger,subpathstring.Example prompt: "Use this small logo for the site."
resources_move
resources_moveMoves a resource file to another subfolder and/or renames it. The destination subfolder must already exist. The file extension is preserved.
Required:
folderinteger,filestring.Optional:
subpathstring,dest_subpathstring,new_filenamestring.Example prompt: "Move hero.jpg from the homepage folder into the archive folder."
resources_rename
resources_renameRenames a resource file in place. The file extension is preserved.
Required:
folderinteger,filestring,newNamestring.Optional:
subpathstring.Example prompt: "Rename all press photos to start with
press-."
resources_delete
resources_deleteDeletes a resource file. Use content_delete_item for Markdown posts.
Required:
folderinteger,filestring.Optional:
subpathstring.Example prompt: "Delete the old logo from the resources folder."
resources_create_folder
resources_create_folderCreates a subfolder inside a resource folder. Folder names may contain letters, numbers, hyphens, and underscores.
Required:
folderinteger,namestring.Optional:
subpathstring.Restriction: requires MCP access.
Example prompt: "Create a subfolder called 'press-kit' inside resources."
Site Settings
settings_get_theme
settings_get_themeReads the site's theme settings.
Inputs: none.
Example prompt: "What is the site's current accent colour?"
settings_update_theme
settings_update_themeUpdates site theme settings.
Optional:
site_name,preset(light,dark, orauto),accent_color,surface_color,font_heading,font_body.Restriction: owner role required.
Example prompt: "Switch the site to dark mode and change the accent colour to teal."
settings_list_users
settings_list_usersLists Online Editor users.
Inputs: none.
Restriction: admin role required.
Example prompt: "Who has admin access?"
settings_list_webhooks
settings_list_webhooksLists configured webhooks.
Inputs: none.
Restriction: owner role required.
Example prompt: "What webhooks are set up on this site?"
Version History
Version history tools require active MCP access and use the same permissions as the Online Editor.
versions_list
versions_listLists saved versions for an item.
Required:
folderinteger,filestring.Optional:
subpathstring.Example prompt: "Show me the history of yesterday's blog post."
versions_read
versions_readReads a specific saved version.
Required:
folderinteger,filestring,versionstring.Optional:
subpathstring.Example prompt: "What did that post look like before I edited it this morning?"
versions_restore
versions_restoreRestores a previous version, overwriting the current item.
Required:
folderinteger,filestring,versionstring.Optional:
subpathstring.Example prompt: "Roll yesterday's post back to the version from 9am."
MCP Resources
The MCP server also exposes read-only resources. Assistants can use these for context without making a tool call.
cms://site
Site name, theme basics, install counts, and the connected user's role.
cms://collections
All content collections with their field schemas.
cms://collection/{index}
Items in a specific collection, sorted by modified date.
cms://item/{folder_index}/{filename}
The raw Markdown for a specific item.
Example prompt:
"Look at the available CMS resources and tell me what content this site contains."
Last updated
Was this helpful?

