supost-mcp

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

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
75%
Naming quality
100%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (2)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin get_market_stats

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,411Tokens (tool definitions)
~1.5 KBTypical response size
Moderate attention impact (1.10% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

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

Remote endpoints

https://mcp.supost.com/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢search_listings(q, cat, university, max_price, limit, ...)

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

Input Schema

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "minLength": 1,
      "maxLength": 200,
      "description": "Full-text search query."
    },
    "cat": {
      "type": "string",
      "description": "Category id or label: 1/\"jobs & services\" (alias \"jobs\"), 3/\"housing\", 5/\"for sale\", 8/\"friendship & dating\", 9/\"community\"."
    },
    "university": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Numeric university id. Defaults to Stanford on supost.com."
    },
    "max_price": {
      "type": "number",
      "minimum": 0,
      "description": "Inclusive upper price bound in USD; excludes unpriced listings."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Page size (default 25, max 50)."
    },
    "cursor": {
      "type": "string",
      "description": "Opaque cursor from a previous response's next_cursor."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_listing(id)

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

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Numeric listing id, e.g. from search_listings."
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢get_market_stats

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

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡send_message(post_id, message, reply_to_email)

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

Input Schema

{
  "type": "object",
  "properties": {
    "post_id": {
      "type": "integer",
      "exclusiveMinimum": 0,
      "description": "Numeric listing id, e.g. from search_listings or get_listing."
    },
    "message": {
      "type": "string",
      "minLength": 1,
      "maxLength": 5000,
      "description": "Plain-text message to the poster (1-5000 characters)."
    },
    "reply_to_email": {
      "type": "string",
      "format": "email",
      "maxLength": 320,
      "description": "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."
    }
  },
  "required": [
    "post_id",
    "message",
    "reply_to_email"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡list_categories

The active category/subcategory taxonomy on SUpost — the valid category and subcategory values for create_post (and category filters for search_listings).

Input Schema

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟡create_post(category, subcategory, title, body, price, ...)

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

Input Schema

{
  "type": "object",
  "properties": {
    "category": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Category id or label, e.g. \"housing\", \"for sale\" (see list_categories)."
    },
    "subcategory": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100,
      "description": "Subcategory id or name within the category, e.g. \"bicycles\" (see list_categories)."
    },
    "title": {
      "type": "string",
      "minLength": 1,
      "maxLength": 255,
      "description": "Listing title."
    },
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 15000,
      "description": "Plain-text listing description."
    },
    "price": {
      "type": "number",
      "minimum": 0,
      "description": "USD. Required for for-sale and housing-offering listings."
    },
    "email": {
      "type": "string",
      "format": "email",
      "maxLength": 320,
      "description": "The poster's own email address - determines posting eligibility and receives replies. Never invent or guess this - ask the user for it."
    },
    "publish": {
      "type": "boolean",
      "description": "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)."
    }
  },
  "required": [
    "category",
    "subcategory",
    "title",
    "body",
    "email"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools