SoldStack
Server Details
Real Poshmark sold prices for secondhand clothing, shoes and bags. Ask what an item sells for, by condition, or whether it’s worth buying at a price to resell.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
buy_or_pass returns a buy/maybe/pass verdict while sold_comps returns raw sold-price statistics, so the outputs are clearly distinguishable. However, buy_or_pass is essentially a judgment wrapper around sold_comps and both take nearly identical parameters (query, size, condition, source), so an agent must know the layering to pick correctly.
Both names are lowercase snake_case and reasonably descriptive, so the style is consistent. There is a minor mismatch in form: one is an action phrase (buy_or_pass) and the other is a data noun (sold_comps), which slightly breaks the verb_noun pattern.
Two tools is thin for a resale-research server; the decision helper could arguably be derived from comps output by the agent itself. They do each earn their place, but the surface feels minimal bordering on under-scoped.
The core loop of pulling sold comps and getting a buy/pass verdict is covered, but there is no way to inspect active/current listings, compare against competing sellers, or evaluate items in bulk. These omissions are workable but notable gaps for a resale decision workflow.
Available Tools
2 toolsbuy_or_passBuy or pass at a priceARead-onlyIdempotentInspect
Whether an item is worth buying at a given cost to resell on Poshmark: buy, maybe or pass with the reason, judged from its clean sold comps after Poshmark's fee. Call it for one item at a time; if it reports busy, wait the given number of seconds and call again.
query: brand + item, e.g. "patagonia better sweater".
cost: what you'd pay, e.g. the thrift-store tag price in USD.
min_profit: smallest profit after fees worth the effort (default 10).
size / condition: same filters as sold_comps.
source: "poshmark" (US, default) or "poshmark_ca" (Poshmark Canada; prices and fees in CAD).
| Name | Required | Description | Default |
|---|---|---|---|
| cost | Yes | ||
| size | No | ||
| query | Yes | ||
| source | No | poshmark | |
| condition | No | ||
| min_profit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent and non-destructive, but the description adds genuinely new behavior: a concurrency/busy lock with a retry-after delay, the fee deduction applied before judging, and region-dependent currency and fee treatment (USD vs CAD). That is meaningful context beyond the annotation block.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The outcome and its basis are front-loaded in the first sentence, followed by a compact parameter line-list, each entry earning its place with an example or default. Slightly long but no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does communicate the result shape (a decision plus reason) and covers retry behavior, fee handling, and regional variants. It is comfortably complete for a two-required-parameter decision tool, with only the size/condition filter semantics left to the sibling tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description carries the full burden, and it defines query format with an example, explains cost as the acquisition price in USD, gives min_profit's default and meaning, and enumerates source values with their currency implications. Only size/condition are left unexplained beyond a pointer to sold_comps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific decision outcome (buy, maybe, pass with reason) judged from sold comps after Poshmark's fee, which is far more than a restatement of the name. It also distinguishes itself from the sibling sold_comps by tying its size/condition filters to that tool rather than duplicating them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete operational guidance: call for one item at a time, and if it reports busy, wait the stated seconds and retry. It also implicitly positions sold_comps as the raw-data counterpart via 'same filters as sold_comps', but never states explicitly when to prefer this tool over sold_comps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sold_compsSold prices for an itemARead-onlyIdempotentInspect
What an item actually sold for on Poshmark: median sold price, typical range (p10-p90), days to sell, what the seller keeps after fees, price by condition, a confidence rating, and the matching sales. Call it for one item at a time; if it reports busy, wait the given number of seconds and call again.
query: brand + item, e.g. "coach tabby 26" or "lululemon align leggings", or a plain item type like
"womens jeans". For kids' clothing put girls, boys, kids, toddler or youth in the query ("girls jeans");
otherwise kids' sizes are removed.
size: only this size, e.g. "8", "M" or "10.5". Leave it out unless the user named a size: it can leave
very few sales.
condition: "new", "used", a plain word (nwt, like new, excellent, very good, good, fair, poor), or an
exact grade: new_with_tags, not_new_with_tags, used_like_new,
used_excellent, used_good, used_fair (comma-separated for several).
days: only sales from the last N days (1-365). Poshmark lists sold results by relevance, not date, so
without it the sales can be years old; days=365 (or 90) keeps prices recent.
limit: how many individual sales to include in `sales` (default 10, 0-50). Each sale has the same fields
as a /v1/sold item.
exclude_seller: comma-separated seller usernames to leave out (case-insensitive).
sort: order of the included sales: "recent" (newest first), "price_asc" or "price_desc". Stats are unaffected.
department: comma-separated: Women, Men, Kids, Home, Pets, Electronics. "Kids" also keeps kids' sizes.
category: comma-separated Poshmark categories, e.g. "Jeans".
include_removed: true also returns removed_items, the sales cleaning dropped, each with a removed_reason.
deep: true reads up to ~190 sales (4 pages of up to 48, in Poshmark's relevance order) instead of one
page (slower when not cached, about 10s; one lookup).
source: "poshmark" (US, default) or "poshmark_ca" (Poshmark Canada; prices and fees in CAD).
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | ||
| deep | No | ||
| size | No | ||
| sort | No | ||
| limit | No | ||
| query | Yes | ||
| source | No | poshmark | |
| category | No | ||
| condition | No | ||
| department | No | ||
| exclude_seller | No | ||
| include_removed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint/idempotentHint/destructiveHint already declaring a safe, repeatable read, the description still adds real behavioral context: a busy/backoff response the caller must handle, the ~10s uncached cost and 4-page read for deep=true, that deep reads in relevance order, and that source=poshmark_ca returns CAD prices and fees. It does not describe pagination limits or the shape of the returned stats object, but the annotations carry the safety profile and the description goes beyond them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The lead sentence front-loads the returned statistics before any parameters, and the rest is an efficient parameter-by-parameter block. It is long, but nearly every clause adds actionable detail (defaults, ranges, edge cases) rather than filler; minor tightening is possible but nothing is clearly wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and 12 parameters, the description must explain both the return payload and the inputs, and it does: it lists every statistic returned and documents each parameter. An agent has enough to construct a valid call and interpret the response without opening the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description carries the full burden for all 12 parameters, and it does: query format with examples and the kids'-clothing caveat, size exclusion warning, condition accepting plain words or exact grades, days range 1-365 with the relevance-sorting rationale, limit default 10 and 0-50 bound, comma-separated exclude_seller and department semantics, include_removed explaining removed_reason, and source currency behavior. This compensates completely for the undocumented schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence gives a specific verb+resource ("what an item actually sold for on Poshmark") and enumerates the concrete outputs: median sold price, p10-p90 range, days to sell, seller net after fees, price by condition, confidence rating, and matching sales. That is far more specific than a restated title. It stops short of a 5 only because it never names or contrasts with the sibling tool buy_or_pass, so the routing distinction has to be inferred from the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It sets operational context ("call it for one item at a time") and a failure path ("if it reports busy, wait the given number of seconds and call again"), plus per-parameter usage counsel such as leaving size out unless the user named one and using days to keep prices recent since Poshmark sorts by relevance. It lacks any explicit when-not-to-use or alternative-tool comparison against buy_or_pass.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
buy_or_pass - First observed
sold_comps
Related MCP Servers
- AlicenseNot gradedqualityBmaintenancePerplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.2Apache 2.0
- AlicenseCqualityBmaintenanceCompetitor Monitor AI - MCP server providing AI-powered tools and automation by MEOK AI Labs119 npm54 PyPIMIT
- AlicenseAqualityCmaintenanceEnables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.1611 npm1MIT

industrylens-mcpofficial
AlicenseNot gradedqualityBmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.