ElmapiCMS MCP Server

1

Add it to Claude Code

Run this in a terminal.

Run in terminal
claude mcp add -e "ELMAPI_API_URL=${ELMAPI_API_URL}" -e "ELMAPI_API_KEY=${ELMAPI_API_KEY}" -e "ELMAPI_PROJECT_ID=${ELMAPI_PROJECT_ID}" elmapicms -- npx @elmapicms/mcp-server
Required:ELMAPI_API_URLELMAPI_API_KEYELMAPI_PROJECT_ID
README.md

Connect AI agents to your ElmapiCMS instance for content management.

ElmapiCMS MCP Server

An MCP (Model Context Protocol) 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.

Installation

npm install -g @elmapicms/mcp-server

Or install locally:

npm install @elmapicms/mcp-server

Configuration

The server requires three environment variables:

Variable Description
ELMAPI_API_URL Base API URL (e.g., https://your-domain.com/api)
ELMAPI_API_KEY API token with the required abilities
ELMAPI_PROJECT_ID Project UUID

Usage with Cursor

Add this to your Cursor MCP settings (~/.cursor/mcp.json):

{
  "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"
      }
    }
  }
}

Usage with Claude Code

Add the MCP server using the Claude Code CLI:

claude mcp add elmapicms \
  -e ELMAPI_API_URL=https://your-domain.com/api \
  -e ELMAPI_API_KEY=your-api-key \
  -e ELMAPI_PROJECT_ID=your-project-uuid \
  -- npx @elmapicms/mcp-server

Local Development (Laravel Herd / .test domains)

If your ElmapiCMS instance runs on a .test domain with a self-signed SSL certificate (e.g., via Laravel Herd), add this to your env config:

"env": {
  "ELMAPI_API_URL": "https://myproject.test/api",
  "ELMAPI_API_KEY": "your-api-key",
  "ELMAPI_PROJECT_ID": "your-project-uuid",
  "NODE_TLS_REJECT_UNAUTHORIZED": "0"
}

Note: Only use NODE_TLS_REJECT_UNAUTHORIZED=0 for local development. Do not use this in production.

Available Tools (17)

Project

  • get_project — Get project information

Collections

  • list_collections — List all collections
  • get_collection — Get a collection with its full field schema
  • create_collection — Create a collection (with optional batch field creation)
  • update_collection — Update a collection's name and slug
  • reorder_collections — Reorder collections

Fields

  • create_field — Add a field to a collection
  • update_field — Update a field
  • reorder_fields — Reorder fields within a collection

Content Entries

  • list_entries — List entries with advanced filtering (where with 13 operators, OR groups, relation filtering), sorting, pagination, count, and first
  • get_entry — Get a single content entry
  • create_entry — Create a content entry
  • update_entry — Update a content entry
  • delete_entry — Soft-delete a content entry (moves to trash)

Assets

  • list_assets — List assets with pagination
  • get_asset — Get an asset by UUID or filename
  • upload_asset — Upload a file as an asset
  • delete_asset — Delete an asset

Resources

The server exposes three reference resources that AI agents can read for context:

  • Field Types Reference (elmapicms://field-types) — Complete reference of all 16 field types, their options, validations, and common patterns.
  • Collections Guide (elmapicms://collections-guide) — Guide for working with collections, singletons, reserved slugs, and best practices.
  • Query Reference (elmapicms://query-reference) — Full documentation for content queries: where filters with 13 operators, OR groups, relation filtering, sorting, pagination, and examples.

Token Abilities

Your API token needs the appropriate abilities for the tools you want to use:

Ability Tools
read list/get collections, entries, assets
create create entries, upload assets
update update entries
delete delete entries, delete assets
admin create/update/reorder collections and fields

You can generate API tokens from your project's Settings > API Access page.

Using Multiple Projects

Each MCP server instance connects to a single project. To work with multiple projects, add separate entries in your MCP config:

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

Tools (18)

get_projectGet project information
list_collectionsList all collections
get_collectionGet a collection with its full field schema
create_collectionCreate a collection (with optional batch field creation)
update_collectionUpdate a collection's name and slug
reorder_collectionsReorder collections
create_fieldAdd a field to a collection
update_fieldUpdate a field
reorder_fieldsReorder fields within a collection
list_entriesList entries with advanced filtering, sorting, pagination, count, and first
get_entryGet a single content entry
create_entryCreate a content entry
update_entryUpdate a content entry
delete_entrySoft-delete a content entry (moves to trash)
list_assetsList assets with pagination
get_assetGet an asset by UUID or filename
upload_assetUpload a file as an asset
delete_assetDelete an asset

Environment Variables

ELMAPI_API_URLrequiredBase API URL (e.g., https://your-domain.com/api)
ELMAPI_API_KEYrequiredAPI token with the required abilities
ELMAPI_PROJECT_IDrequiredProject UUID

Configuration

claude_desktop_config.json
{"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"}}}}

Try it

List all collections in my ElmapiCMS project.
Create a new blog post entry in the 'posts' collection with the title 'Hello World'.
Find all entries in the 'products' collection where the price is greater than 100.
Upload the file 'banner.jpg' to the assets library.

Frequently Asked Questions

What are the key features of ElmapiCMS?

Programmatic management of collections, fields, and content entries.. Advanced content filtering with 13 operators and OR groups.. Full asset management including upload and deletion.. Reference resources for field types and query documentation.. Support for multiple project instances via separate configurations..

What can I use ElmapiCMS for?

Automating content updates for headless CMS projects using AI agents.. Programmatically restructuring CMS schemas and fields via natural language.. Bulk importing or managing assets directly from the development environment.. Querying complex content relationships without writing manual API requests..

How do I install ElmapiCMS?

Install ElmapiCMS by running: npm install -g @elmapicms/mcp-server

What MCP clients work with ElmapiCMS?

ElmapiCMS works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep ElmapiCMS docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare