> For the complete documentation index, see [llms.txt](https://docs.shortcutco.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.shortcutco.com/developers/mcp/recipes.md).

# Recipes

Prompts that work well with the Shortcut MCP server, from a read-only first session to an agent that takes in leads.

After this page you will have prompts that get good answers from an agent connected to Shortcut, and a sense of which token each one needs. Every recipe works in Claude.ai, Claude Desktop, Claude Code, and any other MCP client once the [connector is set up](/developers/mcp/connect-claude.md).

## Before you start

* Use a **Read everything** token for the first sessions. Every recipe below except taking in a lead needs nothing more.
* Turn the Shortcut connector on in the chat's tools menu.
* Name the customer, crew, or date the way you would to a dispatcher. The tools match names, addresses, and phone numbers loosely, and dates are in your business's timezone.

## Ask what it can do

> What can you do in Shortcut with this connection, and what would you need more access for?

The agent calls `explain_scopes` and answers in your terms: which tools it has, which parts of answers it cannot see, and which scope a company admin would add. Run this first with any new token.

## This morning's schedule

> What's on the schedule today? Group it by crew, in route order, and flag anything with no crew or that needs a new date.

Uses `get_schedule`, which returns the visits on the schedule; visits still `pending` are not on it. With `teams:read` and `customers:read` on the token, the answer names crews and customers; without them it shows ids. For a range:

> How many visits does each crew have this week, Monday through Saturday? Which day is heaviest?

`get_schedule` covers up to 31 days in one call. Its `totalVisits` counts the whole range, so "how many visits this week?" takes one call. Each date and crew on a page carries its own total, so for a per-day or per-crew breakdown of a busy week the agent reads every page.

## One crew's day

> Which visits does the North crew have tomorrow, and in what order?

The agent finds the crew's id from the schedule and filters with it. When a crew's day spans more than one page, the per-crew totals tell the agent to ask for the next page, so it does not stop at 50.

## Customer lookup

> Find the customer at 412 Elm St and show me their properties and tags.

> Who is Dana at Okafor Dental? What's their phone number?

Uses `find_customer`, then `get_customer`. Every word in the search has to match, so "Elm 412" and "412 Elm St" both work, and adding a last name narrows a common street name.

## A customer's upcoming visits

> When is Robin Alvarez's next visit, and which crew has it?

The agent finds the customer, then calls `list_visits` with the customer and a date window, such as `from` today `to` four weeks out, and reports the earliest visit on the schedule. `list_visits` returns visits newest-created first, so the window, not the order, is what finds the next one.

## What happened yesterday

> Which visits were completed yesterday, and which were skipped or canceled?

Uses `list_visits` with a date and a status for each group.

## Overdue invoices

Needs **Read invoices**.

> Which invoices are overdue? List each customer, invoice number, amount, and how many days past due, oldest first.

Uses `list_invoices` with `status` `overdue`. Each invoice has its `total` and its `dueDate` as printed on the invoice, so the agent can count days past due from the workspace's today.

> What has Robin Alvarez paid this year, and was anything refunded?

Needs **Read payments** and **Read customers**. The agent finds the customer, then calls `list_payments` for them; each payment carries its `method` and `refundedAmount`.

## Take in a lead from an email

Needs **Write leads** on the token, and **Write customers** for people who are already customers.

> Here's an email from a prospect. Create a lead for them with the address and services they asked for, and put anything else they said in the special requests.

The agent reads the name, email, address, and requested services out of the text and calls `create_lead`. Staff get the same new-lead notification the website form sends. The agent passes a `requestKey`, so if the call is retried you still get one lead.

Ask the agent to show you the lead before it creates it if you want to check the details:

> Draft the lead first and wait for me to say go.

## Morning briefing, every day

Save the recipes as one standing prompt, for example in a Claude project's instructions, and start each day with "morning briefing":

> When I say "morning briefing", summarize today's Shortcut schedule: visits per crew, the first and last stop for each crew, anything unassigned, and anything that needs a new date. Keep it under 15 lines.

For a briefing that posts itself to Slack at 6 AM without anyone asking, see [Daily schedule bot](/developers/guides/daily-schedule-bot.md).
