AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

License Renewal Tracker

skill-igptai-skills-license-renewal-tracker · by igptai

Finds every software license, SaaS subscription, and IT service contract approaching renewal or expiry from email — surfacing the deadline, seat count, cost, and whether a renewal decision needs to be made. Use when an IT manager wants to proactively manage the software renewal calendar and avoid unwanted auto-renewals or license lapses. Triggers on "license renewals", "software subscriptions exp…

No reviews yet
0 installs
49 views
0.0% view→install

Install

$ agentstack add skill-igptai-skills-license-renewal-tracker

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-igptai-skills-license-renewal-tracker)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
4mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of License Renewal Tracker? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

License Renewal Tracker

Prerequisites

This skill needs the iGPT MCP at https://mcp.igpt.ai/.

If the MCP tools aren't available or return an auth error, tell the user to install the iGPT plugin (/plugin marketplace add igptai/skills) or add https://mcp.igpt.ai/ as a connector, then complete OAuth and say "ready". Retry once after they confirm. Never invent tokens or OAuth URLs. For deeper troubleshooting: https://raw.githubusercontent.com/igptai/skills/main/shared/mcp-guard.md


What This Skill Does

Scans all IT vendor and software email threads to extract every license, subscription, and IT service contract with an upcoming renewal or expiry — surfacing the deadline, cost, seat count, and whether a review, renewal, or cancellation decision needs to be made before it auto-renews.


Workflow

  1. Before calling any tool, collect these values from the user. Offer the

defaults and let the user override them; do not invent values they did not give.

  • [time_range] — what window of email to scan. The user may give this

in any form ("last 24 months", "the last 2 years", "May 2024", "since the SaaS migration"). Default: the last 24 months. Keep the user's natural phrasing for use in the ask input; convert to ISO dates separately for the search call.

  • [vendor_scope] — either "all" (default) or the name of a specific

vendor or system to focus on.

  • [vendorclause] — derived. When [vendorscope] is not "all", set

to " for vendor [vendorscope]". When [vendorscope] is "all", set to empty string.

  1. Call search with:
  • query: license renew subscription expire seats maintenance support

annual renewal auto-renew software contract (if [vendor_scope] is not "all", append the vendor or system name to the query)

  • datefrom: ISO start date derived from [timerange]
  • dateto: ISO end date derived from [timerange] (or today if open-ended)
  1. Call ask with:
  • input: Review all IT vendor and software email threads from [timerange][vendorclause]. Identify every software license, SaaS subscription, and IT service contract that has a renewal or expiry date. For each one extract: the vendor and product name, the number of seats or units if mentioned, the annual or total cost if mentioned, the renewal or expiry date, the notice period required to cancel, whether it auto-renews, and any usage or satisfaction signals that could inform a renewal decision.
  • output_format:

{ "strict": true, "schema": { "type": "object", "description": "Software license and IT subscription renewal calendar", "additionalProperties": false, "properties": { "asof": { "type": "string", "description": "ISO8601 date when this report was generated" }, "licenses": { "type": "array", "description": "List of every software license or IT subscription with renewal tracking", "items": { "type": "object", "description": "A single license or subscription with renewal details", "additionalProperties": false, "properties": { "vendor": { "type": "string", "description": "Name of the software vendor or service provider" }, "product": { "type": "string", "description": "Name of the software or service" }, "licensetype": { "type": "string", "description": "Type of license or subscription", "enum": [ "saassubscription", "perpetuallicense", "maintenancecontract", "supportcontract", "cloudservice", "securitytool", "developmenttool", "productivitysuite", "other" ] }, "seatcount": { "type": "number", "description": "Number of seats or licenses, 0 if not specified" }, "annualcost": { "type": "number", "description": "Annual cost in local currency, 0 if not found" }, "currency": { "type": "string", "description": "Currency of the annual cost" }, "renewaldate": { "type": "string", "description": "ISO8601 renewal or expiry date, empty string if unknown" }, "daysuntilrenewal": { "type": "number", "description": "Number of days until renewal or expiry, -1 if unknown" }, "noticeperioddays": { "type": "number", "description": "Days of advance notice required to cancel or modify, 0 if not found" }, "actiondeadline": { "type": "string", "description": "ISO8601 date by which IT must act to avoid unwanted auto-renewal" }, "autorenews": { "type": "boolean", "description": "Whether this license auto-renews if no action is taken" }, "usagesignal": { "type": "string", "description": "Any signals about whether this tool is actively used or valued", "enum": ["activelyused", "underused", "complaintsraised", "unknown"] }, "renewalrecommendation": { "type": "string", "description": "Recommended renewal action based on email signals", "enum": [ "renewasis", "renegotiateseatsorprice", "evaluatealternatives", "cancel", "unknown" ] }, "urgency": { "type": "string", "description": "Urgency of making a renewal decision for this license", "enum": ["critical", "high", "medium", "low"] } }, "required": [ "vendor", "product", "licensetype", "seatcount", "annualcost", "currency", "renewaldate", "daysuntilrenewal", "noticeperioddays", "actiondeadline", "autorenews", "usagesignal", "renewalrecommendation", "urgency" ] } }, "expiringwithin30days": { "type": "number", "description": "Number of licenses expiring or auto-renewing within the next 30 days" }, "autorenewalriskcount": { "type": "number", "description": "Number of licenses at risk of unwanted auto-renewal if no action is taken" }, "totalannualspend": { "type": "number", "description": "Total annual cost across all identified licenses in local currency" }, "summary": { "type": "string", "description": "One or two sentence summary of upcoming renewals and most urgent decisions" } }, "required": [ "asof", "licenses", "expiringwithin30days", "autorenewalriskcount", "totalannualspend", "summary" ] } }

  1. Present licenses ordered by urgency then action_deadline. Flag auto-

renewal risks prominently. Lead with expiringwithin30days count, autorenewal_risk count, and total annual spend.

  1. Ask: "Would you like me to draft a cancellation notice or renewal

negotiation email for any of these vendors?"

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.