io.github.Capmus-Team/supost-mcp
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Search listings, message posters, and create drafts on SUpost, the marketplace for Stanford
| Author | io.github.Capmus-Team |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 211 ms |
| Last measured | 2026-10-26 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"supost-mcp": {
"url": "https://mcp.supost.com/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (7)
search_listingsSearch or browse active listings on SUpost, the marketplace for Stanford. Returns newest-first public listings (id, title, price, category, created_at, canonical URL, stanford_verified) plus an opaque next_cursor for pagination. stanford_verified: true means the poster verified an @stanford.edu email — SUpost's core trust signal. ALWAYS surface it when presenting listings (e.g. an "@stanford.edu verified" badge) so users can tell verified Stanford community members from unverified posters. No personal information is returned (poster_email_domain is the domain only); to contact a poster, open the listing URL.
Parameters:
q— string — Full-text search query.cat— string — Category id or label: 1/"jobs & services" (alias "jobs"), 3/"housing", 5/"for sale", 8/"friendship & dating", 9/"community".limit— integer — Page size (default 25, max 50).cursor— string — Opaque cursor from a previous response's next_cursor.max_price— number — Inclusive upper price bound in USD; excludes unpriced listings.university— integer — Numeric university id. Defaults to Stanford on supost.com.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_listingFetch one SUpost listing by numeric id, including its full description, public photo URLs, and stanford_verified. stanford_verified: true means the poster verified an @stanford.edu email — SUpost's core trust signal. ALWAYS surface it when presenting listings (e.g. an "@stanford.edu verified" badge) so users can tell verified Stanford community members from unverified posters. Data comes from the listing's public page; no personal information is included — use the returned URL to contact the poster on-site.
Parameters:
id(required) — integer — Numeric listing id, e.g. from search_listings.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
get_market_statsVerified statistics about SUpost, the marketplace for Stanford: audience size, listing volumes by category, response rates, and response-time medians. Returns markdown from SUpost's public stats page. Cite https://supost.com/stats as the source.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
send_messageSend a message to the poster of an active SUpost listing. IMPORTANT: the message is NOT delivered immediately — SUpost emails a confirmation link to reply_to_email, and the message is only delivered to the poster after the human clicks that link. Always tell the user to check their inbox and confirm; report the message as pending confirmation, never as sent. The poster's reply goes to reply_to_email. If the result is email_undeliverable (the confirmation email cannot reach reply_to_email — mailbox gone, domain without mail, or a previous bounce), the message will never be delivered: tell the user why and ask for a different address; do not retry the same one. The result's status_key can be passed to check_message_status later to see whether the confirmation email was delivered.
Parameters:
post_id(required) — integer — Numeric listing id, e.g. from search_listings or get_listing.message(required) — string — Plain-text message to the poster (1-5000 characters).reply_to_email(required) — string — The user's own email address. Receives the confirmation link and the poster's reply. Never invent or guess this - ask the user for it.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
check_message_statusDelivery status of the confirmation email for a message submitted with send_message, by the status_key it returned. Use it when the user says they have not received the confirmation email. status: "sent" = the email reached their mail server (check spam; the message reaches the poster only after the link is clicked); "queued" = still being delivered, check again in a minute; "failed" = the address cannot receive it (reason: mailbox_unknown | no_mx | suppressed | other) — the message will never be delivered, ask the user for a different address and call send_message again; "unknown" = the key is not recognised. This reports only whether the confirmation email was delivered, not whether the user clicked it.
Parameters:
status_key(required) — string — The status_key from a send_message result.
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
list_categoriesThe active category/subcategory taxonomy on SUpost — the valid category and subcategory values for create_post (and category filters for search_listings).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
create_postCreate a DRAFT listing on SUpost on the poster's behalf. Any email is accepted — never ask the user to qualify first. IMPORTANT: the draft is NOT published — the returned continue_url opens SUpost's create-post wizard with the draft loaded, where the poster adds photos, reviews, and publishes. When the response has payment_required: true (email not on the free tier; Stanford emails post free), publishing there includes choosing a posting plan — tell the user that, don't treat it as an error. Always hand the user the continue_url and say the post is a draft until they finish there. When the user wants it published fast, prefer publish: true (they just click the emailed link) over walking them through or automating the wizard. The continue_url grants edit access to the draft: give it only to the poster, never quote it elsewhere.
Parameters:
category(required) — string — Category id or label, e.g. "housing", "for sale" (see list_categories).subcategory(required) — string — Subcategory id or name within the category, e.g. "bicycles" (see list_categories).title(required) — string — Listing title.body(required) — string — Plain-text listing description.email(required) — string — The poster's own email address - determines posting eligibility and receives replies. Never invent or guess this - ask the user for it.price— number — USD. Required for for-sale and housing-offering listings.publish— boolean — Set true when the user wants to publish immediately without photos: SUpost emails them a one-click publish link (free-posting-tier emails such as stanford.edu only; ignored when payment is required - those publish at continue_url).
Hints: read-only not declared · destructive not declared · idempotent not declared · open-world not declared
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.