BetaFinds
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Publish and update your startup on BetaFinds from an AI agent — listings, changelog, releases.
| Author | io.github.pendurov |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2649 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"BetaFinds": {
"url": "https://betafinds.com/api/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (14)
create_startupCreate a new startup on BetaFinds (submitted for review). Upload the logo and screenshots first via upload_image (or POST https://betafinds.com/api/v1/images) and pass the returned URLs here. Set the category by slug — get the list via list_categories (a category name also works, case-insensitive).
Parameters:
name(required) — string — Product nametagline(required) — string — One-line tagline (up to 160 characters)description(required) — string — Full description (min 50 characters)url— string — Product website URL (required for stage=LAUNCHED, optional for prelaunch)logo— string — Logo URL from upload_image (optional)tags— array — Tags (up to 6)stage— string — Product stage: PRELAUNCH — preparing to launch, BETA — recruiting beta testers, LAUNCHED — already launched (default)appStoreUrl— string — App Store page link (iOS)screenshots— array — Screenshot URLs from upload_image (up to 5, optional)category_slug— string — Category slug (e.g. ai, saas, fintech)googlePlayUrl— string — Google Play page link (Android)testflightUrl— string — TestFlight link (iOS beta)prelaunch_ready— string — What is already done: prototype, design, private beta… (up to 1000 characters)prelaunch_promise— string — What a waitlist subscriber will get (up to 1000 characters)prelaunch_audience— string — Who the product is for (up to 1000 characters)target_launch_date— string — Estimated launch date in YYYY-MM-DD format (for prelaunch; empty string clears it)
Hints: read-only no · destructive no · idempotent no · open-world no
update_startupUpdate an existing startup: app-store links, website, short/full description, tags, category, logo and screenshots. Upload the logo and screenshots first via upload_image and pass the returned URLs (screenshots fully replace the current set; to clear the logo, pass an empty string). Pass only the fields you want to change. See current values via list_my_startups. Note: editing an approved startup sends it back to moderation.
Parameters:
startup_slug(required) — string — Startup slug (from list_my_startups)url— string — Product website URLlogo— string — Logo URL from upload_image (empty string to clear)tags— array — Tags (up to 6)tagline— string — One-line tagline (up to 160 characters)appStoreUrl— string — App Store page link (iOS)description— string — Full description (min 50 characters)screenshots— array — Screenshot URLs from upload_image (up to 5; fully replace the current set)category_slug— string — Category slug (see list_categories)googlePlayUrl— string — Google Play page link (Android)testflightUrl— string — TestFlight link (iOS beta)prelaunch_ready— string — What is already done: prototype, design, private beta… (up to 1000 characters)prelaunch_promise— string — What a waitlist subscriber will get (up to 1000 characters)prelaunch_audience— string — Who the product is for (up to 1000 characters)target_launch_date— string — Estimated launch date in YYYY-MM-DD format (for prelaunch; empty string clears it)
Hints: read-only no · destructive no · idempotent yes · open-world no
list_categoriesread-onlyList of available categories (slug and name) for create_startup.
Hints: read-only yes · destructive no · idempotent yes · open-world no
upload_imageUpload an image (logo or screenshot) for create_startup. Pass the file content as base64 (data is base64 only, no data: prefix). Returns a url to pass into create_startup. Max 2 MB; formats: JPEG, PNG, WebP, GIF.
Parameters:
data(required) — string — File content in base64mime_type(required) — string — MIME type: image/png, image/jpeg, image/webp, image/giffilename— string — File name (optional)
Hints: read-only no · destructive no · idempotent no · open-world no
list_my_startupsread-onlyList of your startups on BetaFinds (slug, name, status). Updates can only be published for startups with APPROVED status.
Hints: read-only yes · destructive no · idempotent yes · open-world no
publish_updatePublish an update (an entry in the «What's new» feed) for your startup. Subscribers receive an email summary within ~10 minutes. body supports Markdown.
Parameters:
startup_slug(required) — string — Startup slug (from list_my_startups)title(required) — string — Update title (3–200 characters)body(required) — string — Text in Markdown (10–20000 characters)type— string — Type: RELEASE — new version, UPDATE — improvement, FIX — fix, NEWS — news. Defaults to NEWS.version— string — Version, if applicable (e.g. 1.4.0)
Hints: read-only no · destructive no · idempotent no · open-world no
create_releaseCreate a release (version) of your startup. By default also publishes a RELEASE-type update with the notes text. After creation, upload files via request_asset_upload.
Parameters:
startup_slug(required) — string — Startup slugversion(required) — string — Version, e.g. 1.4.0notes— string — Release notes in Markdownannounce— boolean — Whether to publish an update in the feed (default true)
Hints: read-only no · destructive no · idempotent no · open-world no
request_asset_uploadGet a one-time link to upload a release file (Windows/Mac/Android/Linux, up to 1 GB). Then upload the file: curl -T <file> '<upload_url>'. After uploading, call complete_asset_upload.
Parameters:
release_id(required) — string — Release ID from create_releaseplatform(required) — string — File platformfilename(required) — string — File name, e.g. MyApp-1.4.0.dmgsize(required) — number — File size in bytes (exact)sha256— string — File SHA-256 (hex, optional)
Hints: read-only no · destructive no · idempotent no · open-world no
complete_asset_uploadConfirm that the release file has been uploaded. Verifies the file's presence and size in storage and makes it available for download.
Parameters:
asset_id(required) — string — File ID from request_asset_upload
Hints: read-only no · destructive no · idempotent yes · open-world no
get_releasesread-onlyСписок опубликованных релизов стартапа с файлами. Для LAUNCHED-проектов downloadUrl — постоянная прямая ссылка. На закрытых стадиях ссылка возвращается только для своих стартапов или где у вас открыт доступ (иначе locked=true, downloadUrl=null).
Parameters:
startup_slug(required) — string — Startup slug
Hints: read-only yes · destructive no · idempotent yes · open-world no
change_startup_stageChange your startup's product stage: PRELAUNCH — preparing to launch, BETA — recruiting beta testers, PAUSED — development paused (requires public_note). To move to LAUNCHED use announce_launch. Allowed transitions: PRELAUNCH→BETA/PAUSED, BETA→PAUSED, PAUSED→PRELAUNCH/BETA.
Parameters:
startup_slug(required) — string — Startup slug (from list_my_startups)stage(required) — string — New stagepublic_note— string — Public note (required for PAUSED, up to 500 characters)
Hints: read-only no · destructive no · idempotent yes · open-world no
announce_launchAnnounce your startup's official launch: the stage becomes LAUNCHED, a LAUNCH update is published, and waitlist members are notified (once). A working product link is required (url or an already saved store link).
Parameters:
startup_slug(required) — string — Startup slug (from list_my_startups)title(required) — string — Launch headline (3–200 characters)body(required) — string — Description of the first public version, Markdown (10–20000 characters)url— string — Working product link (if not set yet)notify_waitlist— boolean — Notify the waitlist (default true)
Hints: read-only no · destructive no · idempotent no · open-world no
get_waitlistread-onlyWaitlist summary for your startup: aggregated counters (active, per week/month, ready to test, invited/accepted), answer distribution for the question, recent anonymized answers and campaigns with aggregated statistics. Participants' contact details are not returned.
Parameters:
startup_slug(required) — string — Startup slug (from list_my_startups)
Hints: read-only yes · destructive no · idempotent yes · open-world no
get_store_reviewsread-onlyPublic Google Play and App Store reviews of your startup: monitoring state per store and the latest reviews (rating, text, developer response). Reviews are collected automatically via the app links.
Parameters:
startup_slug(required) — string — Startup slug (from list_my_startups)page— number — Page (20 reviews each, default 1)
Hints: read-only yes · destructive no · idempotent yes · open-world no
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.