Blog
What is MCP and how does a CMS MCP server help your AI editor?
If you build with Cursor, Claude Code, or Windsurf, you have probably pasted the same CMS docs into chat more than once. Schema rules, auth headers, field types, publish flows. The model helps, but it starts cold every session.
MCP (Model Context Protocol) is an open standard that lets AI clients call tools and read resources from external services. Instead of guessing your stack, the editor can list collections, create entries, and check field types through structured calls.
NomaCMS ships @nomacms/mcp-server and agent skills so your editor already knows Noma patterns. This post explains MCP in plain language, then shows how to wire it up for a NomaCMS project.
MCP in 60 seconds
Think of MCP as a USB port between your AI editor and your tools.
| Piece | What it does |
|---|---|
| MCP client | Your editor (Cursor, Claude Code, etc.) |
| MCP server | A small program that exposes tools and resources |
| Tools | Actions the agent can call (list entries, create a field, upload an asset) |
| Resources | Reference docs the agent can read (field types, query syntax) |
The client launches the server process and talks over stdio (standard input/output). You do not host a public URL for local MCP. The editor starts @nomacms/mcp-server with npx, passes your credentials as environment variables, and the agent discovers tools automatically.
Why a generic MCP server is not enough for CMS work
Filesystem and GitHub MCP servers are useful. They do not know that:
- NomaCMS entries store custom values under
fields, notdata - Relation fields accept UUIDs on write but return nested objects on read
- Content API keys need specific abilities (
read,create,update,delete,admin) - Project auth tokens are separate from personal access tokens
A CMS-specific MCP server encodes those rules in tools and reference resources. That is what @nomacms/mcp-server provides: 39 tools plus three built-in resources (nomacms://field-types, nomacms://collections-guide, nomacms://query-reference).
What the NomaCMS MCP server can do
Grouped by task:
| Area | Examples |
|---|---|
| Project | get_project, add or set default locales |
| Schema | list_collections, create_collection, create_field, reorder fields |
| Content | list_entries, create_entry, publish_entry, bulk create/update/delete |
| Assets | upload_asset, list_assets, bulk metadata updates |
| Webhooks | create_webhook, list_webhook_logs |
The server uses the same Content API as the dashboard and JavaScript SDK. It authenticates with your personal access token and project id.
What it does not expose: deleting collections and removing locales (use the dashboard for those).
Before you install: get credentials
- Open app.nomacms.com and select the workspace that owns your project.
- Create an API key under User Settings → API Keys. For local dev, many teams enable all abilities (
read,create,update,delete,admin) so schema and content tools work without permission errors. - Copy your Project ID from the project home page or Project Settings → API Access.
Install in Cursor
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"nomacms": {
"command": "npx",
"args": ["-y", "@nomacms/mcp-server"],
"env": {
"NOMA_API_KEY": "your-api-key",
"NOMA_PROJECT_ID": "your-project-uuid"
}
}
}
}Restart Cursor or reload MCP settings.
Install in Claude Code
claude mcp add nomacms \
-e NOMA_API_KEY=your-api-key \
-e NOMA_PROJECT_ID=your-project-uuid \
-- npx -y @nomacms/mcp-serverAdd agent skills (the missing half)
MCP gives your editor hands. Agent skills give it memory of how Noma works.
Install from the official skills repo:
npx skills add nomacms/nomacms-agent-skills --skill '*'That installs all 13 skills. A lighter starting set:
npx skills add nomacms/nomacms-agent-skills \
--skill noma-sdk-setup \
--skill noma-content \
--skill noma-errorsAdd noma-user-auth if your app has end-user accounts. Add noma-nextjs, noma-nuxt, or framework skills that match your stack.
Skills teach the agent SDK method names, auth contracts, and error handling so you spend less time correcting hallucinated API shapes.
Example prompts that work well
Once MCP and skills are connected, try prompts like:
- "List my collections and summarize the schema for posts."
- "Create a Products collection with title, price, and image fields."
- "Draft three blog entries in English and publish the first one."
- "Set up a webhook that fires when entries are published."
The agent should call MCP tools instead of inventing REST paths. If you get 403, check API key abilities. Webhook routes need admin.
MCP vs dashboard AI: when to use which
| Situation | Best option |
|---|---|
| Building your app in an AI editor | MCP + skills |
| Editors writing content in the CMS | Dashboard + Noma Assistant |
| Quick field rewrite or translation | Dashboard inline AI |
| CI or production automation | REST API or SDK, not MCP |
MCP is for your development workflow. It is not a replacement for the Content API in production apps.
Multiple projects
Each MCP entry connects to one project. Use separate mcpServers blocks with different NOMA_PROJECT_ID and API key values if you manage marketing and app content separately. Create each API key while the matching workspace is selected in the dashboard.
What to explore next
Every NomaCMS plan includes MCP, agent skills support, and a 7-day free trial.