Skip to main content Skip to page footer

Permissions & Scopes

Every action through the TYPO3 AI Suite MCP server runs as the backend user for whom the token or OAuth grant was issued, with their full TYPO3 rights. Page and file mounts, table and field rights, as well as the feature and model rights of the AI Suite are enforced unchanged.

The OAuth scopes additionally apply. They can only restrict access, never extend it beyond the TYPO3 rights of the user.

Backend Permission

For a user to use the TYPO3 AI Suite MCP server at all, their backend group must have the feature right enable_mcp_access. If it is missing, the client connects, but every tool call is rejected with "no permission".

Which tools are available for using AI Suite features is determined by the respective AI Suite feature rights (e.g., metadata generation, translation, image generation). Without the appropriate right, the affected tool does not appear in the tool list of the model at all. Rights are assigned as usual per backend group, see Permission Management.

These feature rights are required for the TYPO3 AI Suite MCP:

  • enable_mcp_access: Mandatory. Main switch for MCP and the MCP dashboard in the backend module, checked directly with every request. No OAuth scope corresponds to this right.
  • enable_metadata_generation: for batchGenerateMetadata, generateFileMetadata, batchGenerateFileMetadata, batchGenerateFolderMetadata.
  • enable_translation: for all translation tools with external AI providers.
  • enable_image_generation: for generateImage.
  • enable_massaction_generation: for batch and background tools.
  • enable_mcp_media_upload: for uploadMedia.
  • enable_mcp_rendered_page_read: for readRenderedPage.
  • enable_audit: for the seven audit tools, since version 0.8.0.

A right usually applies to an entire scope. There are two exceptions. The first is readRenderedPage. The tool sits in the rights-free scope mcp:read but additionally needs enable_mcp_rendered_page_read. It renders the page via a backend preview session of the MCP user and thus also delivers hidden pages, unpublished pages, and workspace drafts, i.e., content that a simple retrieval of the public URL never reaches. The right is attached to the tool and not the scope, otherwise, all reading tools would be eliminated with a switch. Without the right, the tool does not appear in the tool list, and a forced call ends with a permission error. The user's page rights apply unchanged on top.

The second exception is the audit tools added in version 0.8.0. They sit in the mcp:read scope as well, because they only read from TYPO3, and yet they need their own right enable_audit. The concern here points the other way: they send the page URL, and with it the page content, to the AutoDudes audit infrastructure, so data leaves the TYPO3 instance. The right covers all seven tools, including the free readAuditResults. Without it they do not appear in the tool list.

Watch out for the name clash: since 14.5.0 the AI Suite itself also has a right called enable_audit, for its audit module in the backend. The two share a key but sit in different extensions, so they have to be set separately.

OAuth Scopes

Each tool is assigned to a scope. A scope is only granted to a token if the backend group possesses at least one of the associated AI Suite feature rights.

ScopeRequired AI Suite PermissionCovers
mcp:readnone (basic)All reading and exploratory tools
mcp:writenone (preview and confirmation enforced per tool)Record CRUD via the DataHandler
mcp:generateenable_metadata_generation, enable_content_element_generation, enable_pages_generationGeneration of content, metadata, page trees, and landing pages
mcp:translateenable_translationAll translation tools
mcp:imageenable_image_generationAI image generation
mcp:mediaenable_mcp_media_uploadMedia upload to FAL (uploadMedia)
mcp:workflowenable_massaction_generationBatch and background task tools

There are no more scopes. Easy language and the DeepL glossary are not separate scopes but part of the translation tools under mcp:translate: The site's glossary is automatically applied, and easy language runs through the same tools. The scopes a token actually receives are listed on the consent page when connecting.