MCP.so
Sign In
N

Nomacms Mcp Server

@NomaCMS

About Nomacms Mcp Server

MCP server for NomaCMS. Manage collections, fields, content, and assets via AI agents.

Config

Add this server to your MCP-compatible client using the configuration below.

{
  "mcpServers": {
    "nomacms": {
      "command": "npx",
      "args": [
        "-y",
        "@nomacms/mcp-server"
      ],
      "env": {
        "NOMA_API_KEY": "your-api-key",
        "NOMA_PROJECT_ID": "your-project-uuid"
      }
    }
  }
}

Tools

39

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

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 the project's default locale. Adds the locale to the list if it was missing. Requires admin API ability.

List all collections in the project

Get a single collection with its full field schema by slug

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

Update the name and slug of an existing collection

Update the display order of collections

Add a new field to a collection

Update an existing field on a collection

Update the display order of fields within a collection

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 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 a new content entry in a collection

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.

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.

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.

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`.

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

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.

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

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.

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

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.

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'.

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 a version's editable label and/or description. The snapshot payload itself is immutable.

List assets in the project with optional pagination.

Get an asset by its UUID or by filename.

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

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

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

Delete an asset by UUID

List all webhooks configured for the current project

Get a webhook by UUID

Create a webhook for content and auth events

Update a webhook by UUID

Delete a webhook by UUID

List delivery logs for a webhook

Overview

What is Nomacms Mcp Server?

The NomaCMS MCP Server connects AI agents like Cursor and Claude Code to a NomaCMS project, enabling management of collections, fields, content entries, assets, and webhooks through natural language.

How to use Nomacms Mcp Server?

Configure the server with a NOMA_API_KEY (from User settings → API keys) and a NOMA_PROJECT_ID (from the project home page or Project settings → API Access). Add a named MCP entry to your Cursor MCP settings (~/.cursor/mcp.json) or use the Claude Code CLI. Multiple projects can be added as separate MCP entries.

Key features of Nomacms Mcp Server

  • Connects AI agents to NomaCMS for content management.
  • Provides 39 tools across collections, fields, entries, assets, and webhooks.
  • Supports read, create, update, delete, and admin abilities.
  • Offers three reference resources: field types, collections guide, queries.
  • Allows multiple projects with separate MCP entries.
  • Content API supports advanced filtering, pagination, and versioning.

Use cases of Nomacms Mcp Server

  • Manage collections and fields via natural language.
  • Create, update, publish, and unpublish content entries programmatically.
  • Upload and manage assets in bulk.
  • Configure webhooks and monitor their delivery logs.
  • Link translations and revert entry versions.

FAQ from Nomacms Mcp Server

What API key abilities are needed for which tools?

Read abilities are needed for list/get operations; create for entries, assets, and webhooks; update for entries, asset metadata, and webhooks; delete for entries, assets, and webhooks; admin for collections, fields, and project locales. The README provides a full table.

Can I work with multiple NomaCMS projects?

Yes, each MCP entry connects to a single project. Add separate entries in your MCP config, each with its own NOMA_API_KEY and NOMA_PROJECT_ID.

How are content entry fields handled?

Fields are custom per collection. Richtext values are markdown strings on write; on read they return either raw markdown or HTML depending on the field’s editor.outputFormat. Relation fields require the related entry’s UUID or numeric ID on write and return nested objects on read.

What resources does the server provide for AI context?

Three resources: nomacms://field-types (16 field types reference), nomacms://collections-guide (best practices), and nomacms://query-reference (full filtering and pagination docs).

Is locale removal exposed through this server?

No. Only adding locales and setting the default locale are available (admin ability). To remove a locale, use the NomaCMS dashboard under Project settings → Localization.

Frequently asked questions

What API key abilities are needed for which tools?

Read abilities are needed for list/get operations; create for entries, assets, and webhooks; update for entries, asset metadata, and webhooks; delete for entries, assets, and webhooks; admin for collections, fields, and project locales. The README provides a full table.

Can I work with multiple NomaCMS projects?

Yes, each MCP entry connects to a single project. Add separate entries in your MCP config, each with its own `NOMA_API_KEY` and `NOMA_PROJECT_ID`.

How are content entry fields handled?

Fields are custom per collection. Richtext values are markdown strings on write; on read they return either raw markdown or HTML depending on the field’s `editor.outputFormat`. Relation fields require the related entry’s UUID or numeric ID on write and return nested objects on read.

What resources does the server provide for AI context?

Three resources: `nomacms://field-types` (16 field types reference), `nomacms://collections-guide` (best practices), and `nomacms://query-reference` (full filtering and pagination docs).

Is locale removal exposed through this server?

No. Only adding locales and setting the default locale are available (admin ability). To remove a locale, use the NomaCMS dashboard under Project settings → Localization.

Comments

More Other MCP servers