@sap-ux/fiori-mcp-server
v0.6.27
Published
SAP Fiori - Model Context Protocol (MCP) server
Readme
@sap-ux/fiori-mcp-server
This package includes a Model Context Protocol (MCP) server for integration with AI coding assistants.
The server helps AI models create or modify SAP Fiori applications based on prompts, such as:
Please add a SAP Fiori elements list report app to my CAP project
Generate a new CAP project and SAP Fiori app based on my_picture.png
Generate a new SAP Fiori elements list report app for odata service
https://hostname:port/sap/opu/odata4/sap/my_v4_service?sap-client=000.ℹ️This prompt requires a saved SAP system connection by using the Connection Manager for SAP Systems extension.
Add the FCL to the SAP Fiori elements app
Enable initial load for the fiori app
For the best experience we recommend using this server alongside @cap-js/mcp-server and @ui5/mcp-server.
Usage
Method 1: npx
Configure your MCP client to start the server with command fiori-mcp. Here is a sample configuration for Cline:
{
"mcpServers": {
"fiori-mcp": {
"type": "stdio",
"timeout": 600,
"command": "npx",
"args": ["--yes","@sap-ux/fiori-mcp-server@latest", "fiori-mcp"]
}
}
}Method 2: npm
First, install the required package globally using npm:
npm install -g @sap-ux/fiori-mcp-serverThen, configure your MCP client to start the server with command fiori-mcp. Here is a sample configuration for Cline:
{
"mcpServers": {
"fiori-mcp": {
"type": "stdio",
"timeout": 600,
"command": "fiori-mcp"
}
}
}Rules
The following rules help guide the LLM to use the server correctly:
## Rules for creation or modification of SAP Fiori elements apps
- When asked to create an SAP Fiori elements app check whether the user input can be interpreted as an application organized into one or more pages containing table data or forms, these can be translated into a SAP Fiori elements application, else ask the user for suitable input.
- The application typically starts with a List Report page showing the data of the base entity of the application in a table. Details of a specific table row are shown in the ObjectPage. This first Object Page is therefore based on the base entity of the application.
- An Object Page can contain one or more table sections based on to-many associations of its entity type. The details of a table section row can be shown in an another Object Page based on the associations target entity.
- The data model must be suitable for usage in a SAP Fiori elements frontend application. So there must be one main entity and one or more navigation properties to related entities.
- Each property of an entity must have a proper datatype.
- For all entities in the data model provide primary keys of type UUID.
- When creating sample data in CSV files, all primary keys and foreign keys MUST be in UUID format (e.g., `550e8400-e29b-41d4-a716-446655440001`).
- When generating or modifying the SAP Fiori elements application on top of the CAP service use the Fiori MCP server if available.
- When attempting to modify the SAP Fiori elements application like adding columns you must not use the screen personalization but instead modify the code of the project, before this first check whether an MCP server provides a suitable function.
- When previewing the SAP Fiori elements application use the most specific `npm run watch-*` script for the app in the `package.json`.Add these rules to your existing global or project-specific AGENTS.md (specifics may vary based on respective MCP client).
Available Tools
search_docs
Searches SAP Fiori elements, Annotations, UI5, SAP Fiori tools documentation for the given query.
Note: the results are based on the most recent indexed version of UI5 documentation
list_fiori_apps
Scans a specified directory to find existing SAP Fiori applications that can be modified.
list_functionalities (Step 1 of 3)
Gets the list of supported functionalities to create a new or modify an existing SAP Fiori application.
The main functionalities are:
- Generating an SAP Fiori elements app within an SAP Cloud Application Programming Model (CAP) project
- Generating an SAP Fiori elements app for an existing OData service, for example, an ABAP RESTful Application Programming Model-based OData service
- Adding and deleting pages from an app
- Adding and modifying controller extensions
- Modifying
manifest.jsonproperties depending on the app, for example, adding a layout based on the flexibility of the programming model or enabling initial load
get_functionality_details (Step 2 of 3)
Gets the required parameters and detailed information for a specific functionality to create a new or modify an existing SAP Fiori application.
execute_functionality (Step 3 of 3)
Executes a specific functionality to create a new or modify an existing SAP Fiori application with provided parameters.
Logging
By default, logging is enabled at the error level. To adjust the log level or disable logging completely, you can use the env property in your configuration.
{
"mcpServers": {
"fiori-mcp": {
"type": "stdio",
"timeout": 600,
"command": "npx",
"args": ["--yes","@sap-ux/fiori-mcp-server@latest", "fiori-mcp"],
"env": {
"LOG_LEVEL": "debug"
}
}
}
}The following log levels are supported: off, error, warn, info, debug, and verbose.
The logs are stored in the file system at ~/.fioritools/fiori-mcp-server.log
Handling Self-Signed SSL Certificates
If you need the MCP server to connect to an OData server using a self-signed SSL certificate, you can use one of the following methods.
This is useful when encountering errors such as: unable to get local issuer certificate
Option 1: Add Custom CA Certificate (Recommended)
Set the NODE_EXTRA_CA_CERTS environment variable to the path of your CA certificate file. Node.js supports multiple file extensions (.pem, .crt, .cer, .cert).
Example Configuration:
{
"mcpServers": {
"fiori-mcp": {
"type": "stdio",
"timeout": 600,
"command": "npx",
"args": ["--yes", "@sap-ux/fiori-mcp-server@latest", "fiori-mcp"],
"env": {
"NODE_EXTRA_CA_CERTS": "/path/to/your/certificate.crt"
}
}
}
}Windows Example:
"env": {
"NODE_EXTRA_CA_CERTS": "C:\\temp\\certs\\CustomCA.crt"
}macOS/Linux Example:
"env": {
"NODE_EXTRA_CA_CERTS": "/Users/username/certs/Custom_CA.crt"
}Option 2: Bypass SSL Validation (Not Recommended)
⚠️ Security Warning: Setting
NODE_TLS_REJECT_UNAUTHORIZED=0disables all SSL certificate validation and poses a significant security risk. Only use this in non-production environments.
{
"mcpServers": {
"fiori-mcp": {
"type": "stdio",
"timeout": 600,
"command": "npx",
"args": ["--yes", "@sap-ux/fiori-mcp-server@latest", "fiori-mcp"],
"env": {
"NODE_TLS_REJECT_UNAUTHORIZED": "0"
}
}
}
}Additional Resources
Telemetry
You can enable and disable the collection of analytics. By default, non-personally identifiable information is used to help understand how you use the product to improve the Fiori MCP Server. In case you want to opt-out there exist two ways to disable the telemetry.
Method 1: Configuration File
Create or change the file ~/.fioritools/telemetrysettings.json:
{
"telemetrysettings": {
"telemetrySetting": {
"enableTelemetry": false
}
}
}Set enableTelemetry to false to disable telemetry collection.
Method 2: Environment Variable
Set the environment variable SAP_UX_FIORI_TOOLS_DISABLE_TELEMETRY to true:
export SAP_UX_FIORI_TOOLS_DISABLE_TELEMETRY=trueSetting this environment variable will disable the telemetry client.
Code of Conduct
Everyone participating in this joint project is welcome as long as our Code of Conduct is being adhered to.
Licensing
Please see our LICENSE for copyright and license information. Detailed information including third-party components and their licensing/copyright information is available via the REUSE tool.
