Skip to main content
Glama
NomaCMS

NomaCMS MCP Server

Official
by NomaCMS

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
NOMA_API_KEYYesAPI key from User settings → API keys
NOMA_PROJECT_IDYesYour project's UUID

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_projectA

Get information about the current Noma project (name, uuid, default_locale, locales, etc.)

add_project_localeA

Add a locale code (e.g. tr, es) to the project. Requires admin API ability. Codes are lowercased. Call when setting up a multilingual site before creating translated content.

set_default_project_localeA

Set the project's default locale. Adds the locale to the list if it was missing. Requires admin API ability.

list_collectionsA

List all collections in the project

get_collectionA

Get a single collection with its full field schema by slug

create_collectionA

Create a new collection. Optionally include field definitions to create the collection with its full schema in a single request.

update_collectionC

Update the name and slug of an existing collection

reorder_collectionsB

Update the display order of collections

create_fieldB

Add a new field to a collection

update_fieldB

Update an existing field on a collection

reorder_fieldsB

Update the display order of fields within a collection

list_entriesB

List content entries for a collection with advanced filtering, sorting, and pagination. Use the 'where' parameter for powerful queries. Read the 'query-reference' resource for full documentation on operators and examples.

get_entryA

Get a single content entry by UUID. Response includes uuid, locale, published_at, and a fields object (custom field values — not a nested data key). Relation fields appear as nested entry objects (one-to-one) or arrays of entries (one-to-many), not as bare UUIDs.

create_entryB

Create a new content entry in a collection

update_entryA

Replace an existing content entry (HTTP PUT). Sends the full data payload; required fields (e.g. title, slug) must be included. Saves NEVER change the publish state — if the entry has a published version, the public API keeps serving that snapshot under state=published until you explicitly call publish_entry. Use patch_entry for partial updates and publish_entry/unpublish_entry to control visibility.

patch_entryA

Partially update a content entry (HTTP PATCH). Only include fields you want to change (e.g. relations, one field). Saves NEVER change the publish state — call publish_entry explicitly to mint a new version. Prefer this over update_entry when you are not replacing the entire entry.

publish_entryA

Mint a new immutable version from the entry's current draft and make it the live published version. After this call, state=published reads from the public API will return the new snapshot and is_draft_dirty is reset to false.

unpublish_entryA

Clear the live published pointer for an entry. The entry becomes invisible under state=published in the public API, but all historical versions are retained and still accessible via list_entry_versions / get_entry_version.

delete_entryA

Soft-delete a content entry (moves to trash). Can be restored from the admin panel.

link_entry_translationA

Merge two entries in the same collection into one translation group (same as dashboard “link translation”). Both entries must exist, belong to this collection, and have different locales. There is no unlink via API — use the dashboard if you need to split a group. Requires an API key with update ability.

bulk_create_entriesA

Create multiple content entries atomically. If one item fails, the whole request is rolled back.

bulk_update_entriesA

Update multiple content entries atomically by UUID. If one item fails, all updates are rolled back. Saves never change publish state — call publish_entry per UUID to mint new versions after bulk updates.

bulk_delete_entriesA

Delete multiple content entries atomically by UUID. If one delete fails, no entries are deleted.

list_entry_versionsA

List all published versions for a content entry (newest first). Each version is an immutable snapshot taken at publish time. Response includes version_number, label, description, published_at, created_by, and is_current_published for each version.

get_entry_versionA

Fetch a single version's metadata and raw snapshot payload. The snapshot contains the saved field values in restoration format; for API-rendered content use get_entry with state='published'.

revert_entry_versionA

Restore the draft to a previous version's snapshot and publish it as a new version. The current unpublished draft is replaced. Returns the new version number.

update_entry_version_labelA

Update a version's editable label and/or description. The snapshot payload itself is immutable.

list_assetsC

List assets in the project with optional pagination.

get_assetA

Get an asset by its UUID or by filename.

upload_assetB

Upload a local file as an asset. Provide the absolute file path.

bulk_upload_assetsA

Upload multiple local files as assets atomically. If one upload fails, all uploads are rolled back.

bulk_update_asset_metadataA

Update metadata for multiple assets atomically by UUID. If one item fails, all updates are rolled back.

delete_assetB

Delete an asset by UUID

list_webhooksA

List all webhooks configured for the current project

get_webhookB

Get a webhook by UUID

create_webhookC

Create a webhook for content and auth events

update_webhookC

Update a webhook by UUID

delete_webhookB

Delete a webhook by UUID

list_webhook_logsB

List delivery logs for a webhook

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
field-typesComplete reference of all 16 Noma field types, their options, validations, and common patterns. Read this before creating fields.
collections-guideGuide for working with Noma collections — properties, singletons, reserved slugs, and best practices.
query-referenceComplete reference for querying content entries — where filters, operators, OR groups, relation filtering, sorting, pagination, and examples. Read this before building complex queries.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/NomaCMS/nomacms-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server