Available Tools
The MCP server registers 39 tools and 3 resources. Tool responses are JSON text suitable for agents to parse. Under the hood they call https://app.nomacms.com/api with your configured project id and API key scoped to that project’s workspace (see Authentication).
Resources
Agents can read these URIs for long-form reference (field types, collections behavior, and query syntax):
| URI | Title |
|---|---|
nomacms://field-types | Field Types Reference — all 16 field types, options, validations |
nomacms://collections-guide | Collections Guide — singletons, reserved slugs, field order |
nomacms://query-reference | Content Query Reference — where operators, OR groups, sort, pagination |
Project
| Tool | Description |
|---|---|
get_project | Project metadata (default_locale, locales, and related fields) |
add_project_locale | Add a locale code (admin) |
set_default_project_locale | Set the default locale (admin) |
Collections
| Tool | Description |
|---|---|
list_collections | List all collections |
get_collection | One collection by slug, including field schema |
create_collection | Create a collection; optional fields array to define schema in one step |
update_collection | Update name and slug |
reorder_collections | Set display order by collection UUID |
Fields
| Tool | Description |
|---|---|
create_field | Add a field to a collection |
update_field | Update field definition |
reorder_fields | Reorder fields within a collection |
There is no delete_field tool in MCP; remove or adjust fields in the NomaCMS app if needed.
Content entries
| Tool | Description |
|---|---|
list_entries | List with where filters, sort, pagination, first, or count |
get_entry | Single entry by collection slug and entry UUID |
create_entry | Create an entry |
update_entry | Replace entry draft fields (never changes publish state) |
patch_entry | Partial update of draft fields (never changes publish state) |
publish_entry | Mint a new version from the draft and make it live (update) |
unpublish_entry | Clear the live published pointer; versions retained (update) |
delete_entry | Soft-delete (trash) |
link_entry_translation | Link two entries across locales (update) |
bulk_create_entries | Create many entries atomically (supports publish-on-create) |
bulk_update_entries | Update many drafts by UUID atomically; call publish_entry afterwards |
bulk_delete_entries | Delete many entries by UUID atomically |
Save vs. publish: update_entry, patch_entry, and bulk_update_entries only mutate the draft — the entry's last published version keeps serving state=published reads. Use publish_entry / unpublish_entry to change public visibility.
Drafts vs. published reads: list_entries and get_entry default to state=published, which reads the latest immutable snapshot. Pass state=draft to read live working-draft field values.
Richtext: On write, set richtext fields to a markdown string. On read, shape depends on the field’s editor.outputFormat (markdown vs html), consistent with the Content API.
Content entry versions
Every publish writes an immutable snapshot. These tools expose that history.
| Tool | Description |
|---|---|
list_entry_versions | List all versions for an entry (most recent first) |
get_entry_version | Fetch a single version by version_number, including the snapshot payload |
revert_entry_version | Restore the draft from a prior snapshot and publish it as a new version (update) |
update_entry_version_label | Edit label and/or description on a version; snapshot stays immutable (update) |
Version retention is plan-based (Basic 10 / Grow 50 / Pro unlimited). When the cap is reached, the oldest versions are pruned on the next publish — the currently published version is never pruned. See Versions.
Media fields: Responses include url, thumbnail_url, and original_url where applicable (optional ?variant= query as in the API).
Assets
| Tool | Description |
|---|---|
list_assets | List with pagination |
get_asset | By UUID or filename |
upload_asset | Upload a file |
bulk_upload_assets | Upload multiple files atomically |
bulk_update_asset_metadata | Update metadata for multiple assets |
delete_asset | Delete an asset |
Webhooks
All webhook HTTP routes require the admin ability on your API key (not only read or create).
| Tool | Description |
|---|---|
list_webhooks | List all webhooks |
get_webhook | One webhook by UUID |
create_webhook | Create (events, URL, optional secret, collections, and so on) |
update_webhook | Update by UUID |
delete_webhook | Delete by UUID |
list_webhook_logs | Delivery logs for a webhook |
Package reference
The canonical list and implementation details stay in the open-source repo: nomacms-mcp-server on GitHub and the package README on npm.
Related
- MCP Server Overview - Scope and limitations
- MCP Server Setup - Environment variables and API key abilities
- Advanced Filtering - REST query parameters that align with
list_entries - Agent Skills - SDK and workflow skills for the code your agent writes alongside MCP