npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@clearlist/mcp-server

v0.9.21

Published

ClearList MCP Server — AI agent interface to the ClearList API

Readme

ClearList MCP Server

smithery badge

AI agent interface to ClearList, an AI resale manager. Any MCP-compatible agent (Claude today on any plan, plus Codex CLI, Google Antigravity, and custom agents) can create listings, publish sale pages, and manage reservations — all through the same API routes the web UI uses. ChatGPT reaches the same API today through agent mode, which needs no connector; what is pending its app directory review is the one-click listing that would make that seamless and open it to Free accounts.

Users never need to visit clearlist.me. The agent handles account creation, photo processing, listing generation, and publishing entirely through conversation.

Quick Start

cd mcp-server
npm install
npm run build

CLI

The package also ships a clearlist command-line tool for scripting seller actions directly against the REST API — no MCP host required:

npm install -g @clearlist/mcp-server

clearlist login [email protected]        # send a 6-digit sign-in code
clearlist verify [email protected] 123456  # store the API key in ~/.clearlist/config.json
clearlist items                        # list your listings
clearlist publish --city "Austin"      # publish the sale page, get the URL
clearlist reservations                 # who reserved what
clearlist reply <conversationId> "Yes, still available"
clearlist picked-up <itemId>           # mark an item sold
clearlist status                       # plan, capacity, expiry

Every command prints JSON (pipe to jq for scripting). CLEARLIST_API_KEY overrides the stored key; CLEARLIST_API_URL overrides the default https://clearlist.me. Run clearlist help for the full reference.

MCP Apps (interactive UI)

get_listings, publish_page, and get_reservations declare an MCP Apps view (ui://clearlist/app.html) via _meta.ui.resourceUri. Hosts that render MCP Apps (ChatGPT, Claude.ai) show a listings gallery, a publish success card, or a reservations summary inline; hosts without UI support ignore the metadata and get the same JSON as before. View sources live in src/ui/views/ and are bundled into src/ui/generated-views.ts with npm run build:ui.

Two Ways to Connect

Option A: New user (no account yet)

No API key needed. The agent creates the account through conversation:

{
  "mcpServers": {
    "clearlist": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/dist/index.js"],
      "env": {
        "CLEARLIST_API_URL": "https://clearlist.me"
      }
    }
  }
}

The agent uses send_verification_code + verify_code to authenticate. An API key is generated automatically and stored in memory for the session.

Option B: Returning user (has API key)

If the agent already has a key from a previous session:

{
  "mcpServers": {
    "clearlist": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-server/dist/index.js"],
      "env": {
        "CLEARLIST_API_URL": "https://clearlist.me",
        "CLEARLIST_API_KEY": "cl_your_api_key_here"
      }
    }
  }
}

All tools work immediately — no onboarding needed.

How It Works (The Grandma Flow)

Grandma → ChatGPT: "I'm moving, help me sell my stuff"
ChatGPT: "Sure! What's your email?"
Grandma: "[email protected]"

    [agent calls send_verification_code({ email: "[email protected]" })]

ChatGPT: "I sent you a 6-digit code. Check your email."
Grandma: "482019"

    [agent calls verify_code({ email: "[email protected]", code: "482019" })]
    → account created, API key returned, all tools unlocked

ChatGPT: "Account created! Now send me photos of everything you want to sell."
Grandma: [sends 20 photos]

    [agent calls bulk_create_listings({ photos: [...20 photos] })]
    → AI groups by item, generates listings, suggests prices, validates

ChatGPT: "I found 12 items. Here's what I got:
          1. IKEA Kallax Shelf — $45 (Good condition)
          2. KitchenAid Mixer — $120 (Like New)
          ...
          Want me to publish your sale page?"

Grandma: "Yes! I'm in Austin."

    [agent calls publish_page({ city: "Austin", state: "TX" })]

ChatGPT: "Done! Your sale page is live at clearlist.me/grandmas-sale
          Share this link on Facebook or Nextdoor."

