← Back to search

@gerrych/greeninvoice-mcp

GitHub Actions Scanned 7d ago

Unofficial MCP (Model Context Protocol) server for the Green Invoice API. Community fork. Not affiliated with or endorsed by Green Invoice.

B
76.2 / 100

Versions

0.3.4latest
May 25, 2026
0.3.3
May 25, 2026
0.3.2
May 25, 2026
0.3.1
May 24, 2026
0.3.0
Apr 28, 2026
PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 10

account
annotations: none low

Get account information. Actions: "get" = account info (GET /account/me), "settings" = account settings (GET /account/settings).

business
annotations: none low

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
annotations: none low

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
annotations: none low

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
annotations: none low

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
annotations: none low

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
annotations: none low

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
annotations: none low

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
annotations: none low

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
annotations: none low

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
Server uses network capabilities via: fetch()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 33

low
Tool 'document' has no annotations annotation_checker · 100%
low
Tool 'account' has no annotations annotation_checker · 100%
low
Tool 'business' has no annotations annotation_checker · 100%
low
Tool 'client' has no annotations annotation_checker · 100%
low
Tool 'supplier' has no annotations annotation_checker · 100%
low
Tool 'item' has no annotations annotation_checker · 100%
low
Tool 'expense' has no annotations annotation_checker · 100%
low
Tool 'payment' has no annotations annotation_checker · 100%
low
Tool 'webhook' has no annotations annotation_checker · 100%
low
Tool 'reference_data' has no annotations annotation_checker · 100%
medium
OAuth implementation without PKCE auth_checker · 75%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.12.1 (GHSA-345p-7cg4-v4c7) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.12.1 (GHSA-8r9q-7v3j-jr4g) dependency_analyzer · 95%
medium
Vulnerable dependency: @modelcontextprotocol/sdk@1.12.1 (GHSA-w48q-cv73-mx4w) dependency_analyzer · 95%
info
package.json metadata manifest_parser · 100%
info
Tool: account manifest_parser · 85%
info
Tool: business manifest_parser · 85%
info
Tool: document manifest_parser · 85%
info
Tool: client manifest_parser · 85%
info
Tool: supplier manifest_parser · 85%
info
Tool: item manifest_parser · 85%
info
Tool: expense manifest_parser · 85%
info
Tool: payment manifest_parser · 85%
info
Tool: webhook manifest_parser · 85%
info
Tool: reference_data manifest_parser · 85%
info
Transport: stdio manifest_parser · 90%
info
Required env vars (5) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
medium
Permission: network access detected permission_analyzer · 70%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 94 components sbom_generator · 100%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%