Duplicate supplier invoice check MCP server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| XDG_DATA_HOME | No | Directory where saved reports are stored (reports live under `${XDG_DATA_HOME:-~/.local/share}/mcp-servers/duplicate-invoice-check/`). Must be an absolute path and its directory ancestry must contain no symlinks. | |
| MCP_LICENSE_KEY | No | Offline Pro license key. Set this environment variable or call the `license_activate` tool to verify and store a Pro license. Keys verify offline. |
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 |
|---|---|
| duplicate_invoice_checkB | Group up to 1000 supplied records by exact/normalized reference or exact amount/date within exact entity, supplier, type and currency. All evidence is free. Candidates require review; no payment approval. |
| report_listA | List saved report ids, timestamps and unique candidate counts. Free on both tiers. Up to 100 reports per page. |
| report_getA | Read a saved report with source records, reason groups and overlap-safe candidate counts. Large reports return free paging instructions. |
| report_pageC | Read free pages of records, group summaries, record reasons or one group’s members. Unsaved preview ids last 30 minutes for the last two checks in this process. |
| report_deleteA | Delete one local saved report and free a storage slot. Does not change accounting records. |
| report_export_csvB | Export free CSV pages from a saved report or unsaved preview. One row per record with reasons and group ids. Formula-like cells are escaped; no financial-loss total is calculated. |
| license_statusA | Report this server's licence state: product, tier free or pro, licence id, expiry, the key source and the upgrade URL. No arguments, no network. Explains a free-tier refusal; license_activate installs a key. |
| license_activateA | Activate a Pro key (MCPL1.xxx.yyy) from checkout: verified offline against a built-in public key, saved to your config file. A wrong, malformed or expired key is refused, unsaved. license_status reads it back. |
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 8 tools
The core duplicate_invoice_check tool is clearly distinct from the report and license management tools. The report tools mostly have separate purposes, but report_get and report_page overlap in reading report content/pages, which could cause some misselection despite clarifying descriptions.
All tools use snake_case with a consistent domain-prefix plus action pattern: duplicate_invoice_check, report_list, report_get, report_page, report_delete, report_export_csv, license_status, and license_activate. The convention is predictable even though duplicate_invoice_check has a longer domain prefix.
Eight tools are well-scoped for the server: one core duplicate-checking tool, five report lifecycle tools, and two license tools. There is no obvious bloat, and each tool appears to earn its place.
The server covers duplicate checking, report listing/reading/paging/deleting/exporting, and license status/activation. However, there is no explicit tool for creating or saving a report from a duplicate check preview, leaving a notable gap in the saved-report lifecycle that may force workarounds.