Skip to content

Add MCP support for CDS metadata extensions (DDLX/EX) #74

@Kamilkov

Description

@Kamilkov

Hi,

I ran into a gap while doing RAP / Fiori backend work with vsp: metadata extensions (DDLX/EX) are not exposed at the MCP layer, so I had to fall back to raw ADT HTTP calls for object-page and facet work.

Problem

vsp already supports DDLS, BDEF, and SRVD in the source-writing workflow, but there is no MCP tool for CDS metadata extensions.

That makes Fiori-elements backend work inconsistent:

  • DDLS / BDEF / SRVD can stay inside vsp
  • DDLX currently requires manual ADT requests

Why this matters

For RAP / Fiori work, metadata extensions are not an edge case. They are a normal part of:

  • facets
  • field groups
  • object page layout
  • UI annotation layering

Without DDLX support, the workflow breaks right when annotation work becomes serious.

Proposed addition

A dedicated MCP tool:

WriteMetadataExtension

Behavior:

  • supports create, update, upsert
  • performs syntax check
  • locks the object
  • writes source
  • unlocks
  • activates

Under the hood this needs:

  • ADT read support for DDLX/EX
  • ADT create support for DDLX/EX
  • DDLX-specific creation payload and content type
  • MCP registration and docs/tests

Why a dedicated tool

I chose a dedicated tool instead of extending WriteSource first because it keeps the scope small and the API explicit. If you would prefer DDLX folded into WriteSource, the same underlying ADT support could be reused.

Verification

I implemented this locally and verified it in three ways:

  • unit tests for the new ADT/MCP path
  • local go build ./cmd/vsp
  • live SAP verification

For the live check, I created:

  • DDLS/DF ZC_VSP_MDXTEST
  • DDLX/EX ZC_VSP_MDXTEST

in $TMP, and verified that WriteMetadataExtension could create/update the metadata extension and read it back successfully.

Scope of local patch

The patch is limited to:

  • DDLX ADT support
  • dedicated WriteMetadataExtension MCP tool
  • focused/config registration
  • tests
  • docs

If this direction makes sense, I can prepare a PR.

Development of a working implementation has already been completed locally.

This issue text was generated by OpenAI Codex.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions