SAP Business One API facts that shape an MCP server
| Fact | Detail | Source |
|---|---|---|
| Official status | As of 10.0 FP 2608, SAP provides MCP server sample code that turns Service Layer into a conversational interface and exposes almost all OData entities as dynamic tools, including user-defined objects, tables and fields. | SAP Help: MCP Server for SAP Business One (sample code) |
| Production readiness | The README in SAP’s download says the project "is provided as a sample for reference and learning purposes only" and "is not necessarily a production-ready product". It is MIT-licensed, version 1.0.0, dated July 15, 2026. | SAP Help: sample code download page |
| Requirements | SAP Business One 10.0 FP 2608 or higher, because the server relies on Service Layer APIs introduced in FP 2608. Service Layer, Identity and Authentication Management (Keycloak) and the System Landscape Directory must all be on FP 2608, and the server needs Node.js 22. | SAP Help: sample code download page |
| Tools | b1_find_entities, b1_get_entity_schema, b1_read and b1_write for discovery and CRUD; b1_list_companies and b1_select_company for multi-company use; and two workflow tools, b1_copy_document (order to delivery to invoice) and b1_create_payment (incoming payment with automatic or manual allocation). | SAP Help: sample code download page |
| Safeguards | Writes, and reads that select personal-data fields, pause for user approval through MCP elicitation. Personal fields are classified from B1’s own personal-data settings and redacted in results, and audit logs record write confirmations, sessions and authentication failures. | SAP Help: MCP Server for SAP Business One (sample code) |
| Auth and transport | Streamable HTTP only, MCP protocol version 2025-11-25. In OAuth mode the server validates Keycloak bearer tokens for the b1_mcp:access scope and its own audience, then Service Layer applies the user’s B1 authorizations. A username and password mode is for local testing only. | SAP Help: sample code download page |
| Documented clients | SAP’s setup guides cover Cline, GitHub Copilot, Goose and MCP Inspector, and stdio isn’t supported. On clients without MCP elicitation support, the server rejects writes and sensitive reads unless you turn human confirmation off. | SAP Help: sample code download page |
| Service Layer vs DI API | Per SAP, DI API derives from Microsoft COM and fits a Windows-native environment, DI Server is SOAP-based, and Service Layer is an OData-compliant web service and application server built for high availability. SAP adds that Service Layer may not suit complex transactions that need server-side state. | SAP Help: Service Layer FAQ |
| SQL Server and HANA | Service Layer runs on SUSE Linux Enterprise and, as of 10.0 PL01, on Microsoft Windows, and SAP publishes administrator guides for both the SQL Server and SAP HANA versions of Business One. | SAP Help: Service Layer system requirements |
| Events | FP 2608 adds conditional webhook triggers, customizable notification payloads and delivery details on the EventNotifications entity, so an agent workflow can react to B1 events instead of polling. | SAP Help: What’s New in SAP Business One 10.0 (FP 2608) |
Every way to connect SAP Business One to AI
| Option | Type | Fits when | Limits |
|---|---|---|---|
| SAP sample code (FP 2608) | Official | Learning and prototypes on FP 2608 or later, and partners who want SAP’s reference design with elicitation, redaction, multi-company support and discovery of user-defined objects. | Not necessarily production-ready, per SAP. Generic CRUD across almost every entity, self-hosted, and documented only for Cline, GitHub Copilot, Goose and MCP Inspector. |
| CompuTec AppEngine MCP Server (partner add-on) | Hosted | Companies already running CompuTec AppEngine 3 (version 3.2509.1-rc-02 or later) that want tools for Service Layer objects, inventory levels, approval procedures and document links, used from Claude Desktop, Claude Code or GitHub Copilot. | Runs on your own AppEngine server, not as a vendor-hosted service, and needs OIDC sign-in enabled in the SLD. Writes need CompuTec’s B1 authorization "Allow MCP Server to execute modification commands". |
| Makini hosted MCP | Hosted | A managed endpoint that reads and writes B1 data from Claude, ChatGPT, Cursor and other clients, with SOC 2 Type II and in-region, single-tenant or self-hosted deployment. | A cross-system tool model (search, get, create, update) rather than B1 document rules, and data passes through Makini unless you self-host. |
| CData open-source server | Community | Read-only, SQL-style reporting on B1 from Claude Desktop. | Local and read-only, and it needs a licensed CData JDBC driver (a trial is available). Writes need CData’s commercial MCP Server or Connect AI. |
| Production server on Service Layer | Custom | Named tools that encode B1 rules (document flows, approvals, posting periods), sign-in through B1 identity management, audit you can show an auditor, hosting you control, and releases before FP 2608. | Build and run cost, and you own upgrades as MCP and Service Layer change. |
Tools a SAP Business One MCP server should expose
Start with read-only tools and add write actions once the team trusts the answers. Every write action below runs with a confirmation or approval step.
| Tool | Access | Risk | Purpose | Guard |
|---|---|---|---|---|
find_business_partner | Read | Low | Search customers and vendors by code, name or tax ID. | Runs as the signed-in B1 user through Service Layer; personal fields stay redacted unless the user may see them. |
get_document_status | Read | Low | Show a sales order, delivery or A/R invoice with its base and target documents. | Read-only; document types allowlisted. |
get_item_availability | Read | Low | In stock, committed, ordered and available quantity by warehouse. | Read-only; warehouse filter required for large catalogs. |
list_open_ar_invoices | Read | Medium | Open A/R invoices for a customer with due dates and balances. | Read-only; balances only, with no bank or payment-card data. |
run_saved_query | Read | Medium | Run an approved B1 query or SQL view exposed through Service Layer, with parameters. | Only allowlisted queries; no free-form SQL; row cap per call. |
create_sales_quotation | Write | Medium | Draft a quotation from items and quantities and return a preview with prices. | Saves only after the user confirms the preview; price lists and discounts come from B1. |
copy_order_to_delivery | Write | High | Create a delivery from an open sales order. | Approval step; checks open quantities and warehouse stock first; audit log with user and document numbers. |
create_incoming_payment | Write | High | Record a customer payment against open invoices. | Validate-only preview first, then approval by a finance user; never returns bank account details. |
update_bp_contact | Write | Medium | Change a business partner’s email or phone number. | Confirmation with before-and-after values; the change is logged without the personal values. |
Connect it to Claude, ChatGPT or Copilot Studio
Claude
SAP’s setup guides don’t cover Claude, but Claude connects to any remote Streamable HTTP server. Publish the endpoint so Anthropic’s cloud can reach it, or allowlist Anthropic’s IP ranges, then add a custom connector with the OAuth client ID and secret you register in B1 identity management. The sample confirms writes through MCP elicitation and rejects writes on clients without it, so test this before you rely on write tools. CompuTec documents Claude Desktop and Claude Code for its server.
ChatGPT
Enable developer mode (Pro, Plus, Business, Enterprise or Education on the web) and add the server’s /mcp URL under ChatGPT Plugins. ChatGPT supports OAuth with static client credentials, Client ID Metadata Documents or dynamic registration, and asks for confirmation on tools without a readOnlyHint. For a Business One server on a private network, Secure MCP Tunnel avoids opening inbound firewall ports.
Microsoft Copilot Studio
Use the MCP onboarding wizard with the server URL (Streamable HTTP only; Copilot Studio dropped SSE after August 2025) and OAuth 2.0 in manual mode, pointing at the Keycloak endpoints of B1 identity management. Generative orchestration must be on, and Power Platform data policies govern the connection. Copilot Studio documents support for MCP tools and resources, so test how the sample’s elicitation prompts behave, or put approvals in the agent itself.
Claude implementation · Copilot implementation · ChatGPT implementation
Permissions, identity and audit
- Users sign in through B1 Identity and Authentication Management, which can use SAP’s built-in authentication server or an OpenID Connect provider such as Microsoft Entra ID or AD FS. The token carries the user, so Service Layer applies that user’s B1 authorizations.
- The sample adds a second gate: tokens must carry the b1_mcp:access scope and the server’s audience. Grant that scope to a named group, not to everyone.
- Use B1 general and document authorizations to decide who may create or post documents; don’t rely on the assistant to hold back. CompuTec adds its own authorization, "Allow MCP Server to execute modification commands", for its server.
- Avoid shared users for interactive assistants. A background agent should get its own B1 user with read-only authorizations and its own audit trail.
- In multi-company landscapes the sample picks the company per session from the SLD, so limit which companies each user can open.
Hosting and network
- SAP’s sample is self-hosted: a Node.js 22 service next to Service Layer. Publish only the MCP endpoint over HTTPS and keep Service Layer and Keycloak on the private network.
- For on-premise B1, Claude and ChatGPT call from their own clouds, so expose the endpoint through a reverse proxy with an allowlist, or use ChatGPT’s Secure MCP Tunnel. Copilot Studio also needs an HTTPS URL it can reach.
- Keep the sample’s audit log on and forward it to your log platform. Its metadata cache defaults to 30 minutes, so new user-defined objects and tables appear after the cache expires or a restart.
- Test in a copy of a company first. The FP 2608 upgrade of Service Layer, identity management and the SLD comes before any rollout of SAP’s sample.
Cost and timeline
- A focused Business One MCP server, such as read-only sales, stock and receivables tools on Service Layer, typically takes two to four weeks including security and evaluation.
- Below FP 2608, SAP’s sample won’t run: plan the upgrade, or build on the Service Layer version you already have.
- Multi-company or multi-system work (Business One plus Shopify or a CRM) and approval workflows take longer and are scoped after a short discovery.
- The SAP sample is free under an MIT license. CompuTec, Makini and CData are commercial products; compare them on data path, write controls and how well their tools match B1 document rules.
SAP Business One MCP questions
Does SAP Business One have an official MCP server?
Yes, as sample code. SAP ships "MCP Server for SAP Business One - Sample Code" with 10.0 FP 2608 and describes it as a sample for reference and learning, not necessarily a production-ready product. Treat it as a starting point you run and maintain yourself.
Will it work on my Business One version?
Only on 10.0 FP 2608 or later, because it relies on Service Layer APIs introduced in FP 2608, and it needs identity management and the SLD at the same level. On earlier versions, a custom server can use the Service Layer endpoints you already have.
Does it work with the SQL Server version or only HANA?
Service Layer runs on Microsoft Windows as well as SUSE Linux as of 10.0 PL01, so the SQL Server version isn’t excluded by Service Layer itself. Check SAP’s FP 2608 platform support for identity management and the SLD on your landscape before planning.
Can it write data?
Yes. The sample supports create, update and delete on most Service Layer entities, plus document copying and payment posting, and it pauses for confirmation through MCP elicitation. For production we narrow that to named tools with validation, because a generic write tool lets the model change almost any entity the user can.
Does it work with Claude, ChatGPT or Copilot?
SAP’s setup guides cover Cline, GitHub Copilot and Goose. Claude, ChatGPT and Copilot Studio can all connect to a remote Streamable HTTP server with OAuth, so they can work, but test OAuth against B1 identity management and how each client handles elicitation prompts before rollout.
How is personal data protected?
The sample reads B1’s personal-data field settings, flags those fields, asks for confirmation when a query selects them and redacts them otherwise. We keep that behavior, add field allowlists per tool, and log tool calls without personal values.
DI API or Service Layer for an MCP server?
Service Layer. It is SAP’s OData web service with session login and batch support, it runs on Windows and Linux, and SAP built its sample on it. DI API is a Windows COM library that suits classic add-ons better than a remote MCP service.
Build or buy?
Use the sample to learn and to prove value. Buy a hosted or partner option if its tools cover your use and its data path meets your policies. Build when you need production support, B1-specific rules and approvals, or releases before FP 2608; we build read-only first, under each user’s own B1 identity, with writes behind approval.