原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

Supost MCP

作者:Capmus-Team版本 0.2.2i★ –i在云端运行
注册名称io.github.Capmus-Team/supost-mcp

安装

概览

作者提供的说明(英文原文)

Search listings, message posters, and create drafts on SUpost, the marketplace for Stanford

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在云端运行
  • 传输方式: Streamable HTTP
  • 分类: 网店与支付

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

你需要

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

适用于网页版、桌面版和手机版 Claude:

  1. 打开 Settings → Connectors
  2. 点击 Add custom connector
  3. 粘贴下面的地址,然后点击 Add
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Add2https://…3
https://mcp.supost.com/mcp

在终端中运行这条命令

claude mcp add --transport http supost https://mcp.supost.com/mcp

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "supost": {
      "url": "https://mcp.supost.com/mcp"
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "supost": {
      "type": "http",
      "url": "https://mcp.supost.com/mcp"
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

ChatGPT 只能连接互联网上的服务器:

  1. 打开网页版 ChatGPT → Settings → Connectors (Apps)
  2. 点击 Create 或 Add(部分套餐需要先在 Advanced 中开启 Developer mode)
  3. 粘贴下面的地址,起个名字,然后保存
  4. 如果要求登录,请登录作者的服务
SettingsConnectors1+ Create2https://…3
https://mcp.supost.com/mcp

菜单名称可能因套餐和版本不同而略有差异。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月9日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 Capmus-Team 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    端点有响应

    尚未检查;我们会轮流检查各个端点

  • … 尚未检查

    使用 OAuth 登录

    尚未检查;我们会轮流检查各个端点

  • … 尚未检查

    工具描述中没有隐藏指令

    尚未检查;我们会在检查端点时读取工具列表

与“网店与支付”中的其他服务器比较i

  • 星标数多于此分类中其他 2571 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 2571 个服务器的 17% 更新
  • 基础检查结果等于或优于此分类中其他 2571 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

Supost MCP 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(0.2.2)于4个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。

有什么可以替代它?

同一分类中有:Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:↓ 每周下载量i★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Stripe MCP

MCP server integrating with Stripe - tools for customers, products, payments, and more.

作者:stripe广泛使用★ 204313个月前更新

在云端运行✓ stripe.com

MCP Cn Commerce

8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending

作者:TonyWang-hub起步阶段↓ 73/周★ 9629天前更新

在你的电脑上运行

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

supost-mcp

Remote MCP server for SUpost, the marketplace for Stanford — and, via BRAND=capmus, for Capmus (capmus.com), which serves the same public API from the same supost-web codebase. One repo, two Vercel projects:

BrandVercel projectEndpointEnv
SUpostsupost-mcphttps://mcp.supost.com/mcp(defaults)
Capmuscapmus-mcphttps://mcp.capmus.com/mcpBRAND=capmus

BRAND selects the server name, tool titles/descriptions, and default base URL; SUPOST_BASE_URL still overrides the base URL for previews.

Lets AI agents search active listings, fetch listing details, read verified market statistics, message posters, and create draft listings.

This is doc 190 workstream E3 (see supost-web/docs/dev/190-ai-agent-discovery-implementation-plan.md). It is a pure client of SUpost's public surfaces — the read-only listings API (E2), public listing pages, and /stats.md. It has no privileged database access and holds no secrets; the only configuration is the public base URL.

Tools

ToolBacking surfaceWhat it returns
search_listingsGET /api/public/listingsNewest-first active listings (id, title, price, category, created_at, canonical URL) with opaque cursor pagination. Params: q, cat, university, max_price, limit (≤50), cursor.
get_listingGET /post/index/ → canonical listing pageOne listing incl. full description, parsed from the page's schema.org Product JSON-LD.
get_market_statsGET /stats.mdThe public stats page's markdown rendition (audience, listing volumes, response rates/times).
list_categoriesGET /api/public/categoriesThe active category/subcategory taxonomy — valid create_post values.
create_postPOST /api/public/postsCreates a DRAFT listing; returns a continue_url where the poster adds photos, reviews, and publishes (paying first when not on the free tier). Never publishes directly.
send_messagePOST /api/public/messagesSubmits a message to a listing's poster. NOT delivered immediately: a confirmation link is emailed to reply_to_email, and the message only goes out after the human clicks it — agents must report it as pending confirmation, never sent.
check_message_statusPostgREST RPC get_guest_verification_status (publishable key)Whether the confirmation email for a send_message submission was delivered: queued / sent / failed (+ reason) / unknown. Never whether the link was clicked.

No personal information is ever returned. send_message is the supported way to contact a poster; the listing's url also carries the on-site message form. API terms: https://supost.com/api/public/openapi.json.

Bouncing addresses

A message is only ever delivered after the human clicks the confirmation link, so an address the link cannot reach is a message that never arrives (supost-web docs/dev/20260917-2040-guest-reply-bounce-feedback-handoff.md). send_message therefore never answers a plain "pending" for a dead address:

  • An address whose confirmation email hard-bounced in the last 30 days is refused by the API with 422 email_undeliverable before anything is stored. The tool returns an error result with {status: "email_undeliverable", reason, email, message} and tells the agent to ask for a different address rather than retry.
  • Otherwise the API answers 202 with a status_key, and the tool polls the delivery status of the confirmation email for up to ~8 s (four checks, two seconds apart — a suppressed address fails in under a second, a fresh hard bounce in 1–16 s). A failed verdict is reported the same way as the 422; sent / queued come back in the result as confirmation_email, with the status_key for a later check_message_status.

The poll is the same anon-callable PostgREST RPC the web form uses, get_guest_verification_status(status_key), reached with the marketplace's publishable key (the value every browser already gets). It returns only queued | sent | failed and a failure classification (mailbox_unknown | no_mx | suppressed | other) — never the redemption token, the message, or the address. Env: SUPOST_STATUS_URL / SUPOST_STATUS_KEY override the defaults (production project); SUPOST_STATUS_KEY="" disables polling (tools report unknown); SUPOST_STATUS_POLL_ATTEMPTS / SUPOST_STATUS_POLL_INTERVAL_MS tune the in-call wait.

Hosting

Deployed on Vercel as a stateless streamable-HTTP MCP endpoint (mcp-handler + @modelcontextprotocol/sdk):

https://mcp.supost.com/mcp        (rewritten to /api/mcp)

https://mcp.supost.com/health (rewritten to /api/health)

No sessions, no Redis, no auth — every request is independently served and all upstream data is public and CDN-cached.

Which commit is live

The initialize response's serverInfo.version is + on Vercel (e.g. 0.3.0+835efb3, from VERCEL_GIT_COMMIT_SHA; plain 0.3.0 locally — see src/version.ts), so any MCP client, or GET /health, shows the deployed commit. Compare it with git rev-parse --short origin/master when something looks stale.

Health check and uptime monitoring

GET /health answers {"ok": true, "brand": "supost", "version": "…"} without calling upstream (api/health.ts): it says the function is serving, not that supost.com is up. Point an UptimeRobot HTTP monitor at each brand (manual step, both needed):

  • https://mcp.supost.com/health
  • https://mcp.capmus.com/health

Alerting on a non-200 (keyword "ok":true optional) catches a broken deploy or a dropped domain; the version in the body shows which commit answered.

Deploy
vercel deploy          # preview

vercel deploy --prod # production

Optional env var: SUPOST_BASE_URL (default https://supost.com; set to https://preview.supost.com on preview deployments to point at the dev stack).

Production deploys come from the GitHub integration on master. Avoid vercel deploy --prod from a local checkout unless it is at origin/master: a stale CLI deploy takes the production alias over the git build (this happened on 2026-09-17; fixed with vercel promote).

Usage analytics

Every tool call emits one PostHog mcp_tool_called event (sanitized args, no PII — see src/analytics.ts) and, when TOOL_LOG_URL / TOOL_LOG_KEY are set, a full-argument row in the marketplace's private ops.mcp_tool_call table (src/toollog.ts).

Failed calls carry error_code: the public API's error code (rate_limited, not_found, email_undeliverable, invalid_request, …) or unknown for anything else (network failure, unexpected response shape); null on success. The error *message* is never sent, since it can quote user content — break down by error_code to tell a rate-limit spike from an upstream outage.

The PostHog distinct_id is a salted SHA-256 of the caller's IP + User-Agent (src/client.ts), so uniq(distinct_id) counts distinct agents without storing the IP. Events also carry client_ua (the MCP client's User-Agent, which names the harness) and client_country (Vercel's geo header). Set CLIENT_ID_SALT in the Vercel project env to make the hash unguessable; the in-repo default keeps local dev working. Calls that arrive without IP or User-Agent fall back to the per-brand id mcp. .com.

Connect a client
claude mcp add --transport http supost https://mcp.supost.com/mcp

or in any MCP client that supports remote servers, add the URL above as a streamable-HTTP server.

Rate limiting

The public API enforces ~60 requests/minute/IP and serves 5-minute CDN caching. The client in src/http.ts respects this: on a 429 it honors Retry-After (capped at 5 s), retries once, and otherwise surfaces a structured rate_limited error instructing the agent to back off — it never retries in a loop. All requests carry a supost-mcp/… User-Agent.

Every marketplace call (never the status RPC) also carries the trusted-agent headers: x-supost-api-key (SUPOST_API_KEY in the deployment env, never in git) and, when the calling agent's IP is known, x-supost-agent-client-ip with it (first hop of the MCP's own inbound x-forwarded-for). The API trusts that IP only when the key verifies (supost-web docs/dev/469-mcp-agent-api-hardening-handoff.md), so the per-IP limit can apply per agent rather than to the single Vercel egress IP all agents share. Plain X-Forwarded-For would not work: supost.com runs on Vercel, which overwrites it at the edge.

Development

npm install

npm run check # typecheck + tests SUPOST_BASE_URL=https://preview.supost.com npx tsx scripts/smoke.ts # live end-to-end

Tests (vitest) cover each tool's request/response mapping, error mapping, JSON-LD extraction, and the rate-limit contract (Retry-After honored, capped, single retry, structured failure).

Follow-ups (manual steps)

  • Publish to the MCP registry — server.json is ready. Make the repo public first (gh repo edit Capmus-Team/supost-mcp --visibility public), then: sh brew install mcp-publisher mcp-publisher login github # device flow, needs a browser mcp-publisher publish # from the repo root For the Capmus entry, publish server.capmus.json the same way (cp server.capmus.json server.json in a scratch checkout, or mcp-publisher publish --file server.capmus.json if supported).
  • `/help/mcp` docs page in supost-web — PR #1242 (guide registry entry + llms.txt MCP line); live once merged to dev → master.
  • PR/citation announcement — draft and story beats in docs/announcement-draft.md; post after the registry listing and /help/mcp are live (doc 190 workstream F).
  • E2 is live on production (supost.com, 2026-07-09); smoke script verified against production, and the server is deployed at https://mcp.supost.com/mcp.
问 PopNx