Grandma never visited a website. Never generated an API key. Never created an account manually.

Available Tools (28)

Onboarding Tools (2) — No API key required

| Tool | Description | |------|-------------| | send_verification_code | Send a 6-digit code to an email address | | verify_code | Verify the code, create account if new, get API key |

Seller Tools (23)

| Tool | Description | |------|-------------| | create_listing | Send 1-5 photos → AI generates listing → saves to account | | bulk_create_listings | Send up to 50 photos → AI groups, generates, prices, QA-checks → saves them. Read the response: prohibited items are refused and some may save hidden | | create_upload_session | Mint a phone-upload link; pass its session_id to bulk_create_listings | | edit_listing | Update title, description, price, condition, category, status or transport_notes | | delete_listing | Delete a listing — undoable for 7 days via restore_listing | | publish_page | Publish sale page (city, plus state in the US/CA/AU), get shareable URL | | unpublish_page | Take sale page offline | | extend_sale_page | Extend an expiring sale page | | restore_listing | Undo a delete within the 7-day window | | get_listings | List all items with status, price, queue count | | get_reservations | See buyer reservations, messages, timer status | | get_conversation | Get full message thread with a specific buyer | | reply_to_buyer | Send message to a buyer | | mark_picked_up | Mark item sold when no reservation currently holds it (walk-up sale). Refuses a reserved item | | confirm_pickup | Close out a reservation the buyer collected (or mark a no-show) | | get_page_stats | Page views, item count, reservation stats | | prepare_crosspost | Generate cross-posting content for Craigslist/Facebook | | set_availability | Configure pickup scheduling windows | | get_profile | Get account profile and tier info | | check_tier_status | Check the seller's plan, remaining slots and expiry. Plans are one-time passes, not subscriptions | | generate_payment_link | Generate Stripe payment link for upgrades | | share_address | Step 1 of 2. Name who would receive the pickup address, get a confirmation token. Discloses nothing to the buyer | | confirm_address_share | Step 2 of 2. Send the address the token froze, once the seller has agreed. Irreversible; the seller is emailed a record |

Discovery Tools (3) — Phase 14

| Tool | Description | |------|-------------| | search_items | Search items across all sales by keyword, city, category, price | | get_sales_near | Find active sales near a location | | get_city_sales | Browse all sales in a city |

Architecture

User (via any AI agent)
  │
  ▼
Agent (Claude, Codex CLI, Antigravity, etc.)
  │
  ▼
ClearList MCP Server (this package)
  │  stdio transport
  │
  ▼
ClearList API Routes (/api/*)
  │  HTTP + X-ClearList-API-Key header
  │
  ▼
Firebase (Firestore, Auth, Storage) + vision AI

The MCP server is a thin protocol adapter. Zero business logic — everything lives in the API routes.

Authentication Flow

                    ┌─────────────────────────────────┐
                    │   Agent starts (no API key)      │
                    └─────────────┬───────────────────┘
                                  │
                    ┌─────────────▼───────────────────┐
                    │  send_verification_code          │
                    │  POST /api/auth/send-code        │
                    │  { email: "[email protected]" }     │
                    └─────────────┬───────────────────┘
                                  │  ← email sent with 6-digit code
                    ┌─────────────▼───────────────────┐
                    │  verify_code                     │
                    │  POST /api/auth/verify-code      │
                    │  { email, code, agent: true }    │
                    └─────────────┬───────────────────┘
                                  │  ← creates account + returns API key
                    ┌─────────────▼───────────────────┐
                    │  API key stored in memory        │
                    │  All subsequent calls use it     │
                    │  X-ClearList-API-Key: cl_xxx     │
                    └─────────────────────────────────┘

Development

# Type-check
npm run type-check

# Build
npm run build

# Run directly (for testing)
CLEARLIST_API_URL=http://localhost:3000 npm run dev