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 agentmods add skills/stripe/link-cli/complete-link-purchasenpx skills add stripe/link-cli --skill complete-link-purchasegit clone --depth 1 https://github.com/stripe/link-cliWhat 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 | $0.00064 | $0.01936 |
| Opus 5 | $0.00032 | $0.00968 |
| Sonnet 5 | $0.00013 | $0.00387 |
| Haiku 4.5 | $0.00006 | $0.00194 |
Grade A, and why
complete-link-purchase 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 2d 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.
How it starts
The opening of the file, as written. The whole thing — 178 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Complete a Link purchase
Link issues one-time-use payment credentials against a spend request — a single purchase the user has explicitly authorized for a stated amount and merchant.
You facilitate every spend approval through the request_virtual_card tool.
It shows the user a card with the amount, the merchant, your reason, and the
cart broken down line by line. Nothing is created unless they approve.
Everything after approval runs through the Link MCP server's tools. There is no CLI to install and no shell command to run.
Tools
| Tool | Use |
|---|---|
request_virtual_card |
Ask the user to authorize a purchase |
get_userinfo |
Confirm which Link account is connected |
get_spend_request |
Poll for approval, then retrieve the credential |
list_spend_requests |
See requests already in flight |
list_payment_methods |
See the wallet's cards and bank accounts |
list_shipping_addresses |
Fill a merchant's delivery fields |
sign_web_bot_auth |
Prove your identity to a merchant |
report_agent_observation |
Tell Link how the attempt went |
Flow
- Step 1: Confirm an account is connected
- Step 2: Price the purchase and read the merchant
- Step 3: Ask the user to authorize the card
- Step 4: Poll, then retrieve the credential
- Step 5: Pay
- Step 6: Report the outcome
Step 1: Confirm an account is connected
Call get_userinfo. If it fails with an authorization error, the user has not
connected Link in Cursor — say so and stop, rather than retrying.
Step 2: Price the purchase and read the merchant
Do this thoroughly before raising a card. The amount you ask for is the exact amount that gets charged, and a card issued for less than the cart total is declined at checkout. Changing your mind means asking the user all over again.
- Open the merchant page and read how it accepts payment. A normal credit-card checkout form is the ordinary case, and the issued card works there.
- Get the final total: items, tax, shipping, and any fees.
- Know exactly what is being bought — size, colour, delivery option — so the line items you show the user match their cart.
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.
- 2d ago First seen · 178 lines · 64 tokens per session scan A 03ce5496ec24
complete-link-purchase is a skill published in the GitHub repository stripe/link-cli (745 stars, last pushed 4d ago), licensed MIT. It adds 64 tokens to every session and 1,936 once invoked, about $0.0003 per session on Opus 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-08-30.
Other skills, from other repositories
stripe
Look up Stripe customers, subscriptions, charges, and payment methods. Cancel subscriptions and issue refunds. Use when investigating billing issues, subscription cancellations, or payment disputes.
connect-recommend
Use this skill when the user asks about Stripe Connect configuration, charge patterns, Dashboard access, or how to get started with Connect, is building a marketplace, platform, multi-vendor store, gig platform, or subscription platform, needs to pay out sellers, vendors, or providers, mentions split payments, revenue…
stripe
Emulated Stripe API for local development and testing. Use when the user needs to process payments locally, test checkout flows, create customers, manage products and prices, handle payment intents, work with webhooks, or use the Stripe SDK without hitting real Stripe servers. Triggers include "Stripe API", "emulate…
stripe-best-practices
Guides Stripe integration decisions across API selection (Checkout Sessions vs PaymentIntents), Connect platform setup (Accounts v2, controller properties), billing/subscriptions, tax and registrations (Stripe Tax, automatictax, product tax codes), Treasury financial accounts, integration options (Checkout, Payment…
asc-ppp-pricing
Set territory-specific pricing for subscriptions and in-app purchases using current asc setup, pricing summary, price import, and price schedule commands. Use when adjusting prices by country or implementing localized PPP strategies.
stripe-skill
Process payments, manage customers, issue refunds, and handle subscriptions via the Stripe CLI. Pass any Stripe command (customers, charges, paymentintents, refunds, invoices, products, prices, subscriptions) and the tool runs it for you and returns parsed JSON.