Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add norman-finance/norman-mcp-server --skill manage-productsgit clone --depth 1 https://github.com/norman-finance/norman-mcp-serverWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/norman-finance/norman-mcp-server/manage-products)<a href="https://agentmods.dev/skills/norman-finance/norman-mcp-server/manage-products"><img src="https://agentmods.dev/badge/skills/norman-finance/norman-mcp-server/manage-products/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/norman-finance/norman-mcp-server/manage-products"><img src="https://agentmods.dev/badge/skills/norman-finance/norman-mcp-server/manage-products.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00061 | $0.00447 |
| Opus 5.5 | $0.00024 | $0.00179 |
| Sonnet 5.5 | $0.00012 | $0.00089 |
| Haiku 4.5 | $0.00006 | $0.00045 |
Grade A, and why
manage-products scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Help the user manage the catalog of what they sell:
Listing and searching
- Call
list_products(active products by default;status="archived"or"all"for the rest) - Present results as a table: Name, Type, Unit, Price (net or gross), VAT rate, SKU
Creating a product
When creating a product with create_product, gather:
- Required: name, unit price in cents, and whether the price includes VAT
- Recommended: VAT rate (the country default applies if omitted), type (SERVICES or GOODS), unit (items, hours, days, kilograms, liters, meters, square_meters)
- Optional: description printed under the name on invoices (max 500 characters), SKU / article number, bookkeeping category
- Names and SKUs are unique among the company's active products
Using products on invoices
- Find the product with
list_products, then setproductIdon the invoice item - Copy the product's name, description, unit and vatRate onto the item; take the rate from
priceNet, orpriceGrosswhen the invoice prices include VAT - The invoice line is a copy: later changes to the product never change existing invoices
Updating and archiving
- Call
get_productfirst to show current values and usage - Call
update_productwith only the fields that change; confirm with the user before updating archive_producthides a product from new invoices; existing invoices keep their lines. Restore withupdate_product(status="active")
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 36 lines · 61 tokens per session scan A b267233e75d7
manage-products is a skill published in the GitHub repository norman-finance/norman-mcp-server (62 stars, last pushed today), licensed MIT. It adds 61 tokens to every session and 447 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-08.
Other skills, from other repositories
escalation
Escalate a disputed refund to the billing lead.
accounts-receivable-automation
Automate B2B accounts receivable with invoice generation, payment tracking, dunning sequences for past-due invoices, and aging analysis dashboards.
refunds
Process customer refunds.
orchardcore-payments
Skill for the CrestApps Orchard Core payment foundations and the Stripe provider (CrestApps.OrchardCore.Payments.Abstractions, CrestApps.OrchardCore.Stripe) plus Subscriptions - Installment Plans (CrestApps.OrchardCore.Subscriptions.Installments). Covers Money and CurrencyScale, IPaymentEvent and PaymentEventBase…
orchardcore-subscriptions
Skill for the CrestApps Orchard Core Subscriptions module (CrestApps.OrchardCore.Subscriptions, CrestApps.OrchardCore.Subscriptions.Tenants, CrestApps.OrchardCore.Subscriptions.Installments). Covers plans with the Subscription stereotype and SubscriptionPart (billing cycle, setup fee, cycle limit, delayed start…
orchardcore-taxation
Skill for the CrestApps Orchard Core Taxation framework (CrestApps.OrchardCore.Taxation and the TaxJar feature CrestApps.OrchardCore.Taxation.TaxJar). Covers tax as a determination, TaxationPart, tax categories, types, jurisdictions, tables and source-aware rules (Percentage, FixedAmount, PerUnit, Progressive…