custom-llm-client
A local-first proof-of-concept chat client for SAP questions: a CAP backend runs a LangGraph planner over MCP servers and streams the answer with every tool call shown as it runs.
Where something is documented, whether an SAP Note covers it and what a system actually holds are three searches in three places. This puts them behind one chat: a CAP backend opens a WebSocketWebSocketPushing to a browser that already has the page open, rather than making it ask again — the half of a UI that polling imitates badly.Community only, a LangGraph planner decides which MCP tool to call, and the reply streams back with each call shown as it starts and completes. Which servers exist is backend/mcp.servers.json, shipped with placeholder entries for SAP documentation, SAP Notes, a local ADT server, S/4HANA OData services and a CAP service, and the model behind it is an environment variable: Azure OpenAI, the OpenAI API, Ollama or SAP AI CoreSAP AI CoreSAP's AI service on BTP: the runtime for AI assets, and through the Generative AI Hub inside it the access to foundation models, the orchestration service with its templating, masking, filtering and grounding modules, the Prompt Registry and Document Grounding.sap official, btp. Its README carries the author's own caution that this "was a research project for a PoC and works barely", and points to local-llm-client-for-sap-consultants-librechat in its place.
Facts
Where it sits
Who is behind it
In the atlas: maintains 35, contributes to 86, wrote 25@marianfoomaintainer
Before choosing this
Signals
LicenceNo licenseNeither the package manifest nor the repository tree declares a licence
Without a licence the default is all rights reserved. Ask the maintainer, or check for terms stated elsewhere, before depending on it.
What it declares
Every artifact
- Type
- Sample
- Origin
- Independently maintained
- Runtime
- Node.js
As a sample
- Form
- A reference application
Connections
Building an agent into your own application
Calling a language model with tenant and credential handling solved
Pushing updates to a browser that already has the page open
An agent runtime that describes a loop as a graph of nodes and edges and carries the state between turns. For the things here it is the harness an agent's planning and tool calls run in, and the state that a CDS checkpointer persists.
A cross-platform JavaScript runtime that servers, command line tools and scripts written in JavaScript are run with. For the things here, the prerequisite a repository names when its build is a set of npm scripts.
AI runtime on BTP with the Generative AI Hub
Download
README
quoted from marianfoo/custom-llm-client, read🚀 SAP LLM + MCP Client (PoC)
Brief, local-first proof-of-concept that combines SAP CAP (Node.js), LangGraph, and Model Context Protocol (MCP) to answer SAP questions via a chat UI. It can search SAP documentation and SAP Notes through MCP servers and stream results with visible tool calls.
⚠️ PoC: Intended for local use. Supports Azure OpenAI, OpenAI API, Ollama (local), and SAP AI Core (BTP). Not production-hardened.
Caution
This was a research project for a PoC and works barely. Do not use it in production or anywhere else. Better use this: https://github.com/marianfoo/local-llm-client-for-sap-consultants-librechat
Details
Sources
Sources are graph entities: the same page may back several entries, and an unreachable source flags every row that rests on it.
Compatibility and provenance
Flavors
“Brief, local-first proof-of-concept that combines SAP CAP (Node.js), LangGraph, and Model Context Protocol (MCP) to answer SAP questions via a chat UI.” — marianfoo/custom-llm-client — README
History in the atlas
- First seen.
For your agent
- Ref
artifact:marianfoo-custom-llm-client- JSON
- /artifacts/marianfoo-custom-llm-client.json
- MCP
- Connecting an agent