BillOS v1
Console llms.txt OpenAPI

MCP: BillOS for AI agents

One line of config puts BillOS inside Claude, Cursor, or anything else that speaks MCP. The agent can then issue a document, record an expense and read the numbers, in the user's own words, through the same key, the same limits and the same ledger as every other call here.

Connect

The endpoint is https://api.billos.co.il/mcp, Streamable HTTP, authenticated with your normal API key (X-Api-Key, or Authorization: Bearer bk_... for clients that only speak Bearer). A bk_test_ key talks to the sandbox exactly as it does over REST.

{
  "mcpServers": {
    "billos": {
      "url": "https://api.billos.co.il/mcp",
      "headers": { "X-Api-Key": "bk_live_..." }
    }
  }
}

For a desktop client that only launches local processes, put the same URL behind npx mcp-remote https://api.billos.co.il/mcp --header "X-Api-Key: bk_live_...".

The tools

ToolWhat it does
list_businessesThe businesses this key can act on. Call it first: every other tool takes a businessId from here
create_documentCreates and issues a קבלה / חשבונית מס / חשבונית מס-קבלה, and returns the number plus a public PDF link for the customer
list_documentsIssued documents (or drafts), newest first, filterable by date
cancel_documentIssues the credit note (זיכוי) that corrects an issued document: the only lawful undo. Both stay in the books
find_or_create_customerMatches a customer by phone then name, creating one only if nothing matches: what stops a second card being opened for a customer of years
list_customersThe business's customers
record_expenseRecords an expense in the ledger. On a pending account it lands as a draft and the result says so, rather than failing
list_expensesRecorded expenses (or drafts), newest first
financial_summaryIncome, expenses, profit and the VAT position for a date range: the numbers behind "how much did I make this month"

Nine verbs, not forty endpoints: a model composes far better from a small set of complete business actions than from a mirror of the REST surface. Anything the tools don't cover is still one REST call away.

> Issuing and correcting arrived together on purpose. An agent that can create a permanent tax document but cannot correct one is the wrong asymmetry to hand a model: it makes the dangerous half easy and the repair impossible. cancel_document is the counterpart, and it is a real credit note: nothing is deleted, both documents stay in the books, which is exactly what the law requires.

What an agent can and cannot do

Everything in this document still applies: the MCP endpoint is another door to the same wall, not a way around it:

> Give an agent a bk_test_ key first. The sandbox is a real second database (section 10) where nothing is signed, nothing reaches the tax authority, and every mistake is free: the right place to discover how your prompts behave before a model issues a real invoice.