In the first two parts of this series we deployed n8n on SAP BTP, Kyma runtime and built a custom node that connects n8n's AI Agent to SAP AI Core's Generative AI Hub. In Part 2 we also built a concrete workflow, the IT Helpdesk Assistant, an agent that can query tickets, knowledge articles, and employee skills from a live OData API and answer questions in natural language.
In this final part, we take that workflow one step further. Instead of accessing it only through n8n's own chat interface, we connect it to Joule Studio so that a Joule agent can discover and call the n8n workflow tools directly. The bridge between the two systems is the Model Context Protocol (MCP), an open standard for exposing tools to AI agents in a structured, discoverable way.
1 Publish the Workflow in n8n
Before anything else, the IT Helpdesk Agent workflow from Part 2 needs to be active and running on your Kyma n8n instance. Open your live n8n instance at your Kyma domain URL, navigate to the workflow and click the Publish Button in the top-right corner of the editor.
An published workflow means its trigger is live and listening. Without the workflow being published, it will not appear in the MCP Server's tool list.
2 Enable the MCP Server in n8n
n8n has a built-in MCP Server feature that exposes all active workflows with a Chat Trigger as discoverable tools — following the Model Context Protocol standard. Any MCP-compatible client, including Joule Studio, can connect to this endpoint and see exactly which tools are available and how to call them.
To enable it, go to Settings in your n8n instance and navigate to the MCP Server section. Enable the feature. n8n will generate two pieces of information that you will need in the next steps:
| MCP Server URL | The base URL of your n8n instance — the same Kyma domain URL from Part 1, for example https://n8n. |
| Access Token | A bearer token generated by n8n that MCP clients must present with every request to authenticate themselves |
Copy both values and keep them at hand — you will use them when creating the BTP Destination in the next step.
Treat the MCP access token like any other credential. Anyone who holds this token can call your n8n workflows remotely. Do not share it, do not commit it to a repository, and rotate it if you suspect it has been exposed.
3 Create the BTP Destination
Joule Studio does not call external services directly. It goes through the SAP BTP Destination Service — a managed proxy layer that handles connectivity configurations centrally. To connect Joule to n8n, we register the n8n MCP endpoint as a destination in our BTP subaccount and add a set of properties that tell Joule Studio this destination is an MCP server.
Open the Destination Configuration
In the SAP BTP Cockpit, navigate to your subaccount and open Connectivity → Destinations. Create New Destination.
Basic Configuration
Fill in the destination properties as follows:
| Name | A descriptive name you will recognise in Joule Studio, for example n8n-helpdesk-mcp |
| Type | HTTP |
| URL | The base URL of your n8n Kyma instance — for example https://n8n. |
| Authentication | No Authentication — the token is passed separately via an additional property below |
Additional Properties
Below the basic fields, there is an Additional Properties section. This is where the MCP-specific configuration lives. Add the following two entries:
Key Value
sap-joule-studio-mcp-server |
true |
URL.headers.Authorization |
The access token from n8n — paste the full token value here |
The first property flags this destination to Joule Studio as an MCP server — without it, the destination will not appear in the MCP server selector inside Joule Studio. The second property injects the n8n access token as an Authorization header on every outbound request, which is how n8n authenticates incoming MCP calls.
Click Save.
The completed BTP Destination form — showing the Name, URL, Authentication and both Additional Properties
4 Create the Agent in Joule Studio
With the destination in place, open Joule Studio from your BTP Cockpit subscriptions. Navigate to the Agents section and create a new agent.
Agent Identity
Give the agent a clear name and fill in the description fields:
| Name | For example IT Helpdesk Assistant |
| Description | A short explanation of what the agent does — this is displayed to end users. For example: “Assists with IT support requests by looking up tickets, knowledge articles, and employee skills.” |
| Expertise | Role or Persona for the Agent eg. “IT Helpdesk assistant” |
| Instructions | A more detailed prompt that guides the agent's reasoning. Describe the domain it operates in and any behavioral expectations. |
5 Connect the MCP Server
Below the model settings section, Joule Studio provides an option to add an MCP Server to the agent. This is where you link the BTP Destination you created in the previous step.
1. Select the MCP Server
Click Add MCP Server. A selector will appear listing all BTP Destinations in your subaccount that have the sap-joule-studio-mcp-server: true property set. Select the destination you created — for example n8n-helpdesk-mcp.
2. Set the Path in Advanced Options
Expand the Advanced Options section for the MCP server entry. Set the Path field to:
/mcp-server/http/
This path is the MCP endpoint that n8n exposes on its server. It tells Joule Studio exactly where within the destination URL to send MCP discovery and tool call requests.
Joule Studio — the MCP Server section with the destination selected and the Advanced Options expanded
3. Verify the Tool List
After saving the MCP server configuration, Joule Studio will attempt to connect to the n8n MCP endpoint and retrieve the list of available tools. If the destination, token, and path are all correct, a list will appear directly in the interface showing every active n8n tools.
Seeing the tool list appear is the confirmation that the full integration is working end-to-end. Joule Studio has successfully discovered the n8n MCP server, authenticated using the token from the destination, and retrieved the tool schema. No further wiring is needed — the agent can now call these tools in a live conversation.
What to Check if the Tool List Does Not Appear
If the list remains empty or an error is shown, work through the following in order:
- Confirm them MCP Server is enabled in n8n
- Check that the URL in the BTP Destination points to the correct Kyma domain and does not have a trailing slash conflict with the path.
- Verify the access token in
URL.headers.Authorizationis current — n8n may rotate or invalidate tokens when the MCP Server is reconfigured. - Ensure the path in Joule Studio's Advanced Options is exactly
/mcp-server/http/including the trailing slash.
6 Test the Agent
Save the agent configuration and open the built-in test inside Joule Studio. Type a question that maps to one of the tool's capabilities — for example: “What are the currently open tickets?”
Joule will process the message, identify the appropriate tool, send an MCP tool call through the BTP Destination to n8n, and receive the OData response. The final answer presented in the chat will be a summary of the live data now surfaced through Joule's conversational interface.
✓ Series Complete
Over three posts we built a complete, production-oriented integration stack connecting n8n and the SAP ecosystem — from infrastructure to AI to conversational interfaces.
| Part 1 | Deployed n8n self-hosted on SAP BTP Kyma runtime with persistent storage and an external API Rule |
| Part 2 | Built a custom n8n node bridging SAP AI Core's Generative AI Hub and deployed an IT Helpdesk Agent workflow |
| Part 3 | Exposed the n8n workflow as an MCP server, connected it to Joule Studio via a BTP Destination and gave a Joule agent access |
AI Usage Disclosure: Gen AI was used exclusively for linguistic refinements such as grammar, spelling, and phrasing as well as for the structural organisation of this text. All conceptual content, technical knowledge, architecture decisions, and implementation steps were developed independently by the author.
SAP Community — Technology Blogs n8n meets SAP — Part 3 of 3



