In short: You connect Tiro once as an MCP server in your AI assistant. From then on it sets up the extraction: it asks what the result should look like, reads your sample documents word by word with coordinates, writes a rule set from that, tests it against your expected values, and only activates it once every sample matches exactly.
Why this is different from "let AI read the PDF"
Pointing a language model at a PDF is convenient, but it answers afresh every time — and across ten thousand invoices a year, a few percent of deviation is exactly the pile that costs you time. A template is the opposite: a handful of fixed rules saying where the invoice number sits on this layout and how the line-item table is built. Same document, same result — a year from now too.
The catch used to be who writes those rules. Other vendors hand you an editor to click them together. In Tiro your own assistant writes them, because that is precisely what it is good at: spotting patterns in text and turning them into structure. You never have to read them.
What your assistant actually does
- Clarify the target structure. It asks which fields you need. The fastest way is to show it what you retype today — a spreadsheet row with headers, a JSON example, a schema from your ERP.
- Create the inbox and its fields. One call, and field names, types and the line-item table are settled.
- Get samples. You upload two or three real documents in the app or forward them to the inbox's e-mail address. If your client can read files, it uploads them itself.
- Set the expected values. You walk through the first result together. Whatever is wrong it corrects, and the result becomes that sample's expected value.
- Write and test the rules. It fetches the text with positions, writes the rule set, runs it as a dry run and sees in black and white which field still deviates. It fixes and retests until everything matches.
- Fallback and output. Finally you settle what should happen to unknown layouts and where the data goes — download, API, webhook or e-mail intake.
One template stands for one layout, which means one sender. When a new supplier shows up, you tell your assistant "one more" — there is no limit.
Connecting
The server address is:
https://tirodocs.com/api/mcp
Authentication uses the same API key as the REST interface, as a header:
Authorization: Bearer tiro_…
In Claude Code one line is enough:
claude mcp add --transport http tiro https://tirodocs.com/api/mcp \
--header "Authorization: Bearer tiro_…"
Other clients ask for the same two things in a form: address and header. After that you will find the prompt "inbox_einrichten" among the server's prompts — that is where you start.
Limits, stated plainly
For digitally produced PDFs, Tiro reads the text layer and works exactly reproducibly. For scans and photos, text recognition has to run first: the rules apply just as reliably, but a misread character stays a misread character. So with scans, add one sample more rather than one less.
If no template applies, you decide: either the AI takes over (the document is visibly marked and it costs credits), or the document counts as failed and nobody receives unverified values. For approval processes the second setting is usually the right one.