Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Luxury auction results by API key: table queries, market stats, price trends and price checks.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"saleroom": {
"command": "npx",
"args": [
"-y",
"@reneturcios/saleroom",
"mcp"
]
}
}
}Run this in your terminal
claude mcp add saleroom -- npx -y @reneturcios/saleroom mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"saleroom": {
"command": "npx",
"args": [
"-y",
"@reneturcios/saleroom",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"saleroom": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reneturcios/saleroom",
"mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account CloudCorpRecords, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.1.0) reached the registry 3 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js, Docker on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, sync. labs
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Lipsync videos, dub them into other languages, make talking videos and open sync. Studio.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
What did that watch actually sell for — and what is one worth today? saleroom is a read-only client for the altfinance auction-results service, which tracks realized prices across twenty luxury categories: watches, handbags, jewelry, gems, cars and motorcycles, aircraft, wine and whisky, art, design, fashion, coins and more. You can list the tables, inspect a table's columns, run filtered and sorted queries over the sales history, read summary statistics and price trends, ask for a fair-value range on a single item, search the whole market at once, consult a precomputed brand/model price index, and view price alerts.
Nothing here trades, bids or changes anything: all nine tools only read. Responses come back exactly as the service returned them — nothing is trimmed, renamed or summarised on the way through.
Two environment variables control the client:
ALTFINANCE_API_KEY (required) — sent on every request as Authorization: Bearer . When it is not set, every tool fails with ALTFINANCE_API_KEY is not set before any request is made.ALTFINANCE_API_URL (optional) — API base URL. Defaults to https://api.altfndata.com.list_tables — the available auction tables, with live descriptions and column counts. No arguments.get_table_schema — column names and types for one table. Takes table (required).query_table — query a table with filters, sort, fields selection and pagination (limit 1–500, offset ≥ 0). Takes table (required) plus the optional arguments.market_stats — a realized-price summary for a table or a filtered segment: count, median, percentiles, average, min/max, sale-date span and top vendors. Takes table (required) and optional filters.price_trend — how realized prices moved over time, bucketed by year, quarter or month. Takes table (required), optional bucket and optional filters.price_check — a fair-value range for a single item from comparable sales, with source links. Takes item (required) and optional category. Live categories are handbags, watches and cars.search — whole-market keyword search across every category at once, merged by realized price. Takes query (required) and optional category.market_index — a precomputed model-level price index for a brand or model (handbags, watches, cars). Takes query (required) and optional category.list_alerts — a read-only view of price alerts, or guidance on enabling them. No arguments.The twenty tables are: watches, handbags, jewelry, gems, automobile, motorcycle, aircraft, wine_whisky, works_of_art, fine_art, design, fashion, shoes, automobilia, books, coins, other_automobile, perfume, accessories and musical_instruments.
A filter is {column, operator, value}. The operators are eq, neq, gt, gte, lt, lte, like, in, not_in, is_null and is_not_null. Omit value for is_null / is_not_null; pass an array for in / not_in. A sort is {field, direction} with direction asc or desc.
Validation happens before any request. An unknown operator fails with unknown filter operator: ; a missing value where one is required fails with filter value is required for operator ; a limit outside 1–500 fails with limit must be an integer between 1 and 500. An upstream non-2xx reply fails with altfinance error: HTTP and an unreachable API with altfinance unreachable.
The original service's project record pins the nine tools, the twenty table names, the filter operators, the sorting, field-selection and pagination rules, the trend buckets and the two environment variables — and that all nine endpoints are read-only. It does not pin the per-tool argument names beyond its prose, the filter/sort JSON shapes, the auth header or the request paths. Those pieces are reconstructions, labelled as such:
Authorization: Bearer header — reconstruction (the record pins API-key authentication only).GET /v1/tables — list_tables.GET /v1/tables/{table}/schema — get_table_schema.POST /v1/tables/{table}/query with body {filters?, sort?, fields?, limit?, offset?} (unset fields omitted) — query_table.POST /v1/tables/{table}/stats with body {filters?} — market_stats.GET /v1/tables/{table}/trend with bucket and a JSON-encoded filters query parameter when set — price_trend.POST /v1/price-check with body {item, category?} — price_check.GET /v1/search?q=&category= — search.GET /v1/market-index?query=&category= — market_index.GET /v1/alerts — list_alerts.Each tool is a subcommand taking one JSON argument string:
npx @reneturcios/saleroom list_tables '{}'
npx @reneturcios/saleroom query_table '{"table":"watches","filters":[{"column":"brand","operator":"eq","value":"Rolex"}],"limit":10}' npx @reneturcios/saleroom price_check '{"item":"Rolex Submariner 1968","category":"watches"}' npx @reneturcios/saleroom --version
Output is the tool's result text (the upstream JSON on success). Exit codes: 0 on success, 1 on a runtime error (including a validation or upstream failure), 2 on a usage error.
npx -y @reneturcios/saleroom mcp
MCP client config:
{
"mcpServers": { "saleroom": { "command": "npx", "args": ["-y", "@reneturcios/saleroom", "mcp"], "env": { "ALTFINANCE_API_KEY": " " } } } }
docker run -i ghcr.io/cloudcorprecords/saleroom
docker run --rm ghcr.io/cloudcorprecords/saleroom list_tables '{}'
npm install
npm run build # tsc -> dist/ npm test # tsx --test test/*.test.ts (fake fetch only, no network) npm run dev # run the CLI from source
MIT — Copyright (c) 2026 Rene Turcios