Creating a Model Context Protocol (MCP) server

From the App Connect Dashboard, you can create an MCP server, which includes the capability to authenticate to one or more applications and provides tools that define a set of actions that can be performed on specific objects in those applications.

Availability: The ability to create an MCP server from an App Connect Dashboard instance is available only for Dashboard instances with a spec.version value that resolves to 13.0.6.1-r1 or later in an IBM® App Connect Operator 12.20.0 or later deployment.

About this task

Creating an MCP server is a multi-step process:

  1. The MCP server requires a new (system-generated) integration runtime to act as a host, so when you specify a name for the MCP server, you need to also provide version and license values for the integration runtime.

    The completion of this action triggers the deployment of the integration runtime and some associated resources.

  2. After the integration runtime deployment completes, you need to provide authentication credentials for your preferred applications and then choose which actions to allow on selected objects (and to expose as MCP tools).

    After you confirm your MCP tool selections, the deployment of the MCP server and its associated resources is triggered.

    When the MCP server deployment completes, the server is displayed on the Model Context Protocol (MCP) servers page and you can drill down into its details.

    If you are using Red Hat® OpenShift®, routes are created by default for the integration runtime deployment (including a route for the MCP server) to provide public URLs where the services are hosted. The MCP server route is used to generate an endpoint location where the server can be reached.

  3. If you are using IBM Cloud Kubernetes Service, you can update the custom resource (CR) settings of the deployed integration runtime to externally expose its services. Enable ingress in the CR to automatically create ingress resources for the integration runtime, including one for the MCP server. The MCP server ingress resource provides a public URL that is used to generate an endpoint location where the server can be reached. Other Kubernetes environments do not support the creation of ingress resources for MCP servers.

Procedure

To create an MCP server, complete the following steps:

  1. From the navigation pane in the App Connect Dashboard, click the MCP servers icon MCP servers icon to open the Model Context Protocol (MCP) servers page.

    On initial entry, a message indicates that no MCP servers are found. After you create one or more MCP servers, they are listed in individual tiles when you access this page.

    "Model Context Protocol (MCP) servers" page
  2. Click Create MCP server to open the Create an MCP server panel.
    This panel provides a series of views through which you progress to define settings for the MCP server to be created.
  3. From the Integration runtime preferences view, indicate your preference for an integration runtime that is needed to host, configure, and manage the MCP server that you are creating.
    1. Indicate whether a connector-based or integration-flow-based integration runtime is needed:
      • New server (connectors based): IBM App Connect provides a catalog of connectors, which you can use to establish connections to IBM and third-party applications, and run actions or API operations on chosen objects. Choose this option if you want to use this connector-based technology to provide authentication credentials for connecting to one or more applications, and to choose a set of actions to perform on selected objects in these applications. If you select this option, a dedicated integration runtime is automatically created with predefined configurations that are suitable for hosting the MCP server.

        This option is selected by default.

      • Existing server (integration-flow based)
        Restriction: In a Dashboard instance at version 13.0.6.1-r1, this option is not yet available.
      "Integration runtime preferences" view in the "Create an MCP server" panel
    2. Click Next.
  4. From the Server details view, specify settings for the new MCP server and the dedicated integration runtime that will be deployed to host this MCP server.
    1. In the MCP server configuration section, specify a unique short name by which the MCP server can be identified. (This name must conform to the naming conventions for integration runtimes and will be validated.)
    2. In the Integration runtime details section, select a version, license identifier, and license entitlement for the integration runtime.

      Only supported versions and licenses are shown in the drop-down lists. For more information about licensing, see Licensing reference for IBM App Connect Operator.

      Note:
      • You are not prompted for an integration runtime name because it's assigned the same name as the MCP server.
      • If you are working in an IBM Cloud Kubernetes Service environment, you can create an ingress resource, which is used to generate an externally reachable URL for accessing the MCP server. You can create this ingress resource later as documented in step 7, but if you plan to do so, note that only these versions and license entitlements are valid for the integration runtime:
        • Version 13.0.6.2-r1 or later
        • An AppConnectEnterprise* style license

        On Red Hat OpenShift, you can choose any compatible version and license values from the drop-down lists.

      • By default, the following resource limits are applied to the integration runtime:
        • CPU: 500m
        • Memory: 768Mi
        If required later, you can update these default values for the runtime container by updating the following settings in the integration runtime CR. For more information, see Integration runtime reference: Custom resource values.
        • spec.template.spec.containers[].resources.requests.cpu
        • spec.template.spec.containers[].resources.requests.memory
        • spec.template.spec.containers[].resources.limits.cpu
        • spec.template.spec.containers[].resources.limits.memory
      "Server details" view with MCP server configuration and integration runtime details
    3. Click Create and proceed.

      The following message is displayed to indicate that the integration runtime and some associated resources are being deployed:

      Creating integration runtime integrationRuntimeName (with some associated resources) to host the MCP server... The deployment might take a few minutes.

      During the deployment process, the following resources are created:

      • An integration runtime with the same name as the MCP server (mcpServerName)
      • A configuration object of type Accounts, which is named in the format mcpServerName-acc

        This configuration object is created with a system-generated secret to store account credentials, which you will specify later, for connecting to selected applications (or connectors).

      • A configuration object of type REST Admin SSL files, which is named in the format mcpServerName-ir-adminssl
      • A configuration object of type setdbparms.txt, which is named in the format mcpServerName-mcp-ba-creds

      These configuration objects are applied to the integration runtime.

      Note: If you click Cancel before the integration runtime deployment completes, the deployment is left in a partially completed state. If you confirm the cancel action by clicking Yes in the Are you sure? dialog, you need to check for and then manually delete any of these resources that might have been created:
      • An integration runtime that is named in the format mcpServerName

        You can delete the integration runtime from the Runtimes page of the App Connect Dashboard as described in Deleting an integration runtime. When you delete the integration runtime, any associated mcpServerName-ir-adminssl and mcpServerName-mcp-ba-creds configuration objects, which are owned by the integration runtime, are also deleted.

      • A configuration object of type Accounts, which is named in the format mcpServerName-acc

        You can delete the configuration object from the Configuration page of the App Connect Dashboard as described in Managing configuration objects from the Configuration page.

      Cancel dialog that is displayed when you attempt to cancel the integration runtime deployment

    When the integration runtime deployment completes, the MCP tools view is displayed with the list of applications (or connectors), which contain actions that you can add as tools to the MCP server. (The terms application and connector are generally used interchangeably.)

    The listed applications are presented in a similar format to the applications that you see on the Applications & APIs page in an App Connect Designer instance. On initial access, each application is listed with a Not connected status. To select the actions that you want to add as tools, you must first connect to their associated applications.

    Note: A few of the IBM-developed connectors and a few objects for certain connectors that are available in App Connect Designer do not support the Model Context Protocol. Therefore, those connectors and objects are not displayed in the MCP tools view because you cannot add their actions as MCP tools.

    If you want to check whether a connector supports the protocol, or check which objects support the protocol, go to How-to guides for apps. Locate the guide for the specific connector and then check the Model Context Protocol (MCP) support section.

    Initial "MCP tools" view with the set of unconnected applications
  5. From the MCP tools view, connect to one or more applications and select associated actions to add as tools to the MCP server.
    1. To connect to an application, click the application name and then click Connect to add an account. Then, enter the application's credentials in the connection fields that are displayed and click Connect.

      Connection details are specific to each application. For help with completing the fields, go to How-to guides for apps and locate the guide for the specific application.

      Example of how to click Connect to display the connection fields for an application from the "MCP tools" view

      When you add an account, a default name of Account n is assigned to the account, where n is a number that starts from 1.

      After your connect to one or more applications, the applications are separated into Connected and Not connected lists.

      Example of connected and unconnected application in the "MCP tools" view
      Tip:

      You can update, remove, or rename an account for a connected application by using the options in the Account options menu.

      Update, Remove, and Rename options in the Account options menu

      You can also add more than one account for a connected application, but it's worth noting that you can only add actions from one account per application to the MCP server. If you have a use case that requires multiple accounts per application, you will need to update the MCP server to switch between accounts, or create separate MCP servers. You can add another account for a connected application as follows:

      1. Click the application name in the Connected list to display the application details.
      2. Click the Account drop-down list and then click Add a new account.
        "Add a new account" option in the Account drop-down list
      3. Enter the account credentials in the connection fields that are displayed and then click Connect.

        You can then choose your preferred account before you select which actions to add as MCP tools.

    2. To select which actions you want to add as MCP tools, complete the following steps:
      1. Click the name of a connected application (for example, Salesforce).
      2. Click an object name (for example, Contacts) to view its actions.
      3. Choose one or more actions (for example, Create contact) for that object by selecting the check boxes.

      For each connected application, you can select multiple actions for multiple objects. The total numbers of selected actions per object, per application, and for all applications, are displayed.

      Selected actions for connected applications in the "MCP tools" view
    3. Click Next.
  6. From the Summary view, review the list of selected actions for your connected applications to confirm that you want to make these actions available as tools in the MCP server.
    1. Click Expand all to view each selected action.
    2. If you want to add or remove actions, click Back to return to the MCP tools view. Then, update your selected actions and click Next to return to the Summary view.
    3. Click Create MCP server.
      Summary view with selected applications and tools

      The following message is displayed to indicate that the MCP server and some associated resources are being deployed:

      Creating MCP server mcpServerName in the integration runtime integrationRuntimeName pod... The deployment might take a few minutes.

      During the deployment process, the following resources are created:

      • An MCP server with the mcpServerName name that you specified

        This MCP server runs in a runtime container in the integration runtime pod.

      • A BAR file that is named in the format mcpServerName-generatedID-MCP

        This BAR file is deployed to the integration runtime that was created to host the MCP server.

      The system-generated secret, which was created during the integration runtime deployment to store the content of the mcpServerName-acc configuration object (of type Accounts), is also updated. This secret is updated with details of the account credentials for your connected applications that are linked to the MCP tools.

      Note: If you click Cancel before the MCP server deployment completes, the deployment is left in a partially completed state. If you then confirm the cancel action by clicking Yes in the Are you sure? dialog, you need to check for and then manually delete any of these resources that might have been created:
      • An integration runtime that is named in the format mcpServerName

        You can delete the integration runtime from the Runtimes page of the App Connect Dashboard as described in Deleting an integration runtime. When you delete the integration runtime, any associated mcpServerName-ir-adminssl and mcpServerName-mcp-ba-creds configuration objects, which are owned by the integration runtime, are also deleted.

      • A configuration object of type Accounts, which is named in the format mcpServerName-acc

        You can delete the configuration object from the Configuration page of the App Connect Dashboard as described in Managing configuration objects from the Configuration page.

      • A BAR file that is named in the format mcpServerName-generatedID-MCP

        You can delete the BAR file from the BAR files page of the App Connect Dashboard as described in Managing BAR files.

      Cancel dialog that is displayed when you attempt to cancel the MCP server deployment

      When the MCP server deployment completes, you are redirected to the Model Context Protocol (MCP) servers page. The new MCP server is displayed as a tile on this page, with a Ready status, a generated server URL, and the server version. You can use the Table view and Grid view buttons to change how this information is presented.

      "Model Context Protocol (MCP) servers" page with a tile that depicts an MCP server

  7. If you want to create an ingress resource that provides an externally reachable URL for the deployed MCP server in an IBM Cloud Kubernetes Service environment, update the integration runtime CR to enable ingress:
    1. From the Runtimes page, open the integration runtime CR in edit mode as described in Editing the settings for a deployed integration runtime.

      Configure ingress as follows:

      • Use the License/License use field or spec.license.use parameter to apply an AppConnectEnterprise* style license.
      • Use the Channel or version field or spec.version parameter to set the version of the integration runtime to a fully qualified value of 13.0.6.2-r1 or later. (Also ensure that the License/License LI or spec.license.license value is compatible with this version. For more information, see Licensing reference for IBM App Connect Operator.)
      • Set the Ingress/Enabled switch or spec.ingress.enabled parameter to true to enable the automatic creation of ingress resources for the integration runtime. By default, the ingresses are constructed with the IBM-provided ingress subdomain of your IBM Cloud Kubernetes Service cluster.
        Note: To create ingress resources, an ingress controller must be installed and running in your cluster. IBM Cloud Kubernetes Service provides an ingress controller by default.

        For information about how ingresses are typically created for App Connect resources on IBM Cloud Kubernetes Service, see Automatically creating ingress definitions for external access to your IBM App Connect instances on IBM Cloud Kubernetes Service.

      The following example shows a partial integration runtime CR with the requisite settings for an AppConnectEnterprise* style license, a version of 13.0.6.2-r1 with a compatible L-CKFT-S6CHZW license identifier, and with ingress enabled.

      ...
      spec:
        license:
          accept: true
          license: L-CKFT-S6CHZW
          use: AppConnectEnterpriseProduction
        ingress:
          enabled: true
        version: 13.0.6.2-r1
      ...

    2. Save the integration runtime updates.

      When the update completes, the requisite ingress resources are created, and are managed by the integration runtime. This includes an ingress resource that provides an ingress for the MCP server. You can view the URL of the endpoint location where the server can be reached as described in Viewing and editing the details of a Model Context Protocol (MCP) server.

What to do next

  • You can click the MCP server tile on the Model Context Protocol (MCP) servers page to view detailed information about the associated endpoint and MCP tools. For more information, see Viewing and editing the details of a Model Context Protocol (MCP) server.
  • You can create more MCP servers from the Model Context Protocol (MCP) servers page by clicking the Create button.
  • You can also view these system-generated resources from the Dashboard.
    Integration runtime that hosts the MCP server

    Go to the Runtimes page. You can click the integration runtime tile on this page to view details about the deployed integration.

    Clicking the integration runtime tile on the "Runtimes" page to view details about the deployed integration

    The details are displayed in a set of tabs.

    Set of tabs that are shown when you click the integration runtime tile on the "Runtimes" page
    • On the Contents tab, an Application tile is shown for each connected application and object, and you can click a tile to view details about the message flows for the selected actions. The Properties, Policy projects, Credentials, Security, and Resource managers tabs display similar types of details that are shown for integration runtimes that you deploy manually. For more information about the details on these tabs, see Viewing detailed information about a deployed integration runtime.
    • The Model Context Protocol (MCP) tools tab displays the endpoint details for the MCP server and a listing of the MCP tools that it contains.
      "Model Context Protocol (MCP) tools" tab for an integration runtime that hosts an MCP server

    Configuration objects that are applied to the integration runtime for use with the MCP server

    Go to the Configuration page. You see the following configuration objects:

    • A configuration object of type Accounts, which is named in the format mcpServerName-acc

      This configuration object is created with a system-generated secret to store details of the account credentials for your connected applications that are linked to the tools in the MCP server.

    • A configuration object of type REST Admin SSL files, which is named in the format mcpServerName-ir-adminssl

      This configuration object references a secret, which stores a self-signed TLS certificate for secure communication between the App Connect Dashboard and the deployed MCP server in the integration runtime pod. The certificate is required to enable TLS on the MCP server, which is the default setting.

    • A configuration object of type setdbparms.txt, which is named in the format mcpServerName-mcp-ba-creds

      This configuration object references a secret, which stores basic authentication credentials (that is, a username and password) for accessing the endpoint of the deployed MCP server. The credentials are required to enable basic authentication on the MCP server, which is the default setting. (You can copy the generated credentials as described in Viewing and editing the details of a Model Context Protocol (MCP) server.)

    Configuration objects on the "Configuration" page, which are generated during the integration runtime and MCP server deployments
    Tip: You can use the following parameters in the integration runtime CR to change the default settings for basic authentication and TLS on the MCP server, and to change the default enabled setting for the MCP server:
    • spec.mcp.runtime.basicAuth.disabled
    • spec.mcp.runtime.basicAuth.secretName
    • spec.mcp.runtime.tls.disabled
    • spec.mcp.runtime.tls.secretName
    • spec.mcp.runtime.disabled

    For more information, see Integration runtime reference: Custom resource values.

    BAR file that is deployed to the integration runtime

    Go to the BAR files page. The BAR file is named in the format mcpServerName-generatedID-MCP and it packages the resources for the MCP tools by application and object within individual .appzip files.

    BAR file on the "BAR files" page, which is generated during the MCP server deployment