Skip to main content
Glama
theluckystrike

dunning-letters

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

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

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
invoice_registerA

Start chasing an unpaid invoice: register the client, the invoice reference, the amount in integer cents, the currency and the due date, and get the three-letter escalation schedule (reminder 1, reminder 2, final notice) with the date each falls due. Free tier: 3 unpaid invoices chased at once.

payment_recordA

Record money received against a chased invoice, in whole MINOR units: a part payment lowers what is still chased, a payment that covers the balance closes the ladder and frees the free-tier slot. Returns the outstanding amount.

letter_renderA

Chase an unpaid invoice: generate the letter for the current stage of the ladder -- reminder 1 (polite), reminder 2 (firm, with the late fees note) or the final notice (before-action wording) -- as Markdown or as self-contained printable HTML. Nothing is emailed or sent anywhere: this server produces the letter text, and sending it is your act. Record the sending with letter_sent so the ladder advances.

letter_sentA

Record that a chase letter was actually sent, with its date, so the ladder advances to the next stage. Letters go out in order: reminder 2 cannot be recorded before reminder 1. Returns what is due next and when.

overdue_listA

Every unpaid invoice past its due date: how many days late, what is still owed, which letters have gone out, and what is due next and when. Sorted by days late, worst first.

aging_summaryA

The aging summary across every unpaid invoice: current, 1-30, 31-60, 61-90 and 91+ day buckets, with counts and totals in integer cents, per currency. This is the answer to "how much am I owed, and how stale is it".

chase_todayA

The day's chase list: which invoices cross an escalation threshold today, which letter to send each and how long it has been waiting, what falls due in the next few days, and which invoices have had all three letters and need a decision outside this server.

invoice_statusA

One chased invoice in full: what was billed, what has been paid and what is still owed, every letter sent with its date, the escalation schedule with each stage's state, and what happens next and when.

invoice_deleteA

Delete an invoice entered wrongly, by id or reference: the record, its payments and its letter history. The id is not reissued, so a gap in the DUN series is the record that a deletion happened.

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

NameDescription
weekly_chaseList what is overdue, send every letter that is due, and record the sendings.

Resources

Contextual data attached and managed by the client

NameDescription
ladderThe three stages, when each falls due, what each letter says, the free tier, and the one directory this server writes.

TDQS

A4.1/5.0

Scored across 11 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: registration, payments, letter generation, recording sent letters, status queries, reporting, and license management. Even the reporting tools (overdue_list, aging_summary, chase_today) target different views (detailed list, summary buckets, today's actions) with descriptions that prevent confusion.

Naming Consistency4/5

All tool names use snake_case and mostly follow a noun-verb or verb-noun pattern, but the order is inconsistent (e.g., invoice_register vs. payment_record). Some names are noun-noun (license_status, aging_summary) or ambiguous (chase_today). Despite this, the pattern is readable and predictable enough.

Tool Count5/5

With 11 tools, the set is well-scoped for the domain. It covers the core invoice lifecycle (register, status, delete), payment handling, letter generation and sending, comprehensive reporting (overdue, aging, daily chase), and license management. Each tool earns its place.

Completeness5/5

The tool surface is complete for dunning letter management: starting chases, recording payments, generating and tracking letters, querying invoice state, and producing aggregated reports. The license tools are separate but necessary. No obvious gaps in the lifecycle are apparent.

Maintenance

ActivityMaintained
ResponsivenessNo issues