Skip to main content
Glama
Avatarsia

OpenXE MCP Server

by Avatarsia

openxe

Destructive

Execute OpenXE ERP actions with filtering by customer, date, or conditions, and output results in JSON, table, or CSV formats.

Instructions

Fuehrt eine OpenXE-Aktion aus (Warenwirtschaft / ERP). Rufe openxe-discover EINMAL pro Session fuer die vollstaendige Aktionsliste auf.

Beleg-Aktionen (Filter: belegnr, kundennummer, zeitraum, where; status_preset entity-spezifisch — siehe list-*-Label): list-invoices Rechnungen list-orders Auftraege list-quotes Angebote list-delivery-notes Lieferscheine list-credit-memos Gutschriften get-invoice / get-order / ... (mit id)

Zeitraum-Parameter (NICHT filter_jahr o.ae.): 'heute', 'diese-woche', 'dieser-monat', 'letzter-monat', 'letzte-30-tage', 'oktober-2025', 'Q3-2025', '2025'

where (clientseitige Filter, auch auf Beleg-Positionen via Dot-Notation): Operatoren: equals, contains, startsWith, endsWith, gt, lt, gte, lte, range, empty, notEmpty, in, containsAny, containsAll Flach: {name:{contains:'Mueller'}}, {gesamtsumme:{gt:100}} Positionen: {'positionen.nummer':{containsAny:['100003','1000213']}} -- Rechnungen mit Artikel A oder B {'positionen.nummer':{containsAll:['A','B']}} -- Rechnungen mit BEIDEN Artikeln

format: json (default) | table | csv | csv-positions | ids csv-positions: EINE CSV-Zeile pro Belegposition mit Kunde+Belegnr+Datum als Prefix und Artikelnummer/Bezeichnung/Beschreibung/Menge/Einheit/Preis/Gesamtpreis als Positionsspalten. Nutzt automatisch include=positionen.

Beispiele: Rechnungen 2025 mit Artikel 100003 oder 1000213 als Positions-CSV: {action:'list-invoices', params:{zeitraum:'2025', where:{'positionen.nummer':{containsAny:['100003','1000213']}}, format:'csv-positions'}} Offene Auftraege diesen Monat: {action:'list-orders', params:{zeitraum:'dieser-monat', status_preset:'offen'}} Umsatz aktueller Monat: {action:'dashboard', params:{kpi:'umsatz-monat'}}

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
actionYesAktion (z.B. "list-orders", "get-address", "create-order"). Nutze openxe-discover um verfuegbare Aktionen zu sehen.
paramsNoAktionsspezifische Parameter (optional)
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate destructiveHint=true, but the description does not disclose which actions are destructive or warn about potential side effects. It lists examples mostly read-only (list, get, dashboard) but the action parameter is open-ended, leaving the agent uninformed about destructive behaviors.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-organized with headings, bullet points, and examples. Almost every line adds useful information, though a bit more brevity could be achieved without losing clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description explains return formats (json, table, csv, csv-positions, ids) with detail on csv-positions, and covers the where filter syntax thoroughly. It does not address error handling or nonexistent actions, but for the complexity of the tool it is reasonably complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds substantial value by explaining the structure of the 'params' object with concrete sub-parameters (format, zeitraum, where, status_preset), their possible values, and usage examples. This goes far beyond the schema's vague 'tool-specific parameters'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool executes OpenXE ERP actions (Fuehrt eine OpenXE-Aktion aus) and distinguishes it from the sibling openxe-discover tool, which is for listing actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly instructs to call openxe-discover once per session to get the action list, providing clear when-to-use guidance relative to the sibling. It could be more explicit about when not to use the tool, but the alternative is well defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Avatarsia/openxe-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server