Sourced directory of real apps built with AI coding tools, plus build tools, harnesses, what is new.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Side-by-side sourced facts for 2-4 slugs, mixing AI build tools, agent harnesses and Agent Toolbox entries. Answers "X vs Y" questions such as Cursor vs Claude Code. Use when: the user is choosing between specific named tools. Do not use for: open-ended "what should I use to build X" (recommend_stack); a single tool (get_tool). Returns: per slug: pricing with checked date and source, free tier, lowest stated $/mo, apps on Vibe Shipped, licence, interface, GitHub stars with date, MCP/subagents/headless/sandboxing (null = not stated). Limits: 2-4 slugs; isError bad_input if fewer than 2 resolve. Example: {"tools":["claude-code","openai-codex-cli","aider"]}
2-4 slugs from list_tools, list_harnesses or list_agent_tools.
Side-by-side sourced facts for 2-4 slugs, mixing AI build tools, agent harnesses and Agent Toolbox entries. Answers "X vs Y" questions such as Cursor vs Claude Code. Use when: the user is choosing between specific named tools. Do not use for: open-ended "what should I use to build X" (recommend_stack); a single tool (get_tool). Returns: per slug: pricing with checked date and source, free tier, lowest stated $/mo, apps on Vibe Shipped, licence, interface, GitHub stars with date, MCP/subagents/headless/sandboxing (null = not stated). Limits: 2-4 slugs; isError bad_input if fewer than 2 resolve. Example: {"tools":["claude-code","openai-codex-cli","aider"]}
| Argument | Type | Description |
|---|---|---|
| tools* | array | 2-4 slugs from list_tools, list_harnesses or list_agent_tools. |
{
"type": "object",
"required": [
"tools"
],
"properties": {
"tools": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 4,
"minItems": 2,
"description": "2-4 slugs from list_tools, list_harnesses or list_agent_tools."
}
},
"additionalProperties": false
}Full record for one listed app by slug. Use when: you have a slug from search_apps, latest_apps or get_vibe50 and need its source, website, builder, stack, stated revenue or evidence tier. Do not use for: discovering apps (search_apps). Returns: the app record, including evidence_tier, evidence_basis, evidence_checked_at and link; or isError code not_found. Limits: Only live listings are returned. Example: {"slug":"stella"}
| Argument | Type | Description |
|---|---|---|
| slug* | string | App slug, e.g. "stella". |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"description": "App slug, e.g. \"stella\"."
}
},
"additionalProperties": false
}Full sourced record for one agent harness by slug. Use when: you have a harness slug and need its sources, caveats, pricing or feature evidence. Do not use for: listing or filtering harnesses (list_harnesses). Returns: the harness with source URLs, dated checks (pricing, features, stars, last_checked) and related Vibe Shipped pages; or isError not_found. Limits: Slugs come from list_harnesses. Example: {"slug":"openai-codex-cli"}
| Argument | Type | Description |
|---|---|---|
| slug* | string | Harness slug, e.g. claude-code, openai-codex-cli, aider, langgraph. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"description": "Harness slug, e.g. claude-code, openai-codex-cli, aider, langgraph."
}
},
"additionalProperties": false
}Vibe Shipped sponsorship offers (featured listing, week sponsor, Weekly Top 10 presenting sponsor, month takeover) with prices and Stripe checkout links. Use when: the user asks about advertising or sponsoring on Vibe Shipped. Do not use for: paying on the user's behalf; hand the checkout URL to the human. Returns: offers[], a checkout object for the $300 Week Sponsor, contact email and sponsor page URL. Limits: No parameters. Sponsored placements are labeled; rankings are not for sale. Example: {}
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Full sourced facts for one AI build tool, agent harness or Agent Toolbox entry. Use when: you need pricing, licence, features or app stats for a single slug. Do not use for: several tools at once (compare_tools). Returns: pricing with pricing_checked and source, last_checked, app stats and Vibe Shipped links; or isError not_found. Limits: Slugs come from list_tools, list_harnesses or list_agent_tools. Example: {"slug":"lovable"}
| Argument | Type | Description |
|---|---|---|
| slug* | string | Tool, harness or Agent Toolbox slug, e.g. cursor, claude-code, cline. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"minLength": 1,
"description": "Tool, harness or Agent Toolbox slug, e.g. cursor, claude-code, cline."
}
},
"additionalProperties": false
}The Vibe Shipped 50: apps built with AI coding tools, ranked by stated, sourced monthly USD revenue. Use when: the user asks how much vibe-coded apps earn, or for the top earners built with a tool. Do not use for: finding apps by keyword (search_apps). Returns: apps[] with rank, title, revenue_stated, monthly_usd, evidence_tier, revenue_date, stale flag, source_url, link; total_ranked. include_unranked adds notable unranked apps and the method. Limits: limit 1-50, default 20. Always say figures are as stated and give the evidence tier. Example: {"tool":"cursor","limit":10}
| Argument | Type | Description |
|---|---|---|
| tool | string | Only apps built with this tool id, e.g. cursor. |
| limit | integer | Number of ranked apps. |
| include_unranked | boolean | Also return the unranked/notable list. |
{
"type": "object",
"properties": {
"tool": {
"type": "string",
"description": "Only apps built with this tool id, e.g. cursor."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1,
"description": "Number of ranked apps."
},
"include_unranked": {
"type": "boolean",
"default": false,
"description": "Also return the unranked/notable list."
}
},
"additionalProperties": false
}The most recently added apps built with AI, newest first. Use when: the user asks what was shipped recently, with no filter. Do not use for: filtering by tool or keyword (search_apps); tool and harness changes (whats_new). Returns: apps[] with the same fields as search_apps. Limits: limit 1-50, default 10. Example: {"limit":5}
| Argument | Type | Description |
|---|---|---|
| limit | integer | Number of apps. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Number of apps."
}
},
"additionalProperties": false
}The Agent Toolbox: agentic build tools (Cline, Aider, OpenHands, Codex CLI, Gemini CLI, Devin, Jules, Kiro, Amp, Warp, n8n, Browser Use and more) by category. Use when: the user wants agent options of a kind (CLI, IDE, autonomous SWE, browser, workflow), MCP servers, AI coding models, or stack pieces (hosting, database, auth, payments) with dated official pricing, or only open-source ones. Do not use for: harness features such as MCP or sandboxing (list_harnesses). Returns: per tool: what, best_for, licence (GitHub-checked, with date), pricing with source and pricing_checked, last_checked. Limits: category is one of the enum values; open_source true filters to open source; limit 1-100, default 20 (total says how many matched). Example: {"category":"CLI agent","open_source":true}
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max tools to return. |
| category | string | Category (agents, plus MCP servers, AI coding models, hosting, databases, auth, payments). |
| open_source | boolean | true = only open-source tools. |
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"default": 20,
"maximum": 100,
"minimum": 1,
"description": "Max tools to return."
},
"category": {
"enum": [
"CLI agent",
"IDE agent",
"Autonomous SWE agent",
"Browser agent",
"Workflow agent",
"MCP server",
"AI coding model",
"Hosting",
"Database",
"Auth",
"Payments"
],
"type": "string",
"description": "Category (agents, plus MCP servers, AI coding models, hosting, databases, auth, payments)."
},
"open_source": {
"type": "boolean",
"description": "true = only open-source tools."
}
},
"additionalProperties": false
}Coding-agent harnesses (Claude Code, Codex CLI, Gemini CLI, OpenCode, goose, Cline, Aider...) and agent frameworks (Claude Agent SDK, OpenAI Agents SDK, smolagents, Mastra, LangGraph) with docs-verified facts. Use when: the user is choosing a coding agent or agent framework by licence, interface, model support or features. Do not use for: one harness in depth (get_harness); app builders such as Lovable (list_tools). Returns: per harness: maker, interface, licence, GitHub stars with date, models, pricing with pricing_checked, features (MCP, subagents, headless, sandboxing) with features_checked, last_checked. Limits: Filters: kind, interface prefix, open_source, byo_model, mcp, q; limit 1-100, default 25. null means not stated or not verified, never 'no'. Sources per harness via get_harness. Example: {"kind":"coding agent","open_source":true,"mcp":true}
| Argument | Type | Description |
|---|---|---|
| q | string | Substring match on name, maker or description. |
| mcp | boolean | true = only harnesses with documented MCP support. |
| kind | string | Harness kind. |
| limit | integer | Max harnesses to return. |
| byo_model | boolean | true = only harnesses documented to accept your own model/provider. |
| interface | string | Interface prefix, e.g. CLI, IDE, desktop, SDK. |
Every AI build tool Vibe Shipped tracks (Cursor, Claude Code, Lovable, Bolt, Replit, v0, Windsurf, Rork, Base44) with official pricing and app stats. Use when: the user asks which AI build tools exist or what they cost, or you need tool ids for other calls. Do not use for: a ranking (top_tools), 2-4 side by side (compare_tools), coding-agent harnesses (list_harnesses). Returns: per tool: what, best_for, pricing (copied from the official page), pricing_url, pricing_checked (date), app count, stated revenue total and median, top apps, new_last_30d. Limits: No parameters. pricing null means no clear price on the official page; cite pricing_checked. Example: {}
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Rank AI build tools and coding-agent harnesses for an app idea with deterministic, documented scoring (no LLM). Use when: the user describes what they want to build and asks which AI tool to use. Do not use for: the user already named the tools to choose between (compare_tools). Returns: ranked results with score breakdown, pricing with checked date and source, and example apps with links. Limits: Scores use shipped-app counts, idea match, platform, experience, budget vs stated pricing and preferred harness. limit 1-10, default 5. Example: {"idea":"habit tracker mobile app","platform":"mobile","experience":"beginner","budget_usd_month":25}
| Argument | Type | Description |
|---|---|---|
| idea* | string | The app idea in plain text. |
| limit | integer | Number of recommendations. |
| platform | string | Target platform. |
| experience | string | The user's coding experience. |
| budget_usd_month | number | Monthly tool budget in USD; 0 = free tiers only. |
| preferred_harness | string | Slug or name the user prefers, e.g. claude-code. |
{
"type": "object",
"required": [
"idea"
],
"properties": {
"idea": {
"type": "string",
"minLength": 1,
"description": "The app idea in plain text."
},
"limit": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "Number of recommendations."
},
"platform": {
"enum": [
"web",
"mobile"
],
"type": "string",
"description": "Target platform."
},
"experience": {
"enum": [
"beginner",
"intermediate",
"experienced"
],
"type": "string",
"description": "The user's coding experience."
},
"budget_usd_month": {
"type": "number",
"minimum": 0,
"description": "Monthly tool budget in USD; 0 = free tiers only."
},
"preferred_harness": {
"type": "string",
"description": "Slug or name the user prefers, e.g. claude-code."
}
},
"additionalProperties": false
}Find real, shipped apps built with AI coding tools (Cursor, Claude Code, Lovable, Bolt, Replit, v0, Windsurf, Rork, Base44). Every app links to a public source showing which tool built it. Use when: the user wants real examples of apps built with a tool, in a category, or matching keywords. Do not use for: one known slug (get_app), newest apps without filters (latest_apps), revenue rankings (get_vibe50), general coding help. Returns: total and apps[] with slug, title, one_liner, tools, category, revenue_stated, monthly_usd, evidence_tier (verified|documented|claim), revenue_date, source_url, link (cite this). get_app has the evidence basis. Limits: q is AND keyword match over title, one-liner, category, builder, tools and stack; limit 1-50, default 10. Revenue is as stated, not audited. Example: {"tool":"lovable","q":"saas","limit":5}
| Argument | Type | Description |
|---|---|---|
| q | string | Keywords; every word must match. |
| tool | string | Tool id: cursor, claude-code, lovable, bolt, replit, v0, windsurf, rork, base44, grok-bot, other. |
| limit | integer | Max results. |
| category | string | Category id as listed by the site, e.g. consumer, saas, dev-tools, mobile-app. |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Keywords; every word must match."
},
"tool": {
"type": "string",
"description": "Tool id: cursor, claude-code, lovable, bolt, replit, v0, windsurf, rork, base44, grok-bot, other."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1,
"description": "Max results."
},
"category": {
"type": "string",
"description": "Category id as listed by the site, e.g. consumer, saas, dev-tools, mobile-app."
}
},
"additionalProperties": false
}Send an app built with AI to the Vibe Shipped human review queue. Use when: the user explicitly asks to list their own app and gives a public source (post, launch page or interview) naming the AI tool used. Do not use for: apps the user did not ask to submit, or apps without a public source. Returns: status pending, or isError with the validation message. Limits: Write, not destructive: nothing is published automatically. Example: {"title":"Habitly","url":"https://habitly.app","source_url":"https://x.com/maker/status/123","one_liner":"Habit tracker","tools":["lovable"],"builder_name":"Ana"}
| Argument | Type | Description |
|---|---|---|
| url* | string | App website. |
| title* | string | App name. |
| tools | array | Tool ids used, e.g. ["cursor"]. |
| one_liner | string | One-sentence description. |
| source_url* | string | Public post proving it was built with AI. |
| builder_name | string | Maker's name or handle. |
{
"type": "object",
"required": [
"title",
"url",
"source_url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "App website."
},
"title": {
"type": "string",
"minLength": 1,
"description": "App name."
},
"tools": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tool ids used, e.g. [\"cursor\"]."
},
"one_liner": {
"type": "string",
"description": "One-sentence description."
},
"source_url": {
"type": "string",
"format": "uri",
"description": "Public post proving it was built with AI."
},
"builder_name": {
"type": "string",
"description": "Maker's name or handle."
}
},
"additionalProperties": false
}Subscribe the user's own email to a Vibe Shipped newsletter: daily (new apps built with AI) or agent-brief (weekly AI coding tools and harnesses). Use when: the user explicitly asks to subscribe and gives their own email. Do not use for: any address the user did not provide. Returns: a receipt usable to unsubscribe (DELETE /api/subscribe). Limits: Write; idempotent per email and list. Example: {"email":"[email protected]","list":"agent-brief"}
| Argument | Type | Description |
|---|---|---|
| list | string | Which newsletter. |
| email* | string | The user's own email address. |
{
"type": "object",
"required": [
"email"
],
"properties": {
"list": {
"enum": [
"daily",
"agent-brief"
],
"type": "string",
"default": "daily",
"description": "Which newsletter."
},
"email": {
"type": "string",
"format": "email",
"description": "The user's own email address."
}
},
"additionalProperties": false
}Rank AI build tools by one metric computed from Vibe Shipped listings. Use when: the user asks which AI tool has the most shipped apps, the most stated revenue, or is trending. Do not use for: full stats without a ranking (list_tools). Returns: tools[] ordered by the metric, with the same fields as list_tools. Limits: by = count | revenue (total stated monthly USD) | median | trending (new listings in the last 30 days); limit 1-20. Revenue is as stated, not audited. Example: {"by":"revenue","limit":5}
| Argument | Type | Description |
|---|---|---|
| by | string | Ranking metric. |
| limit | integer | Number of tools. |
{
"type": "object",
"properties": {
"by": {
"enum": [
"count",
"revenue",
"median",
"trending"
],
"type": "string",
"default": "count",
"description": "Ranking metric."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 20,
"minimum": 1,
"description": "Number of tools."
}
},
"additionalProperties": false
}Dated changelog of the Vibe Shipped directory: apps built with AI, AI build tools, Agent Toolbox entries and agent harnesses that were added or updated, newest first. Use when: the user asks what changed recently in AI coding tools, or you want to refresh earlier results since a date. Do not use for: keyword search (search_apps) or full lists (list_tools, list_harnesses). Returns: items[] with type, slug, name, change (added|updated), date (YYYY-MM-DD), url to cite, source. Limits: since is inclusive; type takes app, tool, agent-tool, harness (comma-separated); limit 1-500, default 20. Example: {"since":"2026-10-15","type":"harness,agent-tool","limit":20}
| Argument | Type | Description |
|---|---|---|
| type | string | Entry type filter: app, tool, agent-tool or harness. Comma-separate several, e.g. "harness,agent-tool". |
| limit | integer | Max items to return. |
| since | string | Only changes on or after this date, format YYYY-MM-DD. |
{
"type": "object",
"properties": {
"type": {
"type": "string",
"description": "Entry type filter: app, tool, agent-tool or harness. Comma-separate several, e.g. \"harness,agent-tool\"."
},
"limit": {
"type": "integer",
"default": 20,
"maximum": 500,
"minimum": 1,
"description": "Max items to return."
},
"since": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only changes on or after this date, format YYYY-MM-DD."
}
},
"additionalProperties": false
}| open_source |
| boolean |
| true = only open source; false = only not open source. |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Substring match on name, maker or description."
},
"mcp": {
"type": "boolean",
"description": "true = only harnesses with documented MCP support."
},
"kind": {
"enum": [
"coding agent",
"framework"
],
"type": "string",
"description": "Harness kind."
},
"limit": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1,
"description": "Max harnesses to return."
},
"byo_model": {
"type": "boolean",
"description": "true = only harnesses documented to accept your own model/provider."
},
"interface": {
"type": "string",
"description": "Interface prefix, e.g. CLI, IDE, desktop, SDK."
},
"open_source": {
"type": "boolean",
"description": "true = only open source; false = only not open source."
}
},
"additionalProperties": false
}