Skip to main content
Glama
elmapicms

elmapicms-mcp-server

Official
by elmapicms

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

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/elmapicms/elmapicms-mcp-server'

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