Skip to main content
Glama
ClementRingot

SAP Released Objects Server

ROSA — Released Objects Search Assistant

@rosa-mcp/server ghcr.io rosa CI Release node license MIT MCP server

ROSA gives AI agents real-time knowledge of which SAP objects are released for ABAP Cloud / Clean Core — and what to use instead when they're not.

It plugs into the SAP Cloudification Repository (the official source of truth) and exposes it two ways, sharing the same business logic — no feature gap between them:

Access mode

Protocol

Use case

MCP Server

Model Context Protocol on POST /mcp

AI agents with native MCP support (Claude Desktop, Claude Code, Cline, Cursor…)

REST API

GET endpoints on /api/* returning JSON

LLM skills, scripts, CI pipelines — anything that speaks HTTP

Ask "Is table MARA available in ABAP Cloud?" and the agent instantly knows: no — use I_PRODUCT instead.

ROSA is publicly hosted — no install, no server to run. Connect your AI agent directly:

MCP (Claude Desktop, Claude Code, Cursor, Cline…)

Claude Code (.mcp.json) / Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "rosa": {
      "type": "url",
      "url": "https://sap-released-objects-server-production.up.railway.app/mcp"
    }
  }
}

Cursor (~/.cursor/mcp.json or .cursor/mcp.json):

{
  "mcpServers": {
    "rosa": {
      "type": "url",
      "url": "https://sap-released-objects-server-production.up.railway.app/mcp"
    }
  }
}

REST API

All endpoints are GET, return JSON, and support CORS:

curl "https://sap-released-objects-server-production.up.railway.app/api/search?query=purchase+order"
curl "https://sap-released-objects-server-production.up.railway.app/api/object?object_type=TABL&object_name=MARA"
curl "https://sap-released-objects-server-production.up.railway.app/api/compliance?object_names=MARA,BSEG,I_PRODUCT"

For LLM-skill usage, two ready-made skills expose the full API reference:


Related MCP server: ABAP Transport Analyzer MCP Server

Self-hosted / alternative deployments

I want to…

Use

One-liner

Run locally via npx (stdio)

npm

npx -y @rosa-mcp/server

Run without Node.js installed

Native executable

download from Releases

Run as a server / self-host

Docker

docker run -p 3001:3001 ghcr.io/clementringot/rosa

Deploy on a generic Node host

Node PaaS

Railway / Render / Fly.io — set TRANSPORT=http

Deploy on SAP BTP Cloud Foundry

MTA or npm wrapper

see DEPLOYMENT

Deploy on classic Cloud Foundry

cf push

see cloud-foundry-classic

Full details for every option: docs/DEPLOYMENT.md.

Local MCP (stdio mode)

{
  "mcpServers": {
    "rosa": {
      "command": "npx",
      "args": ["-y", "@rosa-mcp/server"]
    }
  }
}

Features

  • Search SAP objects — classes, CDS views, tables, data elements, BDEFs…

  • Filter by Clean Core Level (A / B / C / D) — the model replacing the 3-tier system since August 2025.

  • Find successors for deprecated or non-released objects.

  • Clean Core compliance check for a list of objects (with compliance rate).

  • Statistics — counts by level, type, and application component.

  • Smart search — multi-token scoring ("purchase order"I_PURCHASEORDER).

  • Multi-system — S/4HANA Cloud Public, BTP ABAP Environment, Private Cloud, On-Premise; PCE versions discovered dynamically.

Data is fetched from SAP's public GitHub repository at runtime and cached in memory for 24h — no SAP system connection required.

Clean Core Level Concept

Level

Meaning

Upgrade safety

A

Released APIs (ABAP Cloud)

✅ Upgrade-safe

B

Classic APIs

⚠️ Upgrade-stable

C

Internal / unclassified

🟡 Manageable risk

D

noAPI (not recommended)

🔴 High risk

MCP tools & REST endpoints

Each MCP tool on POST /mcp has an identical REST counterpart under /api:

MCP tool

REST endpoint

Purpose

sap_search_objects

GET /api/search

Search objects, ranked by relevance, with filters

sap_get_object_details

GET /api/object

Full details + Clean Core assessment for one object

sap_find_successor

GET /api/successor

Successor(s) of a deprecated / non-released object

sap_check_clean_core_compliance

GET /api/compliance

Compliance rate for a list of objects

sap_list_versions

GET /api/versions

Available S/4HANA PCE versions

sap_list_object_types

GET /api/types

TADIR object types with per-level counts

sap_get_statistics

GET /api/statistics

Repository statistics

Parameters and response shapes are documented in skills/sap-released-objects/SKILL.md.

Server modes & authentication

ROSA runs over stdio (default; local MCP clients) or HTTP (--http / TRANSPORT=http; remote/self-hosted). On HTTP it auto-detects four authentication modes from the environment — public, OIDC / OAuth 2.1, XSUAA (SAP BTP), and API keys — with no rebuild:

Mode

Trigger

Public

no auth env vars

OIDC / OAuth 2.1

OAUTH_ISSUER + OAUTH_AUDIENCE

XSUAA

VCAP_SERVICES xsuaa binding (SAP BTP)

API keys

API_KEYS (alongside any mode)

How transports, auth auto-detection, the auth × deployment matrix, and the system diagram work: docs/ARCHITECTURE.md.

Usage examples

You:   "Is table MARA available in ABAP Cloud?"
Agent: → sap_get_object_details(TABL, MARA) → "deprecated; successor I_PRODUCT"

You:   "My code uses BSEG, MARA, CL_GUI_ALV_GRID. Is it Clean Core?"
Agent: → sap_check_clean_core_compliance(...) → "Compliance rate: 0%"

You:   "What's available for sending emails on BTP?"
Agent: → sap_search_objects(query="send email", system_type="btp")

Documentation

Doc

For

ARCHITECTURE.md

Transports, auth modes, system diagram, MCP tools

DEPLOYMENT.md

Every deployment option + config reference + troubleshooting

cloud-foundry-classic.md

Classic (non-BTP) Cloud Foundry

RELEASE.md

Release train & pipeline (maintainers)

CONTRIBUTING.md

Dev setup, tests, commit convention

CHANGELOG.md

Notable changes

Contributing & releases

PRs welcome — see CONTRIBUTING.md. This repo uses Conventional Commits; releases are cut by an automated release train that publishes the npm package, the multi-arch Docker image, and native executables from a single tag.

License

MIT

Available Tools

7 tools
sap_check_clean_core_complianceCheck Clean Core ComplianceA
Read-onlyIdempotent

Check the Clean Core compliance of a list of SAP objects. Provide a comma-separated list of object names and get their Clean Core Level classification, compliance status, and successor recommendations. Essential for assessing existing custom code during ABAP Cloud migration.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoS/4HANA version for Private Cloud or On-Premise systems. Use 'latest' for the most recent version. Format: YEAR for base release, or YEAR_FPS where FPS is the Feature Pack Stack / SP number. IMPORTANT: '2022_1' = FPS01/SP01, '2023_3' = FPS03/SP03, etc. Always use the YEAR_N format when a specific SP/FPS is requested. Use sap_list_versions to see all currently available versions. Ignored for public_cloud and btp systems. Default: latest.latest
system_typeNoSAP system type. 'public_cloud' = S/4HANA Cloud Public Edition (Level A Released APIs only). 'btp' = BTP ABAP Environment / Steampunk (Level A Released APIs only, separate dataset from public_cloud). 'private_cloud' = S/4HANA Cloud Private Edition (Levels A-D, version-specific files available). 'on_premise' = S/4HANA on-premise (Levels A-D, version-specific files available). Default: public_cloud.public_cloud
object_namesYesComma-separated list of object names to check (e.g., 'MARA,BSEG,CL_GUI_ALV_GRID,BAPI_MATERIAL_GET_ALL'). Optionally prefix with type: 'TABL:MARA,CLAS:CL_GUI_ALV_GRID'.
target_levelNoTarget Clean Core Level for compliance. 'A' = strict (Released APIs only). 'B' = pragmatic (Released + Classic APIs). Default: A.A

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds minimal behavioral insight beyond stating the check action. No contradictions are present, but the description does not disclose additional behaviors like rate limits, authorization requirements, or error handling.

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

Conciseness5/5

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

The description is very concise, consisting of three sentences. Each sentence serves a purpose: stating the action, specifying input and output, and providing usage context. No extraneous information is present, and the critical details are front-loaded.

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

Completeness4/5

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

Given the tool's complexity (4 parameters, no output schema) and the availability of annotations, the description is mostly complete. It explains the core functionality, input format, and return values. However, it could be improved by detailing the structure of the output or mentioning any limitations, such as a maximum number of objects.

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

Parameters4/5

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

The input schema fully documents all 4 parameters (100% coverage). The description adds value by explaining the expected input format ('comma-separated list'), allowing optional type prefixes, and clarifying what the tool returns ('Clean Core Level classification, compliance status, and successor recommendations'), which compensates for the lack of an output schema.

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

Purpose4/5

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

The description states a specific verb ('Check') and resource ('Clean Core compliance of a list of SAP objects'). It clearly conveys the tool's primary function but does not explicitly distinguish it from sibling tools like sap_search_objects or sap_get_object_details, which could also involve objects and compliance checks.

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

Usage Guidelines3/5

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

The description implies usage context ('Essential for assessing existing custom code during ABAP Cloud migration'), but does not provide explicit when-to-use or when-not-to-use guidance, nor does it reference sibling tools as alternatives. The context suggests usage, but lacks direct comparison.

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

sap_find_successorFind SAP Object SuccessorA
Read-onlyIdempotent

Find the released successor(s) of a deprecated or non-released SAP object. Essential for ABAP Cloud migration: when your code uses a non-released object (e.g., table MARA), this tool finds the replacement (e.g., CDS view I_PRODUCT). Also useful for checking if a deprecated API has a modern replacement.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoS/4HANA version for Private Cloud or On-Premise systems. Use 'latest' for the most recent version. Format: YEAR for base release, or YEAR_FPS where FPS is the Feature Pack Stack / SP number. IMPORTANT: '2022_1' = FPS01/SP01, '2023_3' = FPS03/SP03, etc. Always use the YEAR_N format when a specific SP/FPS is requested. Use sap_list_versions to see all currently available versions. Ignored for public_cloud and btp systems. Default: latest.latest
object_nameYesObject name to find successor for (e.g., 'MARA', 'CL_AUNIT_ASSERT', 'BAPI_MATERIAL_GET_ALL'). The search is case-insensitive and matches partial names.
object_typeNoOptional TADIR object type to narrow the search (e.g., 'TABL', 'CLAS', 'FUGR'). Leave empty to search all types.
system_typeNoSAP system type. 'public_cloud' = S/4HANA Cloud Public Edition (Level A Released APIs only). 'btp' = BTP ABAP Environment / Steampunk (Level A Released APIs only, separate dataset from public_cloud). 'private_cloud' = S/4HANA Cloud Private Edition (Levels A-D, version-specific files available). 'on_premise' = S/4HANA on-premise (Levels A-D, version-specific files available). Default: public_cloud.public_cloud

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already indicate read-only and idempotent behavior. The description adds value by explaining the tool finds 'released' successors and is used for migration, which goes beyond the annotations. No contradiction is present.

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

Conciseness5/5

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

The description is concise (three sentences) effectively front-loaded with the main purpose and key use cases. Every sentence adds essential information without redundancy or fluff.

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

Completeness4/5

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

Given the moderate complexity and the rich annotations/schema, the description covers the core functionality well. It could mention the return format (e.g., list of successor objects), but the current information is sufficient for a competent agent to use the tool correctly.

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

Parameters4/5

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

The input schema has 100% parameter coverage with detailed descriptions, so baseline is 3. The tool description adds value by providing examples (e.g., 'MARA', 'CL_AUNIT_ASSERT') and clarifying case-insensitive partial matching, which enhances understanding beyond the schema alone.

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?

The description clearly states 'Find the released successor(s) of a deprecated or non-released SAP object' and gives concrete examples like 'MARA' to 'I_PRODUCT'. This verb-resource combination distinguishes it from sibling tools like sap_search_objects or sap_get_object_details which serve different purposes.

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 mentions 'Essential for ABAP Cloud migration' and 'Also useful for checking if a deprecated API has a modern replacement', providing clear usage context. It does not specify when not to use it or list alternatives, but the context is sufficient for an agent to understand appropriate scenarios.

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

sap_get_object_detailsGet SAP Object DetailsA
Read-onlyIdempotent

Get detailed information about a specific SAP object by its exact type and name. Returns Clean Core Level, state, successor info, application component, and more. Use this to check if a specific object (table, class, CDS view...) is released for ABAP Cloud and what its Clean Core Level is.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoS/4HANA version for Private Cloud or On-Premise systems. Use 'latest' for the most recent version. Format: YEAR for base release, or YEAR_FPS where FPS is the Feature Pack Stack / SP number. IMPORTANT: '2022_1' = FPS01/SP01, '2023_3' = FPS03/SP03, etc. Always use the YEAR_N format when a specific SP/FPS is requested. Use sap_list_versions to see all currently available versions. Ignored for public_cloud and btp systems. Default: latest.latest
object_nameYesExact object name (e.g., 'MARA', 'CL_ABAP_UNIT_ASSERT', 'I_PRODUCT').
object_typeYesTADIR object type (e.g., 'TABL', 'CLAS', 'DDLS', 'DTEL', 'INTF', 'BDEF').
system_typeNoSAP system type. 'public_cloud' = S/4HANA Cloud Public Edition (Level A Released APIs only). 'btp' = BTP ABAP Environment / Steampunk (Level A Released APIs only, separate dataset from public_cloud). 'private_cloud' = S/4HANA Cloud Private Edition (Levels A-D, version-specific files available). 'on_premise' = S/4HANA on-premise (Levels A-D, version-specific files available). Default: public_cloud.public_cloud
clean_core_levelNoMaximum Clean Core Level to include in results (cumulative). Replaces the 3-tier extensibility model since August 2025. Level A: Released APIs only (ABAP Cloud, fully upgrade-safe). Level B: + Classic APIs (upgrade-stable, governance recommended). Level C: + Internal/unclassified objects (manageable risk, consult changelog). Level D: + noAPI objects (not Clean Core, should be remediated). For public_cloud and btp systems, only Level A is available. Default: A.A

TDQS

A4.2/5.0
Behavior4/5

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

Annotations declare readOnly=true and destructive=false. Description adds behavioral context by specifying what is returned (Clean Core Level, state, successor info, etc.), complementing annotations without contradiction.

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

Conciseness5/5

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

Two sentences, front-loaded with purpose and use case. No wasted words; every sentence is meaningful and concise.

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

Completeness4/5

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

Given 5 parameters and no output schema, description sufficiently covers purpose, return fields, and usage context. It could benefit from explicitly listing all return fields, but 'and more' suffices. Annotations cover side effects.

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

Parameters3/5

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

Schema coverage is 100% with detailed parameter descriptions. The tool description does not add significant parameter information beyond what the schema already provides, so baseline 3 is appropriate.

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 it retrieves detailed information for a specific SAP object by type and name, listing returned fields. It distinguishes from siblings like sap_search_objects (searching) and sap_find_successor (finding successor).

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?

Description gives clear use case: checking if an object is released for ABAP Cloud. It explicitly references sap_list_versions for version info, providing an alternative. However, it does not explicitly state when not to use this tool vs. all siblings.

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

sap_get_statisticsGet Repository StatisticsA
Read-onlyIdempotent

Get overall statistics about the SAP Cloudification Repository: total object counts by Clean Core Level, by object type, by state, and top application components. Useful for understanding the scope of available APIs and planning ABAP Cloud migration efforts.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoS/4HANA version for Private Cloud or On-Premise systems. Use 'latest' for the most recent version. Format: YEAR for base release, or YEAR_FPS where FPS is the Feature Pack Stack / SP number. IMPORTANT: '2022_1' = FPS01/SP01, '2023_3' = FPS03/SP03, etc. Always use the YEAR_N format when a specific SP/FPS is requested. Use sap_list_versions to see all currently available versions. Ignored for public_cloud and btp systems. Default: latest.latest
system_typeNoSAP system type. 'public_cloud' = S/4HANA Cloud Public Edition (Level A Released APIs only). 'btp' = BTP ABAP Environment / Steampunk (Level A Released APIs only, separate dataset from public_cloud). 'private_cloud' = S/4HANA Cloud Private Edition (Levels A-D, version-specific files available). 'on_premise' = S/4HANA on-premise (Levels A-D, version-specific files available). Default: public_cloud.public_cloud
clean_core_levelNoMaximum Clean Core Level to include in results (cumulative). Replaces the 3-tier extensibility model since August 2025. Level A: Released APIs only (ABAP Cloud, fully upgrade-safe). Level B: + Classic APIs (upgrade-stable, governance recommended). Level C: + Internal/unclassified objects (manageable risk, consult changelog). Level D: + noAPI objects (not Clean Core, should be remediated). For public_cloud and btp systems, only Level A is available. Default: A.A

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the description's behavioral burden is low. The description adds context by specifying the content of statistics (counts by level, type, state, components) and the practical benefit (migration planning). No contradiction, and it provides useful behavioral context beyond the safety profile.

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

Conciseness5/5

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

Two sentences, front-loaded with the main action ('Get overall statistics'), list key output categories, and end with a practical use case. Every sentence contributes value, no redundancy or fluff.

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

Completeness4/5

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

Given three optional parameters, no required fields, and no output schema, the description adequately covers the tool's purpose and output content (counts by categories). It could briefly mention the return format (e.g., JSON) or note that parameters filter the statistics, but the schema already handles parameter details.

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

Parameters3/5

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

Schema description coverage is 100%: all three parameters (version, system_type, clean_core_level) have clear descriptions with defaults and enums. The description does not add any new meaning to these parameters beyond what the schema already provides, so it meets the baseline with no extra value.

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?

The description uses the specific verb 'Get' and resource 'overall statistics about the SAP Cloudification Repository,' listing detailed groupings (by Clean Core Level, object type, state, top application components). It clearly distinguishes from sibling tools like sap_search_objects or sap_get_object_details, which are for searching or individual object details, by framing this as an aggregation/overview tool.

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 states the tool is 'useful for understanding the scope of available APIs and planning ABAP Cloud migration efforts,' providing a clear use case. However, it does not explicitly state when NOT to use it (e.g., for specific object details) or directly reference sibling alternatives, leaving some ambiguity for an AI agent.

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

sap_list_object_typesList SAP Object TypesA
Read-onlyIdempotent

List all available TADIR object types in the Cloudification Repository with their counts per Clean Core Level. Useful to understand what kind of objects are available (classes, CDS views, tables, BDEFs, etc.) and their distribution across Levels A-D.

ParametersJSON Schema
NameRequiredDescriptionDefault
versionNoS/4HANA version for Private Cloud or On-Premise systems. Use 'latest' for the most recent version. Format: YEAR for base release, or YEAR_FPS where FPS is the Feature Pack Stack / SP number. IMPORTANT: '2022_1' = FPS01/SP01, '2023_3' = FPS03/SP03, etc. Always use the YEAR_N format when a specific SP/FPS is requested. Use sap_list_versions to see all currently available versions. Ignored for public_cloud and btp systems. Default: latest.latest
system_typeNoSAP system type. 'public_cloud' = S/4HANA Cloud Public Edition (Level A Released APIs only). 'btp' = BTP ABAP Environment / Steampunk (Level A Released APIs only, separate dataset from public_cloud). 'private_cloud' = S/4HANA Cloud Private Edition (Levels A-D, version-specific files available). 'on_premise' = S/4HANA on-premise (Levels A-D, version-specific files available). Default: public_cloud.public_cloud
clean_core_levelNoMaximum Clean Core Level to include in results (cumulative). Replaces the 3-tier extensibility model since August 2025. Level A: Released APIs only (ABAP Cloud, fully upgrade-safe). Level B: + Classic APIs (upgrade-stable, governance recommended). Level C: + Internal/unclassified objects (manageable risk, consult changelog). Level D: + noAPI objects (not Clean Core, should be remediated). For public_cloud and btp systems, only Level A is available. Default: A.A

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds value by specifying the output includes counts per Clean Core Level and listing example object types, which provides behavioral context beyond the annotations.

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

Conciseness5/5

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

Two sentences, directly front-loaded with the action and resource. Every sentence provides essential information without unnecessary words or repetition, achieving high conciseness.

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?

For a list operation with 3 fully described parameters and no output schema, the description adequately explains the output (list of object types with counts per level) and provides examples. It covers the most important aspects for an agent to understand what the tool returns.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema fully documents each parameter. The description adds context about counts per Clean Core Level, which relates to the clean_core_level parameter, but does not add significant meaning beyond the schema. Baseline 3 is appropriate.

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?

The description uses a specific verb ('list') and resource ('TADIR object types') along with the context of counts per Clean Core Level, clearly distinguishing it from siblings like sap_list_versions (versions) and sap_search_objects (specific objects).

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 states the tool is 'useful to understand what kind of objects are available and their distribution across Levels A-D,' providing clear usage context. It does not explicitly exclude alternatives but implies when to use this tool for overview vs. other search tools.

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

sap_list_versionsList Available S/4HANA VersionsA
Read-onlyIdempotent

List all available S/4HANA PCE versions for Private Cloud and On-Premise systems. Versions are discovered dynamically from the SAP Cloudification Repository on GitHub. Use this to find which versions can be passed to other tools (sap_search_objects, sap_get_object_details, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already provide readOnlyHint and idempotentHint. The description adds that versions are discovered dynamically from GitHub, which is useful behavioral context beyond the annotations.

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

Conciseness5/5

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

Two sentences, zero waste. Front-loaded with purpose and ends with usage guidance. Every sentence earns its place.

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?

For a zero-parameter, no-output-schema tool, the description fully covers purpose, source, and usage. No gaps.

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

Parameters4/5

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

No parameters exist, so description does not need to add parameter info. Baseline 4 is appropriate as the description adds value through usage guidance.

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?

The description clearly states it 'list all available S/4HANA PCE versions' for specific system types, and mentions the dynamic discovery from GitHub, distinguishing it from sibling tools that deal with objects or details.

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

Usage Guidelines5/5

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

Explicitly says 'Use this to find which versions can be passed to other tools' and names specific siblings (sap_search_objects, sap_get_object_details), guiding when to use this tool vs alternatives.

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

sap_search_objectsSearch SAP ObjectsA
Read-onlyIdempotent

Search for SAP objects (classes, interfaces, CDS views, tables, data elements, function groups, RAP artifacts, etc.) in the SAP Cloudification Repository. Filter by Clean Core Level (A/B/C/D), object type, application component, and state. Use this tool to find released APIs for ABAP Cloud development, check if a specific object is available for your target system, or discover alternatives when an object is not released.

SEARCH TIPS:

  • Use separate words for business concepts: 'purchase order' not 'PURCHASEORDER'

  • SAP abbreviations are automatically resolved: 'billing document' also finds BILLGDOC*, BILDOC* objects

  • Compound abbreviations work too: 'purchase order' finds PO* objects, 'bill of material' finds BOM*

  • Separate words trigger fuzzy matching on SAP abbreviations (e.g., 'physical inventory' finds both PHYSICALINVENTORY* and PHYSINVTRY* objects)

  • Use exact SAP names only when you know the precise object name (e.g., 'I_PRODUCT', 'MARA')

  • Combine with app_component filter for targeted results (e.g., query='inventory', app_component='MM-IM')

  • Prefer singular forms: 'handling unit' not 'handling units' (plural 's' can reduce match accuracy)

  • Keep queries to 2-3 words maximum; use filters instead of adding more words

System types:

  • public_cloud (S/4HANA Cloud Public Edition): Only Level A Released APIs

  • btp (BTP ABAP Environment / Steampunk): Only Level A Released APIs (separate, smaller dataset)

  • private_cloud / on_premise: Levels A-D available, version-specific

Clean Core Levels (cumulative filter):

  • A: Released APIs only (ABAP Cloud, upgrade-safe)

  • B: + Classic APIs (upgrade-stable)

  • C: + Internal/unclassified objects

  • D: + noAPI objects (not Clean Core)

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results to return (1-100). Default: 25.
queryYesSearch string to match against object names (case-insensitive). Supports two search styles: 1) SAP technical names for exact/prefix matching: 'I_PRODUCT', 'CL_ABAP', 'MARA', 'BAPI_MATERIAL', '/SCWM/PACKING' 2) Natural language with SEPARATE WORDS for fuzzy matching across SAP abbreviations: 'purchase order', 'handling unit', 'physical inventory', 'delivery document' IMPORTANT: Prefer natural language with separate words when searching by business concept. SAP often abbreviates compound names (PHYSICALINVENTORY → PHYSINVTRY, PURCHASEORDER → PURCHORD). Separate words like 'physical inventory' will find BOTH I_PHYSICALINVENTORY* AND I_PHYSINVTRY* objects, while the concatenated form 'PHYSICALINVENTORY' only finds the first group. Keep queries to 2-3 words maximum and use app_component filter to narrow by functional area.
stateNoFilter by specific object state. 'released' = Level A, publicly released APIs. 'deprecated' = Was released, now deprecated (usually has a successor). 'classicAPI' = Level B, classic but upgrade-stable. 'notToBeReleased' = Level C, internal object. 'noAPI' = Level D, not recommended. 'stable' = Level C, stable but without release contract. Leave empty to include all states within the selected Clean Core Level.
offsetNoNumber of results to skip for pagination. Default: 0.
versionNoS/4HANA version for Private Cloud or On-Premise systems. Use 'latest' for the most recent version. Format: YEAR for base release, or YEAR_FPS where FPS is the Feature Pack Stack / SP number. IMPORTANT: '2022_1' = FPS01/SP01, '2023_3' = FPS03/SP03, etc. Always use the YEAR_N format when a specific SP/FPS is requested. Use sap_list_versions to see all currently available versions. Ignored for public_cloud and btp systems. Default: latest.latest
object_typeNoFilter by TADIR object type (e.g., 'CLAS', 'DDLS', 'TABL'). Use the sap_list_object_types tool to discover all available types and their counts. Leave empty to search all types.
system_typeNoSAP system type. 'public_cloud' = S/4HANA Cloud Public Edition (Level A Released APIs only). 'btp' = BTP ABAP Environment / Steampunk (Level A Released APIs only, separate dataset from public_cloud). 'private_cloud' = S/4HANA Cloud Private Edition (Levels A-D, version-specific files available). 'on_premise' = S/4HANA on-premise (Levels A-D, version-specific files available). Default: public_cloud.public_cloud
app_componentNoFilter by SAP application component prefix (case-insensitive, partial match). Examples: 'MM-PUR' (Purchasing), 'FI-GL' (General Ledger), 'SD-SLS' (Sales), 'BC-SRV' (Basis Services), 'EWM' (Extended Warehouse Management). Leave empty to search all components.
clean_core_levelNoMaximum Clean Core Level to include in results (cumulative). Replaces the 3-tier extensibility model since August 2025. Level A: Released APIs only (ABAP Cloud, fully upgrade-safe). Level B: + Classic APIs (upgrade-stable, governance recommended). Level C: + Internal/unclassified objects (manageable risk, consult changelog). Level D: + noAPI objects (not Clean Core, should be remediated). For public_cloud and btp systems, only Level A is available. Default: A.A

TDQS

A4.5/5.0
Behavior5/5

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

The description confirms the read-only, idempotent nature (consistent with annotations), explains result pagination via limit/offset, and clarifies search behavior for different system types and clean core levels without contradicting any annotations.

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

Conciseness3/5

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

The description is well-structured with sections and front-loaded purpose, but it is lengthy due to extensive tips and explanations; some redundancy could be trimmed without losing value.

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?

With no output schema, the description covers all necessary aspects: search behavior, pagination, filtering by multiple criteria, system type differences, and clean core levels; it is fully adequate for an agent to use correctly.

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

Parameters4/5

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

All 9 parameters have schema descriptions (100% coverage). The description adds significant extra context with search tips, system type meanings, and clean core level definitions, enhancing understanding beyond the schema.

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?

The description explicitly states it searches for SAP objects in the SAP Cloudification Repository, lists object types, and clearly distinguishes this search tool from sibling tools like sap_get_object_details which focus on details of specific objects.

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?

Provides extensive search tips and behavior (natural language vs exact names, query length, singular forms) and explains system types and clean core levels. However, it does not explicitly state when to use alternatives like sap_get_object_details for post-search details.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 7 tool updatesv1.14.0
    • First observedsap_check_clean_core_compliance
    • First observedsap_find_successor
    • First observedsap_get_object_details
    • First observedsap_get_statistics
    • First observedsap_list_object_types
    • First observedsap_list_versions
    • First observedsap_search_objects

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: listing versions, searching objects, getting details, finding successors, listing types, statistics, and compliance checking. No overlap.

Naming Consistency5/5

All tool names follow a consistent 'sap_verb_noun' pattern (e.g., sap_list_versions, sap_search_objects). No deviations.

Tool Count5/5

7 tools is an appropriate number for this domain, covering key operations without being excessive or insufficient.

Completeness5/5

The tool surface covers the full lifecycle of exploring and assessing SAP released objects: version discovery, search, detail, successor, types, statistics, and compliance. No obvious gaps.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to securely connect with SAP ABAP and BTP services, allowing execution of function modules, BAPIs, table reads, and various BTP operations through MCP.
    1
    Apache 2.0
  • F
    license
    A
    quality
    C
    maintenance
    Enables AI agents to read, write, activate, and transport ABAP code in SAP systems via ABAP ADT REST API, without needing SAP GUI.
    4
    24
    -

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/ClementRingot/ROSA'

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