BetaFinds

io.github.pendurovPublished by GitHub account pendurovv1.0.0Updated Oct 24, 2026

Publish and update your startup on BetaFinds from an AI agent — listings, changelog, releases.

VerifiedStreamable HTTPWeb executableProductivity & WorkflowBusiness & Commerce

Overview

AI-generated overview

Official BetaFinds MCP server that lets an assistant create and update a startup listing, post changelog updates, and publish releases.

What you can do
  • List your startups and available categories
  • Create or update a startup listing, including descriptions, tags, category, logo and screenshots
  • Upload logo and screenshot images as base64 and get back URLs
  • Publish changelog updates and create releases with version notes
  • Request one-time upload links for release files, confirm uploads, and list published releases
  • Change product stage, announce a launch, read waitlist statistics and store reviews
When to use it
Useful when you already build with an AI agent and want it to fill in and maintain your BetaFinds startup listing, post what's-new entries, or ship release files without using the web form.
Requirements
Remote hosted endpoint over Streamable HTTP; nothing to install. Needs a BetaFinds account and an API token created in the profile, sent as an Authorization Bearer header. Claude Desktop setups use mcp-remote via npx.
Before you install
The API token grants write access to your listings, so keep it out of shared configs. Actions publish publicly: updates email subscribers, announcing a launch notifies waitlist members, and new listings go through moderation. Release uploads allow files up to 1 GB, and screenshots are fully replaced on update.

Installation

In SourceWeft

  1. Open BetaFinds in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.pendurov%2Fbetafinds-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "betafinds": {
      "type": "http",
      "url": "https://betafinds.com/api/mcp"
    }
  }
}

README

BetaFinds MCP Server

Publish and update your startup on BetaFinds straight from an AI agent.

BetaFinds is a directory for early-stage startups — discover, upvote and discuss new projects. This is its official Model Context Protocol server: point an AI agent (Claude, Cursor, …) at it and it can create your listing, post changelog updates, and upload release files for you.

Why

Filling out submission forms — description, screenshots, links, release files — is the tedious part of launching. If you already build with an AI agent, you can skip the form entirely:

"Upload my project to betafinds.com" — then hand the agent your API token.

Quickstart (Claude Code)

  1. Create an API token at https://betafinds.com/profile (format: blt_…).

  2. Add the server:

    bash
    claude mcp add betafinds https://betafinds.com/api/mcp \  --transport http \  --header "Authorization: Bearer blt_YOUR_TOKEN"
  3. Ask your agent: "List my startups on BetaFinds", or "Publish an update to <startup>: shipped dark mode and fixed the onboarding flow."

Claude Desktop

Add to your claude_desktop_config.json via mcp-remote:

json
{  "mcpServers": {    "betafinds": {      "command": "npx",      "args": [        "-y", "mcp-remote",        "https://betafinds.com/api/mcp",        "--header", "Authorization: Bearer blt_YOUR_TOKEN"      ]    }  }}

Tools

ToolWhat it does
list_my_startupsList your startups and their slugs (start here)
list_categoriesList available categories (by slug)
create_startupCreate a new startup listing (submitted for moderation)
update_startupUpdate an existing startup's fields
upload_imageUpload a logo or screenshot; returns an image URL
publish_updatePost a "what's new" entry to a startup's changelog feed
create_releaseCreate a release (version) for Windows / macOS / Android / Linux
request_asset_uploadGet a presigned URL to upload a release file
complete_asset_uploadFinalize a release-file upload
get_releasesList a startup's public releases

Typical flow

Publishing a new build end to end:

create_release → request_asset_upload (per file) → PUT the file → complete_asset_upload

Subscribers of the startup receive an email digest within ~10 minutes of a published update.

Notes

  • The server is hosted and stateless (Streamable HTTP) — there is nothing to run locally.
  • Listing is free; new startups go through moderation before appearing.
  • A Russian-language sibling runs the same protocol at BetaList.ru (https://betalist.ru/api/mcp).

License

MIT © OPSoft Inc

Source: README.md at commit c500489

Tools

14

create_startup

Create startup

Create 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).

ParametersurllogonamerequiredtagsstagetaglinerequiredappStoreUrldescriptionrequiredscreenshotscategory_sluggooglePlayUrltestflightUrl+4 more

update_startup

Update startup

Update 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.

ParametersurllogotagstaglineappStoreUrldescriptionscreenshotsstartup_slugrequiredcategory_sluggooglePlayUrltestflightUrlprelaunch_ready+3 more

list_categories

List categories

List of available categories (slug and name) for create_startup.

Takes no parameters.

upload_image

Upload image

Upload 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.

Parametersdatarequiredfilenamemime_typerequired

list_my_startups

My startups

List of your startups on BetaFinds (slug, name, status). Updates can only be published for startups with APPROVED status.

Takes no parameters.

publish_update

Publish update

Publish an update (an entry in the «What's new» feed) for your startup. Subscribers receive an email summary within ~10 minutes. body supports Markdown.

Parametersbodyrequiredtypetitlerequiredversionstartup_slugrequired

create_release

Create release

Create 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.

Parametersnotesversionrequiredannouncestartup_slugrequired

request_asset_upload

Request file upload

Get 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.

Parameterssizerequiredsha256filenamerequiredplatformrequiredrelease_idrequired

complete_asset_upload

Complete file upload

Confirm that the release file has been uploaded. Verifies the file's presence and size in storage and makes it available for download.

Parametersasset_idrequired

get_releases

List releases

Список опубликованных релизов стартапа с файлами. Для LAUNCHED-проектов downloadUrl — постоянная прямая ссылка. На закрытых стадиях ссылка возвращается только для своих стартапов или где у вас открыт доступ (иначе locked=true, downloadUrl=null).

Parametersstartup_slugrequired

change_startup_stage

Change stage

Change 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.

Parametersstagerequiredpublic_notestartup_slugrequired

announce_launch

Announce launch

Announce 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).

Parametersurlbodyrequiredtitlerequiredstartup_slugrequirednotify_waitlist

get_waitlist

Waitlist

Waitlist 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.

Parametersstartup_slugrequired

get_store_reviews

Store reviews

Public 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.

Parameterspagestartup_slugrequired

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts