<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Joule on Marian Zeis Blog</title>
    <link>https://blog.zeis.de/tags/joule/</link>
    <description>Recent content in Joule on Marian Zeis Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 12 Aug 2026 03:00:00 +0200</lastBuildDate>
    <atom:link href="https://blog.zeis.de/tags/joule/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Testing Joule Work Desktop with Microsoft 365, Local Files, and SAP</title>
      <link>https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/</link>
      <pubDate>Wed, 12 Aug 2026 03:00:00 +0200</pubDate>
      <guid>https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/</guid>
      <description>&lt;p&gt;You have probably seen Joule Work Desktop on LinkedIn by now. &lt;a href=&#34;https://www.linkedin.com/posts/sebastian-steinhaeuser_prepare-me-for-my-meeting-with-thats-ugcPost-7490314981784154112-QCE4/&#34;&gt;Sebastian Steinhaeuser&lt;/a&gt; showed how it prepares him for a customer meeting. &lt;a href=&#34;https://www.linkedin.com/posts/philipp-herzig_im-excited-to-present-the-new-sap-gui-ugcPost-7488584210123837440-TuTW/&#34;&gt;Philipp Herzig&lt;/a&gt; called it the new SAP GUI, with a smile, and demonstrated a workflow across email, a spreadsheet, a Space, and PowerPoint.&lt;/p&gt;&#xA;&lt;p&gt;Joule Work Desktop is now available to SAP employees after a test with more than 6,000 colleagues. Selected customers can also use it through the Early Adopter Care program on macOS and Windows.&lt;/p&gt;&#xA;&lt;p&gt;The idea is simple: one desktop application that can combine local files, Microsoft 365, SAP knowledge, business systems, MCP connectors, and skills. That is much more interesting than another small Joule chat window inside one SAP application.&lt;/p&gt;&#xA;&lt;p&gt;I already built similar setups with &lt;a href=&#34;https://blog.zeis.de/posts/2026-02-16-librechat-enterprise-gpt/&#34;&gt;LibreChat&lt;/a&gt; and &lt;a href=&#34;https://blog.zeis.de/posts/2026-05-05-arc-1-copilot-studio/&#34;&gt;Microsoft Copilot Studio&lt;/a&gt;. A native application adds direct access to the files and applications people use every day.&lt;/p&gt;&#xA;&lt;p&gt;Luckily, I was one of the few people who got access to the application and could test the currently available features. So here is my first hands-on experience with what I am allowed to show.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Joule Work Desktop with Conversations, the composer, and the available work sources.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/images/joule-work-desktop-overview.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;If you prefer to see the complete flow first, here is the &lt;a href=&#34;joule-work-desktop-demo.mp4&#34;&gt;58-second demo video&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The application starts with Conversations. I can add files and select work sources or an external connector from the composer. Tool calls remain visible, and generated files open in their normal desktop application.&lt;/p&gt;&#xA;&lt;h2 id=&#34;email-and-calendar-integration&#34;&gt;Email and calendar integration&lt;/h2&gt;&#xA;&lt;p&gt;I asked the application to prepare me for a meeting. It found the calendar entry, read related email messages, and created a brief with logistics, open points, risks, and questions. The calendar and email steps remained visible, and the answer included source references. For me, this is more useful than a general inbox summary because the message becomes the start of a task.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Meeting brief created from Work Calendar and Work Email, including open commitments, risks, questions, and source references.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/images/meeting-preparation.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;local-files-onedrive-and-real-documents&#34;&gt;Local files, OneDrive, and real documents&lt;/h2&gt;&#xA;&lt;p&gt;I can attach Office documents, structured data, text, and images. Files synchronized through OneDrive are also available, so they can be combined with email, calendar, web research, or an external connector.&lt;/p&gt;&#xA;&lt;p&gt;For the meeting-preparation example, I attached an existing Word template. The application filled the relevant sections and created a new document instead of giving me text to copy manually.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;The generated meeting brief opened as a normal Microsoft Word document.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/images/generated-meeting-brief-word.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The files still need review, but reviewing a prepared document is often faster than starting with an empty one.&lt;/p&gt;&#xA;&lt;h2 id=&#34;spaces-are-more-useful-than-i-expected&#34;&gt;Spaces are more useful than I expected&lt;/h2&gt;&#xA;&lt;p&gt;SAP calls the generated work areas Spaces. They are persistent views that can be reopened without finding the original conversation. The most useful one in my test was a transport backlog based on data from my SAP system. It shows open and empty transports, their owners, and the biggest requests by object count.&lt;/p&gt;&#xA;&lt;p&gt;This does not replace a proper application or reporting solution. But not every temporary question needs a new Fiori application, and a Space is more useful than a long chat answer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Transport backlog Space with live metrics from A4H client 001, an owner breakdown, and the biggest transports by object count.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/images/transport-backlog-space.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;connecting-the-sap-system&#34;&gt;Connecting the SAP system&lt;/h2&gt;&#xA;&lt;p&gt;The SAP system integration is what can make Joule Work Desktop more than a general desktop agent.&lt;/p&gt;&#xA;&lt;p&gt;At the moment, the direct SAP business system integration available to me is for SAP S/4HANA Cloud Public Edition. I do not have such a system. My test system is SAP S/4HANA 2023 on-premise.&lt;/p&gt;&#xA;&lt;p&gt;I therefore added &lt;a href=&#34;https://github.com/arc-mcp/arc-1&#34;&gt;ARC-1&lt;/a&gt;, my open-source ADT MCP server. ARC-1 can run locally or as a remote MCP server with OAuth, for example on SAP BTP Cloud Foundry.&lt;/p&gt;&#xA;&lt;p&gt;I could then read transports, inspect ABAP objects, analyze custom code, check ATC findings, or compare a specification with what actually exists in the system.&lt;/p&gt;&#xA;&lt;p&gt;The connector still needs valid authentication, and SAP user authorizations still apply. I would start with a development system and read-only access.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;ARC-1 selected in the composer with a completed read from A4H client 001 and the returned transport request IDs.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/images/arc-1-sap-access.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;connectors-and-one-click-skills&#34;&gt;Connectors and one-click skills&lt;/h2&gt;&#xA;&lt;p&gt;Joule Work Desktop supports MCP connectors and skills, so SAP does not have to build every integration and workflow itself. The &lt;a href=&#34;https://skills.cloud.sap/&#34;&gt;SAP AI Skills Library&lt;/a&gt; contains reusable skills that can be imported into Joule Work Desktop with one click.&lt;/p&gt;&#xA;&lt;p&gt;The skill page shows the repository, license, trust level, and checks before installation. The SAP Fiori Guidelines skill, for example, can be added through the &lt;strong&gt;Add to Joule Work Desktop&lt;/strong&gt; button.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;SAP Fiori Guidelines in the SAP AI Skills Library with the Add to Joule Work Desktop button.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/images/sap-ai-skills-library.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;MCP servers provide tools, while skills describe how the agent should use them and what it should verify. This keeps the application extendable without adding every possible SAP feature to the desktop client.&lt;/p&gt;&#xA;&lt;p&gt;The open questions are broader SAP system support, connector governance, and pricing. Anything about future announcements or TechEd is still only speculation.&lt;/p&gt;&#xA;&lt;h2 id=&#34;something-is-strange&#34;&gt;Something is strange&lt;/h2&gt;&#xA;&lt;p&gt;Anyone who already works with Joule Work Desktop may have noticed something by now.&lt;/p&gt;&#xA;&lt;p&gt;Some details in my video and screenshots do not look exactly like the application SAP installed. The interface is very close, the workflows work, and the features are there, but a few things are just slightly different.&lt;/p&gt;&#xA;&lt;p&gt;There is a simple reason for that.&lt;/p&gt;&#xA;&lt;p&gt;I do not have access to Joule Work Desktop.&lt;/p&gt;&#xA;&lt;p&gt;The screenshots and video in this post do not show an SAP application. They show an application I built myself.&lt;/p&gt;&#xA;&lt;p&gt;After watching the public demos, I wanted to see how difficult it would be to rebuild the same core idea with open-source components. I spent roughly a day or two vibe coding it with Codex. The result is called &lt;a href=&#34;https://getwerkbank.com/&#34;&gt;&lt;strong&gt;Werkbank&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Werkbank is the German word for workbench, a place where different tools come together to get work done.&lt;/p&gt;&#xA;&lt;p&gt;The current interface follows the public Joule Work Desktop videos closely because I wanted to reproduce the workflows shown there. But there is no internal SAP code behind it, I had no access to a Joule Work Desktop build, and I have no additional product information beyond public posts and videos.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-is-actually-inside-werkbank&#34;&gt;What is actually inside Werkbank&lt;/h2&gt;&#xA;&lt;p&gt;Werkbank is a working MVP, not a static mock or a prerecorded animation. It can hold real streaming conversations, call tools, ask for permissions, and stop a running task. The agent behind it is &lt;a href=&#34;https://github.com/aaif-goose/goose&#34;&gt;goose&lt;/a&gt;, an open-source AI agent hosted by the Agentic AI Foundation. Werkbank communicates with Goose through the Agent Client Protocol.&lt;/p&gt;&#xA;&lt;p&gt;The implemented features currently include:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Local active and archived conversations.&lt;/li&gt;&#xA;&lt;li&gt;Word, PowerPoint, text, CSV, JSON, and image attachments, including files synchronized through OneDrive.&lt;/li&gt;&#xA;&lt;li&gt;Generated Word and PowerPoint files that can be opened in the normal desktop application.&lt;/li&gt;&#xA;&lt;li&gt;Persistent Spaces stored as sandboxed HTML views.&lt;/li&gt;&#xA;&lt;li&gt;Live read-only Microsoft 365 email and calendar access.&lt;/li&gt;&#xA;&lt;li&gt;Session-scoped MCP connectors, remote MCP OAuth through Goose, and reusable skills selected with &lt;code&gt;/&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;The demo uses these features rather than special video fixtures. The meeting brief comes from live calendar and email calls, the Word output is a real file, ARC-1 reads my SAP system, and the transport Space is generated from those results. The shipment-defect workflow uses an attached synthetic CSV file and creates a real Space and PowerPoint presentation.&lt;/p&gt;&#xA;&lt;p&gt;For SAP, Werkbank uses the same MCP servers I can use from Claude Desktop, Codex, VS Code, LibreChat, or Copilot Studio. ARC-1 connects to the ABAP system. Connector secrets are stored through the operating system&amp;rsquo;s secure storage instead of being written into the normal configuration.&lt;/p&gt;&#xA;&lt;p&gt;The project website is &lt;a href=&#34;https://getwerkbank.com/&#34;&gt;getwerkbank.com&lt;/a&gt;, and the source is in the public &lt;a href=&#34;https://github.com/marianfoo/werkbank&#34;&gt;Werkbank repository&lt;/a&gt;. Development currently targets macOS, and there is no signed installer yet.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;The live Werkbank website with the product overview and link to the App Store.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/images/werkbank-website.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-werkbank-app-store&#34;&gt;The Werkbank App Store&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://getwerkbank.com/#store&#34;&gt;getwerkbank.com&lt;/a&gt; is not only a landing page. Its App Store already works with the desktop application, and I can use it to add both &lt;a href=&#34;https://getwerkbank.com/#store&#34;&gt;MCP servers&lt;/a&gt; and &lt;a href=&#34;https://getwerkbank.com/#store&#34;&gt;skills&lt;/a&gt; to Werkbank.&lt;/p&gt;&#xA;&lt;p&gt;The small curated catalog currently contains nine entries: three MCP servers and six SAP development skills. I can search it, filter by type, inspect the original source, and then click &lt;strong&gt;Add to Werkbank&lt;/strong&gt; or &lt;strong&gt;Add skill&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Werkbank App Store for MCP servers and SAP skills.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/images/werkbank-app-store.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The website validates the request and opens the local application through a &lt;code&gt;werkbank://&lt;/code&gt; link. Werkbank then shows the connector command and configuration fields, or the skill repository and name. Nothing is installed until I confirm it inside the desktop application. After that, a connector is restarted and becomes available to the conversation, while an installed skill appears in the &lt;code&gt;/&lt;/code&gt; picker.&lt;/p&gt;&#xA;&lt;p&gt;The same flow can be linked from any project README with an &lt;strong&gt;Add to Werkbank&lt;/strong&gt; button. Here is the skill used in the video:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://getwerkbank.com/install-skill/?repository=https%3A%2F%2Fgithub.com%2FSAP%2Fai-skills-library&amp;amp;name=sap-fiori-guidelines&amp;amp;title=SAP+Fiori+Guidelines&#34;&gt;Add the SAP Fiori Guidelines skill to Werkbank&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Werkbank showing the repository, skill name, and source before confirming installation of the SAP Fiori Guidelines skill.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-08-11-joule-work-desktop/images/skill-install-confirmation.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;To try it, clone the repository, run &lt;code&gt;npm install&lt;/code&gt;, copy &lt;code&gt;.env.example&lt;/code&gt; to &lt;code&gt;.env&lt;/code&gt;, add the model configuration, and start it with &lt;code&gt;npm run dev&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-this-little-experiment-shows&#34;&gt;What this little experiment shows&lt;/h2&gt;&#xA;&lt;p&gt;Werkbank is not a replacement for Joule Work Desktop. It is a small MVP built in roughly two days, with bugs and much narrower workflows. But it is already a usable desktop application: I can chat with it, attach files, connect tools, install skills, and return to earlier conversations and Spaces.&lt;/p&gt;&#xA;&lt;p&gt;SAP also has to solve the difficult enterprise parts: identity, authorizations, data protection, auditing, deployment, updates, model governance, and reliable operation for many users and systems. A local MVP does not solve these problems just because the demo looks similar. With more time, I could add SSO, authentication against IAS, a release pipeline with signed builds, automatic updates, and more enterprise controls. That was not the main point of this experiment.&lt;/p&gt;&#xA;&lt;p&gt;But the experiment still shows something useful. The core workflows SAP currently demonstrates are already possible with open-source components:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Read email and calendar context.&lt;/li&gt;&#xA;&lt;li&gt;Work with local files and OneDrive-synchronized files.&lt;/li&gt;&#xA;&lt;li&gt;Analyze structured data.&lt;/li&gt;&#xA;&lt;li&gt;Create persistent dashboards.&lt;/li&gt;&#xA;&lt;li&gt;Generate real Word and PowerPoint files.&lt;/li&gt;&#xA;&lt;li&gt;Connect SAP documentation and SAP systems through MCP.&lt;/li&gt;&#xA;&lt;li&gt;Add reusable skills and new connectors.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Goose is only one possible base. LibreChat can provide a similar experience in the browser. Microsoft Copilot Studio can combine Microsoft 365 connectors and MCP servers. Claude Desktop can also work with local files, connectors, and skills. The individual building blocks already exist.&lt;/p&gt;&#xA;&lt;p&gt;The real value of Joule Work Desktop will therefore not come only from having these features. It will come from how well SAP connects them to business context, SAP authorizations, supported applications, and real processes. It will also depend on how accessible it is. Are Signavio, LeanIX, or SAP S/4HANA Cloud Public Edition required? Can a customer use it with only on-premise systems? And what will it cost?&lt;/p&gt;&#xA;&lt;p&gt;For now, I am impressed by the direction. I just could not test the real application yet, so I built the part I wanted to test myself.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; Werkbank is an independent open-source project and is not affiliated with or endorsed by SAP. SAP, Joule, ABAP, SAP Fiori, SAP S/4HANA, and other SAP products and services mentioned herein are trademarks or registered trademarks of SAP SE or its affiliates in Germany and other countries.&lt;/p&gt;&#xA;&lt;h2 id=&#34;references-and-links&#34;&gt;References and links&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.sap.com/products/artificial-intelligence/joule-work.html&#34;&gt;Joule Work product page&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://news.sap.com/2026/05/sap-sapphire-keynote-business-ai-platform-power-autonomous-enterprise/&#34;&gt;SAP Sapphire 2026 announcement&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.linkedin.com/posts/philipp-herzig_im-excited-to-present-the-new-sap-gui-ugcPost-7488584210123837440-TuTW/&#34;&gt;Philipp Herzig&amp;rsquo;s Joule Work Desktop post&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.linkedin.com/posts/sebastian-steinhaeuser_prepare-me-for-my-meeting-with-thats-ugcPost-7490314981784154112-QCE4/&#34;&gt;Sebastian Steinhaeuser&amp;rsquo;s meeting-preparation post&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.linkedin.com/pulse/sap-developer-news-july-16th-2026-thomas-jung-socjf/&#34;&gt;SAP Developer News: importing skills into Joule Work Desktop&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://skills.cloud.sap/&#34;&gt;SAP AI Skills Library&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://getwerkbank.com/&#34;&gt;Werkbank website and App Store&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/marianfoo/werkbank&#34;&gt;Werkbank source repository&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/aaif-goose/goose&#34;&gt;goose&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/arc-mcp/arc-1&#34;&gt;ARC-1&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
    <item>
      <title>ARC-1 with Joule Studio: Bringing Real ABAP System Context into Joule</title>
      <link>https://blog.zeis.de/posts/2026-05-08-arc-1-joule-studio-clean-core/</link>
      <pubDate>Wed, 06 May 2026 09:00:00 +0200</pubDate>
      <guid>https://blog.zeis.de/posts/2026-05-08-arc-1-joule-studio-clean-core/</guid>
      <description>&lt;p&gt;Series note: This post is part of my &lt;a href=&#34;https://blog.zeis.de/tags/ai-abap-development-series/&#34;&gt;AI ABAP development series&lt;/a&gt;, where I go from AI development in general, to ABAP-specific problems, and then to ARC-1.&lt;/p&gt;&#xA;&lt;p&gt;In the &lt;a href=&#34;https://blog.zeis.de/posts/2026-05-05-arc-1-copilot-studio/&#34;&gt;previous post&lt;/a&gt;, I showed &lt;a href=&#34;https://github.com/arc-mcp/arc-1&#34;&gt;ARC-1&lt;/a&gt; with Microsoft Copilot Studio. The idea was that SAP system context should not be locked inside a local IDE. If ARC-1 runs centrally on SAP BTP, it can also be used from Teams, Microsoft 365 Copilot, SharePoint, Jira, and other places where functional consultants, architects, support teams, and project leads already work.&lt;/p&gt;&#xA;&lt;p&gt;This post is the SAP-native version of that idea. If Microsoft Copilot Studio is close to the Microsoft workday, then &lt;a href=&#34;https://help.sap.com/docs/JOULE/3fdd7b321eb24d1b9d40605dce822e84&#34;&gt;Joule&lt;/a&gt; is close to the SAP workday. SAP describes Joule as the unified assistant experience across SAP&amp;rsquo;s solution portfolio, and &lt;a href=&#34;https://help.sap.com/docs/Joule_Studio/45f9d2b8914b4f0ba731570ff9a85313/4444cd1ce4cd471bbe127ea2e4735b40.html&#34;&gt;Joule Studio&lt;/a&gt; as the place to build custom Joule agents with SAP and non-SAP integrations.&lt;/p&gt;&#xA;&lt;p&gt;So the question is not only: can Joule call another MCP server? The better question is: can the ARC-1 capabilities be brought to the place where SAP users already ask questions?&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-carries-over-from-earlier-posts&#34;&gt;What Carries Over From Earlier Posts&lt;/h2&gt;&#xA;&lt;p&gt;ARC-1 is a secure ADT MCP server for ABAP systems. It connects AI clients to SAP systems through &lt;a href=&#34;https://help.sap.com/docs/btp/sap-business-technology-platform/abap-development-user-guides&#34;&gt;ABAP Development Tools&lt;/a&gt; APIs and exposes this through tools like &lt;a href=&#34;https://docs.arc-1-mcp.com/tools/&#34;&gt;SAPRead, SAPSearch, SAPWrite, SAPActivate, SAPContext, SAPDiagnose, SAPTransport, and SAPManage&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For this post, the important part is not the full tool list. It is the operating model from the earlier BTP post:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;central server instead of every user laptop&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;safe by default instead of allow all by default&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;server ceiling + user permission + SAP authorization&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;audit logging instead of invisible local tool calls&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In the &lt;a href=&#34;https://blog.zeis.de/posts/2026-04-29-arc-1-btp/&#34;&gt;BTP post&lt;/a&gt;, I described how ARC-1 can run as a central Cloud Foundry application with &lt;a href=&#34;https://docs.arc-1-mcp.com/xsuaa-setup/&#34;&gt;XSUAA&lt;/a&gt;, &lt;a href=&#34;https://docs.arc-1-mcp.com/btp-destination-setup/&#34;&gt;BTP destinations&lt;/a&gt;, &lt;a href=&#34;https://help.sap.com/docs/connectivity/sap-btp-connectivity-cf/cloud-connector&#34;&gt;Cloud Connector&lt;/a&gt;, &lt;a href=&#34;https://docs.arc-1-mcp.com/principal-propagation-setup/&#34;&gt;Principal Propagation&lt;/a&gt;, roles, and BTP audit logging. For Joule Studio, I would not create a second SAP access architecture. I would reuse that controlled endpoint.&lt;/p&gt;&#xA;&lt;h2 id=&#34;what-arc-1-adds-to-joule&#34;&gt;What ARC-1 Adds To Joule&lt;/h2&gt;&#xA;&lt;p&gt;Joule already has useful SAP context. SAP has &lt;a href=&#34;https://help.sap.com/docs/btp/btp-developers-guide/use-joule-for-developers-generative-ai-in-abap-cloud&#34;&gt;Joule for Developers&lt;/a&gt;, &lt;a href=&#34;https://help.sap.com/docs/abap-ai/generative-ai-in-abap-cloud/joule-for-developers-abap-ai-capabilities-5f175c94900741d6af3dbb23ce37e81a&#34;&gt;Joule for Developers, ABAP AI capabilities&lt;/a&gt;, and &lt;a href=&#34;https://help.sap.com/docs/joule/serviceguide/sap-consulting-capability-for-joule&#34;&gt;Joule for Consultants&lt;/a&gt;. So this is not about pretending Joule cannot help with ABAP at all.&lt;/p&gt;&#xA;&lt;p&gt;But there is a difference between a useful standard assistant and a tool that can query my actual ABAP system through ADT, read my custom code, inspect dependencies, run diagnostics, check release state, read ATC findings, and create a system-specific proposal.&lt;/p&gt;&#xA;&lt;p&gt;That workflow is not something I get just by opening standard Joule. If SAP does not expose this level of ABAP system access in Joule today, a custom MCP server can still bring it there. With ARC-1, Joule is no longer limited to general SAP knowledge or predefined product capabilities. It can ask the real ABAP system.&lt;/p&gt;&#xA;&lt;p&gt;Not because the model became smarter. Because the tool access became better.&lt;/p&gt;&#xA;&lt;p&gt;That matters beyond pure development. The same ADT-backed context can help architects with Clean Core planning, functional consultants with impact analysis, support teams with dumps and bug analysis, quality leads with ATC reporting, and developers with implementation proposals.&lt;/p&gt;&#xA;&lt;h2 id=&#34;the-architecture-i-would-show&#34;&gt;The Architecture I Would Show&lt;/h2&gt;&#xA;&lt;p&gt;SAP&amp;rsquo;s Architecture Center describes &lt;a href=&#34;https://architecture.learning.sap.com/docs/ref-arch/ca1d2a3e/1&#34;&gt;A2A and MCP for interoperability&lt;/a&gt;. The important part for this post is the direction: Joule as the user-facing assistant, A2A for agent-to-agent collaboration, and MCP for tool access. SAP also describes an &lt;a href=&#34;https://architecture.learning.sap.com/docs/ref-arch/ca1d2a3e/1#mcp-gateway-in-integration-suite&#34;&gt;MCP Gateway in SAP Integration Suite&lt;/a&gt; as a governed way to expose SAP and non-SAP APIs, integrations, data sources, and external MCP servers as tools for AI agents.&lt;/p&gt;&#xA;&lt;p&gt;ARC-1 fits that pattern as the ADT development-tooling adapter:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;User in Joule&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Joule Studio Agent&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; SAP Integration Suite API Management / future MCP Gateway&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; ARC-1 on SAP BTP Cloud Foundry&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Destination Service + Connectivity Service&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; SAP Cloud Connector&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; SAP S/4HANA or ABAP system&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; ADT development APIs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ARC-1 can fit the architecture pattern SAP describes. Joule is the user-facing AI entry point, Integration Suite is the governed access layer, ARC-1 is the ADT adapter, and the SAP system stays protected behind BTP connectivity and SAP authorizations.&lt;/p&gt;&#xA;&lt;p&gt;There are still open points. &lt;a href=&#34;https://help.sap.com/docs/Joule_Studio/45f9d2b8914b4f0ba731570ff9a85313/3d9dfad0bc39468292d508f0808a12fe.html&#34;&gt;Joule Studio already supports adding MCP servers&lt;/a&gt; through BTP destinations, but the documentation also lists restrictions: the destination must be streamable HTTP and MCP servers requiring interactive OAuth user authorization are not supported. SAP also shows MCP hub capabilities on the roadmap, but from what I can see this is still a future SAP Build capability and not the fully available enterprise MCP hub today.&lt;/p&gt;&#xA;&lt;p&gt;So I would present this as a target architecture and showcase, not as a final productive setup guide yet.&lt;/p&gt;&#xA;&lt;p&gt;For the showcase, I configured a Joule Studio agent with a small instruction set, Anthropic Claude Sonnet 4 as model, and two MCP servers: &lt;a href=&#34;https://github.com/arc-mcp/arc-1&#34;&gt;ARC-1&lt;/a&gt; for the ABAP system and the &lt;a href=&#34;https://github.com/marianfoo/mcp-sap-docs&#34;&gt;SAP Docs MCP Server&lt;/a&gt; for official SAP documentation context. I condensed the screenshots here to show only the relevant configuration parts:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Condensed Joule Studio agent configuration showing the agent basics, instructions, model settings, execution steps, and MCP servers for ARC-1 and SAP_DOCS.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-05-08-arc-1-joule-studio-clean-core/joule-studio-agent-configuration.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;use-cases-i-would-show-in-this-post&#34;&gt;Use Cases I Would Show In This Post&lt;/h2&gt;&#xA;&lt;p&gt;I would not repeat all Copilot Studio examples. The Joule post should show scenarios that make sense because the user starts inside the SAP world, not in Teams or SharePoint.&lt;/p&gt;&#xA;&lt;p&gt;One note before the screenshots: I was not able to change the language in this Joule setup, so the screenshots are in German. I describe the important parts in English below each screenshot.&lt;/p&gt;&#xA;&lt;p&gt;The first task for the agent is a Clean Core readiness check for one object. It is narrow enough to be understandable and safe enough because it can be read-only:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Check whether ZCL_ARC1_DEMO_CCORE is clean-core ready.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Use the real SAP system, ATC where possible, API release state, and SAP documentation.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not change anything. Return risks, evidence, and suggested next steps.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This is a good first agent task because it shows the difference between &amp;ldquo;Joule explains Clean Core&amp;rdquo; and &amp;ldquo;Joule analyzes this class in this SAP system for Clean Core risk&amp;rdquo;. ARC-1 reads the ABAP source, dependencies, ATC findings, and &lt;code&gt;API_STATE&lt;/code&gt;. &lt;a href=&#34;https://mcp-sap-docs.marianzeis.de/&#34;&gt;mcp-sap-docs&lt;/a&gt; adds SAP guidance and released API context. Joule returns a short assessment with evidence.&lt;/p&gt;&#xA;&lt;p&gt;This is the kind of result I mean:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Joule showing a Clean Core readiness analysis for ZCL_ARC1_DEMO_CCORE with API release state, used SAP tables, and ATC result.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-05-08-arc-1-joule-studio-clean-core/joule-clean-core-object-analysis.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;The screenshot is still a rough showcase, but it already shows the value. Joule is not only giving generic Clean Core advice. It can show that the class is not released for the relevant contracts, that it uses &lt;code&gt;USR02&lt;/code&gt; and &lt;code&gt;BUT000&lt;/code&gt;, and that there are no ATC findings in this small example. That is a much better starting point for an architect or developer than a general explanation of what Clean Core means.&lt;/p&gt;&#xA;&lt;p&gt;I also asked a follow-up prompt for a dependency diagram. The result was almost the answer I wanted: not perfect, but useful because it returned a Mermaid diagram and an evidence table instead of only prose. You can open the &lt;a href=&#34;https://blog.zeis.de/posts/2026-05-08-arc-1-joule-studio-clean-core/full-reply/&#34;&gt;translated and rendered full Joule reply here&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;The second use case is package-level modernization planning. This is where an agent is useful because it needs multiple tool calls, grouping, prioritization, and a bit more reasoning:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Analyze package ZSD_LEGACY for Clean Core and ABAP Cloud risks.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Group the findings and create a modernization backlog.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not change code.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The same agent can combine ARC-1 for package content, dependencies, ATC, release state, and where-used information with SAP documentation for official guidance. The output should be a backlog, not a &amp;ldquo;fixed everything&amp;rdquo; claim:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Priority 1: direct SAP table usage with released successors&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Priority 2: ATC findings with clear fix direction&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Priority 3: objects that need architecture discussion&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Priority 4: probably dead or low-value code to review later&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This screenshot shows another interesting part of Joule. The response is not only a long text answer. Joule created a left-side list with grouped findings and backlog items, and the selected item is shown with details on the right side:&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Joule showing an interactive package modernization backlog with grouped Clean Core and ABAP Cloud risk categories on the left and details on the right.&#34; loading=&#34;lazy&#34; src=&#34;https://blog.zeis.de/posts/2026-05-08-arc-1-joule-studio-clean-core/joule-package-modernization-backlog.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;In this run, the package &lt;code&gt;ZSD_LEGACY&lt;/code&gt; did not exist. Joule still searched the system and found 28 &lt;code&gt;ZSD*&lt;/code&gt; objects that may represent legacy risks. It grouped them into high, medium, and low risk buckets, and then created a modernization backlog. The selected high-risk card shows temporary &lt;code&gt;$TMP&lt;/code&gt; package objects, split into service definitions, tables, and message classes. That is not a final assessment, but it is a useful interactive starting point.&lt;/p&gt;&#xA;&lt;p&gt;These examples have a better through line for this post than repeating the Copilot Studio demos. Copilot Studio is good when the work starts in Microsoft 365. Joule Studio is good when the work starts in SAP, but still needs real ABAP system context.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-i-use-an-agent-here&#34;&gt;Why I Use An Agent Here&lt;/h2&gt;&#xA;&lt;p&gt;For this showcase an agent is perfectly fine. The interesting part is not the packaging. The interesting part is that Joule can call &lt;a href=&#34;https://github.com/arc-mcp/arc-1&#34;&gt;ARC-1&lt;/a&gt; and the &lt;a href=&#34;https://github.com/marianfoo/mcp-sap-docs&#34;&gt;SAP Docs MCP Server&lt;/a&gt;, collect system evidence, and turn that into something useful for the user.&lt;/p&gt;&#xA;&lt;p&gt;For ARC-1 I would still keep the first Joule Studio agent conservative: one object or one package, read-only by default, no automatic rewrite. I would not start with a big automation story. I would start with analysis, evidence, and a proposal.&lt;/p&gt;&#xA;&lt;p&gt;And yes, you can also vibe code with this. If write access is enabled for a development or sandbox system, a Joule Studio agent can propose changes and call ARC-1 to apply them. I just do not want this to be the main story here, because the more important point is the architecture: first give Joule controlled access to real ABAP system context, then decide which write actions are safe enough.&lt;/p&gt;&#xA;&lt;h2 id=&#34;open-points&#34;&gt;Open Points&lt;/h2&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://help.sap.com/doc/sap-api-policy/latest/en-US/API_Policy_latest.pdf&#34;&gt;SAP API Policy&lt;/a&gt; also matters here, but it should not become the whole post. ARC-1 should be positioned as ADT development tooling, not as a generic business-data extraction layer. Clean Core checks, ATC, code inspection, syntax checks, ABAP Unit, activation, and development support are the story. Data extraction is not the story.&lt;/p&gt;&#xA;&lt;p&gt;This is also why the Joule Studio architecture is interesting. SAP&amp;rsquo;s architecture guidance describes SAP Integration Suite and API Management as part of a governed pathway for AI agents, including a governance layer like an MCP gateway in front of APIs. That is much closer to the setup in this post than a local MCP server on a developer laptop. It gives the agent a controlled entry point, central configuration, identity, monitoring, and auditability. It does not mean every possible ADT usage is automatically fine, but the architecture shape is much closer to what SAP is describing for API agents.&lt;/p&gt;&#xA;&lt;h2 id=&#34;why-this-matters&#34;&gt;Why This Matters&lt;/h2&gt;&#xA;&lt;p&gt;Copilot Studio and Joule Studio are different surfaces:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Copilot Studio = close to Teams, Microsoft 365, SharePoint, Excel, Word, Jira&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Joule Studio = close to SAP products, SAP Build, Joule agents, SAP users&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ARC-1 = governed ABAP system access layer that can serve both&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The client can change, but the security model should not. For me that is the main point. ARC-1 should not be locked to Claude, Cursor, Copilot Studio, or Joule Studio. If the company allows it, the same governed ARC-1 endpoint should be usable from different AI clients.&lt;/p&gt;&#xA;&lt;p&gt;And ARC-1 is open source, which is important to me. If this kind of access layer becomes part of SAP AI architectures, then people should be able to inspect how it works, challenge the security model, test it against real systems, and decide for themselves if it fits their landscape.&lt;/p&gt;&#xA;&lt;p&gt;Also, this does not have to start with write access. Even read-only mode is already very powerful. Reading code, dependencies, ATC findings, release state, dumps, messages, packages, and where-used information can help architects, consultants, support teams, and developers without the assistant writing a single line of ABAP.&lt;/p&gt;&#xA;&lt;p&gt;The target picture is not &amp;ldquo;AI writes ABAP from a chat prompt&amp;rdquo;. The better target is:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;the user asks inside Joule&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Joule has access to the right tools&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ARC-1 provides real ABAP system context&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SAP documentation provides the official direction&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Integration Suite provides governance&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;SAP authorizations still protect the backend&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;humans approve the risky parts&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That is much more interesting than a local MCP demo. It is also much closer to what I think enterprise ABAP agentic development needs.&lt;/p&gt;&#xA;&lt;h2 id=&#34;discuss-this-post&#34;&gt;Discuss this post&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://saptodon.org/@Mianbsp/116529573994656695&#34;&gt;Saptodon&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://bsky.app/profile/marian.zeis.de/post/3ml7kulu55s2v&#34;&gt;Bluesky&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://www.linkedin.com/posts/marianzeis_what-if-joule-could-answer-abap-and-clean-activity-7458010353239691264-gbF0&#34;&gt;LinkedIn&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;references--links&#34;&gt;References &amp;amp; links&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://github.com/arc-mcp/arc-1&#34;&gt;ARC-1 on GitHub&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.arc-1-mcp.com/&#34;&gt;ARC-1 Documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.arc-1-mcp.com/tools/&#34;&gt;ARC-1 Tools&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.arc-1-mcp.com/authorization/&#34;&gt;ARC-1 Authorization and Roles&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.arc-1-mcp.com/phase4-btp-deployment/&#34;&gt;ARC-1 BTP Cloud Foundry Deployment&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.arc-1-mcp.com/principal-propagation-setup/&#34;&gt;ARC-1 Principal Propagation Setup&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://mcp-sap-docs.marianzeis.de/&#34;&gt;mcp-sap-docs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://help.sap.com/docs/JOULE/3fdd7b321eb24d1b9d40605dce822e84&#34;&gt;SAP Help: What is Joule?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://help.sap.com/docs/Joule_Studio/45f9d2b8914b4f0ba731570ff9a85313/4444cd1ce4cd471bbe127ea2e4735b40.html&#34;&gt;SAP Help: What is Joule Studio?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://help.sap.com/docs/Joule_Studio/45f9d2b8914b4f0ba731570ff9a85313/3d9dfad0bc39468292d508f0808a12fe.html&#34;&gt;SAP Help: Add MCP Servers to Your Joule Agent&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://architecture.learning.sap.com/docs/ref-arch/ca1d2a3e/1&#34;&gt;SAP Architecture Center: A2A and MCP for Interoperability&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://help.sap.com/docs/integration-suite/sap-integration-suite/api-management-capability&#34;&gt;SAP Integration Suite API Management&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://help.sap.com/docs/btp/btp-developers-guide/use-joule-for-developers-generative-ai-in-abap-cloud&#34;&gt;SAP Joule for Developers&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://help.sap.com/docs/abap-ai/generative-ai-in-abap-cloud/joule-for-developers-abap-ai-capabilities-5f175c94900741d6af3dbb23ce37e81a&#34;&gt;SAP Joule for Developers, ABAP AI capabilities&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://help.sap.com/docs/joule/serviceguide/sap-consulting-capability-for-joule&#34;&gt;SAP Joule for Consultants&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://help.sap.com/doc/sap-api-policy/latest/en-US/API_Policy_latest.pdf&#34;&gt;SAP API Policy&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
    <item>
      <title>Supercharged Local Open Source Joule for Consultants: Search Your Data &amp; Code</title>
      <link>https://blog.zeis.de/posts/2025-10-29-librechat/</link>
      <pubDate>Wed, 29 Oct 2025 09:30:00 +0100</pubDate>
      <guid>https://blog.zeis.de/posts/2025-10-29-librechat/</guid>
      <description>&lt;p&gt;This post is a mirrored copy of my LinkedIn article, kept here so it remains searchable and independent from external platforms.&#xA;You can still find the original on LinkedIn: &lt;a href=&#34;https://www.linkedin.com/pulse/supercharged-local-open-source-joule-consultants-search-marian-zeis-gepbf/&#34;&gt;LinkedIn Pulse article&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.sap.com/germany/products/artificial-intelligence/ai-assistant/sap-consulting-capability.html&#34;&gt;Joule for Consultants&lt;/a&gt; costs 250 € and mainly searches SAP Help, SAP Community and SAP for Me (Notes). That is useful, but it stops where real projects start: your own systems, codebase and sensitive data. Even though public assistants like ChatGPT and Claude can already reach SAP Help and SAP Community, the real gap is internal/authenticated data and code.&lt;/p&gt;&#xA;&lt;p&gt;For this case I created a &lt;a href=&#34;https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat&#34;&gt;LibreChat fork&lt;/a&gt; that includes and auto-starts SAP MCP servers (Docs, Notes, S/4 OData and ABAP ADT) via Docker. So the MCP Server are local inside your Docker and no external MCP Server is used. &lt;a href=&#34;https://www.librechat.ai/&#34;&gt;LibreChat&lt;/a&gt; is an open‑source local chat UI with MCP support and built‑in Ollama integration, and it also supports many other model providers. You get a private assistant that can read official docs, inspect code and data from your systems without sending customer context to third‑party clouds. The fork’s documentation is here: &lt;a href=&#34;https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat/tree/main/sap-mcp-docs&#34;&gt;sap‑mcp‑docs&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Running the assistant locally means the client, tools and, if you choose, the model stay on your machine (LibreChat supports Ollama), so you avoid pasting sensitive context into public chats. By adding S/4 OData and ABAP ADT, you bring real metadata, code and data into the loop.&lt;/p&gt;&#xA;&lt;h3 id=&#34;which-mcp-servers-are-used-here&#34;&gt;Which MCP servers are used here?&lt;/h3&gt;&#xA;&lt;p&gt;The &lt;a href=&#34;https://github.com/marianfoo/mcp-sap-docs&#34;&gt;SAP Docs MCP&lt;/a&gt; provides unified search and fetch across SAPUI5/OpenUI5, CAP, ABAP keyword docs, SAP Help and SAP Community. The &lt;a href=&#34;https://github.com/marianfoo/mcp-sap-notes&#34;&gt;SAP Notes MCP&lt;/a&gt; is for searching and fetching SAP Notes when you have an error, OSS number or concrete symptom; it requires an S‑User certificate (Passport). The &lt;a href=&#34;https://github.com/mario-andreschak/mcp-abap-adt&#34;&gt;ABAP ADT MCP&lt;/a&gt; reads ABAP sources, DDIC structures and tables content via ADT APIs so you never paste code into chat and still get precise context. The &lt;a href=&#34;https://github.com/lemaiwo/btp-sap-odata-to-mcp-server&#34;&gt;S/4 OData MCP&lt;/a&gt; discovers services and exposes safe CRUD tools so your assistant can read and write via approved APIs.&lt;/p&gt;&#xA;&lt;h2 id=&#34;how-this-works-in-practice&#34;&gt;How this works in practice&lt;/h2&gt;&#xA;&lt;p&gt;In my example I used o4‑mini from OpenAI, but LibreChat supports many &lt;a href=&#34;https://www.librechat.ai/docs/configuration/pre_configured_ai&#34;&gt;model providers&lt;/a&gt; including OpenAI, Anthropic, Google, Azure AI Foundry and even SAP AI Core (not tested by me). The key point: you can also use a local &lt;a href=&#34;https://www.librechat.ai/blog/2024-03-02_ollama#getting-started-with-ollama&#34;&gt;model via Ollama&lt;/a&gt;. Depending on your use case, a local model is smart enough to call the right tools and MCP servers. I also use an ABAP Cloud Developer Trial instance connected via the S/4 OData and ADT MCP servers.&lt;/p&gt;&#xA;&lt;h3 id=&#34;sap-notes-lookup--abap-table-verification&#34;&gt;SAP Notes lookup + ABAP table verification&lt;/h3&gt;&#xA;&lt;p&gt;This first example flow combines the SAP Notes MCP and ABAP ADT MCP. First the assistant searches and fetches a specific SAP Note (&lt;code&gt;sap_note_search&lt;/code&gt;, &lt;code&gt;sap_note_get&lt;/code&gt;), then verifies the relevant DDIC table and fields via ADT. This confirms the symptom and the fix steps before proposing a safe, auditable corrective action (for example, an OData action). This is the pattern for many “error → note → verify → fix” tasks.&lt;/p&gt;&#xA;&lt;img src=&#34;example-sap-notes-lookup.jpg&#34; alt=&#34;LibreChat example flow: SAP Notes lookup plus ABAP table verification via ADT MCP tools&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;h3 id=&#34;service-metadata--valuelist-guidance&#34;&gt;Service metadata + ValueList guidance&lt;/h3&gt;&#xA;&lt;p&gt;The assistant uses the S/4 MCP to discover the Football service and inspect entity schema (&lt;code&gt;search-sap-services&lt;/code&gt;, &lt;code&gt;discover-service-entities&lt;/code&gt;, &lt;code&gt;get-entity-schema&lt;/code&gt;). It then pivots to the SAP Docs MCP to &lt;code&gt;sap_help_search&lt;/code&gt; and &lt;code&gt;sap_help_get&lt;/code&gt; the ValueList documentation and shows exactly where to add annotations. This marries live service metadata with the official docs so consultants can implement confidently, then validate in a Fiori app.&lt;/p&gt;&#xA;&lt;img src=&#34;example-service-metadata-valuelist.jpg&#34; alt=&#34;LibreChat example flow: S/4 service metadata plus ValueList guidance via SAP Docs MCP&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;h3 id=&#34;cds-view-value-help-research&#34;&gt;CDS view Value Help research&lt;/h3&gt;&#xA;&lt;p&gt;For CDS‑centric cases, the assistant focuses on SAP Docs MCP to collect the canonical examples for &lt;code&gt;Common.ValueList&lt;/code&gt; and relevant ABAP/CDS annotations. If needed, ABAP ADT MCP can retrieve the current CDS definition (&lt;code&gt;GetStructure&lt;/code&gt;/&lt;code&gt;GetInclude&lt;/code&gt;) to compare the as‑is state and generate the minimal edit plan.&lt;/p&gt;&#xA;&lt;img src=&#34;example-cds-value-help.jpg&#34; alt=&#34;LibreChat example flow: CDS value help research with ABAP ADT MCP context&#34; loading=&#34;lazy&#34;&gt;&#xA;&lt;h3 id=&#34;other-options-and-clients&#34;&gt;Other options and clients&lt;/h3&gt;&#xA;&lt;p&gt;There are other options and clients to use these MCP servers. If you prefer the Microsoft ecosystem, Visual Studio Code’s GitHub Copilot Chat supports MCP servers so you can connect the same SAP MCP endpoints there, as described in the &lt;a href=&#34;https://code.visualstudio.com/docs/copilot/chat/mcp-servers&#34;&gt;VS Code Copilot Chat MCP guide&lt;/a&gt;. This is a simpler setup compared to the LibreChat fork. For a more governed setup you can use &lt;a href=&#34;https://adoption.microsoft.com/ai-agents/copilot-studio/&#34;&gt;Copilot Studio&lt;/a&gt; together with the hosted S/4 OData MCP server from &lt;a href=&#34;https://www.sap.com/products/artificial-intelligence/partners/nessi-nv-ai-data-enabler.html?countryCode=US&#34;&gt;Nessi NV&lt;/a&gt; and the SAP Docs MCP Server.&lt;/p&gt;&#xA;&lt;p&gt;I talked about these MCP servers and showed a live example of Copilot Studio and other LLM clients at SAP Inside Track Munich 2025. The recording is here: &lt;a href=&#34;https://www.youtube.com/watch?v=vTZCeaxsOwU&#34;&gt;SAP Inside Track Munich 2025&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;You can also build your own LLM client and use the MCP servers directly. I tried a quick PoC with the current libraries and tools. It worked, but turning it into a production‑ready assistant with robust MCP support is non‑trivial; I would not recommend rolling your own for production. The PoC is here: &lt;a href=&#34;https://github.com/marianfoo/custom-llm-client&#34;&gt;Custom LLM Client&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;getting-started&#34;&gt;Getting started&lt;/h3&gt;&#xA;&lt;p&gt;To run this on your own machine, clone the repository, configure the &lt;code&gt;.env&lt;/code&gt; and &lt;code&gt;librechat.yaml&lt;/code&gt; files and start the Docker container. The docs are in this &lt;a href=&#34;https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat/tree/main/sap-mcp-docs&#34;&gt;folder&lt;/a&gt; and the setup guide is here: &lt;a href=&#34;https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat/blob/main/sap-mcp-docs/MCP_SETUP_GUIDE.md&#34;&gt;MCP_SETUP_GUIDE.md&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Minimal path (see guides for details):&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Clone and configure&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cd local-llm-client-for-sap-consultants-librechat&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp librechat.example.yaml librechat.yaml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Configure the .env and librechat.yaml files&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;# Start in Docker&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;security-running-ai-and-mcp-locally&#34;&gt;Security: running AI and MCP locally&lt;/h3&gt;&#xA;&lt;p&gt;Because the client, MCP server and (optionally) the model run on your machine, prompts, retrieved docs and tool results stay inside your environment. When you do connect to external sources, do it intentionally and stick to trusted endpoints. Operationally keep it simple and start read-only by default and enable write tools only when you require it. The short version: a local, open-source stack is the safer option here; unlike cloud assistants, your information never leaves your machine unless you choose to send it.&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h3&gt;&#xA;&lt;p&gt;With MCP servers, LLM clients become smarter and more useful in real projects. LLMs simply cannot know everything, especially internal context that lives on enterprise networks and changes quickly. Because the Model Context Protocol is still relatively new in the enterprise, treat adoption with care and integrate it securely. Keeping information on your own machine and using open-source libraries lets you see exactly what runs and how.&lt;/p&gt;&#xA;&lt;p&gt;SAP clearly wants to position Joule for Consultants as a unique product; today it still lags behind community projects for these use cases. At TechEd next week we’ll see whether community MCP servers are embraced and whether SAP’s own products improve enough to justify the price.&lt;/p&gt;&#xA;&lt;h3 id=&#34;references&#34;&gt;References&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Custom LLM Client PoC: &lt;a href=&#34;https://github.com/marianfoo/custom-llm-client&#34;&gt;https://github.com/marianfoo/custom-llm-client&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;SAP Inside Track Munich 2025 session: &lt;a href=&#34;https://www.youtube.com/watch?v=vTZCeaxsOwU&#34;&gt;https://www.youtube.com/watch?v=vTZCeaxsOwU&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;SAP partner listing (S/4 integration via OAuth): &lt;a href=&#34;https://www.sap.com/products/artificial-intelligence/partners/nessi-nv-ai-data-enabler.html?countryCode=US&#34;&gt;https://www.sap.com/products/artificial-intelligence/partners/nessi-nv-ai-data-enabler.html?countryCode=US&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;MCP clients overview (Claude Desktop etc.): &lt;a href=&#34;https://modelcontextprotocol.io/clients/&#34;&gt;https://modelcontextprotocol.io/clients/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Copilot Studio: &lt;a href=&#34;https://adoption.microsoft.com/ai-agents/copilot-studio/&#34;&gt;https://adoption.microsoft.com/ai-agents/copilot-studio/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;VS Code Copilot Chat MCP docs: &lt;a href=&#34;https://code.visualstudio.com/docs/copilot/chat/mcp-servers&#34;&gt;https://code.visualstudio.com/docs/copilot/chat/mcp-servers&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;CAP MCP server (official): &lt;a href=&#34;https://github.com/cap-js/mcp-server&#34;&gt;https://github.com/cap-js/mcp-server&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;CAP MCP plugin (community): &lt;a href=&#34;https://github.com/gavdilabs/cap-mcp-plugin&#34;&gt;https://github.com/gavdilabs/cap-mcp-plugin&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;S/4 OData MCP: &lt;a href=&#34;https://github.com/lemaiwo/btp-sap-odata-to-mcp-server&#34;&gt;https://github.com/lemaiwo/btp-sap-odata-to-mcp-server&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;ABAP ADT MCP: &lt;a href=&#34;https://github.com/mario-andreschak/mcp-abap-adt&#34;&gt;https://github.com/mario-andreschak/mcp-abap-adt&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;SAP Notes MCP: &lt;a href=&#34;https://github.com/marianfoo/mcp-sap-notes&#34;&gt;https://github.com/marianfoo/mcp-sap-notes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;SAP Docs MCP: &lt;a href=&#34;https://github.com/marianfoo/mcp-sap-docs&#34;&gt;https://github.com/marianfoo/mcp-sap-docs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;LibreChat Ollama guide: &lt;a href=&#34;https://www.librechat.ai/blog/2024-03-02_ollama#getting-started-with-ollama&#34;&gt;https://www.librechat.ai/blog/2024-03-02_ollama#getting-started-with-ollama&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;LibreChat model providers: &lt;a href=&#34;https://www.librechat.ai/docs/configuration/pre_configured_ai&#34;&gt;https://www.librechat.ai/docs/configuration/pre_configured_ai&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;LibreChat website: &lt;a href=&#34;https://www.librechat.ai/&#34;&gt;https://www.librechat.ai/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;LibreChat fork setup guide: &lt;a href=&#34;https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat/blob/main/sap-mcp-docs/MCP_SETUP_GUIDE.md&#34;&gt;https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat/blob/main/sap-mcp-docs/MCP_SETUP_GUIDE.md&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;LibreChat fork docs folder: &lt;a href=&#34;https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat/tree/main/sap-mcp-docs&#34;&gt;https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat/tree/main/sap-mcp-docs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;LibreChat fork (SAP consultants, with MCP servers): &lt;a href=&#34;https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat&#34;&gt;https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
  </channel>
</rss>
