MCP-Werkzeuge
Jedes Werkzeug des MCP-Servers, aus seinen eigenen Definitionen geschrieben. Einen Assistenten verbinden richtet den Server ein. Ein Assistent liest die volle Beschreibung jedes Werkzeugs in tools/list. Die Beschreibungen der Argumente stehen dort wie hier auf Englisch.
documents:read
get_document
Liest einen Beleg als ocost.document.v1, wie GET /public/v1/documents/{document_id}.
| Argument | Typ | Bedeutung |
|---|---|---|
document_id | uuid, Pflicht | An id Ocost gave (a UUID) |
{
"name": "get_document",
"arguments": {
"document_id": "01a1b08c-7aa1-7b52-9d4e-2f1f1c0c4f11"
}
}get_file
Liefert Status, Grund und Belege einer Datei, wie GET /public/v1/files/{file_id}.
| Argument | Typ | Bedeutung |
|---|---|---|
file_id | uuid, Pflicht | An id Ocost gave (a UUID) |
{
"name": "get_file",
"arguments": {
"file_id": "01a1b08c-6e3a-7562-8f4a-7924722667b1"
}
}list_files
Listet Dateien nach ihrer letzten Änderung, älteste zuerst, wie GET /public/v1/files.
| Argument | Typ | Bedeutung |
|---|---|---|
status | Liste aus received, reading, read, not_read, failed | Only files in these statuses |
updated_since | date-time | Files changed at or after this time (ISO 8601) |
cursor | string | next_cursor of the page before |
limit | integer 1–100, Standard 50 | Dateien je Seite. |
{
"name": "list_files",
"arguments": {
"status": ["read", "not_read", "failed"],
"updated_since": "2026-11-09T08:00:00Z"
}
}read_document
Liest die Seiten eines Belegs als Text, bis zu 4 Seiten und 12.000 Zeichen.
| Argument | Typ | Bedeutung |
|---|---|---|
document_id | uuid, Pflicht | Die ID eines Belegs. |
pages | Liste aus integer | Die Seitenzahlen der Datei, die gelesen werden. |
{
"name": "read_document",
"arguments": {
"document_id": "01a1b08c-7aa1-7b52-9d4e-2f1f1c0c4f11",
"pages": [1, 2]
}
}find_documents
Listet Belege, neueste zuerst, nach Art, Familie oder Firma.
| Argument | Typ | Bedeutung |
|---|---|---|
kind | acceptance_protocol, agreement, bonus_payment_notification, … (81 Werte) | Eine Belegart, wie kind_detail sie unter Werte listet. |
company_id | uuid | Die ID einer Firma, aus find_company. |
family | invoices, payments, buying, contracts, reports, people, other | Eine Gruppe von Arten, etwa invoices oder contracts. |
{
"name": "find_documents",
"arguments": {
"kind": "credit_note",
"company_id": "01a1b08c-5c2d-7e10-8b3a-1d2e3f4a5b6c"
}
}find_contracts
Listet Verträge mit Laufzeit, Kündigungsfrist und wiederkehrenden Beträgen.
| Argument | Typ | Bedeutung |
|---|---|---|
company_id | uuid | Die ID einer Firma, aus find_company. |
{
"name": "find_contracts",
"arguments": {
"company_id": "01a1b08c-5c2d-7e10-8b3a-1d2e3f4a5b6c"
}
}find_company
Findet Lieferanten und Kunden nach Namen, mit ihren IDs.
| Argument | Typ | Bedeutung |
|---|---|---|
name | string, Standard "" | Ein Teil des Namens. Ohne ihn werden alle gelistet. |
{
"name": "find_company",
"arguments": {
"name": "Musterbüro"
}
}find_project
Findet Projekte nach Namen, mit ihren IDs.
| Argument | Typ | Bedeutung |
|---|---|---|
name | string, Standard "" | Ein Teil des Namens. Ohne ihn werden alle gelistet. |
{
"name": "find_project",
"arguments": {
"name": "Neubau"
}
}company_documents
Listet die Belege einer Firma in beide Richtungen, bis zu 30.
| Argument | Typ | Bedeutung |
|---|---|---|
company_id | uuid, Pflicht | Die ID einer Firma, aus find_company. |
{
"name": "company_documents",
"arguments": {
"company_id": "01a1b08c-5c2d-7e10-8b3a-1d2e3f4a5b6c"
}
}invoice_detail
Zeigt eine Rechnung wie ihre Seite in Ocost: Beträge, Fälligkeit, Skonto, Bestellung und Verlauf.
| Argument | Typ | Bedeutung |
|---|---|---|
invoice_id | uuid, Pflicht | Die ID einer Rechnung. |
{
"name": "invoice_detail",
"arguments": {
"invoice_id": "01a1b08c-8c3d-7f41-a2b5-3e4f5a6b7c8d"
}
}open_decisions
Listet die offenen Entscheidungen der verbundenen Person, fällige zuerst.
Nur über eine OAuth-Verbindung, als die Person, die sie erlaubt hat.
| Argument | Typ | Bedeutung |
|---|---|---|
company_id | uuid | Die ID einer Firma, aus find_company. |
project_id | uuid | Die ID eines Projekts, aus find_project. |
{
"name": "open_decisions",
"arguments": {
"company_id": "01a1b08c-5c2d-7e10-8b3a-1d2e3f4a5b6c"
}
}check_invoice
Prüft Eingangsrechnungen nach § 14 UStG, und ob jede eine E-Rechnung ist.
| Argument | Typ | Bedeutung |
|---|---|---|
document_ids | Liste aus uuid | Die zu prüfenden Rechnungen, nach ihren IDs. |
company_id | uuid | Die ID einer Firma, aus find_company. |
issued_since | date | Das Ausstellungsdatum, ab. |
issued_until | date | Das Ausstellungsdatum, bis. |
only_missing | boolean, Standard false | Nur Rechnungen, denen etwas fehlt. |
title | string | Der Titel der Tabelle. |
{
"name": "check_invoice",
"arguments": {
"company_id": "01a1b08c-5c2d-7e10-8b3a-1d2e3f4a5b6c",
"issued_since": "2026-01-01",
"only_missing": true
}
}documents:write
send_file
Schickt eine Datei als Base64, wie POST /public/v1/files.
| Argument | Typ | Bedeutung |
|---|---|---|
filename | string, Pflicht | Its name, e.g. bill.pdf |
content_base64 | string, Pflicht | The file's bytes in base64: a PDF, an image (JPEG, PNG, TIFF, WebP) or an e-invoice's XML (XRechnung, UBL, CII), at most 25 MB |
external_ref | string | Your own id for it, e.g. an Odoo bill's 'account.move,42'; kept and given back |
{
"name": "send_file",
"arguments": {
"filename": "invoice.pdf",
"content_base64": "JVBERi0xLjcK…",
"external_ref": "account.move,42"
}
}search:read
search_documents
Durchsucht, was Belege sagen: exakt, nach Wörtern, nach Bedeutung oder beides.
| Argument | Typ | Bedeutung |
|---|---|---|
query | string, Pflicht | Was gefunden werden soll. |
match | exact, keywords, meaning, hybrid, Standard "hybrid" | exact wie geschrieben, keywords nach Wörtern, meaning nach Bedeutung, hybrid beides. |
document_id | uuid | Nur in diesem Beleg suchen. |
kinds | Liste aus acceptance_protocol, agreement, bonus_payment_notification, … (81 Werte) | Nur diese Belegarten, wie kind_detail sie unter Werte listet. |
family | invoices, payments, buying, contracts, reports, people, other | Eine Gruppe von Arten, etwa invoices oder contracts. |
company_id | uuid | Die ID einer Firma, aus find_company. |
project_id | uuid | Die ID eines Projekts, aus find_project. |
site_id | uuid | Die ID eines Standorts. |
issued_since | date | Das Ausstellungsdatum, ab. |
issued_until | date | Das Ausstellungsdatum, bis. |
due_since | date | Das Fälligkeitsdatum einer Rechnung, ab. |
due_until | date | Das Fälligkeitsdatum einer Rechnung, bis. |
gross_min | Dezimalzahl | Der Bruttobetrag ab, in der Währung des Unternehmens. |
gross_max | Dezimalzahl | Der Bruttobetrag bis, in der Währung des Unternehmens. |
direction | incoming, outgoing | incoming von Lieferanten, outgoing an Kunden. |
status | open, paid | Bei einer Rechnung: open oder paid. |
category | string | Ein ECLASS-Code beliebiger Ebene, aus find_category. |
limit | integer | Höchstens so viele Zeilen. |
title | string | Der Titel der Tabelle. |
{
"name": "search_documents",
"arguments": {
"query": "Bürostuhl",
"match": "hybrid",
"kinds": ["invoice"],
"issued_since": "2026-01-01"
}
}search
Sucht Belege für Deep Research und Unternehmenswissen in ChatGPT.
| Argument | Typ | Bedeutung |
|---|---|---|
query | string, Pflicht | What to find |
{
"name": "search",
"arguments": {
"query": "Wartungsvertrag Aufzug"
}
}fetch
Holt ein Ergebnis von search ganz: seine ersten vier Seiten, bis zu 12.000 Zeichen.
| Argument | Typ | Bedeutung |
|---|---|---|
id | string, Pflicht | A result's id |
{
"name": "fetch",
"arguments": {
"id": "01a1b08c-7aa1-7b52-9d4e-2f1f1c0c4f11"
}
}figures:read
find_category
Macht aus Wörtern in jeder Sprache von Ocost ECLASS-Codes.
| Argument | Typ | Bedeutung |
|---|---|---|
words | string, Pflicht | Wörter für eine Kategorie, in jeder Sprache von Ocost. |
{
"name": "find_category",
"arguments": {
"words": "Büromaterial"
}
}company_profile
Fasst die letzten 12 Monate einer Firma zusammen: Einkauf, Verkauf, Konditionen, offene Posten und Zahlungsdauer.
| Argument | Typ | Bedeutung |
|---|---|---|
company_id | uuid, Pflicht | Die ID einer Firma, aus find_company. |
{
"name": "company_profile",
"arguments": {
"company_id": "01a1b08c-5c2d-7e10-8b3a-1d2e3f4a5b6c"
}
}project_overview
Vergleicht den Plan eines Projekts mit dem Ausgegebenen und dem Gebundenen, nach Lieferant und Monat.
| Argument | Typ | Bedeutung |
|---|---|---|
project_id | uuid, Pflicht | Die ID eines Projekts, aus find_project. |
{
"name": "project_overview",
"arguments": {
"project_id": "01a1b08c-4b1c-7d20-9a4b-2c3d4e5f6a7b"
}
}query_figures
Summiert Datensätze für ein Diagramm, einen Vergleich oder eine Anzahl.
| Argument | Typ | Bedeutung |
|---|---|---|
source | documents, lines, invoices, … (11 Werte), Pflicht | Was summiert wird, etwa invoices oder lines. |
group_by | Liste aus Objekt (field, bucket, level), Pflicht | Ein oder zwei Felder: die Zeilen, dann die Spalten. |
measure | Objekt (agg, field, signed) | Was summiert wird: eine Anzahl, oder Summe, Durchschnitt, Minimum oder Maximum eines Felds. |
filters | Liste aus Objekt (field, values, since, until, min, max) | Bedingungen auf Feldern der Quelle. |
year | integer | Ein Jahr. period ersetzt es. |
compare | previous_period, previous_year | Mit dem Zeitraum davor vergleichen, oder mit demselben ein Jahr früher. |
top_n | integer | Nur die größten Gruppen. |
matching | Objekt (query, match) | Nur die Belege, die eine Suche findet. |
title | string | Der Titel der Tabelle. |
period | string | Klartext, etwa 2025, Q3 2025 oder last year. |
{
"name": "query_figures",
"arguments": {
"source": "invoices",
"measure": {"agg": "sum", "field": "net"},
"group_by": [{"field": "company"}],
"filters": [{"field": "direction", "values": ["incoming"]}],
"period": "2025",
"top_n": 10
}
}top_companies
Ordnet die größten Lieferanten oder Kunden nach Netto über einen Zeitraum.
| Argument | Typ | Bedeutung |
|---|---|---|
side | suppliers, customers, Standard "suppliers" | Lieferanten (Standard) oder Kunden. |
period | string | Klartext, etwa 2025, Q3 2025 oder last year. |
since | date | Ab diesem Datum. |
until | date | Bis zu diesem Datum. |
category | string | Ein ECLASS-Code oder Wörter. |
n | integer, Standard 10 | Wie viele gelistet werden. |
title | string | Der Titel der Tabelle. |
{
"name": "top_companies",
"arguments": {
"side": "suppliers",
"period": "2025",
"n": 10
}
}spend_over_time
Liefert Netto je Monat, Quartal oder Jahr, auf Wunsch nach Firma oder Kategorie.
| Argument | Typ | Bedeutung |
|---|---|---|
period | string | Klartext, etwa 2025, Q3 2025 oder last year. |
bucket | month, quarter, year, Standard "month" | Monat (Standard), Quartal oder Jahr. |
by | company, category | Eine Spalte je Firma oder je ECLASS-Segment. |
side | suppliers, customers, Standard "suppliers" | Lieferanten (Standard) oder Kunden. |
since | date | Ab diesem Datum. |
until | date | Bis zu diesem Datum. |
title | string | Der Titel der Tabelle. |
{
"name": "spend_over_time",
"arguments": {
"period": "last 12 months",
"bucket": "month",
"by": "company"
}
}largest_documents
Listet die größten Belege nach Brutto über einen Zeitraum.
| Argument | Typ | Bedeutung |
|---|---|---|
kind | string | Eine andere Art als zu zahlende Rechnungen, etwa credit_note. |
side | suppliers, customers, Standard "suppliers" | Lieferanten (Standard) oder Kunden. |
period | string | Klartext, etwa 2025, Q3 2025 oder last year. |
since | date | Ab diesem Datum. |
until | date | Bis zu diesem Datum. |
n | integer, Standard 10 | Wie viele gelistet werden. |
title | string | Der Titel der Tabelle. |
{
"name": "largest_documents",
"arguments": {
"period": "Q3 2025",
"n": 10
}
}payables_due
Listet offene Eingangsrechnungen, die in einem Zeitraum fällig werden, Skonto-Fristen zuerst.
| Argument | Typ | Bedeutung |
|---|---|---|
window | this_week, next_7_days, next_14_days, next_30_days, this_month | Wann die Rechnungen fällig werden. |
since | date | Ab diesem Datum. |
until | date | Bis zu diesem Datum. |
company_id | uuid | Die ID einer Firma, aus find_company. |
title | string | Der Titel der Tabelle. |
{
"name": "payables_due",
"arguments": {
"window": "next_14_days"
}
}vat_preview
Zeigt eine Vorschau der USt-Voranmeldung nach Kennzahl, zur Prüfung durch die Steuerberatung.
| Argument | Typ | Bedeutung |
|---|---|---|
period | string | Ein Monat (2026-10) oder ein Quartal (2026-Q4). |
kz | string | Eine Kennzahl, um ihre Rechnungen zu listen. |
title | string | Der Titel der Tabelle. |
{
"name": "vat_preview",
"arguments": {
"period": "2026-10"
}
}find_anomalies
Markiert doppelte Rechnungen, geänderte Bankverbindungen und Preise über der Bestellung.
| Argument | Typ | Bedeutung |
|---|---|---|
since | date | Ab diesem Datum. |
until | date | Bis zu diesem Datum. |
kinds | Liste aus duplicate, bank_changed, price_above_order | Nur diese Hinweise. |
title | string | Der Titel der Tabelle. |
{
"name": "find_anomalies",
"arguments": {
"since": "2026-08-01",
"until": "2026-10-31",
"kinds": ["bank_changed"]
}
}supplier_profile
Fasst einen Lieferanten in einem Aufruf zusammen: Ausgaben, Konditionen, Zahlungsdauer, offene Posten und Preise.
| Argument | Typ | Bedeutung |
|---|---|---|
company_id | uuid, Pflicht | Die ID einer Firma, aus find_company. |
{
"name": "supplier_profile",
"arguments": {
"company_id": "01a1b08c-5c2d-7e10-8b3a-1d2e3f4a5b6c"
}
}exports:write
export_table
Exportiert die Tabelle eines anderen Werkzeugs als Excel oder CSV, hinter einem Link, der 30 Minuten gilt.
| Argument | Typ | Bedeutung |
|---|---|---|
query | Objekt (tool, args), Pflicht | Die query einer Tabelle, unverändert, wie ein Werkzeug sie lieferte. |
title | string, Standard "Ocost" | Der Titel der Tabelle. |
format | xlsx, csv, Standard "xlsx" | Excel (xlsx, Standard) oder CSV. |
{
"name": "export_table",
"arguments": {
"query": {"tool": "top_companies", "args": {"period": "2025"}},
"title": "Top suppliers 2025",
"format": "xlsx"
}
}make_datev_export
Erstellt den DATEV-Export eines Zeitraums als ein ZIP, hinter einem signierten Link.
Nur über eine OAuth-Verbindung, als die Person, die sie erlaubt hat.
| Argument | Typ | Bedeutung |
|---|---|---|
starts_on | date, Pflicht | Der erste Tag des Zeitraums. |
ends_on | date, Pflicht | Der letzte Tag des Zeitraums, im selben Geschäftsjahr. |
{
"name": "make_datev_export",
"arguments": {
"starts_on": "2026-10-01",
"ends_on": "2026-10-31"
}
}