invoice-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| INVOICE_MCP_OUTPUT_DIR | No | Selects the only output directory where generated invoice workbooks are written. If unset, it defaults to ~/Documents/invoices using the current user's home directory. The directory is created when needed. Absolute paths are recommended; relative environment values resolve against the server's working directory. Tool input cannot override the directory. | ~/Documents/invoices |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| calculate_invoiceA | Calculate an invoice using integer minor units. Tax is floored once per rate. Returns JSON; creates no files. |
| create_invoiceA | Save a formatted .xlsx invoice in the configured output directory. Returns its absolute path and total. Existing files are never overwritten. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 2 tools
The two tools are fairly distinct: calculate_invoice computes values without side effects, while create_invoice persists an xlsx file. Some overlap exists because create_invoice also returns the total, but the descriptions clarify the separation.
Both names follow a consistent verb_noun pattern (calculate_invoice, create_invoice), making the surface predictable.
Two tools is thin for an invoice server; common lifecycle operations like listing, retrieving, updating, or sending invoices are absent. However, the two provided tools are focused and earn their place.
The surface is severely incomplete for an invoice domain: it can calculate and save a new invoice but has no get, list, update, delete, void, or send operations. Agents will quickly hit dead ends for anything beyond first-time creation.