elmapicms

ElmapiCMS MCP Server

Community elmapicms
Updated

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": ["@elmapicms/mcp-server"],
      "env": {
        "ELMAPI_API_URL": "https://your-domain.com/api",
        "ELMAPI_API_KEY": "store-project-api-key",
        "ELMAPI_PROJECT_ID": "store-project-uuid"
      }
    }
  }
}

License

MIT

MCP Server · Populars

MCP Server · New