Skip to content

MPP index: MPPScan seeds (API, 314 origins) + discovery-doc probe targets (33 -> 167 verified sellers) - #830

Merged
MikeyPetrillo merged 3 commits into
mainfrom
claude/sweet-brown-i99jl3
Aug 19, 2026
Merged

MPP index: MPPScan seeds (API, 314 origins) + discovery-doc probe targets (33 -> 167 verified sellers)#830
MikeyPetrillo merged 3 commits into
mainfrom
claude/sweet-brown-i99jl3

Conversation

@MikeyPetrillo

@MikeyPetrillo MikeyPetrillo commented Aug 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • Second seed source, MPPScan: its tRPC servers.list (all-time, paginated 200/page, 314 servers at launch, each with name/description/url/logo) is the primary source; the rendered page's origin list is the fallback. Metadata is used for sellers the mpp.dev registry does not describe. discoveryMppScan on the index snapshot reports source/total/error. Seeds only - nothing lists until our live probe sees a real WWW-Authenticate: Payment challenge.
  • Better probe targets: for origins the registry does not describe, read the seller's own /openapi.json (the MPP discovery format) and probe a priced x-payment-info operation instead of the bare root (registry endpoints > submitted hint > discovery doc > root; guarded fetch, 2 MB cap, 1 h cache).
  • Measured live before merge: verified sellers 33 → 167 in one crawl (133 MPPScan-only), 166 with a Tempo recipient for the leaderboard.
  • Page copy names both sources; parseMppScanList / parseMppScanOrigins / probeTargetFromDiscovery unit-tested.

Verification

  • test-mpp-index 27/27, mpp-market-page, mpp-index-hint, mpp-leaderboard 53/53, tempo-router 36/36.
  • Full CI

…dered origin list) and the seller's own /openapi.json x-payment-info operation as the probe target for origins the registry does not describe; verified sellers 33 -> 101 in one live crawl, still gated on our real probe; parsers unit-tested
Comment thread scripts/test-mpp-index.js
{
const page = `<script>self.__next_f.push([1,"[[\\"servers\\",\\"list\\"],{\\"input\\":{\\"originUrls\\":[\\"https://alpha.example\\",\\"https://beta.example/\\",\\"http://insecure.example\\",\\"https://alpha.example\\",\\"https://gamma.example/v1/tenant\\"]}}]"])</script>`;
const got = parseMppScanOrigins(page);
ok(got.length === 2 && got.includes("https://alpha.example") && got.includes("https://beta.example"), `parseMppScanOrigins: escaped SSR payload -> validated https origins, deduped, http and path-scoped dropped (got ${JSON.stringify(got)})`);
Comment thread scripts/test-mpp-index.js
{
const page = `<script>self.__next_f.push([1,"[[\\"servers\\",\\"list\\"],{\\"input\\":{\\"originUrls\\":[\\"https://alpha.example\\",\\"https://beta.example/\\",\\"http://insecure.example\\",\\"https://alpha.example\\",\\"https://gamma.example/v1/tenant\\"]}}]"])</script>`;
const got = parseMppScanOrigins(page);
ok(got.length === 2 && got.includes("https://alpha.example") && got.includes("https://beta.example"), `parseMppScanOrigins: escaped SSR payload -> validated https origins, deduped, http and path-scoped dropped (got ${JSON.stringify(got)})`);
Comment thread src/mpp-index.js
export function parseMppScanOrigins(html) {
const text = String(html || "").replace(/\\"/g, '"');
const out = new Set();
const re = /"originUrls":\s*\[((?:"https?:\/\/[^"]+"\s*,?\s*)+)\]/g;
…-time, paginated, with name/description/logo; page scrape as fallback) - 314 origins; verified sellers 33 -> 167 in one live crawl
@MikeyPetrillo MikeyPetrillo changed the title MPP index: MPPScan seeds + discovery-doc probe targets (33 -> 101 verified sellers) MPP index: MPPScan seeds (API, 314 origins) + discovery-doc probe targets (33 -> 167 verified sellers) Aug 19, 2026
…al-stack sellers whose probed 402 carried an MPP challenge fold in every cycle - automatic detection, no registry, no submission); /sell and the MPP marketplace FAQ spell out the three listing paths incl. POST /api/mpp-index/register
@MikeyPetrillo
MikeyPetrillo temporarily deployed to agent402 / production August 19, 2026 03:31 — with GitHub Actions Inactive
@railway-app
railway-app Bot temporarily deployed to agent402 / production August 19, 2026 03:31 Inactive
@MikeyPetrillo
MikeyPetrillo marked this pull request as ready for review August 19, 2026 03:34
@MikeyPetrillo
MikeyPetrillo merged commit ccc19db into main Aug 19, 2026
33 of 34 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants