Skip to content

Page creation not possible, because 'pages.sys_language_uid' not exposed via TcaSchema #94

@twaurisch

Description

@twaurisch

Versions

  • TYPO3 v13.4.30
  • EXT:mcp_server v0.4.2

Prompt

In shop-typo3-remote:
Erstelle eine neue Unterseite unter der Seite mit der page id: 135280. Die Unterseite soll den Titel 
"Test vom MCP Server via Claude Desktop" haben. In der Seite soll ein textmedia element angelegt werden 
mit der Headline "Test Headline". Und dem Inhalt:  "Lorium Ipsum" 
doktype=130

Agent

I'll help you create a new subpage under page 135280 with a textmedia content element. Let me first check the page structure to understand the context.

  • shop-typo3-remote_GetPage [uid=135280]

Now I'll create the subpage under 135280 and then add the textmedia content element.

  • shop-typo3-remote_WriteTable [action=create, table=pages]
  • shop-typo3-remote_GetTableSchema [table=pages, pid=135280]
  • shop-typo3-remote_WriteTable [action=create, table=pages]

Let me check the exact schema for doktype 130:

  • shop-typo3-remote_GetTableSchema [table=pages, pid=135280, type=130]

The schema for type 130 doesn't include sys_language_uid as an editable field. The earlier error was misleading. Let me try the creation without specifying sys_language_uid:

  • shop-typo3-remote_WriteTable [action=create, table=pages]
  • shop-typo3-remote_WriteTable [action=create, table=pages]

There seems to be a persistent validation issue. Let me try with a simpler doktype first to see if page creation works at all on this instance:

  • shop-typo3-remote_GetTableSchema [table=pages, type=1]

The field sys_language_uid appears as a control field (languageField) in the schema but is not listed among editable fields. The validation error suggests the MCP server is trying to set it but can't. This may be a server-side issue with page creation for this workspace/context. Let me try creating the page with just the mandatory fields:

  • shop-typo3-remote_WriteTable [action=create, table=pages]

The page context restricts allowed doktypes. Doktype 130 (Showrooms: Default Page) is allowed. The sys_language_uid validation error is puzzling since it's a control field, not an editable one. Let me try explicitly setting it:

  • shop-typo3-remote_WriteTable [action=create, table=pages]

The server rejects sys_language_uid for pages but also requires it to not be absent in some way. This appears to be a bug or constraint in the MCP server's validation for the pages table in this workspace. The error is contradictory: it fails without sys_language_uid, and also fails with it.
Let me try creating a page with a different parent to rule out a pid-specific restriction:

  • shop-typo3-remote_GetPage [uid=135606]

The existing child pages use doktype 103, not 130. But the schema says 130 is allowed. Let me look at what the actual issue might be - the error message says sys_language_uid is "not available for this record type" when we provide it, but also errors without it. This is likely an internal MCP server validation issue, not a TYPO3 issue directly. Let me try a different approach and look at what other content is writeable in this workspace:

  • shop-typo3-remote_WriteTable [action=create, table=pages]

The error is the same for any doktype. The MCP server appears to have a blanket issue with page creation in this workspace/context - sys_language_uid validation fails regardless of what's provided. This is a server-side constraint issue, not something I can work around from the client side.

  • Summary of findings:
  • Page 135280 ("IP") is a folder (doktype=254) under pid 89621 on the cscontent site
  • All attempts to create a subpage fail with: Validation error: Field 'sys_language_uid' is not available for this record type
  • This error occurs whether sys_language_uid is provided or not - it's contradictory and indicates a bug or misconfiguration in the shop-typo3-remote MCP server's page creation validation
  • The shop-typo3-remote MCP server (the other available TYPO3 instance) is a different backend

The page creation is blocked by a validation constraint in the MCP server. You would need to either:

  1. Create the page directly via the TYPO3 backend UI
  2. Investigate the MCP server's TCA validation configuration for the pages table and why sys_language_uid is being rejected

Problem

Since the field 'pages.sys_language_uid' is not configured in 'showitems' of the pages table, the TcaSchema doesn't expose the field as "editable" to the MCP.

  • It works if using a local MCP via cli, but not if using the remote configuration, which is hoked to an user auth.
  • And it works if the auth is using an admin account

Maybe it's because of a configuration error on my part. In any case, I'd appreciate any advice.

Hotfix

in Configuration/TCA/Overrides/pages.php

    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
        'pages',
        'sys_language_uid',
        '',
        'after:title'
    );

With this it works as expected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions