← The evidence ledger
Evidence row 291324
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint e5c69082-424e-4aa2-b3af-6cf9501690ca
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- ded552de5e183119ee6c51ff9f2c5f63e36aa2805f6533745e441abb0624fb17
- Leaf
- 0x089df0ca9167bfb3b1d7839aac2de8471fc68e9808fe961a68468f0e5c223d14
What was observed
{
"count": 16,
"tools": [
{
"description": "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.\nUse when: the user is choosing between specific named tools.\nDo not use for: open-ended \"what should I use to build X\" (recommend_stack); a single tool (get_tool).\nReturns: 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).\nLimits: 2-4 slugs; isError bad_input if fewer than 2 resolve.\nExample: {\"tools\":[\"claude-code\",\"openai-codex-cli\",\"aider\"]}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"tools": {
"description": "2-4 slugs from list_tools, list_harnesses or list_agent_tools.",
"items": {
"type": "string"
},
"maxItems": 4,
"minItems": 2,
"type": "array"
}
},
"required": [
"tools"
],
"type": "object"
},
"name": "compare_tools"
},
{
"description": "Full record for one listed app by slug.\nUse 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.\nDo not use for: discovering apps (search_apps).\nReturns: the app record, including evidence_tier, evidence_basis, evidence_checked_at and link; or isError code not_found.\nLimits: Only live listings are returned.\nExample: {\"slug\":\"stella\"}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "App slug, e.g. \"stella\".",
"minLength": 1,
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_app"
},
{
"description": "Full sourced record for one agent harness by slug.\nUse when: you have a harness slug and need its sources, caveats, pricing or feature evidence.\nDo not use for: listing or filtering harnesses (list_harnesses).\nReturns: the harness with source URLs, dated checks (pricing, features, stars, last_checked) and related Vibe Shipped pages; or isError not_found.\nLimits: Slugs come from list_harnesses.\nExample: {\"slug\":\"openai-codex-cli\"}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Harness slug, e.g. claude-code, openai-codex-cli, aider, langgraph.",
"minLength": 1,
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_harness"
},
{
"description": "Vibe Shipped sponsorship offers (featured listing, week sponsor, Weekly Top 10 presenting sponsor, month takeover) with prices and Stripe checkout links.\nUse when: the user asks about advertising or sponsoring on Vibe Shipped.\nDo not use for: paying on the user's behalf; hand the checkout URL to the human.\nReturns: offers[], a checkout object for the $300 Week Sponsor, contact email and sponsor page URL.\nLimits: No parameters. Sponsored placements are labeled; rankings are not for sale.\nExample: {}",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "get_sponsorship_info"
},
{
"description": "Full sourced facts for one AI build tool, agent harness or Agent Toolbox entry.\nUse when: you need pricing, licence, features or app stats for a single slug.\nDo not use for: several tools at once (compare_tools).\nReturns: pricing with pricing_checked and source, last_checked, app stats and Vibe Shipped links; or isError not_found.\nLimits: Slugs come from list_tools, list_harnesses or list_agent_tools.\nExample: {\"slug\":\"lovable\"}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"slug": {
"description": "Tool, harness or Agent Toolbox slug, e.g. cursor, claude-code, cline.",
"minLength": 1,
"type": "string"
}
},
"required": [
"slug"
],
"type": "object"
},
"name": "get_tool"
},
{
"description": "The Vibe Shipped 50: apps built with AI coding tools, ranked by stated, sourced monthly USD revenue.\nUse when: the user asks how much vibe-coded apps earn, or for the top earners built with a tool.\nDo not use for: finding apps by keyword (search_apps).\nReturns: 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.\nLimits: limit 1-50, default 20. Always say figures are as stated and give the evidence tier.\nExample: {\"tool\":\"cursor\",\"limit\":10}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"include_unranked": {
"default": false,
"description": "Also return the unranked/notable list.",
"type": "boolean"
},
"limit": {
"default": 20,
"description": "Number of ranked apps.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"tool": {
"description": "Only apps built with this tool id, e.g. cursor.",
"type": "string"
}
},
"type": "object"
},
"name": "get_vibe50"
},
{
"description": "The most recently added apps built with AI, newest first.\nUse when: the user asks what was shipped recently, with no filter.\nDo not use for: filtering by tool or keyword (search_apps); tool and harness changes (whats_new).\nReturns: apps[] with the same fields as search_apps.\nLimits: limit 1-50, default 10.\nExample: {\"limit\":5}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 10,
"description": "Number of apps.",
"maximum": 50,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "latest_apps"
},
{
"description": "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.\nUse 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.\nDo not use for: harness features such as MCP or sandboxing (list_harnesses).\nReturns: per tool: what, best_for, licence (GitHub-checked, with date), pricing with source and pricing_checked, last_checked.\nLimits: category is one of the enum values; open_source true filters to open source; limit 1-100, default 20 (total says how many matched).\nExample: {\"category\":\"CLI agent\",\"open_source\":true}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Category (agents, plus MCP servers, AI coding models, hosting, databases, auth, payments).",
"enum": [
"CLI agent",
"IDE agent",
"Autonomous SWE agent",
"Browser agent",
"Workflow agent",
"MCP server",
"AI coding model",
"Hosting",
"Database",
"Auth",
"Payments"
],
"type": "string"
},
"limit": {
"default": 20,
"description": "Max tools to return.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"open_source": {
"description": "true = only open-source tools.",
"type": "boolean"
}
},
"type": "object"
},
"name": "list_agent_tools"
},
{
"description": "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.\nUse when: the user is choosing a coding agent or agent framework by licence, interface, model support or features.\nDo not use for: one harness in depth (get_harness); app builders such as Lovable (list_tools).\nReturns: per harness: maker, interface, licence, GitHub stars with date, models, pricing with pricing_checked, features (MCP, subagents, headless, sandboxing) with features_checked, last_checked.\nLimits: 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.\nExample: {\"kind\":\"coding agent\",\"open_source\":true,\"mcp\":true}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"byo_model": {
"description": "true = only harnesses documented to accept your own model/provider.",
"type": "boolean"
},
"interface": {
"description": "Interface prefix, e.g. CLI, IDE, desktop, SDK.",
"type": "string"
},
"kind": {
"description": "Harness kind.",
"enum": [
"coding agent",
"framework"
],
"type": "string"
},
"limit": {
"default": 25,
"description": "Max harnesses to return.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"mcp": {
"description": "true = only harnesses with documented MCP support.",
"type": "boolean"
},
"open_source": {
"description": "true = only open source; false = only not open source.",
"type": "boolean"
},
"q": {
"description": "Substring match on name, maker or description.",
"type": "string"
}
},
"type": "object"
},
"name": "list_harnesses"
},
{
"description": "Every AI build tool Vibe Shipped tracks (Cursor, Claude Code, Lovable, Bolt, Replit, v0, Windsurf, Rork, Base44) with official pricing and app stats.\nUse when: the user asks which AI build tools exist or what they cost, or you need tool ids for other calls.\nDo not use for: a ranking (top_tools), 2-4 side by side (compare_tools), coding-agent harnesses (list_harnesses).\nReturns: 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.\nLimits: No parameters. pricing null means no clear price on the official page; cite pricing_checked.\nExample: {}",
"inputSchema": {
"additionalProperties": false,
"properties": {},
"type": "object"
},
"name": "list_tools"
},
{
"description": "Rank AI build tools and coding-agent harnesses for an app idea with deterministic, documented scoring (no LLM).\nUse when: the user describes what they want to build and asks which AI tool to use.\nDo not use for: the user already named the tools to choose between (compare_tools).\nReturns: ranked results with score breakdown, pricing with checked date and source, and example apps with links.\nLimits: Scores use shipped-app counts, idea match, platform, experience, budget vs stated pricing and preferred harness. limit 1-10, default 5.\nExample: {\"idea\":\"habit tracker mobile app\",\"platform\":\"mobile\",\"experience\":\"beginner\",\"budget_usd_month\":25}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"budget_usd_month": {
"description": "Monthly tool budget in USD; 0 = free tiers only.",
"minimum": 0,
"type": "number"
},
"experience": {
"description": "The user's coding experience.",
"enum": [
"beginner",
"intermediate",
"experienced"
],
"type": "string"
},
"idea": {
"description": "The app idea in plain text.",
"minLength": 1,
"type": "string"
},
"limit": {
"default": 5,
"description": "Number of recommendations.",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"platform": {
"description": "Target platform.",
"enum": [
"web",
"mobile"
],
"type": "string"
},
"preferred_harness": {
"description": "Slug or name the user prefers, e.g. claude-code.",
"type": "string"
}
},
"required": [
"idea"
],
"type": "object"
},
"name": "recommend_stack"
},
{
"description": "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.\nUse when: the user wants real examples of apps built with a tool, in a category, or matching keywords.\nDo not use for: one known slug (get_app), newest apps without filters (latest_apps), revenue rankings (get_vibe50), general coding help.\nReturns: 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.\nLimits: 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.\nExample: {\"tool\":\"lovable\",\"q\":\"saas\",\"limit\":5}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"category": {
"description": "Category id as listed by the site, e.g. consumer, saas, dev-tools, mobile-app.",
"type": "string"
},
"limit": {
"default": 10,
"description": "Max results.",
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"q": {
"description": "Keywords; every word must match.",
"type": "string"
},
"tool": {
"description": "Tool id: cursor, claude-code, lovable, bolt, replit, v0, windsurf, rork, base44, grok-bot, other.",
"type": "string"
}
},
"type": "object"
},
"name": "search_apps"
},
{
"description": "Send an app built with AI to the Vibe Shipped human review queue.\nUse 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.\nDo not use for: apps the user did not ask to submit, or apps without a public source.\nReturns: status pending, or isError with the validation message.\nLimits: Write, not destructive: nothing is published automatically.\nExample: {\"title\":\"Habitly\",\"url\":\"https://habitly.app\",\"source_url\":\"https://x.com/maker/status/123\",\"one_liner\":\"Habit tracker\",\"tools\":[\"lovable\"],\"builder_name\":\"Ana\"}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"builder_name": {
"description": "Maker's name or handle.",
"type": "string"
},
"one_liner": {
"description": "One-sentence description.",
"type": "string"
},
"source_url": {
"description": "Public post proving it was built with AI.",
"format": "uri",
"type": "string"
},
"title": {
"description": "App name.",
"minLength": 1,
"type": "string"
},
"tools": {
"description": "Tool ids used, e.g. [\"cursor\"].",
"items": {
"type": "string"
},
"type": "array"
},
"url": {
"description": "App website.",
"format": "uri",
"type": "string"
}
},
"required": [
"title",
"url",
"source_url"
],
"type": "object"
},
"name": "submit_app"
},
{
"description": "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).\nUse when: the user explicitly asks to subscribe and gives their own email.\nDo not use for: any address the user did not provide.\nReturns: a receipt usable to unsubscribe (DELETE /api/subscribe).\nLimits: Write; idempotent per email and list.\nExample: {\"email\":\"me@example.com\",\"list\":\"agent-brief\"}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"email": {
"description": "The user's own email address.",
"format": "email",
"type": "string"
},
"list": {
"default": "daily",
"description": "Which newsletter.",
"enum": [
"daily",
"agent-brief"
],
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "subscribe_newsletter"
},
{
"description": "Rank AI build tools by one metric computed from Vibe Shipped listings.\nUse when: the user asks which AI tool has the most shipped apps, the most stated revenue, or is trending.\nDo not use for: full stats without a ranking (list_tools).\nReturns: tools[] ordered by the metric, with the same fields as list_tools.\nLimits: 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.\nExample: {\"by\":\"revenue\",\"limit\":5}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"by": {
"default": "count",
"description": "Ranking metric.",
"enum": [
"count",
"revenue",
"median",
"trending"
],
"type": "string"
},
"limit": {
"default": 10,
"description": "Number of tools.",
"maximum": 20,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "top_tools"
},
{
"description": "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.\nUse when: the user asks what changed recently in AI coding tools, or you want to refresh earlier results since a date.\nDo not use for: keyword search (search_apps) or full lists (list_tools, list_harnesses).\nReturns: items[] with type, slug, name, change (added|updated), date (YYYY-MM-DD), url to cite, source.\nLimits: since is inclusive; type takes app, tool, agent-tool, harness (comma-separated); limit 1-500, default 20.\nExample: {\"since\":\"2026-10-15\",\"type\":\"harness,agent-tool\",\"limit\":20}",
"inputSchema": {
"additionalProperties": false,
"properties": {
"limit": {
"default": 20,
"description": "Max items to return.",
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"since": {
"description": "Only changes on or after this date, format YYYY-MM-DD.",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"type": {
"description": "Entry type filter: app, tool, agent-tool or harness. Comma-separate several, e.g. \"harness,agent-tool\".",
"type": "string"
}
},
"type": "object"
},
"name": "whats_new"
}
]
}What the leaf hashes
{"body":"ded552de5e183119ee6c51ff9f2c5f63e36aa2805f6533745e441abb0624fb17","id":291324,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793048004980934,"prev":null,"subject":"e5c69082-424e-4aa2-b3af-6cf9501690ca","subject_kind":"endpoint"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (296695 rows).
- 0x089e52d3912ac37aa50a7b3896952a733b8877d981d494f979c60e41495ed6ae
- 0xb9c0095e85434594208831834ac342e35ae8691a76f406f86fa11f0046a697d0
- 0x6a930cf501178c9a415a2a3b07a9b37c742fedaf97c47d61705717e907ee67a8
- 0xd5162a5fe39da6db3bd461a00bf295930d2b3e5a7a0eb09163a91d38a227dc01
- 0x60cfd45365f8216927611a4e831ff79aefaff998903191dfd54f2df45330073c
- 0x6571b743378255b1dfd08637bcf010b2caa7b55ebca09de2214fd1ad28a78e62
- 0xe37cc7a6db59d9ebd21acb30dde5b5ed8fd0da6f211f39fbebcdce604ee447d7
- 0x1a6f2fa0aa2e9a98924de7289d5505c9a84626501156a221fcd4f5552521ba8b
- 0xc68dcfc8916eaabe6f067ff473f2b111c7db708492210356f248a746ec5efecf
- 0x4b8d7ca0c4ae813a9cf284d4f688cb47a1d02fa6262df9e9bad0ce5770784284
- 0x3585060104222ad1aae3396450719e555d4d013fa2b3a7b43777a1722ca9ce22
- 0x6003e14d04cde1d24b195ac15b568dd483e04047e0f2ff64d9632a51a8f7123d
- 0xe5a836cf25a8dfc72c9e3b6a69a7561a1f61f50f9cf36707d36f6e926aa15dec
- 0xa96bb9408ce00a0d40ddaba8736257dfce76d5478b131d69db1afdf8a824312b
- 0x7ddc2fead128357f881b63e6c7c26d7fbbb84fca6c7c8e0bbfe386de86ca8d39
- 0xc6a4d7899a0f442958e26505011190b7cff2483611c1b94eba9043e0ba9ac36e
- 0x8c756542e482157df0c36464d75c937b845e4423dbbcfad08f0cf8d5a16b9a13
- 0x20704208aa6923d6b2450ef74ede87a6e0265d46447926038fe9506e9e154b2d
- 0x9b9ce5b74b9bab5121612ef6b64920a8d453cbf311096a423eef9702747e868a
- Day root
- 0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
- Chained
- 0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
- Published
- On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae