Siebel AI Connectors
This topic provides an overview of Siebel AI Connectors. Siebel AI Connectors enable customers to expose selected Siebel Open Integration REST APIs as Model Context Protocol (MCP)-compatible tools and servers for consumption by AI agents and assistant applications.
Siebel Open Integration exposes Siebel objects, services and workflows through REST APIs. These APIs are powerful and flexible for direct system-to-system integration. However, AI agents require a more structured interface for interacting with enterprise systems.
Siebel AI Connectors provide a configuration-driven framework for exposing selected Open Integration REST APIs as MCP tools. Customers identify the Open Integration REST APIs they want to expose, define MCP tool metadata & maintain a centralized catalog, group those tools into MCP Servers, and once configured deploy these servers either on-premises or via Siebel Cloud Manager(SCM). The Siebel AI Connectors runtime then realizes the configured MCP Servers and exposes runtime endpoints that AI agents can use to discover and invoke the configured tools.
By using Siebel AI Connectors, customers can expose only the Open Integration operations that are relevant for an AI-agent use case, keep access to Siebel data and actions controlled, and align agent behavior with business processes.
This topic covers the following sections:
Installing Siebel AI Connectors
This topic describes how to install Siebel AI Connectors.
Siebel AI Connectors can work with on-premises environments and in Kubernetes-based environments managed through Siebel Cloud Manager. The deployment model determines how the runtime package and configuration artifacts are delivered, but the core runtime behavior remains the same.
In an on-premises deployment, the runtime package includes the artifacts required to run Siebel AI Connectors in the target environment.
In a Siebel Cloud Manager deployment, the Siebel AI Connectors runtime is deployed in a Kubernetes-based environment. Configuration artifacts are provided as part of the deployment process. More details to how we can work with Siebel Cloud Manager to deploy and manage Siebel AI Connectors can be found in the Deploying Siebel AI Connectors section of this topic. For more details on SCM, please read the Administration Bookshelf guide for Siebel Cloud Manager.
- Open Integration installation and configuration is a prerequisite to ensure that your Siebel AI Connectors works properly.
- During the installation process, don't modify the runtime JAR or dependent libraries. Update only the configuration files.
On-Premises Package Contents
The on-premises runtime package includes the runtime JAR, dependent libraries, and configuration template files.
The package includes the following artifacts:
mcp-runtime/
├── mcp-runtime-<version>.jar. # Do not Modify
├── libs/ # Do not Modify
├── application.yaml # Configuration File
├── logging.properties # Configuration File
├── MCP_CONFIG.json # Configuration Files
├── FINAL_SPECIFICATION.json # Configuration Files
├── OI_CONFIG.json # Configuration Files
On-Premises Installation for Windows & Linux
Windows Installer
Interactive Installation
Use this procedure to install Siebel AI Connectors on Windows by using the interactive installer.
- Download and extract the Siebel AI Connectors installer artifacts.
- Review the README file provided with the installer package.
- Start the installer by running the Windows installer command.
- Select the installation directory.
- Select the Siebel AI Connectors component.
- Review the installation summary.
- Click Install.
- After installation completes, verify that the Siebel AI Connectors artifacts are created in the selected installation directory.
- Configure the runtime artifacts before starting the Siebel MCP Server.
Silent Installation
Use this procedure to install Siebel AI Connectors on Windows in silent mode.
- Run the installer and proceed to the Summary screen.
- Save the response file.
- Review the response file and verify that the installation directory is correct.
- Run the installer in silent mode using the generated response file.
- After installation completes, verify that the Siebel AI Connectors artifacts are created in the selected installation directory.
Linux Installer
Interactive Installation
Use this procedure to install Siebel AI Connectors on Linux by using the interactive installer.
- Download and extract the Siebel AI Connectors installer artifacts.
- Review the README file provided with the installer package.
- Start the installer by running the Linux installer command.
- Select the installation directory.
- Select the Siebel AI Connectors component.
- Review the installation summary.
- Click Install.
- After installation completes, verify that the Siebel AI Connectors artifacts are created in the selected installation directory.
- Configure the runtime artifacts before starting the Siebel MCP Server.
Silent Installation
Use this procedure to install Siebel AI Connectors on Linux in silent mode.
- Run the installer and proceed to the Summary screen.
- Save the response file.
- Review the response file and verify that the installation directory is correct.
- Run the installer in silent mode using the generated response file.
- After installation completes, verify that the Siebel AI Connectors artifacts are created in the selected installation directory.
Configuring Siebel AI Connectors
This section describes how to configure Siebel AI Connectors, prepare MCP tools from Siebel Open Integration REST APIs, secure MCP endpoints, and validate runtime behavior.
Siebel AI Connectors are intended to be used with Siebel Open Integration. After Open
Integration is configured and running, it exposes the resources defined for API
generation under config.json as standard REST APIs. The
corresponding OpenAPI specification available from the Open Integration runtime
describes the exposed resources, paths, HTTP methods, parameters, request bodies,
and schemas.
Customers use the Open Integration REST APIs and the corresponding OpenAPI
specification as the starting point to decide which operations should be selectively
exposed as MCP tools. The selected operations and tool metadata are represented in
FINAL_SPECIFICATION.json, grouped into MCP Servers using
MCP_CONFIG.json, connected to Open Integration using
OI_CONFIG.json, and loaded by the runtime using
application.yaml and logging.properties.
Configuration Prerequisites
Before configuring or deploying Siebel AI Connectors, complete the following prerequisites.
Open Integration
Siebel Open Integration must be installed, configured, and running before Siebel AI Connectors can be configured.
| Check | Description |
|---|---|
| Open Integration is installed and configured. | Siebel AI Connectors depend on Open Integration REST APIs as the source APIs for MCP tools. |
| Open Integration runtime is running. | The runtime must expose the configured resources as standard REST APIs. |
| OpenAPI specification is available from the Open Integration runtime. | The OpenAPI specification describes the resources, paths, HTTP methods, parameters, request bodies, and schemas available for tool creation. |
| Target Open Integration server details are known. | These values are required in OI_CONFIG.json,
including server name, scheme, host, port, and context. |
Tool Selection
Before creating or updating FINAL_SPECIFICATION.json, identify which
Open Integration operations should be exposed as MCP tools.
| Check | Description |
|---|---|
| Required business use case is identified. | Only expose APIs required by the intended AI-agent use case. |
| Required Open Integration resources are identified. | For example, Account, Contact, Product, Service Request, or other configured resources. |
| Required API operations are selected. | Select the required paths and HTTP methods, such as
get, post,
put, or delete. |
| Tool names and descriptions are planned. | Tool names should be stable, and descriptions should be clear enough for MCP clients and AI agents. |
| Required request inputs are understood. | Review path, query, header parameters, and request body schemas. |
| Security impact is reviewed. | Avoid exposing create, update, or delete operations unless the AI-agent use case requires them. |
Runtime Package
The Siebel AI Connectors runtime package must be available on the target environment.
| Check | Description |
|---|---|
mcp-runtime-<version>.jar is present. |
Runtime application binary. Do not modify. |
libs/ is present. |
Runtime dependencies. Do not modify. |
application.yaml is present. |
Defines runtime server settings, security settings, and configuration file locations. |
logging.properties is present. |
Defines runtime logging behavior. |
MCP_CONFIG.json is present. |
Defines MCP Servers and tool mappings. |
FINAL_SPECIFICATION.json is present. |
Defines selected tools in OpenAPI-compatible format. |
OI_CONFIG.json is present. |
Defines Open Integration server instances. |
Security
If JWT authentication is enabled for Siebel AI Connectors, verify the following:
| Check | Description |
|---|---|
| Identity provider is configured. | For example, OCI Identity Domain or the configured OAuth provider. |
| JWT issuer is known. | Required in security.jwt.issuer. |
| JWT audience is known. | Required in security.jwt.audience. |
| Required OAuth scope is known. | Required in security.jwt.required-scope. Scope
Siebel AI Connectors should match with what is defined for Open
Integration. |
| JWKS URI is available. | Required in security.jwt.jwks-uri. |
| Open Integration authentication is aligned. | If Siebel AI Connectors uses OAuth/JWT authentication, Open Integration must also be configured to accept the corresponding authentication flow. |
| Test token can be generated. | Required for secured endpoint validation. |
High-Level Configuration Overview
To ensure that you can start your MCP Servers using Siebel AI Connectors, the following diagram provides a high level guidance on the activities you need to perform when working with the product:
- Review Open Integration API(s): Open Integration is the source of all MCP
tools available in
FINAL_SPECIFICATION.jsonfor Siebel AI Connectors. Begin by reviewing the OpenAPI specification generated by Open Integration, for the target resource & identify the REST operations that support your AI use case. Rather than exposing every available operation, select only the APIs that an AI agent needs to perform its tasks. This helps minimize unnecessary access and simplifies tool management. - Define MCP Tool(s): After identifying the required operations, move
relevant APIs into the
FINAL_SPECIFICATION.jsonand create MCP tool definitions that describe how those APIs will be presented to AI agents. Each MCP tool represents a specific business capability, such as retrieving account information or updating a service request. The tool definitions become the catalog of capabilities that can later be assigned to MCP Servers. - Add Open Integration instance(s): Ensure that the
OI_CONFIG.jsonis updated with relevant Open Integration instances which have relevant APIs updated as part of theFINAL_SPECIFICATION.jsonfile. - Organize Tools into MCP Server(s): Group related MCP tools into one or
more MCP Servers in the
MCP_CONFIG.jsonfile. A server can represent a business domain, application area, or functional capability. For example, one server might expose customer-related tools while another exposes product-related operations. Organizing tools into logical servers makes them easier for AI agents to discover and consume. - Configure the Runtime: Once the tools and servers have been defined,
configure the remaining configuration files -
application.yaml&logging.propertieswith appropriate details. The runtime uses these configured files to establish connections with the configured Open Integration instances, initializes the MCP Servers, and exposes the corresponding endpoints for AI clients. - Deploy and Validate: Deploy the configured runtime to your target
environment, either on-premises or using Siebel Cloud Manager.After deployment,
verify that:
- The runtime starts successfully.
- The MCP Server endpoints are available.
- AI clients can discover the configured servers.
- The exposed tools successfully invoke the corresponding Open Integration REST APIs.
Although creating an MCP Server is primarily a configuration activity, the runtime uses several configuration artifacts to describe the tools, servers, runtime settings, Open Integration connections, and logging behavior. These artifacts work together to define what capabilities are exposed and how the runtime operates. Each artifact has a specific purpose and should be configured consistently before deployment.
Inspecting Open Integration
Open Integration is the source for APIs exposed through Siebel AI Connectors. After
Open Integration is configured and running, the resources defined for API generation
under config.json are exposed as standard REST APIs. The
corresponding OpenAPI specification from the Open Integration runtime provides
metadata for the exposed resources, including paths, HTTP methods, parameters,
request bodies, and schemas.
Use these available Open Integration APIs as the starting point for tool selection. Not every Open Integration operation needs to be exposed as an MCP tool. Select only the operations required for the AI-agent use case.
To prepare MCP tools:
-
Confirm that the required Open Integration resources are configured for API generation under
config.json. -
Start or verify the Open Integration runtime.
- Use the
describeoperation available for the target Siebel artifact configured on Open Integration, to fetch and review the corresponding OpenAPI specification. -
Identify the API paths and HTTP methods that should be exposed to AI agents.
-
Define the selected operations and MCP tool metadata in
FINAL_SPECIFICATION.json. -
Group the selected tools into MCP Servers using
MCP_CONFIG.json.
The following example shows an Open Integration Account resource exposed as REST API operations:
{
"paths": {
"/openintegration/v1.0/data/Account/Account/": {
"get": {
"operationId": "openintegration_v1.0_data_Account_Account__get"
},
"put": {
"operationId": "openintegration_v1.0_data_Account_Account__put"
},
"post": {
"operationId": "openintegration_v1.0_data_Account_Account__post"
}
}
}
}
In this example, the Account resource exposes get,
put, and post operations. The implementation
team can evaluate these operations and decide which ones should be selectively
created as MCP tools.
| Open Integration Operation | Expose as MCP Tool? | Guidance |
|---|---|---|
| GET /openintegration/v1.0/data/Account/Account/ | Common | Expose when the AI-agent use case requires account lookup or retrieval. |
| PUT /openintegration/v1.0/data/Account/Account/ | Conditional | Expose only if the AI-agent use case is allowed to update account data. |
| POST /openintegration/v1.0/data/Account/Account/ | Conditional | Expose only if the AI-agent use case is allowed to create account data. |
After the tool selection is complete, define the selected operations in
FINAL_SPECIFICATION.json and map them to MCP Server endpoints
using MCP_CONFIG.json.
Configuring Siebel AI Connectors Files
Only the configuration files should be updated. Do not modify
mcp-runtime-<version>.jar or files under
libs/. The below table captures details on individual
configuration files available for developers to make necessary changes to configure
MCP Tools & Servers:
| File or Folder | Purpose | Update Guidance |
|---|---|---|
| FINAL_SPECIFICATION.json | Cumulated tools in OpenAPI-compatible format. Defines MCP tool metadata and Open Integration operation mappings. | Generated or updated by configuration-time tooling. Do not manually update unless instructed. |
| MCP_CONFIG.json | MCP Server configuration. Maps MCP Servers to tool names from
FINAL_SPECIFICATION.json. |
Update when MCP Server grouping or endpoint mapping changes. |
| application.yaml | Runtime configuration. Defines server host, port, security settings, and paths to runtime configuration files. | Update when runtime settings, security settings, or file locations change. |
| OI_CONFIG.json | Open Integration instance configuration. Defines Open Integration servers used by the runtime. | Update when Open Integration server details change. |
| logging.properties | Runtime logging configuration. | Update when logging levels or logging behavior need to change. |
FINAL_SPECIFICATION.json
FINAL_SPECIFICATION.json is the runtime-consumable tool
specification used by Siebel AI Connectors to create MCP tool definitions from
selected Open Integration REST API operations. It is modeled on the OpenAPI
Specification and allows developers to define:
- Open Integration API paths and HTTP methods selected for exposure.
- List of tool names available as part of the FINAL_SPECIFICATION.json
- Tool metadata - tool name, descriptions and so on are defined for selected Open Integration paths and HTTP operations.
- Open Integration server mappings.
- Parameters, request bodies, and schemas used to build and validate MCP tool inputs.
The delivered template uses the following top-level structure:
{
"openapi": "<version>",
"info": {
"title": "<Title>",
"description": "<Description>",
"contact": {
"email": "sample@sample.com"
},
"version": "<version>"
},
"externalDocs": {
"description": "<description>",
"url": "<url>"
},
"servers": [
{
"url": "<Server Base Url>",
"x-server-name": "<Server Instance Name>"
}
],
"x-tools": [
"<Tool Name>"
],
"tags": [
{
"name": "<tag>"
}
],
"paths": {
"<Path>": {
"<http-method>": {
"x-tool-name": "<Tool Name>",
"x-server-name": "<Server Instance Name>",
"tags": [
"<tag>"
],
"operationId": "<Operation Id>",
"description": "<Description>",
"summary": "<Summary>",
"parameters": [],
"requestBody": {},
"responses": {}
}
}
},
"components": {
"schemas": {}
},
"x-original-swagger-version": "3.0"
}
Top-Level Fields
| Field | Required | Description |
|---|---|---|
| components | Recommended | Contains schemas referenced by parameters or request bodies. |
| externalDocs | Optional | External documentation reference. |
| info | Recommended | OpenAPI metadata, including title, description, contact, and version. |
| openapi | Yes | OpenAPI version used by the specification. |
| paths | Yes | Contains Open Integration API paths and operations selected for tool generation. |
| servers | Yes | Server entries from the OpenAPI specification. Runtime reads
these for server-name and URL comparison or logging. The downstream
base URL is resolved from OI_CONFIG.json. |
| tags | Optional | OpenAPI tags used for grouping operations. |
| x-original-swagger-version | Optional | Preserves source Swagger/OpenAPI version metadata. |
| x-tools | Yes | List of all tools present in the file. |
Additional Details on Fields for FINAL_SPECIFICATION.json
The following describes additional information on the different fields described in the above table, in scope of the FINAL_SPECIFICATION.json
- servers
The
serversarray contains OpenAPI server definitions and logical server names."servers": [ { "url": "<Server Base Url>", "x-server-name": "<Server Instance Name>" } ]Field Required Description url Yes Server base URL from the OpenAPI specification. x-server-name Yes Logical server instance name. Operation-level x-server-namevalues use this name to identify the Open Integration server mapping.The runtime reads top-level
serversfor server-name and URL comparison or logging. It does not use the top-level server URL directly as the downstream base URL. The downstream server URL is resolved fromOI_CONFIG.json. - x-tools
The
x-toolsfield lists all tool names present inFINAL_SPECIFICATION.json. Each operation-levelx-tool-nameshould be present in the top-levelx-toolsarray."x-tools": [ "Account GET", "Account PUT", "Account POST" ] - paths
The
pathsobject contains the selected Open Integration API paths and HTTP method that can be realized as MCP Tools by the Siebel AI Connectors runtime.Sample: "paths": { "/openintegration/v1.0/data/Account/Account/": { "get": { ..... }, "put": { ..... } } }Field Required Description Path key Yes OpenAPI path, for example /accounts/{id}or/openintegration/v1.0/data/Account/Account/.HTTP method Yes HTTP operation under the path, such as get,post,put, ordelete. - HTTP method Fields
For Siebel AI Connectors, we map individual HTTP methods(GET, PUT, POST and DELETE) defined under a "
path"to an MCP Tool in the FINAL_SPECIFICATION.json file. Each selected HTTP method defines the OpenAPI operation and MCP-specific metadata. The following table captures relevant information on the different key-value pairs that should be configured:Field Required Description x-tool-name Recommended Primary source for the MCP tool name. If absent or blank, operationIdis used as the fallback tool name.x-server-name Optional Identifies which server entry from OI_CONFIG.jsonthe tool sends the downstream request to. If missing, the default server fromOI_CONFIG.jsonis used.operationId Yes Used as fallback MCP tool name when x-tool-nameis absent or blank. Also used in description fallback behavior.description Recommended Primary source for the MCP tool description. Can be updated by user to reflect the tool description they would want to provide for the selected operation. summary Optional Fallback MCP tool description when descriptionis absent or blank.tags Optional Provided by the Open Integration OpenAPI Spec. parameters Conditional Provided by the Open Integration OpenAPI Spec. requestBody Conditional Provided by the Open Integration OpenAPI Spec. Required when the operation expects a request body. Used to build the body argument in the MCP input schema. responses Recommended Provided by the Open Integration OpenAPI Spec. - parameters
Parameters are available for certain HTTP methods available for a given
path. These parameters are specified in Open Integration's OpenAPI spec and are added as needed in theFINAL_SPECIFICATION.jsonfor the associated path and HTTP method.Sample: "parameters": [ { "name": "Id", "in": "query", "description": "Account identifier.", "schema": { "type": "string" } } ]Field Required Description in Yes Provided via the Open Integration OpenAPI Spec name Yes Provided via the Open Integration OpenAPI Spec schema Yes Provided via the Open Integration OpenAPI Spec description Recommended Optionally available. Should be added for the parameter for proper usage with the MCP tool. - components.schemas
The
components.schemassection defines schemas used by parameters and request bodies.Sample: "components": { "schemas": { "AccountUpdate": { "type": "object", "additionalProperties": false, "required": [ "Name" ], "properties": { "Name": { "type": "string", "description": "Account name." } } } } }Field Description required Validated for request body. This is distinct from the generated top-level tool required array. additionalProperties Controls whether unexpected body fields are allowed in a request body. Can be set to true or false.
If set to
false, unexpected body fields are rejected.If set to true, additional fields are allowed as part of the Request Body.
description Exposed to clients. Body descriptions appear on properties.body.discriminator Preserved. Runtime has no discriminator-specific logic, although schema composition may apply where supported.
MCP_CONFIG.json
MCP_CONFIG.json defines MCP Servers and maps each MCP Server to tool
names from FINAL_SPECIFICATION.json.
Sample:
{
"mcp-servers": [
{
"mcp-server-name": "GET",
"mcp-server-path": "/account1",
"mcp-server-description": "Account 1 Description",
"mcp-server-version": "1.0.0",
"mcp-server-tools": [
"Account GET",
"Account PUT",
"Account POST"
]
},
{
"mcp-server-name": "PUT",
"mcp-server-path": "/account2",
"mcp-server-description": "Account 2 Description",
"mcp-server-version": "1.0.0",
"mcp-server-tools": [
"Account GET",
"AccountMethod POST",
"AccountKeyMethod POST"
]
}
]
}
| Field | Required | Description |
|---|---|---|
| mcp-servers | Yes | Array of MCP Server definitions. |
| mcp-server-name | Yes | Name of the MCP Server. |
| mcp-server-path | Yes | Runtime endpoint path for the MCP Server. Must be unique for each MCP Server. |
| mcp-server-description | Yes | Description of the MCP Server. |
| mcp-server-version | Yes | MCP Server version. |
| mcp-server-tools | Yes | List of tool names exposed by this MCP Server. Each value should
be present under x-tools in
FINAL_SPECIFICATION.json |
Rules:
-
Each
mcp-server-pathmust be unique. -
Each tool in
mcp-server-toolsmust exist inFINAL_SPECIFICATION.json. -
Tool names are matched by exact string.
OI_CONFIG.json
OI_CONFIG.json defines Open Integration instance(s) used by the
runtime.
Sample:
{
"default-server": "<server-name-1>",
"servers": [
{
"name": "<server-name-1>",
"scheme": "<scheme>",
"host": "<host>",
"port": 8433,
"context": "<context>"
},
{
"name": "<server-name-2>",
"scheme": "<scheme>",
"host": "<host>",
"port": 8433,
"context": "<context>"
}
]
}
| Field | Required | Description |
|---|---|---|
| default-server | Yes | Default Open Integration server. Used when operation-level
x-server-name is missing or unknown. |
| servers | Yes | List of Open Integration server definitions. |
| name | Yes | Logical Open Integration server name. This should match
operation-level x-server-name values in
FINAL_SPECIFICATION.json. |
| scheme | Yes | Protocol used for Open Integration, such as http
or https. |
| host | Yes | Open Integration host. |
| port | Yes | Open Integration port. |
| context | Yes | Open Integration context path. |
-
default-servermust match one of theservers[].namevalues. -
Each
servers[].namemust be unique. -
Operation-level
x-server-namevalues inFINAL_SPECIFICATION.jsonshould resolve to entries inOI_CONFIG.json. -
If operation-level
x-server-nameis missing or unknown, the runtime usesdefault-server.
logging.properties
The logging.properties defines runtime logging behavior and must be
referenced from application.yaml using
mcp.logging-properties-file.
The file should be placed in the same folder as
mcp-runtime-<version>.jar unless the path in
application.yaml is updated.
handlers=io.helidon.logging.jul.HelidonConsoleHandler
java.util.logging.SimpleFormatter.format=%1$tY.%1$tm.%1$td %1$tH:%1$tM:%1$tS.%1$tL %4$s %5$s%6$s%n
# Global logging level. Can be overridden by specific loggers
.level=SEVERE
io.helidon.level=SEVERE
| Field | Description |
|---|---|
| handlers | Defines the logging handler used by the runtime. |
| java.util.logging.SimpleFormatter.format | Defines the log message format. |
| .level | Global logging level. Can be overridden by specific loggers. |
| io.helidon.level | Logging level for Helidon runtime loggers. |
application.yaml
application.yaml defines runtime server settings, JWT security
settings, and configuration file paths.
Sample:
server:
port: <port>
host: <host>
security:
jwt:
enabled: true
issuer: <issuer>
audience: <audience>
required-scope: <scope>
clock-skew-seconds: <seconds>
jwks-uri: "<jwks-uri>"
jwks-cache-duration-seconds: <duration>
mcp:
server-config-file: <path to MCP_CONFIG.json>
final-spec-file: <path to FINAL_SPECIFICATION.json>
logging-properties-file: <path to logging.properties>
open-int-config-file: <path to OI_CONFIG.json>
| Field | Required | Description |
|---|---|---|
| server.port | Yes | Runtime server port. Change this if the configured port is already in use. |
| server.host | Yes | Runtime server host. |
| security.jwt.enabled | Required when JWT is used | Enables or disables JWT validation. |
| security.jwt.issuer | Required when JWT is used | Expected token issuer. |
| security.jwt.audience | Required when JWT is used | Expected token audience. |
| security.jwt.required-scope | Required when JWT is used | Required OAuth scope for MCP requests. |
| security.jwt.clock-skew-seconds | Recommended when JWT is used | Allowed clock skew during token validation. |
| security.jwt.jwks-uri | Required when JWT is used | JWKS URI used to validate JWT signatures. |
| security.jwt.jwks-cache-duration-seconds | Recommended when JWT is used | Duration for JWKS cache. |
| mcp.server-config-file | Yes | Path to MCP_CONFIG.json. |
| mcp.final-spec-file | Yes | Path to FINAL_SPECIFICATION.json. |
| mcp.logging-properties-file | Yes | Path to logging.properties. |
| mcp.open-int-config-file | Yes | Path to OI_CONFIG.json. |
Security and Authentication
Siebel AI Connectors support OAuth 2.0 JWT-based authentication. When JWT authentication is enabled, each request to an MCP Server endpoint must include a valid access token.
The runtime validates the token using the JWT configuration in
application.yaml.
security:
jwt:
enabled: true
issuer: <issuer>
audience: <audience>
required-scope: <scope>
clock-skew-seconds: <seconds>
jwks-uri: "<jwks-uri>"
jwks-cache-duration-seconds: <duration>
| Field | Required | Description |
|---|---|---|
| security.jwt.enabled | Yes | Enables JWT authentication. |
| security.jwt.issuer | Yes | Expected token issuer. |
| security.jwt.audience | Yes | Expected token audience. |
| security.jwt.required-scope | Yes | OAuth scope required to invoke MCP endpoints. |
| security.jwt.clock-skew-seconds | Recommended | Allowed clock skew during token validation. |
| security.jwt.jwks-uri | Yes | JWKS endpoint used to validate token signatures. |
| security.jwt.jwks-cache-duration-seconds | Recommended | Duration for JWKS cache. |
In a secured deployment:
-
The MCP client generates an OAuth access token from the configured identity provider.
-
The MCP client sends the request to the MCP Server endpoint with an authorization header.
-
The Siebel AI Connectors runtime validates the JWT.
-
After validation, the runtime invokes the configured Open Integration REST API.
The authentication configuration must be consistent across Siebel AI Connectors and Open Integration. If Siebel AI Connectors uses OAuth/JWT authentication, Open Integration must also be configured to accept the corresponding authentication flow.
Consistency Checklist
Before starting or deploying the runtime, verify the following:
| Check | Required |
|---|---|
Every tool in MCP_CONFIG.json has a mapping in
FINAL_SPECIFICATION.json. |
Yes |
Every operation-level x-tool-name is listed in
top-level x-tools. |
Yes |
mcp.server-config-file points to
MCP_CONFIG.json. |
Yes |
mcp.final-spec-file points to
FINAL_SPECIFICATION.json. |
Yes |
mcp.logging-properties-file points to
logging.properties. |
Yes |
mcp.open-int-config-file points to
OI_CONFIG.json. |
Yes |
Every operation-level x-server-name resolves to
an entry in OI_CONFIG.json, or
default-server is configured for
fallback. |
Yes |
OI_CONFIG.json defines a valid
default-server. |
Yes |
Each mcp-server-path is unique. |
Yes |
Request bodies use application/json. |
Yes |
Supported parameter locations are path,
query, and header. |
Yes |
Deploying Siebel AI Connectors
This section describes how to deploy Siebel AI Connectors after the required configuration files are prepared.
Siebel AI Connectors can be deployed in an on-premises environment or through Siebel Cloud Manager. In both deployment models, the runtime uses the configured artifacts to create MCP Servers, expose MCP-compatible tools, and connect those tools to the selected Siebel Open Integration REST APIs.
Before deploying Siebel AI Connectors, verify that application.yaml,
MCP_CONFIG.json, FINAL_SPECIFICATION.json,
OI_CONFIG.json, and logging.properties are
updated for the target environment. Also verify that Siebel Open Integration is
installed, configured, and running.
The deployment topics include:
- Deploying Siebel AI Connectors - On-Premise
- Deploying Siebel AI Connectors - Siebel Cloud Manager
- Runtime Behavior and Validations
Deployment Prerequisites
Java and Certificate Prerequisites
For on-premises runtime startup, verify the following:
| Prerequisite | Description |
|---|---|
| JRE 21 is available. | Configure JAVA_HOME and PATH
for the JRE delivered or supported with the Siebel
installer. |
| Required certificates are trusted. | If Open Integration uses TLS, import the required Siebel or Open Integration certificate into the Java truststore used by the runtime. |
| Truststore path and password are known. | Required when configuring Java truststore behavior for deployment or runtime. |
Example certificate import command on Linux:
keytool -importcert -trustcacerts -alias siebel \
-file "<FS path>/siebel.crt" \
-keystore "<FS path>/jre/lib/security/cacerts" \
-storepass changeit \
-noprompt
Example certificate import command on Windows:
keytool -importcert -trustcacerts -alias siebel ^
-file "<FS path>\siebel.crt" ^
-keystore "<FS path>\jre\lib\security\cacerts" ^
-storepass changeit ^
-noprompt
SCM Deployment Prerequisites
For Siebel Cloud Manager deployment, verify the following before deploying Siebel AI Connectors:
| Prerequisite | Description |
|---|---|
| Siebel Cloud Manager is available. | SCM APIs are used to create infrastructure and deploy Siebel AI Connectors. |
| Kubernetes environment is available. | For example, BYO OCNE, OKE, or another supported Kubernetes target. |
| Infrastructure input is available. | Namespace, kubeconfig path or cluster details, operator options, registry details, and GitOps details are required. |
| Customer Git repository is available. | Runtime configuration artifacts are maintained in Git. |
| Git access credentials are available. | HTTPS token, self-signed CA path, or SSH private key path may be required. |
| Git repository is registered with SCM. | SCM returns a git_id used in the deployment
payload. |
| Container registry access is available. | Registry URL, user, password or token, and registry prefix are required. |
| Configuration files are committed to Git. | application.yaml,
MCP_CONFIG.json,
FINAL_SPECIFICATION.json,
OI_CONFIG.json, and
logging.properties must be available in the
configured Git folder. |
| Truststore file is available when required. | The deployment payload can reference the Java truststore path and password. |
| Namespace is created when using BYO namespace. | If byo_ns is true, create the
namespace before deployment and use the namespace value in the
deployment name field. |
| Security context values are known when required. | If a custom security context is used, provide
run_as_user, run_as_group, and
fs_group. |
Deploying Siebel AI Connectors - On-Premises
This topic describes how to deploy Siebel AI Connectors in an on-premises environment after the required configuration files are prepared.
In an on-premises deployment, Siebel AI Connectors are started from the delivered runtime package. Before starting the runtime, verify that the configuration files are present, that the Open Integration server details are correct, and that the Java prerequisites are complete.
Before You Begin
Before deploying Siebel AI Connectors on-premise, make sure that:
- Siebel Open Integration is installed, configured, and running.
- The Open Integration REST APIs selected for MCP tool exposure are available.
- The Siebel AI Connectors runtime package is installed.
- The required configuration files are updated for the target environment.
- Navigate to the Siebel AI Connectors runtime directory and verify that the necessary files, libs and folders are present.
- Verify that
application.yamlcontains the correct runtime settings and file paths.server.portis available on the target host.server.hostis correct for the deployment.- The paths under
mcppoint to the correct files. - JWT settings are correct, if authentication is enabled.
- Verify that
OI_CONFIG.jsoncontains the Open Integration server instances used by the runtime.default-servermatches one of the server names in theserversarray.- Each server name is unique.
scheme,host,port, andcontextare correct for the Open Integration environment.- The runtime host can connect to each configured Open Integration server.
- Verify that
FINAL_SPECIFICATION.jsoncontains the selected Open Integration operations and MCP tool metadata.- The required tools are present.
- Tool names are unique.
- Tool names used in
MCP_CONFIG.jsonmatch the names inFINAL_SPECIFICATION.json. - The Open Integration server mappings are correct.
- Verify that
MCP_CONFIG.jsondefines the MCP Servers and maps each server to one or more tools fromFINAL_SPECIFICATION.json.- Each
mcp-server-pathis unique. - Each tool listed in
mcp-server-toolsexists inFINAL_SPECIFICATION.json. - Tool names match exactly between
MCP_CONFIG.jsonandFINAL_SPECIFICATION.json.
- Each
- JRE 21 is configured.
- Required certificates are imported into the Java truststore, if Open Integration uses TLS.
Start the Siebel AI Connectors Runtime
After verifying the configuration files and necessary prerequisites, start the runtime from the runtime directory.
For Windows, run:
java -cp ".\mcp-runtime-<version>.jar;.\libs\*" com.oracle.siebel.mcp.Main
For Linux, run:
java -cp "./mcp-runtime-<version>.jar:./libs/*" com.oracle.siebel.mcp.Main
Replace <version> with the version of the runtime JAR delivered
in the package.
Verify Runtime Startup
After starting the runtime, review the startup logs.
Look for log messages that confirm the following:
FINAL_SPECIFICATION.jsonwas parsed successfully.- Open Integration servers were loaded.
- The default Open Integration server was identified.
- Tools were processed from the OpenAPI specification.
- The runtime selected the Open Integration server for each tool.
- MCP tools were adapted from the OpenAPI specification.
- MCP Servers were started successfully.
- The base MCP Server URL was created.
Example log messages:
INFO Successfully parsed OpenAPI spec file:<Path>/FINAL_SPECIFICATION.json
INFO Loaded Open Integration servers: [OI123, OI456]; default server: OI456
INFO Processing Tool : [Account GET] , Method : [GET] , Path: [/openintegration/v1.0/data/Account/Account/]
INFO Using Open Integration server [OI456] for tool [Account GET]
INFO Adapted [20] tools from OpenAPI spec
INFO Started all channels in 8 milliseconds. 590 milliseconds since JVM startup. Java 21.0.11
INFO MCP Servers started with base url: 0.0.0.0:8081/siebelAIConnectors/mcp
If the runtime does not start successfully, review the logs and verify the configuration file paths, Open Integration server details, Java configuration, certificate configuration, and MCP tool mappings.
Verify MCP Server Access
After the Siebel AI Connectors runtime starts successfully, verify that the configured MCP Servers are available.
The runtime exposes MCP Servers using the base MCP path and the MCP Server path
configured in MCP_CONFIG.json.
The MCP Server endpoint uses the following format:
<scheme>://<host>:<port>/siebelAIConnectors/mcp/<mcp-server-path>
Where:
| Value | Description |
|---|---|
| <scheme> | The protocol used to access the Siebel AI Connectors runtime,
such as http or https. |
| <host> | The host where the Siebel AI Connectors runtime is running. |
| <port> | The runtime port configured in
application.yaml. |
| /siebelAIConnectors/mcp | The base path used by the Siebel AI Connectors runtime for MCP Servers. |
| <mcp-server-path> | The MCP Server path configured in
MCP_CONFIG.json. |
For example, if application.yaml configures the runtime on port
8081, and MCP_CONFIG.json defines the
following MCP Server path:
{
"mcp-server-name": "Account MCP Server",
"mcp-server-path": "/account",
"mcp-server-description": "MCP Server for account-related Siebel operations.",
"mcp-server-version": "1.0.0",
"mcp-server-tools": [
"get_account_details",
"update_account_details"
]
}
Then the MCP Server endpoint is available at:
http://<host>:8081/siebelAIConnectors/mcp/account
If multiple MCP Servers are configured, each server is available at its own configured path.
Example:
| MCP Server Name | MCP Server Path | MCP Server Endpoint |
|---|---|---|
| Account MCP Server | /account | http://<host>:8081/siebelAIConnectors/mcp/account |
| Product MCP Server | /product | http://<host>:8081/siebelAIConnectors/mcp/product |
| Service Request MCP Server | /service-request | http://<host>:8081/siebelAIConnectors/mcp/service-request |
Use an MCP client, such as Postman, MCP Inspector or another supported MCP client, to connect to the required MCP Server endpoint and verify that the configured tools are available.
If the MCP Server endpoint is not available, verify the following:
- The Siebel AI Connectors runtime started successfully.
- The runtime startup logs show the MCP Server base URL.
- The
server.portvalue inapplication.yamlis correct. - The
mcp-server-pathvalue inMCP_CONFIG.jsonis correct. - Each
mcp-server-pathvalue is unique. - The MCP Server path in the client request matches the value configured in
MCP_CONFIG.json. - Network access to the runtime host and port is available.
- Authentication headers are included if JWT authentication is enabled.
Updating an Existing On-Premises Deployment
The runtime does not dynamically reload configuration changes.
- If
FINAL_SPECIFICATION.jsonis updated, review and update the tool mappings inMCP_CONFIG.json, and then restart the runtime. - If
MCP_CONFIG.jsonis updated, restart the runtime. - If
application.yamlorOI_CONFIG.jsonis updated, restart the runtime.
Deploying Siebel AI Connectors using Siebel Cloud Manager
This section describes the Siebel Cloud Manager payloads used to deploy Siebel AI Connectors in a Kubernetes-based environment.
Siebel AI Connectors expose selected Siebel Open Integration REST APIs as MCP-compatible tools. In an SCM deployment, the runtime configuration artifacts are maintained in a customer Git repository and deployed through Siebel Cloud Manager.
The deployment process includes the following high-level steps:
-
Retrieve the Siebel AI Connectors configuration templates.
-
Register the customer Git repository.
-
Create the required infrastructure.
-
Verify the infrastructure.
-
Deploy Siebel AI Connectors.
-
Check the deployment status.
-
Delete the deployment, if required.
-
Perform incremental updates after configuration changes.
1. Retrieve Configuration Templates
Use this API to retrieve the base configuration templates required for Siebel AI Connectors.
API
GET /scm/api/v1.0/siebelAIConnectors/templates HTTP/1.1
Host: https://<scm_host>:<scm_port>
Authorization: Basic <base64_admin_credentials>
The response contains a ZIP file with the following template artifacts:
Expected Template Artifacts:
application.yaml, MCP_CONFIG.json, OI_CONFIG.json, FINAL_SPECIFICATION.json, logging.properties
These files are updated by the customer and committed to the Git repository used by the Siebel AI Connectors deployment.
2. Register Customer Git Repository
Use this API to register the Git repository that contains the Siebel AI Connectors configuration artifacts.
SCM validates access to the repository and returns a git_id. This
git_id is used later in the Siebel AI Connectors deployment
payload.
API
POST /scm/api/v1.0/git_repositories HTTP/1.1
Host: https://<scm_host>:<scm_port>
Authorization: Basic <base64_admin_credentials>
Content-Type: application/json
API
POST /scm/api/v1.0/git_repositories HTTP/1.1
Host: https://<scm_host>:<scm_port>
Authorization: Basic <base64_admin_credentials>
Content-Type: application/json
Sample HTTPS Git Payload with Self-Signed CA
{
"git": {
"git_protocol_type": "https",
"git_url": "https://<git_host>/<group>/<repo>.git",
"git_user": "<git_user>",
"git_accesstoken": "<git_access_token>",
"git_selfsigned_cacert": "/home/opc/<path_to_ca_certificate>"
}
}
Sample SSH Git Payload
{
"git": {
"git_protocol_type": "ssh",
"git_url": "git@<git_host>:<group>/<repo>.git",
"git_ssh_private_key": "/home/opc/.ssh/<private_key_file>"
}
}
Example Response
{
"data": {
"git_id": "<git_id>",
"git_url": "https://<git_host>/<group>/<repo>.git",
"git_protocol_type": "https"
},
"message": "Git repository registered successfully.",
"status": "success"
}
3. Create Infrastructure
Use this API to create the infrastructure required for the Siebel AI Connectors deployment.
The payload contains the following top-level sections:
| Section | Description |
|---|---|
| operators | Defines operator installation requirements. |
| kubernetes | Defines the Kubernetes environment where the deployment will run. |
| git | Defines the GitOps and Helm chart repositories used by SCM. |
| registry | Defines the container registry used for images. |
security_context |
Optional. Defines custom non-root user and group IDs. |
API
POST /scm/api/v1.0/infrastructure HTTP/1.1
Host: https://<scm_host>:<scm_port>
Authorization: Basic <base64_admin_credentials>
Content-Type: application/json
Sample Infrastructure Payload without Security Context
{
"operators": [
{
"coherence_operator":< false | true >
}
],
"kubernetes": {
"namespace": "<infra_namespace>",
"kubernetes_type": "BYO_OCNE",
"byo_ocne": {
"kubeconfig_path": "/home/opc/siebel/<kubeconfig_file>.yaml"
}
},
"git": {
"git_type": "byo_git",
"byo_git": {
"git_protocol_type": "https",
"git_accesstoken": "<git_access_token>",
"git_user": "<git_user>",
"git_scm_repo_url": "https://<git_host>/<group>/<siebel_ai_connectors_gitops_repo>",
"git_scm_repo_branch": "main",
"git_scm_flux_folder": "flux",
"git_helm_repo_url": "https://<git_host>/<group>/<helm_chart_repo>",
"git_helm_repo_branch": "main",
"skip_flux_bootstrap": false
}
},
"registry": {
"registry_url": "<registry_host>",
"registry_user": "<registry_user>",
"registry_password": "<registry_password>",
"registry_prefix": "<registry_prefix>"
}
}
Use the following payload when infrastructure and operator setup must use custom non-root IDs:
Sample Infrastructure Payload with Security Context
{
"security_context": {
"run_as_user": <uid>,
"run_as_group": <gid>,
"fs_group": <fs_group_id>
},
"operators": [
{
"coherence_operator": < false | true >
}
],
"kubernetes": {
"namespace": "<infra_namespace>",
"kubernetes_type": "BYO_OCNE",
"byo_ocne": {
"kubeconfig_path": "/home/opc/siebel/<kubeconfig_file>.yaml"
}
},
"git": {
"git_type": "byo_git",
"byo_git": {
"git_protocol_type": "https",
"git_accesstoken": "<git_access_token>",
"git_user": "<git_user>",
"git_scm_repo_url": "https://<git_host>/<group>/<siebel_ai_connectors_gitops_repo>",
"git_scm_repo_branch": "main",
"git_scm_flux_folder": "flux",
"git_helm_repo_url": "https://<git_host>/<group>/<helm_chart_repo>",
"git_helm_repo_branch": "main",
"skip_flux_bootstrap": false
}
},
"registry": {
"registry_url": "<registry_host>",
"registry_user": "<registry_user>",
"registry_password": "<registry_password>",
"registry_prefix": "<registry_prefix>"
}
}
Sample Response
{
"data": {
"infra_details": {
"components_info": {},
"infra_id": "<infra_id>",
"infra_status": "creation-in-progress",
"payload": {
"git": {
"byo_git": {
"git_accesstoken": "********",
"git_helm_repo_branch": "main",
"git_helm_repo_url": "https://<git_host>/<group>/<helm_chart_repo>",
"git_protocol_type": "http",
"git_scm_flux_folder": "flux",
"git_scm_repo_branch": "main",
"git_scm_repo_url": "https://<git_host>/<group>/<siebel_ai_connectors_gitops_repo>",
"git_user": "<git_user>",
"skip_flux_bootstrap": false
},
"git_type": "byo_git"
},
"kubernetes": {
"byo_ocne": {
"kubeconfig_path": "/home/opc/siebel/kubeconfig.yaml"
},
"kubernetes_type": "BYO_OCNE",
"namespace": "<infra_namespace>"
},
"operators": [
{
"coherence_operator": true
}
],
"registry": {
"registry_password": "************",
"registry_prefix": "<registry_prefix>",
"registry_url": "<registry_host>",
"registry_user": "<registry_user>"
}
},
"resource_status": {
"git": "not-validated",
"kubernetes": "not-validated",
"operators": [
{
"coherence_operator": "not-validated"
}
],
"registry": "not-validated"
},
"self_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>",
"stages_info": [
{
"end_time": "",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>/logs/setup_validation_helmchart",
"log_location": "",
"name": "Setup Helm Chart for validation",
"previous_status": "",
"stage_name": "setup_validation_helmchart",
"start_time": "<start_time>",
"status": ""
},
{
"end_time": "",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>/logs/check_job_status_helmchart",
"log_location": "",
"name": "Check Job status",
"previous_status": "",
"stage_name": "check_job_status_helmchart",
"start_time": "<start_time>",
"status": ""
},
{
"end_time": "",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>/logs/install_operator_workflow",
"log_location": "",
"name": "Install operator workflow",
"previous_status": "",
"stage_name": "install_operator_workflow",
"start_time": "<start_time>",
"status": ""
},
{
"end_time": "",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>/logs/verify_operator_workflow",
"log_location": "",
"name": "Verify Operator Installation",
"previous_status": "",
"stage_name": "verify_operator_workflow",
"start_time": "<start_time>",
"status": ""
},
{
"end_time": "",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>/logs/collect_infra_artifacts",
"log_location": "",
"name": "Collect Infra artifacts",
"previous_status": "",
"stage_name": "collect_infra_artifacts",
"start_time": "<start_time>",
"status": ""
}
]
}
},
"message": "Infrastructure successfully created.",
"status": "success"
}
After this response is returned, use the infra_id value from data.infra_details.infra_id in the subsequent infrastructure verification and Siebel AI Connectors deployment steps.
4. Verify Infrastructure
Use this API to verify that the infrastructure has been created successfully.
API
GET /scm/api/v1.0/infrastructure/<infra_id> HTTP/1.1
Host: https://<scm_host>:<scm_port>
Authorization: Basic <base64_admin_credentials>
Sample Response
{
"data": {
"infra_details": {
"components_info": {
"coherence_operator": true,
"git": {
"byo_git": {
"git_accesstoken": "*************",
"git_helm_repo_branch": "<helm_repo_branch>",
"git_helm_repo_url": "https://<git_host>/<group>/<helm_chart_repo>",
"git_protocol_type": "<http|https|ssh>",
"git_scm_flux_folder": "<flux_folder>",
"git_scm_repo_branch": "<gitops_repo_branch>",
"git_scm_repo_url": "https://<git_host>/<group>/<gitops_repo>",
"git_user": "<git_user>",
"skip_flux_bootstrap": false
},
"git_type": "byo_git"
},
"kubernetes": {
"byo_ocne": {
"kubeconfig_path": "/home/opc/siebel/<kubeconfig_file>.yaml"
},
"k8s_profile": "/home/opc/siebel/infrastructures/<infra_id>/k8sprofile",
"kubeconfig_path": "/home/opc/siebel/infrastructures/<infra_id>/kubeconfig.yaml",
"kubernetes_type": "BYO_OCNE",
"namespace": "<infra_namespace>"
},
"registry": {
"registry_password": "************",
"registry_prefix": "<registry_prefix>",
"registry_url": "<registry_host>",
"registry_user": "<registry_user>"
}
},
"infra_id": "<infra_id>",
"infra_status": "completed",
"payload": {
"git": {
"byo_git": {
"git_accesstoken": "**********",
"git_helm_repo_branch": "<helm_repo_branch>",
"git_helm_repo_url": "https://<git_host>/<group>/<helm_chart_repo>",
"git_protocol_type": "<http|https|ssh>",
"git_scm_flux_folder": "<flux_folder>",
"git_scm_repo_branch": "<gitops_repo_branch>",
"git_scm_repo_url": "https://<git_host>/<group>/<gitops_repo>",
"git_user": "<git_user>",
"skip_flux_bootstrap": false
},
"git_type": "byo_git"
},
"kubernetes": {
"byo_ocne": {
"kubeconfig_path": "/home/opc/siebel/<kubeconfig_file>.yaml"
},
"k8s_profile": "/home/opc/siebel/infrastructures/<infra_id>/k8sprofile",
"kubeconfig_path": "/home/opc/siebel/infrastructures/<infra_id>/kubeconfig.yaml",
"kubernetes_type": "BYO_OCNE",
"namespace": "<infra_namespace>"
},
"operators": [
{
"coherence_operator": true
}
],
"registry": {
"registry_password": "*********",
"registry_prefix": "<registry_prefix>",
"registry_url": "<registry_host>",
"registry_user": "<registry_user>"
}
},
"resource_status": {
"git": "validated",
"kubernetes": "validated",
"operators": [
{
"coherence_operator": "validated"
}
],
"registry": "validated"
},
"self_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>",
"stages_info": [
{
"end_time": "<end_time>",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>/logs/setup_validation_helmchart",
"log_location": "/home/opc/siebel/infrastructures/<infra_id>/logs/install_connection_chart.log",
"name": "Setup Helm Chart for validation",
"previous_status": "",
"stage_name": "setup_validation_helmchart",
"start_time": "<start_time>",
"status": "passed"
},
{
"end_time": "<end_time>",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>/logs/check_job_status_helmchart",
"log_location": "/home/opc/siebel/infrastructures/<infra_id>/logs/validate_connection_chart.log",
"name": "Check Job status",
"previous_status": "",
"stage_name": "check_job_status_helmchart",
"start_time": "<start_time>",
"status": "passed"
},
{
"end_time": "<end_time>",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>/logs/install_operator_workflow",
"log_location": "/home/opc/siebel/infrastructures/<infra_id>/logs/operators.log",
"name": "Install operator workflow",
"previous_status": "",
"stage_name": "install_operator_workflow",
"start_time": "<start_time>",
"status": "passed"
},
{
"end_time": "<end_time>",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>/logs/verify_operator_workflow",
"log_location": "/home/opc/siebel/infrastructures/<infra_id>/logs/operators.log",
"name": "Verify Operator Installation",
"previous_status": "",
"stage_name": "verify_operator_workflow",
"start_time": "<start_time>",
"status": "passed"
},
{
"end_time": "<end_time>",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/infrastructure/<infra_id>/logs/collect_infra_artifacts",
"log_location": "/home/opc/siebel/infrastructures/<infra_id>/logs/artifacts.log",
"name": "Collect Infra artifacts",
"previous_status": "",
"stage_name": "collect_infra_artifacts",
"start_time": "<start_time>",
"status": "passed"
}
]
}
},
"message": "Infrastructure details retrieved successfully.",
"status": "success"
}
After verification completes successfully, the infra_status value is
completed, and the resource_status values for
Git, Kubernetes, operators, and registry are marked as validated.
Use the infra_id value in the Siebel AI Connectors deployment
payload.
5. Deploy Siebel AI Connectors
Use this API to deploy Siebel AI Connectors using the prepared infrastructure and registered Git repository. The deployment payload references the Git repository that contains the runtime configuration files.
API
POST /scm/api/v1.0/siebelAIConnectors HTTP/1.1
Host: https://<scm_host>:<scm_port>
Authorization: Basic <base64_admin_credentials>
Content-Type: application/json
Deployment Payload
{
"name": "<mcp_deployment_namespace>",
"infra_id": "<infra_id>",
"byo_ns": false,
"security_context": {
"run_as_user": <uid>,
"run_as_group": <gid>,
"fs_group": <fs_group_id>
},
"siebel_mcp": {
"git": {
"git_id": "<git_id>",
"git_repo_branch": "main",
"git_config_folder": "siebel-mcp"
},
"java_truststore": {
"cacerts_path": "/home/opc/siebel/cacerts",
"password": "<truststore_password>"
}
}
}
Optionally, If byo_ns is set to "true", ensure that
the Siebel AI Connector namespace is created before executing this step. Then,
specify the created namespace in the Siebel AI Connector deployment payload by
setting the "name" field to the namespace value.
Example Response
{
"data": {
"ansible_chart_name": "ansible-<deployment_name>-<deploy_id_lowercase>",
"app_dir": "/home/opc/siebel/microservices/siebel-ai-connectors/<deploy_id>",
"byo_ns": false,
"deploy_id": "<deploy_id>",
"deploy_status": "creation-in-progress",
"infra_id": "<infra_id>",
"name": "<mcp_deployment_namespace>",
"namespace": "<mcp_deployment_namespace>",
"product_name": "siebel-ai-connectors",
"security_context": {
"fs_group": <fs_group_id>,
"run_as_group": <gid>,
"run_as_user": <uid>
},
"self_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/siebelAIConnectors/<deploy_id>",
"siebel_mcp": {
"git": {
"git_config_folder": "siebel-mcp",
"git_id": "<git_id>",
"git_json": {
"branch": "main",
"config_folder": "siebel-mcp",
"protocol_type": "https",
"url": "https://<git_host>/<group>/<repo>",
"user": "<git_user>"
},
"git_protocol_type": "https",
"git_repo_branch": "main",
"git_selfsigned_cacert": "",
"git_siebel_mcp_directory": "siebel-mcp",
"git_ssh_private_key": "",
"git_url": "https://<git_host>/<group>/<repo>",
"git_user": "<git_user>"
},
"java_truststore": {
"cacerts_path": "/home/opc/siebel/cacerts",
"helm_values": {
"checksum": "<truststore_checksum>",
"enabled": true,
"fileName": "cacerts",
"mountPath": "/opt/mcp/truststore",
"password": "",
"passwordSecretKey": "storepass",
"passwordSecretName": "",
"secretKey": "cacerts",
"secretName": ""
},
"password": "<masked_or_configured_truststore_password>"
}
},
"stages": [
{
"name": "Pre Deploy",
"stage_name": "pre_deploy",
"stage_description": "Create pre requisites and other preparations",
"status": ""
},
{
"name": "Prepare GitOps",
"stage_name": "prepare_gitops",
"stage_description": "Generate Flux definitions, Prepare helmchart to git and Prepare GitOps",
"status": ""
},
{
"name": "Verify Deployment",
"stage_name": "verify_deployment",
"stage_description": "Verify HR Deployment",
"status": ""
},
{
"name": "Publish Urls",
"stage_name": "publish_urls",
"stage_description": "Publish Application Urls",
"status": ""
}
]
},
"message": "ansible playbook for siebel-ai-connectors ansible playbook for executed successfully",
"status": "success"
}
6. Get Siebel AI Connectors Deployment Status
Use this API to retrieve the current status of a Siebel AI Connectors deployment.
API
GET /scm/api/v1.0/siebelAIConnectors/<deploy_id> HTTP/1.1
Host: https://<scm_host>:<scm_port>
Authorization: Basic <base64_admin_credentials>
Example Response
{
"data": {
"ansible_chart_name": "ansible-<deployment_name>-<deploy_id_lowercase>",
"app_dir": "/home/opc/siebel/microservices/siebel-ai-connectors/<deploy_id>",
"byo_ns": false,
"deploy_id": "<deploy_id>",
"deploy_status": "<creation-in-progress|completed|failed|Rerun-In-Progress>",
"infra_id": "<infra_id>",
"name": "<mcp_deployment_namespace>",
"namespace": "<mcp_deployment_namespace>",
"product_name": "siebel-ai-connectors",
"security_context": {
"fs_group": <fs_group_id>,
"run_as_group": <gid>,
"run_as_user": <uid>
},
"self_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/siebelAIConnectors/<deploy_id>",
"siebel_mcp": {
"git": {
"git_id": "<git_id>",
"git_config_folder": "siebel-mcp",
"git_repo_branch": "main",
"git_protocol_type": "https",
"git_url": "https://<git_host>/<group>/<repo>",
"git_user": "<git_user>"
},
"java_truststore": {
"cacerts_path": "/home/opc/siebel/cacerts",
"password": "<masked_or_configured_truststore_password>"
}
},
"stages": [
{
"name": "Pre Deploy",
"stage_name": "pre_deploy",
"status": "<passed|failed|in-progress>",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/siebelAIConnectors/<deploy_id>/logs/pre_deploy",
"log_location": "/home/opc/siebel/microservices/siebel-ai-connectors/<deploy_id>/logs/pre_deploy.log"
},
{
"name": "Prepare GitOps",
"stage_name": "prepare_gitops",
"status": "<passed|failed|in-progress>",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/siebelAIConnectors/<deploy_id>/logs/prepare_gitops",
"log_location": "/home/opc/siebel/microservices/siebel-ai-connectors/<deploy_id>/logs/prepare_gitops.log"
},
{
"name": "Verify Deployment",
"stage_name": "verify_deployment",
"status": "<passed|failed|in-progress>",
"log_api_link": "https://<scm_host>:<scm_port>/scm/api/v1.0/siebelAIConnectors/<deploy_id>/logs/verify_deployment",
"log_location": "/home/opc/siebel/microservices/siebel-ai-connectors/<deploy_id>/logs/verify_deployment.log"
},
{
"name": "Publish Urls",
"stage_name": "publish_urls",
"status": "<passed|failed|in-progress>"
}
]
},
"message": "success",
"status": "success"
}
7. Delete Siebel AI Connectors Deployment
Use this API to delete an existing Siebel AI Connectors deployment.
API
DELETE /scm/api/v1.0/siebelAIConnectors/<deploy_id> HTTP/1.1
Host: https://<scm_host>:<scm_port>
Authorization: Basic <base64_admin_credentials>
Example Response
{
"data": {
"archive_dir": "/home/opc/siebel/microservices/siebel_mcp/archive/<deploy_id>",
"deleted": true,
"deploy_id": "<deploy_id>"
},
"message": "Deletion of deploy_id <deploy_id> of siebel_mcp successfull",
"status": "success"
}
8. Perform Incremental Updates
Perform an incremental update after changes are made to the Siebel AI Connectors configuration files in the customer Git repository.
Configuration files may include either of the following files:
- application.yaml
- MCP_CONFIG.json
- OI_CONFIG.json
- FINAL_SPECIFICATION.json
- logging.properties
-
Update the required configuration files in the customer Git repository.
-
Commit and push the customer Git changes.
- Go to the infrastructure Helm chart
repository.
cd /home/opc/siebel/infrastructures/<infra_id>/<helmchart_repo>/ git pull - Change to the image builder chart directory for the
deployment.
cd <deploy_name>-<deploy_id>/siebel-mcp - Edit
Chart.yaml.vi Chart.yaml - Increment the chart
version.
version: 0.1.2 - Commit and push the Helm chart
change.
git add Chart.yaml git commit -m "<incremental_update_message>" git push
Expected Result
After the Helm chart version is updated and pushed:
-
Flux reconciliation detects the Helm chart version change.
-
The MCP image builder job restarts.
-
A new Siebel AI Connectors application image is built using the latest committed customer Git content.
-
The updated MCP application starts with the new image.
Important Notes
- Do not commit credentials, access tokens, registry passwords, truststore passwords, private keys, or other secrets into Git.
- Ensure that all customer Git changes are committed and pushed before incrementing the Helm chart version.
- Increment only the chart version required to trigger the image builder update.
Placeholder Reference
| Placeholder | Description |
|---|---|
| <scm_host> | Siebel Cloud Manager host name or IP address. |
| <scm_port> | Siebel Cloud Manager port. |
| <infra_id> | Infrastructure ID returned by the infrastructure creation API. |
| <deploy_id> | Deployment ID returned by the Siebel AI Connectors deployment API. |
| <git_id> | Git repository ID returned by the Git registration API. |
| <git_host> | Git server host. |
| <group> | Git group, project, or organization path. |
| <repo> | Git repository name. |
| <git_user> | Git user name. |
| <git_access_token> | Git access token. |
| <infra_namespace> | Kubernetes namespace used for infrastructure resources. |
| <mcp_deployment_namespace> | Namespace or deployment name used for Siebel AI Connectors. |
| <registry_host> | Container registry host. |
| <registry_user> | Container registry user. |
| <registry_password> | Container registry password or authentication token. |
| <registry_prefix> | Registry namespace or prefix. |
| <uid> | Runtime user ID. |
| <gid> | Runtime group ID. |
| <fs_group_id> | File system group ID. |
| <truststore_password> | Java truststore password. |
| <kubeconfig_file> | Kubernetes kubeconfig file available on the SCM host. |
Validating Runtime Behavior
Runtime behavior includes startup, configuration loading, MCP Server creation, tool invocation, and validation.
Runtime Startup
When the runtime starts, it performs the following actions:
-
Reads
application.yaml. -
Resolves the configured paths for
MCP_CONFIG.json,FINAL_SPECIFICATION.json,logging.properties, andOI_CONFIG.json. -
Loads logging configuration.
-
Loads Open Integration server configuration from
OI_CONFIG.json. -
Parses
FINAL_SPECIFICATION.json. -
Builds MCP tool definitions from the selected Open Integration REST API operations.
-
Loads MCP Server definitions from
MCP_CONFIG.json. -
Maps tools to MCP Servers.
-
Starts MCP Server endpoints.
Expected startup indicators include:
Successfully parsed OpenAPI spec file:<Path>/FINAL_SPECIFICATION.json
Loaded Open Integration servers: [<server-name-1>, <server-name-2>]; default server: <server-name>
Processing Tool : [<tool-name>] , Method : [<method>] , Path: [<path>]
Using Open Integration server [<server-name>] for tool [<tool-name>]
Adapted [<count>] tools from OpenAPI spec
MCP Servers started with base url: <host>:<port>/siebelAIConnectors/mcp
If a server URL in FINAL_SPECIFICATION.json differs from the server
URL configured in OI_CONFIG.json, the runtime logs a warning and
uses the configured Open Integration server URL.
Startup Validation
After startup, validate that the runtime loaded all required artifacts successfully.
| Validation Check | Expected Result |
|---|---|
application.yaml is loaded. |
Runtime starts with configured host, port, security settings, and file paths. |
logging.properties is loaded. |
Logs use the configured handler, format, and logging levels. |
OI_CONFIG.json is loaded. |
Runtime logs the configured Open Integration servers and default server. |
FINAL_SPECIFICATION.json is parsed. |
Runtime logs successful parsing of the tool specification file. |
| MCP tools are generated. | Runtime logs the tools processed from the selected operations. |
MCP_CONFIG.json is parsed. |
Runtime creates MCP Servers with configured endpoint paths. |
| MCP Server endpoints are started. | Runtime logs the MCP base URL. |
Tool Discovery and Invocation Validation
After startup validation, validate that MCP tools can be discovered and invoked.
| Validation Check | Expected Result |
|---|---|
| MCP client connects to the MCP Server endpoint. | Connection succeeds. |
| Configured tools are available for discovery. | Tools listed in MCP_CONFIG.json are visible
through the MCP Server. |
| Sample MCP tool is invoked. | Runtime identifies the tool and resolves the Open Integration server. |
| Open Integration REST API is invoked. | Runtime sends the downstream request to the configured Open Integration server. |
| Response is returned to MCP client. | MCP client receives the response from the tool invocation. |
For secured deployments, also validate:
| Validation Check | Expected Result |
|---|---|
| Request without token is sent. | Request is rejected. |
| Request with invalid token is sent. | Request is rejected. |
| Request with valid token and required scope is sent. | Request is accepted. |
| Token contains expected issuer, audience, and scope. | JWT validation succeeds. |
| Open Integration authentication is aligned. | Downstream Open Integration request succeeds. |
Updating Existing Configurations
The runtime does not dynamically reload configuration artifacts. Restart the runtime after updating any of the following files:
FINAL_SPECIFICATION.jsonMCP_CONFIG.jsonapplication.yamlOI_CONFIG.jsonlogging.properties
It is critical to note that if the FINAL_SPECIFICATION.json is
updated, then you must also review and if needed update
MCP_CONFIG.json if tools were added, removed or renamed.
Troubleshooting Validation Issues
Use the following checks when runtime startup or tool invocation fails.
| Issue | Check |
|---|---|
| Runtime does not start. | Verify Java version, runtime classpath,
mcp-runtime-<version>.jar,
libs/, and
application.yaml. |
| Configuration file not found. | Verify mcp.server-config-file,
mcp.final-spec-file,
mcp.logging-properties-file, and
mcp.open-int-config-file. |
| No tools are available. | Verify x-tools, operation-level
x-tool-name, and
MCP_CONFIG.json tool mappings. |
| MCP Server endpoint is missing. | Verify mcp-server-path in
MCP_CONFIG.json. |
| Tool mapping fails. | Verify every mcp-server-tools value exists in
FINAL_SPECIFICATION.json. |
| Open Integration server is not resolved. | Verify operation-level x-server-name,
OI_CONFIG.json server names, and
default-server. |
| Request body validation fails. | Verify requestBody,
components.schemas, required,
and additionalProperties. |
| Parameter validation fails. | Verify parameter in, name,
required, and schema. |
| JWT validation fails. | Verify issuer, audience,
required-scope, jwks-uri, and
token claims. |
| Open Integration invocation fails. | Verify Open Integration host, port, context, authentication, certificate trust, and network connectivity. |