Documentation

Tools reference

The hosted server offers 13 tools and one prompt. Your AI app reads these descriptions itself and picks the right tool, so you never call one by hand; this page is for knowing what each does, what it changes and what it costs. Every tool takes an optional product, and every tool works only on your own account. To connect, see setup.

The usual order

A run goes through the tools in this order. Your AI app follows it on its own; the dashboard shows each step as it lands.

  1. 1license_status: Check the plan, the free submissions left and which apps are connected.
  2. 2get_product_profile: Read the product's facts and what directories ask that is still empty; fill it with save_product_profile.
  3. 3match_directories: See which directories take the product, which are locked and which are not a fit, with the reason.
  4. 4plan_submissions: Save an order and a daily pace; each directory has a reason for its place.
  5. 5submission_playbook: Before each directory: what its form asks, where to stop. This is the call that counts as a submission.
  6. 6record_submission: After each directory: what happened, with the confirmation page as proof.
  7. 7verify_link: Once the listing is public: is our link on it, and is it dofollow. This is what marks it live.

Not every tool is in the loop: match_directories is free to call as often as you like; list_submissions, verify_badge, report_directory_fact and suggest_directory are used when the situation calls for them.

Plan

match_directories

Every catalogued directory for this product: ready, locked, no playbook yet, or not a fit, each with the reason.

ParameterDescription
product
string
The product's website or name. Leave empty for the product last worked on (list_products shows them).

