Skip to main content
Glama
par4987

@pired/sap-fiori-mcp-server

by par4987

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SAP_USERNoUsername for the default SAP system.
LOG_LEVELNoLog level: off, error, warn, info, debug. Logs to file, never to stdout.error
SAP_CLIENTNoClient for the default SAP system.
UI5_CDN_URLNoAlternative CDN URL for UI5 versions.
SAP_BASE_URLNoBase URL of the default SAP system (with Basic Auth).
SAP_PASSWORDNoPassword for the default SAP system.
BTP_CLIENT_IDNoClient ID for the BTP Destination Service (alternative to using BTP_SERVICE_KEY_FILE).
BTP_TOKEN_URLNoToken URL for the BTP Destination Service (alternative to using BTP_SERVICE_KEY_FILE).
BTP_USER_TOKENNoUser token for BTP destinations using OAuth2UserTokenExchange or OAuth2JWTBearer.
SAP_SYSTEM_NAMENoSystem name for the default SAP system.
SAP_SYSTEMS_FILENoPath to a JSON file containing an array of SAP system configurations. Alternative to SAP_SYSTEMS_JSON.~/.sap-fiori-mcp/systems.json
SAP_SYSTEMS_JSONNoJSON string containing an array of SAP system configurations (e.g., [{"name","url","client","user","password"}]). Alternative to SAP_SYSTEMS_FILE.
UI5_DISTRIBUTIONNoUI5 distribution: openui5 (sdk.openui5.org) or sapui5 (ui5.sap.com).openui5
BTP_CLIENT_SECRETNoClient secret for the BTP Destination Service (alternative to using BTP_SERVICE_KEY_FILE).
UI5_TYPES_CDN_URLNoSource for UI5 type definitions used by get_api_reference.jsDelivr @openui5/ts-types-esm
NODE_EXTRA_CA_CERTSNoPath to a CA certificate file for custom SSL certificates.
BTP_SERVICE_KEY_FILENoPath to a BTP service key file (downloaded from cockpit) containing clientid, clientsecret, url, and uri. Alternative to individual BTP_* variables.
SAP_DESTINATIONS_DIRNoDirectory containing one JSON file per BTP destination (each file named <destination>.json). Alternative to SAP_DESTINATIONS_FILE.~/.sap-fiori-mcp/destinations
SAP_DESTINATIONS_FILENoPath to a JSON file containing a BTP destination (camelCase or cockpit format). Alternative to SAP_DESTINATIONS_DIR.
SAP_DESTINATIONS_JSONNoJSON string containing inline BTP destinations (e.g., [{"Name","URL","Authentication",...}]).
SAP_FIORI_MCP_API_KEYNoAPI key required in HTTP mode (sent via x-api-key or Authorization: Bearer).
SAP_FIORI_MCP_LOG_FILENoPath to the log file.~/.sap-fiori-mcp/server.log
BTP_DESTINATION_API_URLNoDestination API URL for the BTP Destination Service (alternative to using BTP_SERVICE_KEY_FILE).
SAP_FIORI_MCP_ADMIN_PORTNoPort for the admin panel.7392
SAP_FIORI_MCP_TIMEOUT_MSNoTimeout in milliseconds for OData/CDN requests.30000
SAP_FIORI_MCP_TOOL_PREFIXNoPrefix for all tool names to avoid collisions (e.g., 'sapfiori_').
NODE_TLS_REJECT_UNAUTHORIZEDNoSet to '0' to disable TLS certificate validation (not recommended for production).
SAP_FIORI_MCP_WORKSPACE_ROOTNoDefault root for relative paths.cwd
SAP_FIORI_MCP_ALLOWED_DOMAINSNoComma-separated allowlist of outbound hosts. Empty means no restriction. Supports wildcards like *.example.com.
SAP_FIORI_MCP_ALLOWED_ORIGINSNoAllowed browser origins in HTTP mode. Defaults to loopback only. Use '*' to disable origin checking.
SAP_FIORI_MCP_RESPONSE_NO_RESOURCESNoSet to disable MCP resources (for clients without support).

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
search_docsA

Searches the bundled documentation corpora for SAP Fiori elements, UI annotations, UI5 development, OPA5 testing, UI Integration Cards, TypeScript conversion, CAP (CDS) development and SAP BTP destinations. Use this before generating or modifying apps to ground answers in current best practices. Local, no network required.

get_guidelinesA

Returns curated UI5 development best practices for a topic: general, views, bindings, routing, i18n, performance, security, testing.

get_integration_cards_guidelinesA

Returns best practices for developing SAP UI Integration Cards (manifest-driven cards for SAP Build Work Zone).

get_typescript_conversion_guidelinesA

Returns the step-by-step guideline for converting UI5 applications and controllers from JavaScript to TypeScript.

list_fiori_appsA

