MCP server for Money S3 accounting — invoices, contacts, stock, banking, payroll via GraphQL
26 tools with consistent naming (m3_ prefix) and mostly complete schemas. Descriptions are present but often generic (avg ~80 chars, below 194-char baseline). Parameter descriptions are sparse, many lack detail on format, constraints, or dependencies. Output schemas are undocumented. Error handling is minimal; no recovery guidance. Pagination is implemented (take/skip) but total counts and next_cursor are absent. No tool annotations (readOnlyHint/destructiveHint). Composition is reasonable, tools are single-purpose, but chaining IDs are not always returned.
Query the accounting journal with controlling variables (cost center, project, activity). Read-only.
Query activities (činnosti) — controlling variable. Read/write.
Query the address book (contacts/partners) with full detail: addresses, bank accounts, credit limits, discount, maturity terms
List all agendas (companies/databases) in this Money S3 instance with their GUIDs. Use the GUID to select which agenda to work with via m3_set_agenda.
Query bank documents (payments, transfers) with VAT breakdown, payment status, controlling variables
Query cash desk (register) documents with VAT breakdown, payment status, controlling variables
Output schemas undocumented. No tool returns a documented response structure. LLMs cannot plan downstream calls or extract required fields (e.g., IDs for chaining). Affects all 26 tools.
Pagination lacks total count and next_cursor. Tools accept take/skip but do not return total_count or has_more, forcing agents to guess when to stop iterating. Affects all list/query tools.
Parameter descriptions lack format/constraint details. 'where' and 'order' params accept GraphQL strings but do not document syntax, valid fields, or examples. 'dateOfIssue' pattern is shown but not explained in description. Affects 15+ tools.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Query the chart of accounts (accounting plan). Read-only.
Test the Money S3 API connection — verifies OAuth2 auth, endpoint reachability, and agenda access
Query cost centers (střediska) — controlling variable. Read/write.
Create an activity (činnost). Async import queue.
Create a new entry in the address book with business/invoice addresses, banking, credit limits, and maturity terms. Async import queue.
Create a bank document (payment). Supports controlling variables. Async import queue.
Create a cash desk (register) document. Supports controlling variables. Async import queue.
Create a cost center (středisko). Async import queue.
Create an internal document with controlling variables. Async import queue.
Create a project (zakázka). Async import queue.
Delete an address book entry by ID
Execute a raw GraphQL query or mutation against the Money S3 API. For advanced use when built-in tools don't cover a specific need.
Query internal documents with VAT breakdown, payment status, controlling variables
Query inventory (stocktaking) documents with line items and expected vs real amounts
Query liabilities (payables/obligations) with VAT, payment status, maturity dates, controlling vars
Query order documents (objednávkové doklady) with pagination
Query predefined accounting entries (předkontace). Read-only.
Query projects (zakázky) — controlling variable. Read/write.
Query receivables (amounts owed to you) with VAT, payment status, maturity dates, controlling vars
Set the active agenda (company) for all subsequent API calls. Required before querying any data.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk field is present in metadata but not exposed in tool schema. LLMs cannot infer which tools are safe to retry or have side effects.
Error handling absent. No recovery guidance, error classification, or actionable messages. Tools fail silently or return raw API errors. Agents cannot self-correct or retry intelligently.