Skip to content
Back to skills

Morning Green Invoice

ASecurity

Use to authenticate with Morning (GreenInvoice) and create/manage clients, items, and accounting documents (invoice/receipt/quote/order/credit).

  • 14 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 7, 2026
securityrailsapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 7, 2026

npx -y skills add modbender/skill-library-mcp --skill morning-green-invoice --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Morning Green Invoice?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Morning Green Invoice
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modbender-morning-green-invoice/badge)](https://www.skillsdirectory.com/skills/modbender-morning-green-invoice)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: morning
description: Use to authenticate with Morning (GreenInvoice) and create/manage clients, items, and accounting documents (invoice/receipt/quote/order/credit).
---

# Morning (GreenInvoice)

## When to use
Use this skill when you need to interact with **Morning / GreenInvoice** to:
- Get an auth token (JWT) using API key credentials
- Create/update **clients**
- Create/update **items**
- Create **documents** (invoice / receipt / quote / order / credit / debit)
- Retrieve document outputs (e.g., IDs / links) if the tool supports it

## What you need from the user
Collect only what’s required for the action:

### Authentication
- `apiKeyId`
- `apiKeySecret`

### Client (if creating or searching)
- `name`
- Optional: `taxId`, `email`, `phone`, `address`, `city`, `country`

### Item (if creating)
- `name`
- `price`
- Optional: `description`, `currency`

### Document (if creating)
- `documentType` (Invoice / Receipt / Quote / Order / CreditInvoice / DebitInvoice)
- `clientId` (or enough info to create the client)
- `lines[]` (each line: description or itemId, quantity, unitPrice)
- Optional: `currency`, `language`, `description`, `discount`

## Tool contract
Use the `morning` tool with an `action` field.

### Supported actions
- `getToken`
- `createClient`
- `createItem`
- `createDocument`
- (Optional, if implemented in your tool): `findClient`, `findItem`, `getDocument`, `listDocuments`

## Guardrails
- Never log or echo `apiKeySecret` or JWTs back to the user.
- Prefer reusing existing `clientId` / `itemId` when available.
- Validate document lines:
  - `quantity` > 0
  - `unitPrice` >= 0
- Currency: default to `"ILS"` unless the user specifies otherwise.
- Language: default to `"Hebrew"` unless the user specifies otherwise.

## Examples

### 1) Authenticate (JWT)
```json
{
  "action": "getToken",
  "apiKeyId": "YOUR_API_KEY_ID",
  "apiKeySecret": "YOUR_API_KEY_SECRET"
}
```

### 2) Create a client
```json
{
  "action": "createClient",
  "jwt": "JWT_FROM_getToken",
  "client": {
    "name": "Acme Ltd",
    "taxId": "515555555",
    "email": "billing@acme.com",
    "phone": "+972-50-000-0000",
    "address": "1 Rothschild Blvd",
    "city": "Tel Aviv",
    "country": "Israel"
  }
}
```

### 3) Create an item
```json
{
  "action": "createItem",
  "jwt": "JWT_FROM_getToken",
  "item": {
    "name": "Consulting hour",
    "description": "Senior engineering consulting",
    "price": 500,
    "currency": "ILS"
  }
}
```

### 4) Create a document (Invoice)
```json
{
  "action": "createDocument",
  "jwt": "JWT_FROM_getToken",
  "document": {
    "documentType": "Invoice",
    "language": "English",
    "currency": "ILS",
    "clientId": "CLIENT_ID",
    "description": "Invoice for January services",
    "lines": [
      {
        "description": "Consulting hour",
        "quantity": 10,
        "unitPrice": 500
      }
    ]
  }
}
```

### 5) Create a document (Receipt) using itemId
```json
{
  "action": "createDocument",
  "jwt": "JWT_FROM_getToken",
  "document": {
    "documentType": "Receipt",
    "language": "Hebrew",
    "currency": "ILS",
    "clientId": "CLIENT_ID",
    "lines": [
      {
        "itemId": "ITEM_ID",
        "quantity": 1,
        "unitPrice": 1200
      }
    ]
  }
}
```

## Error handling
- If token is rejected (401/403): call `getToken` again and retry the request once.
- If client/item already exists:
  - Prefer returning the existing ID (if tool supports lookup),
  - Otherwise surface a clear message: “Client already exists; provide clientId or unique identifier.”
- If validation fails: ask for the missing/invalid fields only (e.g., “quantity must be > 0”).

## Output expectations
Return minimally:
- Created resource IDs (`clientId`, `itemId`, `documentId`)
- Any relevant URLs (PDF / view links) if the API/tool provides them

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…