Scans a directory for existing SAP Fiori applications (Fiori elements V2/V4, freestyle, cards, adaptation projects) that can be modified. Returns app id, type, entity set, OData version and view files. Call this before modifying an app.

list_sap_systemsA

Lists SAP system connections available for OData calls (from env vars SAP_BASE_URL/SAP_USER/SAP_PASSWORD, SAP_SYSTEMS_JSON or the systems.json file). Use the returned system name with download_odata_service_metadata.

download_odata_service_metadataA

Downloads the $metadata EDMX document of an OData service (V2 or V4) and saves it as localService/metadata.xml (or a custom path). Provide serviceUrl directly, or a systemName from list_sap_systems plus servicePath, or a BTP destination (destination + optional servicePath). Returns a summary of entity sets and types.

generate_fiori_app_odataA

Generates a new SAP Fiori elements application for an OData V2/V4 service, e.g. from RAP. Floorplans: 'list-report' (LR+ObjectPage, V4+V2), 'object-page' (form entry, V4), 'worklist' (V4+V2), 'analytical-list-page' (V2), 'overview-page' (V2). Provide metadataXmlPath (from download_odata_service_metadata) or metadataXml content, or just entitySet. Creates manifest.json, Component.js, index.html, i18n, ui5.yaml and package.json.

generate_fiori_app_capA

Generates a new SAP Fiori elements application inside an existing SAP CAP project (app/ folder), based on an entity of the project's CDS model. Reads the CDS model to resolve the main entity and its to-many associations, and wires the app to the CAP service.

list_functionalityA

Gets the list of supported modification functionalities for an existing SAP Fiori application: add_page, delete_page, add_controller_extension, enable_fcl, enable_initial_load, update_manifest. Workflow: list_functionality → get_functionality_details → execute_functionality.

get_functionality_detailsA

Gets the required parameters and detailed information for a specific functionality before executing it.

execute_functionalityA

Executes a modification on an existing SAP Fiori application: adds/deletes pages, adds controller extensions, enables FCL or initial load, or updates manifest.json properties.

get_metadata_summaryA

Parses a local EDMX metadata.xml and returns entity sets, entity types, keys, associations and annotation targets.

create_ui5_appA

Creates a new UI5 freestyle app from templates: 'basic' (single page), 'worklist' (searchable table + object page, OData V2), 'master-detail' (FCL, 2 columns), 'fcl' (Flexible Column Layout with column routing) or 'tabs' (IconTabBar page). Generates manifest.json, Component.js, views, controllers, i18n, index.html, ui5.yaml and package.json. Fails if the target folder already exists.

create_integration_cardA

Creates a manifest-based UI Integration Card (List, Object, Table, Timeline, Analytical, Adaptive, Component, Calendar) with preview index.html. Fails if the target folder already exists.

get_api_referenceA

Fetches and formats the UI5 API reference (properties, aggregations, events, methods with JSDoc) for a control such as 'sap.m.Table'. Source: official UI5 TypeScript type definitions (@openui5/ts-types-esm), cached locally after first use.

get_project_infoA

Extracts metadata and configuration from a UI5 or CAP project: app ids, framework version, libraries, views, controllers, models, routing, data sources and package scripts.

get_version_infoA

Retrieves UI5 framework version information: latest version from the CDN (sap-ui-version.json) plus the local project's configured version.

run_manifest_validationA

Validates the manifest against UI5 rules: sap.app id pattern, dataSources, model references, routing targets, view/i18n files on disk, card structure.

run_ui5_linterA

Analyzes JS/XML code of a UI5 app for common issues: deprecated APIs (jQuery.sap.*, sap.ui.getCore().byId), removed libraries, deprecated controls, missing controllers and missing i18n keys.

search_modelA

Performs fuzzy searches against names of definitions from the compiled CDS model of a CAP project: entities, views (projections), services, types, aspects, events, actions. CDS parses all .cds files into a unified model including relationships and annotations. Example: searchModel(projectPath, 'Books', 'entity').

get_cap_detailsA

Returns full details of one CDS definition: elements with types and annotations, associations (target, cardinality, on-condition), actions/functions, projections and includes.

query_cap_dataA

Executes a CQN-like query against the CAP sample data (CSV files in db/data following CAP conventions). Supports column projection, a WHERE-like filter (and/or, eq/ne/gt/ge/lt/le, contains), order by, skip/limit. Example filter: 'stock gt 10 and price le 50'.

list_btp_destinationsA

Lists the SAP BTP destinations available for OData calls: local destinations (env var SAP_DESTINATIONS_JSON / SAP_DESTINATIONS_FILE / SAP_DESTINATIONS_DIR) and, when configured, destinations of the BTP Destination Service (cloud). Secrets are redacted. Use the returned destination names with query_odata_data and download_odata_service_metadata.

get_btp_destinationA

Returns the details of one SAP BTP destination (local or from the BTP Destination Service): URL, authentication type, sap-client, custom headers and proxy type. Secrets are redacted. Useful to verify a destination before querying it with query_odata_data.

