Skip to main content
Glama
marianfoo

SAP Documentation MCP Server

ui5_version_diff

Compares two UI5 releases to list new features, fixes, and deprecations, aiding upgrade planning and workaround cleanup.

Instructions

UI5 VERSION DIFF: ui5_version_diff(library="SAPUI5", from_version="1.108.0", to_version="1.130.0")

FUNCTION NAME: ui5_version_diff

List the new features, fixes, deprecations, and SAPUI5 What's New entries that landed between two UI5 releases, or inspect one exact release. Use this when planning or executing an upgrade so you know which workarounds can be dropped, which APIs are now deprecated, and which fixes might replace local patches.

DATA SOURCE: local all-changes bundle at UI5_LIB_DIFF_BUNDLE_PATH (default: dist/data/ui5-lib-diff/all-changes.json). The runtime tool is local-only and does not fetch hosted URLs. Refresh the bundle during setup with npm run download:ui5-lib-diff. If a requested release is newer than the local bundle, the response includes meta.notes and meta.generatedAt so the caller can tell setup data is stale.

RANGE SEMANTICS: returns changes that landed AFTER from_version up to and including to_version (i.e. what you gain by upgrading from from_version to to_version). If a requested patch version is unavailable, the tool uses the nearest lower available version with the same major.minor, matching the web app. For one release, pass version instead of a range.

PARAMETERS: • library (optional, default "SAPUI5"): "SAPUI5" or "OpenUI5". • version (optional): exact release to inspect, e.g. "1.130.0". Can also be supplied as the only from_version or only to_version. • from_version + to_version (optional range pair): version you are upgrading FROM/TO, e.g. "1.108.0" -> "1.130.0". • types (optional): subset of ["FEATURE", "FIX", "DEPRECATED"]. Defaults to all three. • ui5_library (optional): case-insensitive substring filter on the UI5 library, e.g. "sap.m", "sap.ui.core", "sap.fe". • query (optional): case-insensitive substring filter on change text and What's New title/description, e.g. "Table", "ObjectStatus", "ManagedObject".

RETURNS JSON with: • mode, library, from_version, to_version, version? • versionsInRange: versions covered by the range (newest first) • counts: { FEATURE, FIX, DEPRECATED } totals across the full range • totalEntries: sum of counts • entries: [{ version, date, library, type, text, commit_url? }] • whatsNewEntries, whatsNewTotalEntries: SAPUI5 What's New entries for the same version/range • meta: { availableVersions, minVersion, maxVersion, generatedAt, sourceDataPath, cacheSource, requested, resolved, notes? } — "notes" is a list of soft signals (version resolution, stale-bundle hints, out-of-range hints, coercion warnings) • sourceUrl: browser URL for human inspection of the same range

USE CASES: • Upgrade planning: "What deprecations should I clean up before moving 1.108 -> 1.130?" • Workaround cleanup: filter by query="" to find the fix that replaces a local patch • Library-scoped review: ui5_library="sap.m" to focus on a single library • Combine with @ui5/mcp-server tools (run_ui5_linter, run_manifest_validation, get_api_reference) for code-level follow-up

EXAMPLES: ui5_version_diff(from_version="1.108.0", to_version="1.130.0", types=["DEPRECATED"]) ui5_version_diff(version="1.130.0", ui5_library="sap.m") ui5_version_diff(library="OpenUI5", from_version="1.120.0", to_version="1.130.0", ui5_library="sap.m") ui5_version_diff(from_version="1.96.0", to_version="1.120.0", query="ObjectStatus")

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
libraryNoWhich UI5 flavour to diff. Defaults to SAPUI5.SAPUI5
versionNoSingle UI5 release to inspect, e.g. "1.130.0". If unavailable, resolves to the nearest lower available patch with the same major.minor.
from_versionNoVersion you are upgrading from (exclusive bound), e.g. "1.108.0". If unavailable, resolves to the nearest lower available patch with the same major.minor.
to_versionNoVersion you are upgrading to (inclusive bound), e.g. "1.130.0". If unavailable, resolves to the nearest lower available patch with the same major.minor.
typesNoFilter to a subset of change types. Defaults to all three.
ui5_libraryNoCase-insensitive substring filter on UI5 library name (e.g. "sap.m", "sap.ui.core").
queryNoCase-insensitive substring filter on change text and What's New title/description.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
modeYes
libraryYes
from_versionYes
to_versionYes
versionNo
versionsInRangeYes
countsYes
totalEntriesYes
entriesYes
whatsNewEntriesYes
whatsNewTotalEntriesYes
metaNo
sourceUrlYes
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It clearly discloses the data source (local all-changes bundle), runtime behavior (local-only, no hosted URLs), version resolution logic (nearest lower available patch), and signals like meta.notes for stale data. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections, front-loaded purpose, and clear examples. However, it is quite verbose; some information could be condensed without losing clarity. Still, the structure aids readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (7 parameters, no required, output schema exists), the description is highly complete. It covers data source, version resolution, return structure, and use cases. The presence of output schema does not reduce the need because description still adds context on meta fields and version resolution.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (baseline 3), but the description significantly adds value: it explains range semantics (exclusive from, inclusive to), details each parameter's role, provides examples, and clarifies edge cases like single version usage. This goes well beyond the schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists new features, fixes, deprecations, and What's New entries between two UI5 releases or for one release. It also specifies the use case of upgrade planning. This makes the purpose distinct from sibling tools which cover ABAP, community search, etc.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says to use this tool for upgrade planning and gives concrete use cases (upgrade planning, workaround cleanup, library-scoped review). It also mentions combining with other @ui5/mcp-server tools. However, it does not explicitly contrast with alternative tools or state when not to use it, so it's slightly below perfect.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/marianfoo/mcp-sap-docs'

If you have feedback or need assistance with the MCP directory API, please join our Discord server