Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SIMPLIFIER_TOKEN | Yes | Your current Simplifier authentication token (changes with every login) | |
| SIMPLIFIER_BASE_URL | Yes | The base URL of your Simplifier instance (e.g., https://<yourinstance>-dev.simplifier.cloud) |
Schema
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| create-connector-from-openapi | Guided workflow to create a Simplifier connector from an API specification (OpenAPI/Swagger) or informal REST API description. Analyzes endpoints, lets you select which to implement, and creates the connector with calls and datatypes. |
| create-connector-from-wsdl | Guided workflow to create a Simplifier connector from a WSDL specification. Analyzes endpoints, lets you select which to implement, and creates the connector with calls and datatypes. |
| create-rfc-connector | Guided workflow to create a Simplifier RFC connector. Searches available SAP system functions, lets you select which to implement, and creates the connector with calls and datatypes. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| businessobject-list | #Get the list of server side Business Objects |
| datatypes-namespaces-list | # Get the list of all DataType namespaces and access patterns This resource provides the entry point for discovering all available datatypes organized by namespaces. HINT: consider not using this resource, due to performance considerations - if you already have a datatype namespace then call directly the corresponding simplifier://datatypes/namespace/{namespace} |
| connectors-list | # Get the list of all Connectors This resource provides the entry point for discovering all available connectors in the Simplifier instance. Each connector can be accessed via simplifier://connector/{connectorName} for detailed information. |
| loginmethods-list | # Get the list of all Login Methods This resource provides the entry point for discovering all available login methods in the Simplifier instance. Each login method can be accessed via simplifier://loginmethod/{loginMethodName} for detailed information. **What are Login Methods?** Login methods handle authentication for connectors, supporting various authentication types: - BasicAuth (UserCredentials) - OAuth2 - Bearer Tokens - Certificates - SAML - SSO (SAP Single Sign-On) - WSS (Web Services Security) - Microsoft Entra ID **Use Cases:** - Discover which login methods are configured - Understand authentication options for connectors - See which connectors support each login method type - Track who created/modified login methods and when |
| oauthclients-list | # Get the list of all OAuth2 Clients This resource provides the entry point for discovering all available OAuth2 clients configured in the Simplifier instance. **What are OAuth2 Clients?** OAuth2 clients are configured authentication providers that can be used with: - OAuth2 login methods for connectors - User authentication flows - External identity provider integration **Use Cases:** - Discover which OAuth2 clients are configured - Get client names for creating OAuth2 login methods **Example OAuth2 Clients:** - Infrastructure OIDC providers (Auth0, Okta, etc.) - Social login providers (Spotify, Google, etc.) - Enterprise identity providers (Azure AD, SAP BTP, etc.) **Creating OAuth2 Login Methods:** The OAuth2 client names returned by this resource can be used as the `clientName` when creating OAuth2 login methods via the `loginmethod-update` tool. |
| logging-list | # Get recent log entries from Simplifier This resource provides access to the 50 most recent log entries from the Simplifier logging system. **Note:** For filtered access to logs (by level, time range, pagination), use the `logging-list` tool instead. **Log Levels:** - 0 = Debug - 1 = Info - 2 = Warning - 3 = Error - 4 = Critical **See also:** - simplifier://logging/entry/{id} - Detailed log entry with full stack trace. Will only contain additional info, if "hasDetails" was true in the listing of the log item. |
| active-instance | # Get the active server instance |
| sap-systems-list | # Get the list of all SAP systems This resource provides the entry point for discovering all available SAP systems in the Simplifier instance. Each SAP system can be accessed via simplifier://sap-system/{sapSystemName} for detailed information. **What are SAP systems in Simplifier?** SAP systems in Simplifier are the connection information for instances of the SAP ERP software platform. They are mainly used as endpoints for the RFC connector. They can be restricted to specific Simplifier instances, e.g to ensure usage of different SAP systems on dev, QA and prod instances. **Use Cases:** - Discover which SAP systems are configured as possible endpoints for RFC connectors - See which connectors and business objects use the existing SAP systems - See which SAP systems should be used for which Simplifier instance - Track who created/modified SAP systems and when |
| user-api-docs | Complete reference for Simplifier.User methods available in server-side Business Objects |
| logging-api-docs | Complete reference for Simplifier.Log methods available in server-side Business Objects |
| utils-api-docs | Complete reference for Simplifier.Utils methods available in server-side Business Objects |
| connector-api-docs | Complete reference for Simplifier.Connector methods available in server-side Business Objects |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| businessobject-update | #Create or update a Business Object Attention: When updating dependencies or tags, allways fetch the Business Object resource first to ensure operating on the latest version. Existing dependencies and tags have to be resent when doing an update - otherwise they would be cleared. Dependencies are REQUIRED to be added when the BO functions access connectors or other BOs using Simplifier.Connector.* or Simplifier.BusinessObject.* APIs. Project AssignmentBusiness Objects must be assigned to projects using the project assignment parameters: For Creating New BOs:
For Updating Existing BOs:
Example: {
"name": "MyBusinessObject",
"projectsBefore": [],
"projectsAfterChange": ["ProjectA", "ProjectB"]
} |
| businessobject-function-update | #Create or update a Business Object Function Creates or updates a JavaScript function within a server-side Business Object. Functions contain business logic code and can call connectors or other business objects. Common Base Data Type IDs:
Parameter Structure: Each parameter needs name, dataTypeId, and isOptional. Description and alias are optional. Code: Standard JavaScript code. Parameter access in the code: Input parameters can be accessed with let myVar = input.parameter_name; Output parameters can be assigned with output.parameter_name = someOfMyResults; Attention: In case an alias is defined for a parameter, you have use "alias" instead of "parameter_name". Example: output.alias = someOfMyResults; You can do an early return of output, but you don't need to end with a return. The function code will be postfixed with a "return output" anyway. If you do a return instead of return output, then in the first case you will return undefined output parameters - this is most probably not what you want to do. Business Objects Development GuideOverviewThis guide provides comprehensive information for implementing Business Object functions in Simplifier, including Object API usage, connector access patterns, and Business Object to Business Object communication. Server-Side Business Object APIThe Available Components
Simplifier.Log.info(...) is logging to a Simplifier Log inside the database. The logged entries can be seen by the user but cannot be accessed by this MCP so far. console.log(...) is logging to the Simplifier logfile. The logged entries can be accessed by Simplifier Administrators only. The MCP cannot access these logs. Accessing Other Business ObjectsBasic Syntax// Access other Business Objects
Simplifier.BusinessObject.<BOName>.<MethodName>(payload?)
// Access current Business Object methods
Simplifier.CurrentBusinessObject.<MethodName>(payload?)
// Access connector calls (find the available connector calls via resources)
Simplifier.Connector.<ConnectorName>.<ConnectorCallName>(payload?) Examples// Call another Business Object function
var userInfo = Simplifier.BusinessObject.UserManager.getUserById({
userId: "12345"
});
// Call a function in the current Business Object
var result = Simplifier.CurrentBusinessObject.validateInput({
data: input.userData
}); Configuration RequirementsAdding DependenciesWhen accessing other Business Objects or connectors from a Business Object function, these components MUST be added as dependencies. (see schema for tool about getting, updating and creating Business Objects) Dependency Types
Dynamic Access MethodsVariables Approach// Using variables for dynamic calls
var boName = "UserManager";
var methodName = "getUser";
var result = Simplifier.BusinessObject[boName][methodName](payload); Dynamic Call Function// Using dynamic call patterns
var result = Simplifier.BusinessObject.call(boName, methodName, payload); Parameter Validation// Always validate input parameters
if (!input.userId || input.userId.length === 0) {
output.error = "UserId is required";
return output;
}
var userResult = Simplifier.BusinessObject.UserService.getUser({
userId: input.userId
}); Security Considerations
Performance Tips
Debugging Tips
This documentation provides the essential patterns and best practices for implementing robust Business Object functions in Simplifier. Remember to always add dependencies and follow security best practices when accessing external components. Dependencies for yourself do not need to be added, but you can access own functions like Simplifier.CurrentBusinessObject.(payload?). |
| businessobject-function-test | #Test a Business Object Function Execute a business object function with provided input parameters for testing purposes. This allows you to test your functions with real data and see the results. Common Base Data Type IDs:
Parameter Usage:
Error Handling:
|
| businessobject-delete | Delete an existing Business Object |
| businessobject-function-delete | Delete an existing Business Object Function |
| datatype-update | #Create or update custom data types Custom datatypes can be either
In these parameters, referenced datatypes are specified by name. If it isn't a global datatype, the name must be prefixed with the namespace, separated with a slash. Datatypes for connectors should be in the namespace "con/$name_of_connector", those for business objects in "bo/$name_of_bo". |
| datatype-delete | #Delete a datatype Deletes the datatype with the given name. The name may be prefixed by the namespace, separated with a slash. |
| connector-update | Create or update a ConnectorThis tool allows to
Attention: When updating a Connector, allways fetch the existing resource first to ensure operating on the latest version. Existing tags and endpoints have to be resent when doing an update - otherwise they would be cleared. Connector TypesCommon settingsFor all connectors using SSL / TLS, the
When no SSL is required, or no specific settings apply, use the following sslSettings: {
"trustType": 2,
"ignoreSSLCertificates": false
} Connector type 'REST'The object under endpointConfiguration / configuration defines properties, specific to REST Connector:
Complete Example: {
"name": "TestCreate",
"description": "",
"connectorType": "REST",
"active": true,
"timeoutTime": 60,
"endpointConfiguration": {
"endpoint": "Default",
"certificates": [],
"configuration": {
"endpointURL": "http://example-api.com/bla",
"sslSettings": {
"trustType": 2,
"ignoreSSLCertificates": false
}
}
},
"tags": [],
"assignedProjects": {
"projectsAfterChange": []
}
} Connector type 'SOAP'The object under endpointConfiguration / configuration defines properties, specific to SOAP Connector:
Complete Example: {
"name": "TestCreate",
"description": "",
"connectorType": "SOAP",
"active": true,
"timeoutTime": 60,
"endpointConfiguration": {
"endpoint": "Default",
"certificates": [],
"configuration": {
"wsdlUrl": "http://example-soap.com/myService?wsdl",
"sslSettings": {
"trustType": 2,
"ignoreSSLCertificates": false
}
}
},
"tags": [],
"assignedProjects": {
"projectsAfterChange": []
}
} Connector type 'SAP RFC'The object under endpointConfiguration / configuration defines the following properties specific to SAP RFC connectors, all of them are mandatory:
Complete example: {
"name": "MyRfc",
"description": "",
"connectorType": "SAPRFC",
"active": true,
"timeoutTime": 60,
"endpointConfiguration": {
"endpoint": "Default",
"certificates": [],
"configuration": {
"sapSystem": "ID4_0_800",
"parallelExecutions": false,
"connectionPool": {
"peakLimit": 0,
"poolCapacity": 1,
"expirationTime": 60000,
"expirationCheckPeriod": 60000,
"maxGetClientTime": 30000
}
}
},
"tags": [],
"assignedProjects": {
"projectsAfterChange": []
}
} |
| connector-call-update | Create or update a Connector callThis tool allows to
Attention: When updating a call, allways fetch the existing resource first to ensure operating on the latest version. Existing parameters have to be resent when doing an update - otherwise they would be cleared. Connector TypesConnector type 'REST'A REST Connector call defines a HTTP request to the configured endpoint address of the Connector. Call parameters may define the following: HTTP MethodParameter name: Type: String Possible Values: GET, POST, PUT, PATCH, DELETE, HEAD, OPTION The parameter is mandatory. If not specified differently, use constValue "GET". Request body formatParameter name: Type: String Possible Values: JSON, PLAIN, FORM, XML Request BodyParameter name: It can have an arbitrary data type. The data is converted and Content-Type header is set according to the parameter Request HeadersParameter name: Type: String Example: To add a header "X-TEST", define a parameter with the name "headParams/X-TEST". Path parametersParameter name: Type: Array[String] - that means it must always be given with array index, i.e. pathParams[0]. To form the URL of the call with complete path, all components of the array are joined by "/" and appended to the endpoint URL or the connector. Defining a path is optional. If omitted, just the endpoint URL is called. Examples: (assume endpoint URL is http://test-api.com)
URL parametersParameter name: Example: To set the url parameter like in "http://test-api.com?level=4", define a parameter with the name "queryParams/level" and give it a value 4. Output parametersA REST Connector must have at least one output parameter An empty parameter name, or "/" refers to the whole output object. Use alias "data" for the whole output object. Connector type 'SOAP'A SOAP Connector call defines a SOAP operation to be invoked on the configured WSDL service endpoint of the Connector. You can retrieve the configured WSDL for a connector using the resource simplifier://connector/{connectorName}/wsdl Call parameters may define the following: Binding NameParameter name: Type: String The binding name identifies the specific service binding to use from the WSDL specification. The parameter is mandatory. Operation NameParameter name: Type: String The operation name specifies which SOAP operation to invoke from the binding. The parameter is mandatory. Operation parametersParameter name: Type: depends on operation Example: Operation parameters contains the SOAP request parameters according to the operation's input schema defined in the WSDL. URL parametersParameter name: Type: String Optional parameters can be added as query parameters appended to the SOAP request URL. Example: To set a URL parameter like in "http://soap-service.com?version=1.0", define a parameter with the name "queryParams/version" and give it a value "1.0". Output parametersParameter name: An empty parameter name, or "/" refers to the whole output object. Use alias "data" for the whole output object. The output typically contains the SOAP response parsed according to the operation's output schema defined in the WSDL. For example, given the following WSDL operation: <wsdl:operation name="InputOutput">
<wsp:Policy>
<wsp:PolicyReference URI="#OP___-ITIZ_-DRAW_READ_ORIGINAL_FILE" />
</wsp:Policy>
<wsdl:input message="tns:InputOutput" />
<wsdl:output message="tns:InputOutputResponse" />
</wsdl:operation> With the corresponding message and element definitions: <wsdl:message name="InputOutputResponse">
<wsdl:part name="parameter" element="tns:InputOutputResponse" />
</wsdl:message> <xsd:element name="InputOutputResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="InputOutput" type="xsd:base64Binary" />
</xsd:sequence>
</xsd:complexType>
</xsd:element> the resulting object for the {
"soap": {
"InputOutputResponse": {
"InputOutput": "some value here"
}
}
} To get the relevant field only, the output parameter name would be Connector type 'SAPRFC'An SAP RFC connector call executes a function on the SAP system defined in the endpoint. As RFC calls only work with existing functions in the SAP system, use the
connector wizard to create them by first searching for available calls using the
resource RFC connector calls should define the following parameters with constant values: SOAP compatibility modeParameter name: Type: Boolean This parameter should be set to false, unless the user specified otherwise. Use default values in outputParameter name: Type: boolean This parameter should be set to true, unless the user specified otherwise. AutocommitParameter name: This parameter should be set to true, unless the user specified otherwise. Additional return informationParameter name: Type: Array of strings Possible values: IMPORT, CHANGING, TABLE, EXPORT, EXCEPTION Unless specified otherwise by the user, this should be set to Output parametersAn RFC connector's output parameters depend on the called SAP system function. You should usually let the wizard create them, as it has all the metadata available. |
| connector-wizard-rfc-create | Create one or more calls for an RFC connector using the wizardThe RFC connector requires calls to refer to existing functions on the remote SAP system. To find available functions,
use the resource template |
| connector-call-test | #Test a Connector Call Execute a connector call with provided input parameters for testing purposes. This allows you to test connector calls with real data and see the results. Parameter Usage:
|
| connector-call-delete | Delete a Connector call |
| connector-delete | Delete a Connector |
| loginmethod-update | Create or update a Login MethodCreate or update login methods for authenticating connectors with external systems. Supported Types:
Note that the type of a login method cannot be changed later. If you need to change the type, create a new login method instead. UserCredentials (BasicAuth)Creates or updates a basic authentication login method with various source types. UserCredentials with Provided Source (Default)Stores username and password directly in the login method. Configuration:
Example - Creating BasicAuth: {
"loginMethodType": "UserCredentials",
"sourceType": "Provided",
"name": "MyBasicAuth",
"description": "Basic auth for API",
"username": "admin",
"password": "secretPassword"
} Example - Updating BasicAuth password: {
"loginMethodType": "UserCredentials",
"sourceType": "Provided",
"name": "MyBasicAuth",
"description": "Updated description",
"username": "admin",
"password": "newPassword",
"changePassword": true
} UserCredentials with Profile ReferenceReferences a key in the user's profile. Example: {
"loginMethodType": "UserCredentials",
"sourceType": "ProfileReference",
"name": "MyBasicAuth",
"description": "BasicAuth from user profile",
"profileKey": "credentialsKey"
} UserCredentials with User Attribute ReferenceReferences a user attribute by name and category. Example: {
"loginMethodType": "UserCredentials",
"sourceType": "UserAttributeReference",
"name": "MyBasicAuth",
"description": "BasicAuth from user attribute",
"userAttributeName": "myAttrName",
"userAttributeCategory": "myAttrCat"
} OAuth2 Login MethodsCreates or updates OAuth2-based login methods with various source configurations. IMPORTANT: When creating an OAuth2 login method with a client reference, the OAuth2 with Client ReferenceUses a configured OAuth2 client from Simplifier.
Discover available clients: Use Configuration:
Example - Default header: {
"loginMethodType": "OAuth2",
"sourceType": "ClientReference",
"name": "MyOAuth",
"description": "OAuth with infraOIDC",
"oauth2ClientName": "infraOIDC",
"targetType": "Default"
} Example - Custom header: {
"loginMethodType": "OAuth2",
"sourceType": "ClientReference",
"name": "MyOAuth",
"description": "OAuth with custom header",
"oauth2ClientName": "infraOIDC",
"targetType": "CustomHeader",
"customHeaderName": "X-Custom-Auth"
} Example - Query parameter: {
"loginMethodType": "OAuth2",
"sourceType": "ClientReference",
"name": "MyOAuth",
"description": "OAuth as query param",
"oauth2ClientName": "infraOIDC",
"targetType": "QueryParameter",
"queryParameterKey": "authToken"
} OAuth2 with Profile ReferenceReferences a key in the user's profile. Example: {
"loginMethodType": "OAuth2",
"sourceType": "ProfileReference",
"name": "MyOAuth",
"description": "OAuth from user profile",
"profileKey": "oauthToken",
"targetType": "Default"
} OAuth2 with User Attribute ReferenceReferences a user attribute by name and category. Example: {
"loginMethodType": "OAuth2",
"sourceType": "UserAttributeReference",
"name": "MyOAuth",
"description": "OAuth from user attribute",
"userAttributeName": "myAttrName",
"userAttributeCategory": "myAttrCat",
"targetType": "Default"
} Token Login MethodsCreates or updates Token-based login methods for API authentication, including SimplifierToken support. Can be used for API-KEYs or for tokens, that you have received with former Simplifier Auth Clients and stored in the UserProfile or in the UserAttributes. In case you have received a token from a former connector call, you might want to add the token with every call in a header via a connector call input parameter. Token with Default SourceUses an empty configuration (no credentials stored). Typically used as a placeholder. Configuration:
Example: {
"loginMethodType": "Token",
"sourceType": "Default",
"name": "MyTokenDefault",
"description": "Token with default source",
"targetType": "Default"
} Token with SystemReference SourceUses the SimplifierToken for authentication. This is the primary use case for authenticating Simplifier apps accessing the REST API. Configuration:
Example: {
"loginMethodType": "Token",
"sourceType": "SystemReference",
"name": "SimplifierTokenAuth",
"description": "Uses SimplifierToken",
"targetType": "Default"
} Token with Provided SourceStores a token value directly in the login method. Useful for API keys. Configuration:
Example - Creating Token: {
"loginMethodType": "Token",
"sourceType": "Provided",
"name": "MyAPIKey",
"description": "API key authentication",
"token": "mySecretToken123",
"targetType": "Default"
} Example - Updating Token value: {
"loginMethodType": "Token",
"sourceType": "Provided",
"name": "MyAPIKey",
"description": "Updated API key",
"token": "newSecretToken456",
"changeToken": true
} Example - Updating description only (without changing token): {
"loginMethodType": "Token",
"sourceType": "Provided",
"name": "MyAPIKey",
"description": "Updated description only",
"token": "<not relevant>",
"changeToken": false
} Token with Custom HeaderPlace the token in a custom HTTP header. Example: {
"loginMethodType": "Token",
"sourceType": "Provided",
"name": "MyAPIKeyHeader",
"description": "Token in custom header",
"token": "myToken123",
"targetType": "CustomHeader",
"customHeaderName": "X-API-Token"
} Token with Profile ReferenceReferences a token stored in the user's profile. Example: {
"loginMethodType": "Token",
"sourceType": "ProfileReference",
"name": "MyTokenFromProfile",
"description": "Token from user profile",
"profileKey": "apiTokenKey",
"targetType": "Default"
} Token with User Attribute ReferenceReferences a token from a user attribute. Example: {
"loginMethodType": "Token",
"sourceType": "UserAttributeReference",
"name": "MyTokenFromAttr",
"description": "Token from user attribute",
"userAttributeName": "tokenAttribute",
"userAttributeCategory": "security",
"targetType": "Default"
} SAP-SSO Login MethodsCreates or updates SAP-SSO login methods for API authentication. Can be used for users authenticated against a SAP authentication method or with a constant value or one stored in the UserProfile or in the UserAttributes. SAP-SSO with Default SourceUses an empty configuration (no credentials stored). Uses the SAP Logon Ticket from the user, which needs to be logged in using SAP-SSO. Configuration:
Example: {
"loginMethodType": "SAPSSO",
"sourceType": "Default",
"name": "MySAPSSODefault",
"description": "SAPSSO with default source",
"targetType": "Default"
} SAP-SSO with Provided SourceStores a logon ticket value directly in the login method. Useful for API keys. Configuration:
Example - Creating SAP-SSO: {
"loginMethodType": "SAPSSO",
"sourceType": "Provided",
"name": "MyAPIKey",
"description": "SAP-SSO with constant logon ticket authentication",
"ticket": "mySecretToken123",
"targetType": "Default"
} Example - Updating ticket value: {
"loginMethodType": "SAPSSO",
"sourceType": "Provided",
"name": "MyAPIKey",
"description": "SAP-SSO with constant logon ticket authentication",
"ticket": "newSecretToken456",
"changeToken": true
} Example - Updating description only (without changing ticket): {
"loginMethodType": "SAPSSO",
"sourceType": "Provided",
"name": "MyAPIKey",
"description": "Updated description only",
"ticket": "<not relevant>",
"changeToken": false
} SAP-SSO with Profile ReferenceReferences a ticket stored in the user's profile. Example: {
"loginMethodType": "SAPSSO",
"sourceType": "ProfileReference",
"name": "MyTicketFromProfile",
"description": "Ticket from user profile",
"profileKey": "apiTicket",
"targetType": "Default"
} SAP-SSO with User Attribute ReferenceReferences a ticket from a user attribute. Example: {
"loginMethodType": "SAPSSO",
"sourceType": "UserAttributeReference",
"name": "MyTicketFromAttr",
"description": "Ticket from user attribute",
"userAttributeName": "ticketAttribute",
"userAttributeCategory": "security",
"targetType": "Default"
} |
| logging-list | Get recent log entries from SimplifierThis tool provides access to the Simplifier logging system. You can filter logs by level and time range. If no filters are used, it returns the 50 most recent log entries. If you are expecting to find some logs but they are missing, ask the user to check whether logging for execution is set to the right level in the Simplifier server settings. Log Levels:
Parameters:
Examples:
|
| sap-system-update | #Create or update a SAP system SAP Systems are used as the target of RFC connectors. Attention: When updating tags, allways fetch the SAP system resource first to ensure operating on the latest version. Existing tags have to be resent when doing an update - otherwise they would be cleared. You can find existing SAP systems with the simplifier://sap-systems resource, and details about a single system with simplifier://sap-system/{systemName} Project AssignmentSAP systems must be assigned to projects using the project assignment parameters: For Creating New SAP Systems:
For Updating Existing SAP Systems:
Example: {
"name": "MySapSystem",
"projectsBefore": [],
"projectsAfterChange": ["ProjectA", "ProjectB"]
} |
| sap-system-delete | Delete an existing SAP system |