Alternativeto (alternativeto.net) for agents: Search software on AlternativeTo; Search alternativeto; Browse apps by category; Search apps and software β through Unbrowse's scoped MCP for...
Alternativeto as tools for your agent. Unofficial: not affiliated with or endorsed by alternativeto.net. Unbrowse compiled these from alternativeto.net's own requests: each call replays the site's first-party API server-side and returns a verified result. No scraping of rendered pages, no browser on your side, no alternativeto.net API key.
This server is a tool scope holding only alternativeto.net: its compiled tools plus the Unbrowse tools that run them, so the agent's tool list stays small and every call stays on alternativeto.net.
claude mcp add --transport http alternativeto https://unbrowse.ai/mcp/alternativeto.net
codex mcp add alternativeto --url https://unbrowse.ai/mcp/alternativeto.net && codex mcp login alternativeto
{"mcpServers":{"alternativeto":{"url":"https://unbrowse.ai/mcp/alternativeto.net"}}}
The first connect signs in to Unbrowse with OAuth (free tier, only verified results count). For scripts, send Authorization: Bearer $UNBROWSE_API_KEY (key from https://unbrowse.ai/app/keys; keep it in a secret manager, never in config you commit).
If none of the tools below are in this session's tool list, the server is not connected or not signed in: say so and stop. Do not fetch alternativeto.net some other way and present it as this skill's result.
alternativeto_net__get_browse_search β Search software on AlternativeToSearch software on AlternativeTo. Inputs: query. Returns the page's title, readable text and links. Read-only on alternativeto.net.
query (string, required) β query (typed during βfill Searchβ)select (array) β Keep only these parts of the result: dots walk keys, [] maps over a list, a final {a,b} keeps several keys (e.g. "results[].{title,url}"). Unmatched paths come back in selectMissing.{"query":"<query>"}
alternativeto_net__post_indexes_queries_2 β Search alternativetoSearch alternativeto. Inputs: query. Returns results. Read-only on alternativeto.net.
query (string, required) β query (typed during βfill Searchβ)x_algolia_agent (string) β optional, e.g. "Algolia for JavaScript (5.59.0); Lite (5.59.0); Browser"x_algolia_application_id (string) β optional, e.g. "ZIDPNS2VB0"select (array) β Keep only these parts of the result: dots walk keys, [] maps over a list, a final {a,b} keeps several keys (e.g. "results[].{title,url}"). Unmatched paths come back in selectMissing.{"query":"<query>"}
alternativeto_net__get_items_available_filters β Browse apps by categoryBrowse apps by category. No inputs. Returns platformsFilters, featureFilters, licenseFilters, originFilters. Read-only on alternativeto.net.
category (string) β optional, e.g. "security"excludeMetatags (string) β optional, e.g. "nsfw-warning,legal-warning,block-as-alternative"uriAsBase64 (string) β optional, e.g. "aHR0cHM6Ly9hbHRlcm5hdGl2ZXRvLm5ldC9icm93c2UvYWxsLz9jYXRlZ29yeT1zZWN1cml0eQ=="select (array) β Keep only these parts of the result: dots walk keys, [] maps over a list, a final {a,b} keeps several keys (e.g. "results[].{title,url}"). Unmatched paths come back in selectMissing.{"category":"security","excludeMetatags":"nsfw-warning,legal-warning,block-as-alternative","uriAsBase64":"aHR0cHM6Ly9hbHRlcm5hdGl2ZXRvLm5ldC9icm93c2UvYWxsLz9jYXRlZ29yeT1zZWN1cml0eQ=="}
alternativeto_net__render_page β Search apps and softwareSearch apps and software. Inputs: query. Returns the page's title, readable text and links. Read-only on alternativeto.net.
query (string, required) β query β what to search for on alternativeto.netselect (array) β Keep only these parts of the result: dots walk keys, [] maps over a list, a final {a,b} keeps several keys (e.g. "results[].{title,url}"). Unmatched paths come back in selectMissing.{"query":"<query>"}
alternativeto_net__read_page β Read a alternativeto.net software pageRead a alternativeto.net software page. Inputs: software. Returns the page's title, readable text and links. Read-only on alternativeto.net.
software (string, required)select (array) β Keep only these parts of the result: dots walk keys, [] maps over a list, a final {a,b} keeps several keys (e.g. "results[].{title,url}"). Unmatched paths come back in selectMissing.{"software":"<software>"}
Always there too: unbrowse.run (a task on alternativeto.net in plain words), unbrowse.inspect, unbrowse.resume, unbrowse.scrape and unbrowse.map (any page on alternativeto.net), and the recorded cloud browser unbrowse.browse.open β unbrowse.browse.act β unbrowse.browse.finish. Hosts that reject dotted names show them with _ (unbrowse_run).
status. succeeded carries the verified result. input_required is not a failure: answer the open fields with unbrowse.resume {runId, answers} on the same run.unbrowse.run {task}. It fails with no_capability when nothing is compiled for that yet: do it once with unbrowse.browse.open on alternativeto.net β unbrowse.browse.act β unbrowse.browse.finish, which compiles a new tool this server lists next time. Anything off alternativeto.net is refused here (not_in_scope): use the general Unbrowse server for that.unbrowse.browse.act with action: "autofill" fills alternativeto.net's login from their Unbrowse password manager.succeeded result says. outcome_unknown means a change may have happened: check before retrying. Posting, buying, sending or deleting needs the user's go-ahead.Every tool is also a REST call:
curl -s https://unbrowse.ai/api/v1/sites/alternativeto.net/call/alternativeto_net__get_browse_search \
-H "authorization: Bearer $UNBROWSE_API_KEY" -H "content-type: application/json" \
-d '{"query":"<query>"}'
OpenAPI: https://unbrowse.ai/api/v1/sites/alternativeto.net/openapi.json. Every other site: the general Unbrowse skill (https://github.com/unbrowse-ai/unbrowse) and https://unbrowse.ai/mcp.