query_odata_dataA

Executes an OData query (V2 or V4) against an entity set and returns the rows as JSON. Target: a BTP destination (destination + optional servicePath), a configured SAP system (systemName + servicePath from list_sap_systems), or a full serviceUrl. Supports $filter, $top, $skip, $select, $orderby, $expand and $count. This is the remote counterpart of query_cap_data.

btp_loginA

Opens a browser for the one-time SAP BTP login of a destination and stores the refresh token it returns, so later calls renew themselves. Use it when a destination fails with an expired or missing refresh token. The destination must carry a serviceKeyPath. Signing in takes longer than an MCP client waits for a tool call, so this returns 'pending' with the URL once the browser is open: finish the login there and call it again for the same destination to collect the outcome. Set noBrowser to get the URL back instead, for a machine with no browser of its own.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription
doc-fe-floorplansfiori: SAP Fiori Elements floorplans overview
doc-fe-manifest-lrfiori: Configure a List Report target in manifest.json (V4)
doc-fe-fclfiori: Flexible Column Layout in Fiori elements
doc-fe-annotations-uifiori: UI annotations for List Report and Object Page
doc-fe-annotations-valuehelpfiori: Value help and common annotations (@Common, @Consumption)
doc-fe-draftfiori: Draft handling in Fiori elements
doc-fe-building-blocksfiori: Fiori elements building blocks (custom sections and extensions)
doc-fe-extensionsfiori: Extending Fiori elements apps: custom actions, columns, sections
doc-fe-opa5opa5: OPA5 test basics for Fiori apps
doc-fe-tools-previewfiori: Previewing and testing Fiori apps locally
doc-fe-adaptationfiori: UI adaptation projects and app variants
doc-fe-datamodelfiori: Data model requirements for Fiori elements apps
doc-fe-manifest-datasourcesfiori: manifest.json dataSources and models for OData V4/V2
doc-fe-floorplan-selectionfiori: Choosing a floorplan for generate_fiori_app_odata/cap
doc-ui5-mvcui5: UI5 MVC basics: views, controllers, models
doc-ui5-bindingsui5: Data binding syntax: property, aggregation, expression, absolute/relative
doc-ui5-controlsui5: Common sap.m controls for tables, forms and dialogs
doc-ui5-i18nui5: Internationalization (i18n) in UI5
doc-ui5-routingui5: Routing and navigation in manifest.json
doc-ui5-manifest-schemaui5: manifest.json structure and validation rules
doc-ui5-guidelines-generalui5: UI5 development best practices
doc-ui5-typescripttypescript: Converting UI5 apps from JavaScript to TypeScript
doc-ui5-cardscards: UI Integration Cards overview and types
doc-ui5-versionsui5: UI5 versions and long-term maintenance
doc-cap-cds-basicscap: CDS basics: entities, types, associations
doc-cap-servicescap: Services: projections, exposure and annotations
doc-cap-handlerscap: Custom handlers in CAP Node.js
doc-cap-datacap: CAP sample data with CSV files
doc-cap-authcap: Authorization in CAP: @restrict, roles, XSUAA
doc-cap-eventscap: Messaging and events in CAP
doc-cap-testingcap: Testing CAP applications
doc-cap-previewcap: Previewing CAP services and Fiori apps
doc-btp-destinations-overviewbtp: SAP BTP destinations for OData connectivity
doc-btp-destination-formatsbtp: Destination file formats (cockpit export and camelCase)
doc-btp-destination-servicebtp: BTP Destination Service (cloud) integration
doc-btp-odata-querybtp: Querying OData data remotely (query_odata_data)

TDQS

A3.9/5.0

Scored across 27 tools

Disambiguation4/5

Each tool maps to a distinct resource/action (apps, systems, destinations, CAP models, OData services), and the descriptions clarify boundaries. A few pairs like get_guidelines/search_docs or generate_fiori_app_odata/create_ui5_app could be momentarily confused, but the descriptions disambiguate them well.

Naming Consistency4/5

Almost all tools follow snake_case verb_noun naming (list_*, get_*, run_*, query_*). Minor deviations: create_ui5_app vs generate_fiori_app_*, btp_login is noun_verb, and list_functionality is singular while other list_* tools are plural.

Tool Count2/5

27 tools exceeds the 25+ threshold and feels heavy for an MCP surface, even for a broad SAP Fiori domain. Several guideline, validation, and connection tools could be consolidated into parameterized tools, so the count is more likely to overwhelm agents than help them.

Completeness4/5

The tool surface covers the main lifecycle: discover/create/modify Fiori apps, query OData/CAP data, fetch metadata, validate/lint, and access documentation. Missing build/deploy/test operations and full CRUD for CAP entities or destinations are minor gaps given the server's stated scope.

Maintenance

ActivityMaintained
ResponsivenessNo issues