SampleSampletypeA worked example you read or clone. Evidence: it demonstrates, it never provides.See every one →What this type is →independently maintainedindependently maintainedoriginPublished by one person or a small company outside SAP. Says nothing about quality; the readings say that.See every one →Starting point

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 WebSocket, 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 Core. 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

Last push

Where it sits

Lives in
Demonstrates
Agent toolingCAPAgent toolingcapabilityBuilding an agent into your own application — the tools it may call, the state it keeps between turns, and the framework it runs in. Distinct from MCP servers, which expose an application to somebody else's agent, and from agent guidance, which is knowledge handed to a coding agent.LLM integrationCAPLLM integrationcapabilityCalling a language model from application code with the tenant, destination and credential handling already solved instead using an SDK call with a hand-rolled key.WebSocketCAPWebSocketcapabilityPushing to a browser that already has the page open, rather than making it ask again — the half of a UI that polling imitates badly.
Flavors
Requires
Node.jsNode.jsoutside the atlasRunning the CAP backend and the React frontend, at version 18 or higher as the README's prerequisites state.LangGraphLangGraphoutside the atlasThe planner, act and respond loop that chooses which MCP tool to call on each turn and holds the state between them.
Optional
SAP AI CoreSAP AI CoreartifactThe model the chat calls, reached at a deployment's inference URL with a client id and secret, when SAP AI Core is the configured provider.

Who is behind it

Marian ZeisMarian ZeisPersonMaintains this
In the atlas: maintains 35, contributes to 86, wrote 25
@marianfoo
maintainer

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

Connections6

README

quoted from marianfoo/custom-llm-client, read
marianfoo/custom-llm-client/README.mdOn GitHub

🚀 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

excerpt, no licence read, read the rest, on GitHub

Details

Sources3
GitHub organisations and accountsdiscovered here, marianfoochecked
github.com/marianfoo/custom-llm-clienttree, pushes, contributors, CIchecked
README.mdquoted, and what the entry declareschecked

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
runtimesnode
discovered viaGitHub organisations and accounts · marianfoo
first seen in the atlas
ecosystem and domaincap, ai-and-agents
Flavors1
Node.js
“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 — READMEchecked
History in the atlas1
  1. First seen.
For your agent
Ref
artifact:marianfoo-custom-llm-client
JSON
/artifacts/marianfoo-custom-llm-client.json
MCP
Connecting an agent