@gerrych/greeninvoice-mcp
Unofficial MCP (Model Context Protocol) server for the Green Invoice API. Community fork. Not affiliated with or endorsed by Green Invoice.
Versions
0.3.4latest0.3.30.3.20.3.10.3.0Tools 10
account Get account information. Actions: "get" = account info (GET /account/me), "settings" = account settings (GET /account/settings).
business Manage businesses. Actions: "list" = list all user businesses (GET /businesses) "get" = get current business (GET /businesses/me) or by id (data: {"id":"..."}) "update" = update business (data: JSON of fields to update) "get_numbering" = get document numbering (GET /businesses/numbering) "set_numbering" = set initial numbering (data: {"10":1,"305":50001,...}) "get_footer" = get document footer text "get_types" = get business types (data: {"lang":"he"} optional) "upload_file" = upload logo/signature/doc (data: {"type":"logo","file":"base64..."}) "delete_file" = delete a file (data: {"type":"logo"})
document Manage documents (invoices, receipts, quotes, etc.). ${DOC_TYPES}. ${DOC_STATUSES}. ${PAYMENT_TYPES}. ${CURRENCIES}. Actions: "search" = search documents (data: {page, pageSize, type:[], status:[], fromDate, toDate, sort, clientId, clientName, description, number, paymentTypes:[], download}) "get" = get by ID (data: {"id":"..."}) "create" = create document. IMPORTANT field names: 'income' (not 'items'), 'payment' (not 'payments'), 'remarks' (not 'notes'), 'lang' (not 'language'), 'emails' (array). Types 320,400,405 REQUIRE payment array. Set client.add=true to auto-create client. Data: {type, client:{id,name,emails,taxId,address,city,zip,country,phone,add,self}, income:[{catalogNum,description,quantity,price,currency,vatType,itemId}], payment:[{date,type,price,currency,bankName,bankBranch,bankAccount,chequeNum}], currency,lang,description,remarks,footer,emailContent,signed,rounding,attachment,date,dueDate,discount:{amount,type},maxPayments,linkedDocumentIds,linkedPaymentId} "update" = update document (data: {"id":"...", ...fields}) "close" = close document (data: {"id":"..."}) "open" = reopen document (data: {"id":"..."}) "send" = send via email (data: {"id":"...", "email":"optional-override"}) "download_links" = get PDF download links (data: {"id":"..."}) "add_payment" = add payment to document (data: {"id":"...", type, price, currency, date, bankName, bankBranch, bankAccount, chequeNum}) "preview" = preview as base64 PDF (data: same shape as create) "get_linked" = get linked documents (data: {"id":"..."}) "get_info" = get document info for a type (data: {"type":305}) "get_types" = list document types (data: {"lang":"he"} optional) "get_statuses" = list document statuses (data: {"lang":"he"} optional) "search_payments" = search payments within documents (data: {page, pageSize, type:[], paymentTypes:[], fromDate, toDate, paymentId, sort})
client Manage clients. Actions: "search" = search clients (data: {page, pageSize, name, email, taxId, active, contactPerson, labels:[], sort, sortType}) "get" = get by ID (data: {"id":"..."}) "create" = create client (data: {name, emails:[], taxId, phone, mobile, fax, city, zip, address, country, category, subCategory, accountingKey, paymentTerms, bankName, bankBranch, bankAccount, active, department, contactPerson, remarks, labels:[]}) "update" = update client (data: {"id":"...", ...fields}) "delete" = delete client (NOTE: only inactive clients can be deleted) (data: {"id":"..."}) "associate_docs" = associate existing documents to a client (data: {"id":"...", "ids":["docId1","docId2"]}) "merge" = merge clients (one must be inactive; inactive one is deleted) (data: {"id":"...", "mergeId":"..."}) "update_balance" = update/reset client balance (data: {"id":"...", "balance":0})
supplier Manage suppliers (used for expenses). Actions: "search" = search suppliers (data: {page, pageSize, name, email, active, contactPerson, labels:[]}) "get" = get by ID (data: {"id":"..."}) "create" = create supplier (data: {name, emails:[], taxId, phone, mobile, fax, city, zip, address, country, department, accountingKey, paymentTerms, bankName, bankBranch, bankAccount, active, contactPerson, remarks, labels:[]}) "update" = update supplier (data: {"id":"...", ...fields}) "delete" = delete supplier (NOTE: only inactive suppliers can be deleted) (data: {"id":"..."}) "merge" = merge suppliers (one must be inactive) (data: {"id":"...", "mergeId":"..."})
item Manage catalog items (products/services). Actions: "search" = search items (data: {page, pageSize, name, description, currency, active}) "get" = get by ID (data: {"id":"..."}) "create" = create item (data: {name, description, price, currency, vatType (0=default,1=included,2=exempt), sku, active}) "update" = update item (data: {"id":"...", ...fields}) "delete" = delete item (data: {"id":"..."})
expense Manage expenses (outcome tracking). ${PAYMENT_TYPES}. Expense statuses: 10=Open, 20=Reported. Expense document types: 10=Invoice, 20=Receipt, 30=Invoice+Receipt, 40=Other. Actions: "search" = search expenses (data: {page, pageSize, fromDate, toDate, dueDate, description, supplierId, supplierName, number, paid, reported, sort, minAmount, maxAmount, accountingClassificationId}) "get" = get by ID (data: {"id":"..."}) "create" = create expense (data: {paymentType, currency, currencyRate, vat, amount, date, dueDate, reportingDate, documentType, number, description, remarks, supplier:{id,name,...}, accountingClassification:{id,key,code,title,...}, active, addRecipient, addAccountingClassification}) "update" = update expense (data: {"id":"...", ...fields}). NOTE: cannot update once reported (status=20) "delete" = delete expense (data: {"id":"..."}) "open" = reopen expense (data: {"id":"..."}) "close" = close/report expense (data: {"id":"..."}) "get_statuses" = list expense statuses "get_classifications" = get accounting classifications map "search_drafts" = search expense drafts (data: {page, pageSize, fromDate, toDate, description, supplierId, supplierName})
payment Manage payments and payment links. ${PAYMENT_TYPES}. Actions: "get_form" = get payment form URL for online payment (data: {type, description, lang, currency, vatType, amount, maxPayments, pluginId, group, client:{...}, income:[...], remarks, successUrl, failureUrl, notifyUrl, custom}) "search_tokens" = search saved credit card tokens (data: {paymentNumber, cardHolder, externalKey}) "charge_token" = charge a saved credit card token (data: {"id":"tokenId", type, description, lang, currency, vatType, amount, maxPayments, income:[...], remarks, notifyUrl}) "create_link" = create payment link (data: {client:{...}, income:[...], currency, lang, remarks}) "get_link" = get payment link details (data: {"id":"..."}) "get_link_status" = check payment link status (data: {"id":"..."})
webhook Manage webhook subscriptions. Available events: document.created, document.updated, document.sent, document.paid, document.overdue, payment.received, payment.failed, payment.refunded, client.created, client.updated, client.deleted. Actions: "create" = create webhook (data: {"url":"https://...", "events":["document.created",...]}) "get" = get webhook by ID (data: {"id":"..."}) "delete" = delete webhook (data: {"id":"..."})
reference_data Lookup reference data (no authentication required, served from cache.greeninvoice.co.il). Actions: "occupations" = get business categories/subcategories (data: {"locale":"he_IL"}) "countries" = get supported countries (data: {"locale":"he_IL"} or {"locale":"en_US"}) "cities" = get supported cities (data: {"locale":"he_IL", "country":"IL"}) "currencies" = get exchange rates (data: {"base":"ILS"})
Permissions 2
network medium env_vars low