MCP.so
Sign In
E

Elmapicms Mcp Server

@elmapicms

About Elmapicms Mcp Server

An MCP server that connects AI agents like Cursor and Claude Code to your ElmapiCMS instance. Manage collections, fields, content entries, and assets programmatically through natural language.

Config

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

{
  "mcpServers": {
    "elmapicms": {
      "command": "npx",
      "args": [
        "@elmapicms/mcp-server"
      ],
      "env": {
        "ELMAPI_API_URL": "https://your-domain.com/api",
        "ELMAPI_API_KEY": "your-api-key",
        "ELMAPI_PROJECT_ID": "your-project-uuid"
      }
    }
  }
}

Tools

40

Get information about the current Elmapi 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. URL/permalink fields MUST use type "slug" (never "text"). Attach with options.slug.field to the source text field name (e.g. "title"), and set required + unique validations. See elmapicms://field-types for options and patterns.

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. state='published' (default) returns each entry's published snapshot fields (not live draft edits). state='draft' returns entries whose state is draft.

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. state='published' (default) returns the published snapshot; state='draft' returns live draft fields for draft entries. A published entry with unpublished draft edits still serves its last snapshot under state='published' until publish_entry.

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

Discard unpublished draft changes and restore the draft from the current published version (or clear draft when unpublished). Does not delete the entry or remove historical versions. Requires **update** ability.

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 Elmapicms Mcp Server?

An MCP server that connects AI agents like Cursor and Claude Code to your ElmapiCMS instance, enabling programmatic management of collections, fields, content entries, and assets through natural language.

How to use Elmapicms Mcp Server?

Key features of Elmapicms Mcp Server?

  • Connects AI agents to ElmapiCMS
  • Manage collections programmatically
  • Manage fields programmatically
  • Manage content entries programmatically
  • Manage assets programmatically
  • Natural language interaction

Use cases of Elmapicms Mcp Server?

FAQ from Elmapicms Mcp Server?

Comments

More Developer Tools MCP servers