Model Context Protocol
Toolfound MCP server: a tool directory your AI agent can search and launch on
Short answer: Toolfound is a software directory with a free MCP server at https://toolfound.com/api/mcp (streamable HTTP). An agent can search the index, read listings and alternatives, check the launch calendar, then submit a product, verify domain ownership, watch its queue position and launch date, claim an existing listing and fetch the badge snippets. Read tools are anonymous and need no key; write tools use the same email and domain verification a person goes through.
The server exposes 32 tools in two tiers: 25 read-only tools (search, listings, alternatives, trending, categories, the launch calendar and launch-preparation helpers) and 7 write tools (submit, check and run verification, launch status, claim, relaunch and badge). Nothing is published without an ownership check by domain email, meta tag or DNS TXT record, and no tool call can take a payment: checkout is a URL handed back for a person to open. Listing is free and permanent, with a dofollow link once the domain is verified.
Prefer a browser workflow? Explore the free launch tools or read the practical launch guides.
Endpoint
https://toolfound.com/api/mcpRead tools are anonymous. Write tools use the email-verification loop described below.
Point a client at it
{
"mcpServers": {
"toolfound": {
"type": "http",
"url": "https://toolfound.com/api/mcp"
}
}
}# Any client that speaks MCP over streamable HTTP
# can connect with the endpoint alone:
https://toolfound.com/api/mcp
# For clients that only support stdio, bridge it:
npx -y mcp-remote https://toolfound.com/api/mcpcurl -sS https://toolfound.com/api/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "toolfound_search_tools",
"arguments": { "query": "invoicing", "limit": 5 }
}
}'Where the config file lives
- Claude Code
- claude mcp add --transport http toolfound https://toolfound.com/api/mcp
- Cursor
- ~/.cursor/mcp.json
- VS Code
- .vscode/mcp.json in the workspace
- Windsurf
- ~/.codeium/windsurf/mcp_config.json
- Zed
- settings.json → context_servers
32 tools, two tiers
Read-only tier
25 toolsAnonymous, rate-limited, safe to cache.
toolfound_search_tools(query)- Full-text search across names, taglines and tags.
toolfound_get_product(slug)- One listing with pricing, categories, votes and launch date.
toolfound_get_alternatives(slug)- Other tools in the same primary section.
toolfound_get_trending(period: day|week|month)- The vote leaderboard for a period.
toolfound_get_verified_board(board: revenue|stars|rated)- Listings ranked by data Toolfound fetched itself. Empty until 10 listings have data.
toolfound_list_categories(none)- Every section with its listing count.
toolfound_get_launch_calendar(horizon_days?)- Which dates are queued and how full they are.
toolfound_directory_matcher(segment, cost, launchModel, dofollow)- Filter the dated launch-directory evidence by product fit, cost, format, and link policy.
toolfound_launch_readiness(name?, websiteUrl?, tagline?, description?, logoURL?)- Check whether an editable product draft has the fields needed for a complete directory submission.
toolfound_campaign_links(websiteUrl, source, medium, campaign, content?)- Create one deterministic UTM link while retaining unrelated query parameters and the page anchor.
toolfound_listing_copy(name, audience, problem, outcome, differentiator?)- Turn supplied product facts into deterministic, editable listing copy without inventing claims.
toolfound_share_preview(name, tagline)- Export a safe 1200×630 SVG preview from a bounded product name and tagline.
toolfound_newsletter_readiness(name?, websiteUrl?, newsAngle?, audience?, logoURL?)- Build an honest pitch checklist from the materials editors usually need before they can review a launch.
toolfound_distribution_plan(launchDate, channels)- Turn a launch date and up to eight chosen channels into a bounded preparation timetable.
toolfound_launch_review(visits, signups, conversions?)- Calculate transparent signup and conversion rates from the non-negative counts you provide.
toolfound_sponsorship_break_even(cost, revenue, margin, signupRate, customerRate)- Estimate the clicks, signups, and customers needed to recover a sponsorship cost from your own funnel assumptions.
toolfound_software_cost_comparison(seats, aName, aPrice, aBilling, aSetup?, aUsage?, bName, bPrice, bBilling, bSetup?, bUsage?)- Normalize two software prices to a first-year cost using seats, billing periods, setup fees, and expected usage charges.
toolfound_relaunch_decision(change, audienceChanged, listingCurrent, evidence, measurementReady)- Choose between a relaunch, a regular update, or more preparation from the size of the change and launch evidence you provide.
toolfound_feedback_interview_planner(goal, participants, minutes, stage)- Create a bounded interview plan and evidence log from a learning goal, participant count, and available time.
toolfound_json_to_csv(json)- Convert a small flat JSON export into a downloadable spreadsheet, with explicit limits and formula protection.
toolfound_csv_deduplicator(csv)- Clean repeated campaign or listing-export rows while retaining the first exact match and showing how many rows changed.
toolfound_campaign_url_cleaner(url, mode)- Normalize UTM naming or remove standard utm_* campaign parameters (utm_source, utm_medium, utm_campaign and similar) from a supplied URL without visiting its destination.
toolfound_color_contrast(foreground, background)- Calculate the WCAG text contrast ratio for two opaque hex colors before shipping a landing page or launch graphic.
toolfound_find_by_task(task, pricing?)- Matches a bounded task description against public catalogue evidence and reports unknowns.
toolfound_inspect_public_link(sourceUrl, targetUrl)- Inspects one public HTTPS page for exact target anchors and their observed rel values.
Write tier
7 toolsEmail-verified. Nothing is published without a domain check.
toolfound_submit_product(url, email, name?, tagline?, description?, logo_url?, x_handle?, founder_x_handle?, preferred_launch_date?, pricing_model?, price_usd?)- Creates the submission and returns queue position, launch date, verification instructions and the free-slot count in one payload.
toolfound_check_verification(token)- Dry-runs the ownership checks and reports what the email, meta-tag and DNS methods currently see.
toolfound_verify_submission(token)- Runs the ownership check on demand: email token, meta tag or DNS TXT record.
toolfound_get_launch_status(submission_id? | url? (one required))- Current status, queue position, launch date and listing URL.
toolfound_claim_listing(slug, email)- Starts a claim on a listing compiled from public information.
toolfound_relaunch(slug, email, note, requested_launch_date?)- Queues an eligible claimed or originally verified listing for a new launch date.
toolfound_get_badge(slug)- Returns the three optional embed badge snippets for a listing.
What we assume
Everything an agent sends is treated as hostile input. Submitted text is sanitised before it is stored, before it is rendered and before it reaches any drafting pipeline, so a description cannot smuggle instructions into a later render.
- Verification is mandatory. A tool call cannot publish a listing. Ownership of the domain has to be proven by email token, meta tag or DNS record.
- Writes are logged. Every write tool call is recorded against its session in an audit log, with the normalised URL and the acting email.
- Limits are per email and per address. Three submissions per email a day, ten per network address a day, sliding window.
- No payment through tools. Checkout is a URL handed back for a person to open.
- Duplicates collapse. URLs are normalised before comparison, so the same product cannot be launched twice by two different agents.
The read index is also published as llms.txt and as structured data on every listing page, so an assistant that cannot speak MCP can still cite the same numbers. More on that on the agents page.