Returns: ready, already_on_record, locked, not_a_fit (each with a reason: product type, region, a badge you won't show, a fee you said you would not pay, a requirement the profile misses), the number without a playbook, a badge_answer, a paid_answer and how many more open with a Launch or Pro.

Notes: Directories already on the product's record are not offered again as ready. On a Free plan the unnamed Pro directories are only counted, never listed.

Say to your AI app: “Where does my product qualify?”

plan_submissions

Orders the directories that are ready and saves the plan to the dashboard: long review queues first, then verified dofollow, then badge listings (at most a quarter of the plan), then authority, at a pace for the domain's DR, each with why it is where it is. Directories with no free route are left out until the user has said whether they would pay one (paid_ok in the profile), and the answer then also comes back as a paid_question for the agent to ask once. Submits nothing.

ParameterDescription
product
string
The product's website or name. Leave empty for the product last worked on (list_products shows them).
count
integer 1-100
How many directories to plan. Default 20.
dofollow_only
boolean
Only directories whose free link is dofollow. Default false.
pace
gentle | standard | fast
Only when the user asks; otherwise the domain's DR decides.
domain_dr
number 0-100
The product domain's DR, if the user knows it.
days
integer 1-365
Spread the plan over this many days (e.g. 100 directories in 30 days). Never faster than the pace allows; without it, the middle of the pace's range per day.

Returns: The pace (name, per day, why, days), the targets in order (slug, name, DR, link, why, day), a badge question when the answer decides the plan, and the next prompt.

Notes: Replaces the previous plan's unsent directories; anything already submitted is kept. Below DR 20 or with an unknown DR the pace is gentle (3-5 a day); from DR 20 it is standard (8-12 a day); fast (15-20 a day) only on request.

Say to your AI app: “Plan my next 10 directories, dofollow first.”

Example (shortened)

{
  "product": "LaunchOn.it",
  "pace": { "name": "standard", "per_day": 10, "why": "…", "days": 1 },
  "targets": [
    { "slug": "saashub", "name": "SaaSHub", "dr": 72, "link": "dofollow", "why": "…", "day": 1 },
    { "slug": "dofollow-tools", "name": "Dofollow Tools", "dr": 73, "link": "dofollow", "why": "…", "day": 1 }
  ],
  "next": "Using LaunchDistro, submit LaunchOn.it to SaaSHub …",
  "note": "Saved to the dashboard. Show the user the order and the reasons; nothing was submitted."
}

Product profile

list_products

The user's products: name, website, whether a profile exists and how many submissions it has.

No parameters.

Returns: A list of products.

Say to your AI app: “Which products do I have in LaunchDistro?”

get_product_profile

The product's facts in product.json form. Every submission is filled from these and nothing else. Also lists the fields directories ask for that are still empty.

ParameterDescription
product
string
The product's website or name. Leave empty for the product last worked on (list_products shows them).

Returns: profile, missing (the submission pack's empty fields), ask_once (company and founder facts directories ask that no repo holds, for the agent to ask in one message) and updated_at.

Say to your AI app: “What does LaunchDistro know about my product, and what is missing?”

save_product_profile

Saves product facts to the dashboard, merged onto the stored profile for the same website: send only what changed.

ParameterDescription
profilerequired
object
product.json keys. `website` names the product.

Returns: The saved product's name and website, and whether it was created.

Notes: Only facts the user confirmed. Free and Launch hold one product; Pro any number, and a second product on those plans is refused.

Say to your AI app: “Add my product from this repo, and ask me what you can't find.”

Submit

submission_playbook

How to submit to one directory: what its form asks, which profile field goes where, the free plan's conditions, and where to stop. Call it before every submission.

ParameterDescription
directoryrequired
string
The directory's slug (from match_directories or plan_submissions).
product
string
The product's website or name. Leave empty for the product last worked on (list_products shows them).

Returns: The playbook in Markdown, the fair-use count, and the submission flow the agent follows.

Notes: Counts as one submission attempt; a re-read of the same directory the same UTC day is free. Refused, and not counted, for a directory that is not a fit for the product (with the reason).

Say to your AI app: “Submit my product to SaaSHub. (Your app reads its playbook first.)”

record_submission

Records what happened at a directory, on the dashboard.

ParameterDescription
directoryrequired
string
The directory's slug.
statusrequired
in_progress | draft | needs_human | submitted | rejected | skipped
draft: saved there, not sent yet. needs_human: waiting on the user. skipped: takes it off the plan.
confirmation_url
http(s) URL
The directory's thanks or confirmation page: proof it was sent. Never checked for a link.
listing_url
http(s) URL
The public listing page, when the directory shows one. This is the page link checks open.
note
string, 500 characters
What is left or what came back.
route
free | paid
paid when a fee or a paid plan was used.
product
string
The product's website or name. Leave empty for the product last worked on (list_products shows them).

Returns: A one-line confirmation and, after submitted, what to do next.

Notes: It never records live: only verify_link does, after reading the public page.

Say to your AI app: “Record that I submitted to SaaSHub, with the confirmation page.”

Check and report

verify_badge

Opens the product's own page and checks that it links to the directory (the badge or link back its free plan asks for).

ParameterDescription
directoryrequired
string
The directory's slug.
page_url
http(s) URL
The page carrying the badge; defaults to the product's website.
product
string
The product's website or name. Leave empty for the product last worked on (list_products shows them).

Returns: found, the link type and a note.

Notes: Call it after the user deploys and before pressing the directory's own verify button.

Say to your AI app: “Check that my site shows the badge Wired Business asks for.”

list_submissions

Every directory on this product's plan and what happened there, with the next one to submit.

ParameterDescription
product
string
The product's website or name. Leave empty for the product last worked on (list_products shows them).

Returns: submissions (status, listing and confirmation URL, link type, note, why it was planned), check_if_live (submitted directories past their usual approval time, to look for the listing) and the next prompt.

Say to your AI app: “What have I sent, and what is waiting on me?”

report_directory_fact

Tells LaunchDistro what a directory's page says when its playbook did not: approval time, whether the free link is dofollow, a badge rule, a price, a changed form.

ParameterDescription
directoryrequired
string
The directory's slug.
kindrequired
approval_time | free_link | badge | price | form_changed | other
What the report is about.
valuerequired
string, 500 characters
The fact: days for approval_time, dofollow|nofollow|badge|top3|none for free_link, required|for_dofollow|none for badge, dollars for price.
quote
string, 1000 characters
The page's exact words that state it, copied.
source_url
http(s) URL
The directory's own page those words are on.

Returns: A thank-you saying whether it can be applied directly or a person reads it.

Notes: A report is applied to the playbook only when the words are found on the directory's own page and say what the value says; everything else waits for a person. A report that contradicts the playbook always goes to a person.

Say to your AI app: “Report that this directory's form changed, with its own words.”

suggest_directory

Sends a directory the user recommends for review. A suggestion only.

ParameterDescription
urlrequired
http(s) URL
The directory's site (its home or submit page).
name
string, 120 characters
The directory's name.
note
string, 500 characters
Why the user recommends it.
product
string
The product's website or name. Leave empty for the product last worked on (list_products shows them).

Returns: A confirmation, or the slug when the directory is already in LaunchDistro.

Notes: Agents submit only to directories LaunchDistro gives for the product; a site the user names is suggested, never submitted to.

Say to your AI app: “I know a directory you don't list; suggest it to LaunchDistro.”

Account

license_status

The user's plan, free submissions used, Launch passes and connected apps.

No parameters.

Returns: tier, plan, usage (used, limit, remaining, state), launches, devices (local, remote, max_each) and this_connection.

Say to your AI app: “What plan am I on, and how many free submissions are left?”

The submit prompt

Submit the product to one directory, the LaunchDistro way: pull the playbook, ask every decision at once, fill the form in the user's browser, record it.

Namesubmit
Argument directoryRequired. Directory name or slug.
Argument productOptional. The product's name or website.

Apps that list MCP prompts show it as a command. Elsewhere, the dashboard's "prompt your agent" button gives the same request as text.

Statuses

record_submission takes these statuses and moves the submission to a dashboard column. live is not among them: it is set only by verify_link, once the public page shows the link, and it stays live unless a later check fails.

in_progressIn progress
draftIn progress, with the note saying what is left (for example waiting for a badge to deploy)
needs_humanNeeds action: a sign-in, a CAPTCHA, a code, a payment
submittedSubmitted: sent, with the confirmation page as proof
rejectedNeeds action: the directory said no
skippedTaken off the plan; a new plan does not bring it back (undo it by recording another status for that directory)

Limits

Free10 submissions in total, 1 connected app
Launch€29 once: one product, up to 100 directories within 30 days
Pro€39 a month or €349 a year: every product and directory, 3 connected apps, weekly link checks
Playbooksat most 20 different directories an hour and 25 a day, on every plan; 10 read without an outcome recorded pauses new ones until you record them
Link checks60 an hour per account (verify_link and verify_badge)
Reports30 a day per account (report_directory_fact and suggest_directory together)

A same-day re-read of a playbook is free and is always served, so a run is never cut off halfway. Details: plans and limits.

Errors

A refused call comes back as a tool error with a plain message, which your agent shows you. The ones you can meet:

  • No directory with that slug, or a directory that has no playbook to serve yet. Nothing is counted.
  • Not a fit. The reason is given (product type, region, a badge you will not show, a requirement your profile misses). The playbook is not served and not counted.
  • Not in the free starter set, for a Pro directory on a Free plan: a Launch or Pro opens it.
  • Free plan used up, Launch covers another product, or Launch used up: the message says which, and what opens more.
  • Rate limits: playbooks per hour and per day, link checks per hour, reports per day. The message says when it lifts. Recording outcomes for playbooks you have read lifts the results-missing pause at once.
  • Playbooks suspended after review of an account: the dashboard and your records stay, new playbooks stop.
  • The product limit: Free and Launch hold one product; a second is refused.

References

Your next 10 directory submissions are free.

Add it to Claude or Cursor, describe your product once, and watch the first form fill itself.