Skip to content

MCP Server

Use the MCP server when an AI client should read or edit Contismo content. Websites and apps should keep using the GraphQL API.

Turn the server on and choose which models, drafts, and writes are allowed in Settings → MCP. See MCP.

The server speaks Streamable HTTP. Clients connect to:

https://mcp.contismo.com

The MCP server supports both OAuth 2.1 (RFC 9728 / RFC 8414 with PKCE S256 and Dynamic Client Registration) and MCP API keys. GraphQL keys are rejected.

When an unauthenticated MCP client connects to https://mcp.contismo.com, the server responds with 401 Unauthorized and a WWW-Authenticate header pointing to the Protected Resource Metadata endpoint.

Endpoint URL
Protected Resource Metadata (RFC 9728) https://mcp.contismo.com/.well-known/oauth-protected-resource
Authorization Server Metadata (RFC 8414) https://mcp.contismo.com/.well-known/oauth-authorization-server
Dynamic Client Registration (RFC 7591) https://mcp.contismo.com/oauth/register
Authorization Endpoint https://mcp.contismo.com/oauth/authorize
Token Endpoint https://mcp.contismo.com/oauth/token
Token Revocation (RFC 7009) https://mcp.contismo.com/oauth/revoke

Supported OAuth scopes:

  • mcp:read: Read-only access (MCP - Read Only)
  • mcp:write: Read and write access (MCP - Read/Write)

When an authorization code is exchanged at /oauth/token, Contismo automatically creates a standard MCP API key named after the client in the authorized workspace. Editing or revoking that key in Settings → API Keys takes effect immediately on all subsequent OAuth requests and token refreshes.

Clients that do not use OAuth can authenticate directly with a project MCP API key:

Authorization: Bearer <your-mcp-api-key>
X-Environment: <environment-api-id>

X-Environment is optional when a default environment is saved in the Studio (or falls back to master).

Key Prefix Access
MCP - Read Only mcp_ Read tools only
MCP - Read/Write mcpw_ Read tools, plus write tools when Allow Writes is on

A disabled server returns 403. Requests count toward the project’s monthly API call quota, the same limit as GraphQL.

Call get_content_model first and use each field’s apiId in later tools. Only models selected in Studio are visible. An empty model list means every content model.

Tool What it returns
list_content_models Models the server is allowed to expose
get_content_model Fields and taxonomy assignments for one model
list_entries Entries for a model, with limit, offset, locale, status, and filters
get_entry One entry by model API ID and entry ID. Singletons do not need an ID
list_locales Locales for the current environment
list_taxonomies Taxonomies in the current environment
list_taxonomy_terms Terms for one taxonomy
get_ui_translations UI translation strings for a locale

Read tools default to published entries. A status of DRAFT, IN_REVIEW, or SCHEDULED is accepted only when Allow Drafts is on, or when the key can write.

Asset fields on an entry include metadata and the delivery URL. The server does not upload files.

Write tools are registered only for a read-write key when Allow Writes is on. They do not change models, components, or fields.

Tool What it does
create_entry Create an entry. input keys are field API IDs
update_entry Update an entry, including status and schedule
delete_entry Delete an entry by model API ID and entry ID

Status values match GraphQL: DRAFT, IN_REVIEW, PUBLISHED, and SCHEDULED. create_entry and update_entry also accept scheduledPublishAt and scheduledUnpublishAt as ISO datetime strings, plus locale and taxonomy assignments.

Resources mirror the read tools for clients that prefer URIs:

  • contismo://models
  • contismo://model/{apiId}
  • contismo://entry/{modelApiId}/{id}

Copy the snippet from Settings → MCP, or use this shape. Replace the key and environment.

{
"mcpServers": {
"contismo": {
"url": "https://mcp.contismo.com",
"headers": {
"Authorization": "Bearer YOUR_MCP_API_KEY",
"X-Environment": "master"
}
}
}
}