QSAP Book a demo

Let your AI ask SAP. Keep every answer on the record.

QSAP sits between AI assistants and SAP S/4HANA Cloud. People sign in with single sign-on, see only what their SAP authorisations allow, and every call is written to a tamper-evident audit trail. It calls SAP's released OData APIs directly, so there is no Integration Suite message metering in the AI path.

Built by Quantana for manufacturers on S/4HANA Cloud and SAP BTP.

Audit trail Example records, demo data
  1. list_open_work_ordersok
    planner@yourco.example   plant 1710   saml-bearer
    prev 9f3a…c21ehash 1b7e…04d9
  2. check_order_shortagesok
    planner@yourco.example   order 1000231   cache miss
    prev 1b7e…04d9hash 6c02…a7f3
  3. check_order_shortagesok
    planner@yourco.example   order 1000237   cache miss
    prev 6c02…a7f3hash d41b…3e80
  4. list_open_work_ordersdenied
    viewer@yourco.example   tool not in role policy
    prev d41b…3e80hash 82aa…f115

Chain verified: no record altered or removed

AI on SAP is easy to demo and hard to approve.

Integration Suite metering adds up

Route chatty AI traffic through Cloud Integration and every lookup becomes a billable message. An assistant that asks five follow-up questions costs five times as much as a report that runs once.

Governance has no answer for "who asked?"

A shared technical user lets a model read everything that user can read. Auditors want to know which person saw which data, under which authorisation, and whether the log could have been edited.

Raw OData is heavy for a model

An unfiltered entity set returns dozens of fields, metadata blocks and deferred links per row. The model pays to read all of it and answers no better for it.

How it works

QSAP is a Model Context Protocol (MCP) server. Your AI assistant connects to it like any other tool. QSAP holds the SAP connection, checks every request, and calls SAP's released APIs as the signed-in person.

QSAP architecture An AI client connects over MCP to QSAP. QSAP signs the user in through your identity provider, then runs each request through policy, input guard, cache, SAP call, response shaping and audit. QSAP calls released OData APIs on SAP S/4HANA Cloud directly. SAP Integration Suite is not in the AI request path. AI assistant Claude or any MCP client More models via portal MCP QSAP one service in your landscape 1 Sign in (SSO) 2 Role policy 3 Input guard 4 Cache by user 5 Call SAP as user 6 Shape response 7 Append to hash-chained audit trail Your identity provider e.g. SAP Cloud Identity Services OData as the user SAP S/4HANA Cloud Released APIs only SAP roles still apply SAP Integration Suite (CPI) not in the AI request path
Every request takes the same path. Nothing reaches SAP without a signed-in person, a policy decision and an audit record.
  1. Sign in once

    Users authenticate through your identity provider when they first connect their assistant. QSAP never sees a SAP password.

  2. Policy before SAP

    Role groups decide which tools and plants each person can use. Denied requests stop here and are still recorded.

  3. Call SAP as the person

    With OAuth 2.0 SAML Bearer principal propagation, SAP sees the real user and enforces their own authorisations.

  4. Answer compactly, log permanently

    Responses are trimmed to the fields that matter, and the call is appended to a hash-chained audit trail.

Security and governance your auditors can check

QSAP follows SAP's guidance for third-party MCP servers and its API policy: use released APIs only, authenticate and authorise every call, and respect rate limits.

Single sign-on
Users sign in through your identity provider, such as SAP Cloud Identity Services. Sessions are short-lived and tied to that identity.
Per-user SAP authorisation
Choose principal propagation with OAuth 2.0 SAML Bearer, so SAP authorises each person, or an administrator-chosen technical user with QSAP enforcing per-user policy.
Role and plant policy
Map identity groups to the tools and plants they may use. A plant manager sees plant 1710; a viewer can check stock and nothing else.
Tamper-evident audit trail
Every call is stored with the person, tool, SAP request, status and timing. Each record carries the hash of the one before it, so edits and deletions show up when the chain is verified in the audit viewer.
Released APIs only
QSAP uses a fixed set of released OData APIs with field projection and capped result sizes. There is no generic query tool for a model to misuse.
Guarded inputs and rate limits
Arguments are validated before any SAP call, filter values are escaped, and each user has a call budget per minute.

The model reads what it needs and nothing more

Fewer tokens per answer means lower model cost and less room for the model to get lost. QSAP gets there four ways.

  • Field projection. Every SAP call asks only for the fields a tool needs.
  • Response shaping. OData envelopes, metadata and deferred links are stripped before the model sees anything.
  • Authorisation-aware caching. Repeat questions are served from a short-lived cache keyed by the user's identity and roles, so one person's results never leak to another.
  • Summary, then detail. Tools come in tiers: list the open orders first, fetch the full record only for the ones that matter.
What a pass-through integration hands the model
{"d":{"results":[{"__metadata":{"id":"…/A_ProductionOrder_2('1000231')",
"uri":"…","type":"API_PRODUCTION_ORDER_2_SRV.A_ProductionOrder_2Type"},
"ManufacturingOrder":"1000231","ManufacturingOrderCategory":"10",
"ManufacturingOrderType":"YBM1","OrderIsCreated":"","OrderIsReleased":"X",
"OrderIsPrinted":"","OrderIsConfirmed":"","OrderIsPartiallyConfirmed":"",
"OrderIsDelivered":"","OrderIsDeleted":"","OrderIsPreCosted":"X",
"MfgOrderCreationDate":"\/Date(1790380800000)\/", … 80 more fields,
"to_ProductionOrderComponent":{"__deferred":{"uri":"…"}}, …
What QSAP returns
{"id":"1000231","material":"FG-DIV-200","status":"released",
 "short":[{"component":"CART-35","need":40,"available":12}]}

Benchmark coming: a reproducible comparison against a pass-through integration, run on the same questions and data, with the method published alongside the results.

A planner's question, answered in one turn

The assistant picks the tools, QSAP checks the planner's role and runs the calls, and the answer arrives with the order numbers a planner can act on. Illustrative example on demo data for a bath-fittings manufacturer.

Production planner

Which production orders in plant 1710 are short of components?

list_open_work_orders plant 1710, 6 released orders

check_order_shortages run for each of the 6 orders

Assistant

Two of the six released orders in plant 1710 are short:

Orders short of components
OrderProductShort componentNeedAvailable
1000231Diverter, 3-wayCeramic cartridge 35 mm4012
1000237Basin mixerAerator M2415090

The other four orders have full component cover. Want me to check the cartridge stock in plant 1720?

Runs where your SAP landscape already lives

QSAP is a single service with a small footprint. Your data travels between SAP, QSAP and the model provider you choose, and the audit trail stays in your environment.

OptionGood fit whenNotes
SAP BTP, Cloud FoundryYou already run extensions on BTPDeployed into your subaccount next to your other BTP apps
SAP BTP, Kyma runtimeYour team standardises on Kubernetes within BTPShipped as a container image
Your own container platformYou prefer your own cloud or data centreDocker image with automatic TLS; any Kubernetes cluster or VM

What's next

The same tools, policy and audit trail, opened up to more people and more ways of working.

  • Coming

    QSAP Portal

    A web chat for people without an AI assistant licence. Bring your own model key through OpenRouter and use any supported model, with the same SSO, policy and audit.

  • Coming

    Dashboards

    Save the answers you ask for every week as dashboards that refresh from SAP.

  • Coming

    Report downloads

    Export any answer as CSV, Excel or PDF, with the audit reference attached.

  • Coming

    Published token benchmark

    A reproducible comparison against a pass-through integration, method included.

Questions IT leaders ask

How does QSAP affect our SAP licensing?

QSAP works within your existing SAP user licensing: each request runs as a named SAP user or as a technical user your administrator chooses. Commercial terms differ between contracts, so validate how AI-driven access is treated with your SAP account team.

Where does our data go?

QSAP runs in your BTP subaccount or your own infrastructure, so you choose the region. SAP data passes from SAP to QSAP and then to the model provider your users connect with. The audit trail is stored where QSAP is deployed. Pick a model provider and region that meet your data-residency rules.

Which SAP versions does it support?

QSAP is built for SAP S/4HANA Cloud and its released OData APIs, including stock, production orders, bills of material and sales orders. If you run S/4HANA Cloud Private Edition or on-premise with the same released APIs exposed, talk to us about your landscape.

Do we need SAP Integration Suite?

Not for QSAP. It calls released APIs directly, so AI traffic does not consume Integration Suite messages. Your existing integrations can keep running on Integration Suite as they do today.

Can the AI change data in SAP?

No. Today's tools are read-only. Any future write action will go through the same policy and audit trail and will need explicit approval.

Which AI assistants work with it?

Any client that supports the Model Context Protocol, such as Claude. The upcoming portal will let teams use other models with their own OpenRouter key.

See QSAP answer questions on demo plant data, with the audit trail open beside it.

Book a demo