Skip to main content
Glama
sap-b1-mcp

sap-b1-mcp

by kodenova

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
SAPB1_MOCKNoSet to true or 1 to use the bundled fixtures instead of SAP
SAPB1_MAX_ROWSNoMaximum rows any tool may return. Default 50, hard cap 50050
SAPB1_PASSWORDNoPassword of that user. Never logged, redacted from errors
SAPB1_USERNAMENoDedicated read-only SAP Business One user
SAPB1_LOG_LEVELNoLog level: debug, info (default), warn, error, or silent. Logs go to stderrinfo
SAPB1_ALLOW_HTTPNoSet to true to allow a plain http:// URL. Only for a local test systemfalse
SAPB1_COMPANY_DBNoCompany database / schema name
SAPB1_TIMEOUT_MSNoPer-request timeout in milliseconds30000
SAPB1_ALLOW_SELF_SIGNEDNoSet to true to accept a self-signed TLS certificate. Off by defaultfalse
SAPB1_SERVICE_LAYER_URLNoService Layer base URL, e.g. https://b1server:50000/b1s/v1
SAPB1_SAVED_QUERIES_FILENoPath to your saved-queries JSON file

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

Read-only access to one SAP Business One company via Service Layer. All tools only read data; there are no tools that create, change or delete anything. Codes (CardCode, ItemCode) are exact. Use the search_* tools to find codes first.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_business_partnerA

Fetch one business partner (customer, supplier or lead) by its exact CardCode.

search_business_partnersA

Search business partners whose CardCode or CardName contains the text. Optionally filter by type.

get_customer_balanceA

Account balance, open orders balance, open deliveries balance and credit limit for one business partner.

get_itemA

Fetch one item master record by its exact ItemCode.

search_itemsA

Search items whose ItemCode or ItemName contains the text.

get_stock_by_warehouseB

In-stock, committed, ordered and available quantity per warehouse for one item (from ItemWarehouseInfoCollection).

get_open_sales_ordersA

Open (not closed, not cancelled) sales orders, optionally for one customer, newest first.

get_open_invoicesA

Open A/R invoices with the unpaid balance (DocTotal - PaidToDate), optionally for one customer or only overdue ones.

run_saved_queryA

Run a query that an administrator pre-registered in the saved-queries config file. No free SQL or free filters are accepted. Available: customers_over_balance: Customers whose account balance is above a threshold, highest first; invoices_due_before: Open A/R invoices due before a date; sales_by_month: Net A/R sales per month for a year (needs SQLQueries entry KN_SALES_BY_MONTH created by your admin)

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.7/5.0

Scored across 9 tools

Disambiguation4/5

The get_by_exact_key vs search_by_text split is clean and consistent across business partners and items, and the transactional tools (open orders, open invoices, stock by warehouse) target distinct resources. The only fuzziness is between run_saved_query's pre-built queries (customers_over_balance, invoices_due_before) and the single-record tools get_customer_balance/get_open_invoices, which an agent could pick wrongly, though the descriptions differentiate them.

Naming Consistency5/5

All names are snake_case with a leading verb (get_, search_, run_), and the pattern maps predictably to intent: get_ = exact-key fetch, search_ = text lookup, get_open_* = filtered document lists. No mixed conventions or vague verbs.

Tool Count5/5

Nine tools is well within the sweet spot and each covers a distinct read pattern (master data, balances, stock, open documents, canned reports). Nothing looks padded or redundant.

Completeness3/5

The server is coherently read-only, but the document surface stops at list level: there is no tool to fetch a single sales order or invoice with its line details, no price-list/item-warehouse-adjacent lookups beyond the one stock call, and no purchase-side coverage. run_saved_query is an admin-gated escape hatch rather than a general remedy, so agents will hit dead ends when drilling into a document.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues