Hashavshevet MCP (wizcloud-mcp): an unofficial MCP server for the WizCloud REST API
wizcloud-mcp exposes 7 well-structured tools with consistent naming (verb_noun pattern: hashavshevet_*) and detailed descriptions referencing official WizCloud API endpoints. All tools include input schemas with enums and company parameters. However, output schemas are not documented, responses are opaque JSON blobs with no field definitions. Parameter descriptions are present but generic ('Payload forwarded verbatim'); they do not explain expected structure, constraints, or dependencies. Error handling is minimal (fail() returns raw error messages with no recovery guidance). Tool annotations (readOnlyHint, destructiveHint) are correctly applied. No pagination, no per-item success/failure for batch operations, no natural-language identifiers (company resolution is strict string matching).
Import bank statement rows (דפי בנק) via BankPagesApi/importBankPage. data = { rows: [{ AccountKey, Reference?, CreditDebit (1|0), SuF, Details?, DatF? }] } (schema confirmed via official docs).
List the companies (לקוחות/חברות) the WizCloud API token can access, from the local portfolio store. Use `refresh` to re-call CompanyListToTokenApi/TokenCompanies and rewrite the store.
Create, fetch, and issue WizCloud documents (חשבוניות/תעודות). create_doc → invApi/createDoc (payload per official docs: { issueStock, deleteTemp, rows }). get_doc → invApi/getDoc ({ stockID }). issue_document → invApi/issueDocument ({ stockID }). create_receipt → docsApi/createRecipt. create_invoice_receipt → docsApi/createInvRecipt.
Run a WizCloud report export (הפקת דוחות) via ExportDataApi/exportData. data = { datafile: string, parameters: string } (schema confirmed via official docs; valid datafile report identifiers are account-specific).
Staged journal-entry batch pipeline (פקודות יומן). create_temp → jtransApi/tmpBatch (stage rows; payload per official docs: { insertolastb, batchNo, check, issue, rows[] }). check → jtransApi/chkBatch ({ batchNo }). finalize → jtransApi/newBatch. issue → jtransApi/issueBatch ({ batchNo }).
Output schemas not documented. Tools return unstructured JSON with no field definitions, forcing LLMs to guess response structure and breaking downstream tool chaining.
Generic data parameter descriptions ('Payload forwarded verbatim') do not explain expected structure, required fields, or constraints. LLMs cannot construct valid payloads without trial-and-error.
Error handling returns raw error messages with no recovery guidance. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
Import master data: import_index → IndexApi/importIndex (accounts/items: { myindex: acc|itm, insertnew, rows[] }); import_sort_codes → SortCodeApi/importSortCodes ({ myindex: accsort|itmsort, rows[] }); import_trans_types → TransTypesApi/importTransTypes ({ rows[] }). Schemas confirmed via official docs.
Manage WizCloud triggers (הפעלות) via TriggersApi. get → TriggersApi/getTriggers ({ triggerID }). create → TriggersApi/createTrigger (payload per official docs: { triggerName, triggerType, triggerData }). update → TriggersApi/updateTrigger ({ triggerID, triggerName, triggerType, triggerData }). delete → TriggersApi/deleteURL (documented deleteURL action; payload: { triggerID }).
Company parameter requires exact string match (name or DBName). No fuzzy matching, no list of available companies in error messages. Agents cannot self-correct typos.
No pagination support for list operations. hashavshevet_companies returns all companies in one response; large portfolios risk context window exhaustion.