Shipstry MCP Server
Shipstry runs a read-only Model Context Protocol server. Point an MCP client at the endpoint below and an agent can search the launch registry, read any ship week, look up weekly and monthly winners, and benchmark how crowded a category is.
Everything it returns is already public on this site. There is no API key, no OAuth, and no write access.
https://shipstry.com/mcpStreamable HTTP, POST only — GET returns 405, and there are no sessions. Supports MCP revisions 2026-07-28, 2025-11-25, 2025-06-18.
What an agent can ask
Seven tools, grouped by the question they answer. The names are the ones an agent sees in tools/list.
| Question | Tool |
|---|---|
| What categories exist, and how many products are in each? | list_categories |
| Is there a tool that does X? What shipped in a category this week? | search_launches |
| What is this product, in full — description, tags, awards, maker? | get_launch |
| What launched in a given week, and how is that week going? | list_ship_week |
| Who took gold, silver, and bronze last week, or last month? | get_winners |
| How crowded is this category, and what does a winning launch look like? | get_category_landscape |
| Is this website already listed on Shipstry? | check_url |
Benchmarking, not just search
get_category_landscape aggregates a category over a window of ship weeks: how many products launched, the vote distribution (mean, p50, p75, p90, max), the top launches, how many medals were awarded, and the tags that show up most often. It answers how crowded a space is and what a winning launch looks like there — a question no search endpoint can answer.
Connect a client
Every current MCP client can reach a remote server, but the config key differs between them.
Cursor
{
"mcpServers": {
"shipstry": { "url": "https://shipstry.com/mcp" }
}
}VS Code / Copilot
{
"servers": {
"shipstry": {
"type": "http",
"url": "https://shipstry.com/mcp"
}
}
}Claude Code
claude mcp add --transport http shipstry https://shipstry.com/mcpOther clients take the same URL under a different field name:
- Windsurf —
serverUrl - Gemini CLI —
httpUrl - Codex CLI —
url in TOML - Claude Desktop, claude.ai, ChatGPT —
Connectors UI
Tool reference
| Tool | Required | Optional | Returns |
|---|---|---|---|
list_categories | — | — | Every category slug with its approved-product count |
search_launches | — | query, category, tag, sort, limit, offset | Matching launches with votes, ship week, awards, and canonical URL |
get_launch | one of id, slug, url | — | Full record: description, tags, awards, maker name |
list_ship_week | — | shipWeek, category, sort, limit, offset | One week's cohort, plus the week's label and status |
get_winners | — | scope, period, limit | Medal winners with product details and vote counts |
get_category_landscape | category | weeks | Launch volume, vote distribution, top launches, medals, frequent tags |
check_url | url | — | Whether the URL is already listed, and the matching product |
search_launches sorts by hot, new, week, or month. list_ship_week sorts by votes, recent, or random. get_winners takes a week or month scope. get_category_landscape defaults to the last 12 ship weeks, up to 52.
Behavior worth knowing
- Read-only. Nothing here writes, votes, submits, or spends.
- Approved products only. Pending and rejected submissions never appear.
- Fog Mode. During 13:00–19:00 UTC the in-progress ship week is hidden the same way the website hides it. Product records return
votesasnullwithvoteHiddenset totrue;list_ship_weekreturns a shuffled order;get_category_landscapedrops that week from its window entirely, because an ordered top list would leak the ranking even with the numbers redacted; andsearch_launchesordered by week falls back to recency. Settled weeks are unaffected. - Citable results. Every record carries its canonical Shipstry URL.
- Ship weeks are Mondays. They are keyed
YYYYMMDDin UTC.list_ship_weekalso returns a readable range label and astatusofopen,closed,fog, orscheduled. - Rate limited. The limit is a guardrail against runaway loops, not a quota. If you want to index the whole registry, get in touch instead of hammering the endpoint.
Example
Ask how the AI category has been going over the last twelve weeks:
curl -s -X POST https://shipstry.com/mcp \
-H 'Content-Type: application/json' \
-H 'MCP-Protocol-Version: 2026-07-28' \
-H 'Mcp-Method: tools/call' \
-H 'Mcp-Name: get_category_landscape' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_category_landscape",
"arguments": { "category": "ai-ml", "weeks": 12 },
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}'Response, trimmed — product fields and URLs removed for length:
{
"category": "ai-ml",
"fromWeek": "20260727",
"toWeek": "20261012",
"launched": 41,
"voteTotal": 1893,
"weeksCovered": 12,
"voteDistribution": {
"sampleSize": 41, "mean": 46.2,
"p50": 38, "p75": 61, "p90": 94, "max": 212
},
"topLaunches": [
{ "name": "...", "votes": 212, "shipWeek": "20260907" }
],
"medals": { "gold": 12, "silver": 12, "bronze": 12 },
"frequentTags": [{ "slug": "ai", "name": "ai", "count": 18 }]
}What is not included
The server is a read-only view of the public registry, and it never writes. These stay on the website:
- Submitting, editing, or scheduling a product.
- Voting, commenting, or reading notifications.
- Account, draft, profile, or order data.
- The Trade Ports backlink directory, which is a paid product.
One consequence worth calling out: check_url only sees approved listings. If a URL is still in review, it reports isDuplicate: false.
Where this data comes from
Every answer can be checked by hand on the public site:
- Explore — search and sort the whole registry.
- Ship weeks — every closed week and what shipped in it.
- Weekly winners — medal archives.
- Topics — use-case archives built from product tags.
- llms.txt — the plain-text map of this site for agents.