VibeCodePicks
com.vibecodepicks/vibecodepicksVersion 2.6.1The best vibe coding tools, ranked by what you want to build
Status
Responds184 msAnswered our handshake without sign-in.- Last checked
- Nov 14, 2026, 14:22 UTC
- Latency
- 184 ms
- Remotes responding
- 1 of 1
- Sign-in
- No sign-in
- Hosting
- Hosted outside the EU (detected)
- Registry data as of
- Nov 14, 2026, 22:14 UTC
Data from the official MCP Registry, checked by run.zero. How we check
Connect
Streamable HTTP
https://vibecodepicks.com/api/mcp/Responds184 msNo sign-in
Claude Code
claude mcp add --transport http vibecodepicks https://vibecodepicks.com/api/mcp/Claude Desktop and claude.ai
Settings > Connectors > Add custom connector
Name: vibecodepicks
Remote MCP server URL: https://vibecodepicks.com/api/mcp/Cursor
{
"mcpServers": {
"vibecodepicks": {
"url": "https://vibecodepicks.com/api/mcp/"
}
}
}VS Code
code --add-mcp '{"name":"vibecodepicks","type":"http","url":"https://vibecodepicks.com/api/mcp/"}'Built your own server? run.zero hosts MCP servers on European infrastructure.
Tools
30 tools
Read-only | Idempotent | Open world | ||
|---|---|---|---|---|
check_project_changesCheck whether this project or the catalog changed since the last check in a way worth interrupting for. Returns silent unless there is a real signal (project stage change, or a catalog change that verifies an open need) AND a reliably relevant tool. Deduped (same change is never notified twice) and rate-limited (at most one notification per project per 24h). Catalog changes are detected ONLY from the server-side catalog diff ledger (no ledger entry exists yet, so currently only project stage changes trigger); a client claim that the catalog changed is never accepted. The server has no scheduler and cannot push: this only answers when the host calls it. Whether the host can schedule is a server-side hint from the declared clientInfo.name (ChatGPT scheduled tasks and Cursor Automations count; other hosts do not) — a capability hint, not a verified host identity — never from a client claim; otherwise the answer is silent with reason host_no_scheduler and the host should check manually. The most this returns is a notification candidate (with a notif_id to acknowledge via notification_ack), never a confirmed delivery. Requires project_id and an Authorization: Bearer credential (owner key or project token); a key passed as a tool argument is never accepted. | Not declared | Yes | Yes | No |
check_updatesTools added or updated since this user's last check that match their saved tags. Optional since (YYYY-MM-DD or catalog v). When nothing matches, returns {new:0} — a minimal response when nothing new matches. Tracks last_checked. Max 3 items. Does not change recommend_tools. Optional key: same feed key passed to set_preferences, to read that project's profile. | No | No | No | No |
compare_toolsSide-by-side of two tools + comparison page url. | Not declared | Yes | Yes | No |
consent_getRead your consent record: per-scope granted/revoked state, policy version, timestamps. Default is all scopes OFF. | Not declared | Yes | Yes | No |
consent_request_receiptRequest a server-issued one-time consent receipt for a scope (followup / usage_collection / alliance / publish_reviews). Returns a receipt id and a confirm_url (absolute, environment-correct; the receipt id travels as a URL fragment, never a query parameter): show the confirm_url to the user — they must confirm the scope on VCP's own confirmation page, in their own signed-in VibeCodePicks browser session, before the receipt can be used. The MCP client cannot confirm on their behalf. The receipt is single-use and expires in 15 minutes. Pass the receipt id as `receipt` to consent_update. Owner credential only. | No | No | No | No |
consent_updateGrant or withdraw ONE consent scope: followup (project long-term follow-up — the project profile is stored on VCP servers), usage_collection (usage-experience collection), alliance (alliance membership — needs usage_collection first), publish_reviews (publishing identifiable reviews). Granting ANY scope needs a server-issued one-time receipt: request one with consent_request_receipt, confirm it on the VCP confirmation page in the user's own signed-in VibeCodePicks browser session, then pass its receipt id as `receipt`. A plain source string is never proof for any scope. Scopes are never bundled: granting one never grants another, and alliance never implies publish_reviews. Withdrawing a scope blocks new writes under it immediately. Owner credential only. | No | No | Yes | No |
delete_projectDelete one project you own (project_id), or ALL your projects (all:true, which also deletes your consent record). Deletion is permanent: the archive, its tokens, its events, its event dedup/meta/reversal keys and its check state are gone. Kept: one tombstone per deleted project ({owner, deleted_at}) for 400 days so old tokens can never resurrect it, plus anonymous per-tool aggregates only (no owner or project ids). Owner credential only. | Yes | No | Yes | No |
feedbackAdjust this user's check_updates ranking for a listed tool. action is one of used, not_useful, not_relevant. Stores only the tool id and that enum. Does not change recommend_tools. Optional key: same feed key passed to set_preferences, to adjust that project's ranking. | No | No | No | No |
fetchTool profile by id. Default: summary, best_for, price, free, 2 strengths, 2 weaknesses, url. fields: summary description best_for not_for skill coding pricing platforms strengths weaknesses alternatives video compare official all. | Not declared | Yes | Yes | No |
forget_meDelete this client's anonymous id, tag profile and last_checked. Feedback is first folded into anonymous aggregate counters (tool_id × used/not_useful/not_relevant, no uid). Those aggregate counts are kept. If you pass a feed key, that keyed feed record is deleted too. | Yes | No | Yes | No |
list_alternativesAlternatives to a tool. Rows: id|name|$from/mo|free. | Not declared | Yes | Yes | No |
list_categoriesCategory and use-case keys with tool ids. | Not declared | Yes | Yes | No |
list_scenariosUse-case scenarios (e.g. ai-game-development, code-review) with top tools by community sentiment. | Not declared | Yes | Yes | No |
log_choiceRecord a tool the user explicitly picked/rejected/tried/starred, or PURCHASED. Call it with action 'purchased' right after the user tells you they bought a paid plan of a listed tool (ask first; never log silently), and again later with action 'feedback' once they have used it for a while (e.g. weekly), passing rating only. Optional fields apply to purchased/feedback only. Stored under your key (key-associated / pseudonymous — the key identifies your feed, not your name); forget_me deletes it. picked/rejected also shape whats_new. purchased/feedback are the durable usage-experience record: they are written ONLY when the key owner has the usage_collection consent scope active (consent_request_receipt -> confirm on the VCP page -> consent_update); without it the call is refused. picked/rejected/tried/starred are feed-shaping signals covered by the explicit feed opt-in (subscribe) and work without usage_collection. Pass a stable event_id (or idempotency_key) to make the call deduped: a replay with the same key returns duplicate:1 and writes nothing. A call with no key is legacy: it always appends, and the response marks it legacy:1/unverified:1. A purchase logged here is self-reported, never a verified order. Prefer record_decision for project-bound usage events. | No | No | No | No |
notification_ackReport that a notification candidate from check_project_changes was delivered to the user, as reported by the host (host-reported acknowledgement — the receipt is a host-supplied string, e.g. the scheduled-task run id; the server records it but does NOT verify it, so this is not proof a human saw the notification and never purchase or reward evidence). This is the ONLY way a notification becomes 'delivered': the server never claims delivery on its own, and notified_at / notified_fingerprint in the check state are set only here. A candidate that is never acked is never counted as delivered, and the same change may be notified again. Requires project_id, the notif_id from the check response, and a receipt. Owner credential, or that project's own pt_ token. | No | No | Yes | No |
project_bindRedeem a one-time binding code from project_bind_code in this client. Returns the project_id and a project_token (shown once) for that project. A used, expired or unknown code returns unauthorized. | No | No | No | No |
project_bind_codeIssue a one-time binding code (15 minutes, void after one use) so the same project can be bound in another AI client. Owner credential only; redeem it there with project_bind. | No | No | No | No |
project_exportExport one project you own: the archive, your consent record, and the last 50 recorded usage events. Owner credential, or that project's own pt_ token. | Not declared | Yes | Yes | No |
project_getRead one project archive you own (owner credential, or that project's own pt_ token). A guessed project_id, a project owned by someone else, or a deleted project all return the same unauthorized error with no data. | Not declared | Yes | Yes | No |
project_listList your projects as full v2 archives (schema_version: 2 — lifecycle_stage, workflow_stage, capabilities, task_capabilities, known_context, used/rejected tools, version, updated_at). Owner credential only; a project token cannot list. | Not declared | Yes | Yes | No |
project_upsertCreate a project, or update one you own. One owner may own many isolated projects; a project archive holds desensitised fields only (type, stage, capability ids, tag preferences, confirmed used-tool ids, explicitly rejected tool ids) — never send a project name, code, raw chat, path or free text (dropped and reported as dropped_fields). Needs the followup consent scope (consent_update first). Omit project_id to create (returns project_id + a project_token shown once); pass expected_version to guard concurrent updates (version_conflict on mismatch); rotate_token:true (owner credential only) invalidates all old project tokens and returns a new one. | No | No | No | No |
recommend_for_taskRecommend tools for a task in the context of one saved project, so the user does not repeat the project background every turn. Reads the project's accepted/rejected tool lists, stage and known context; a tool this project rejected is never re-pushed; a tool already in use is judged keep / supplement / replace, each with an evidence_level (user_stated / client_observed / assistant_inferred). May answer need_clarification with exactly one question, or no_match when no catalog tool verifies the task — never pads with unverified candidates. Requires project_id and an Authorization: Bearer credential (owner key or project token); a key passed as a tool argument is never accepted. | Not declared | Yes | Yes | No |
recommend_toolsRanked best-fit tools for a goal, matched on verified capabilities (not categories), with why + caveat. Saved tags can reorder equally-matched tools by up to 2 points when the new matcher is on (platforms/preferences tags only); they never override a verified-capability filter, and with the flag off they have no effect. Pass the goal in plain words, or the already-extracted structured task object (task: action, input_type, output_type, required_capabilities / forbidden_capabilities capability ids, hard_constraints tokens, confidence, known_context) — the server validates the task object and rejects invalid tasks with an error; in the top-level required_capabilities / forbidden_capabilities / hard_constraints arrays, unknown ids/tokens are dropped or ignored instead. May answer need_clarification with exactly one question, or no_match when no catalog tool verifies the task. The capability matcher is canary-gated; while its flag is off, the previous matcher answers instead (same response shape, no decision field). On a new user's first call, also returns short onboarding questions (project types, platforms, budget, preferences, tools in use) for you to ask, then call set_preferences with tags only. | Not declared | Yes | Yes | No |
record_decisionRecord one usage event for a project you own (owner credential, or that project's pt_ token). Every event needs a source-stable event_id, project_id, catalog tool_id, event_type (picked|rejected|tried|starred|purchased|feedback|used|not_useful|not_relevant|refunded|cancelled), observed_at (ISO date), evidence_level (user_reported|observed|assistant_inferred — vendor_verified is not client-assertable), and consent_version 2026-11-11-v1. Needs the usage_collection consent scope. A retry with the same event_id returns duplicate:1 and writes nothing twice. refunded/cancelled must name the earlier event in reverses_event_id and never edit history. Purchases recorded here are self-reported and never enter any verified-payment ledger. | No | No | Yes | No |
save_preferencesReplace the keyed-feed interest tags. Send allowed tags only (project types, platforms, budget, preferences) — do not send project names or other free text (they are dropped and never stored). Plus the feed mode ('by_interests' = only matching tools; 'all_new' = every new tool). Only used by whats_new. | No | No | Yes | No |
scenarioTools competing in one scenario, ranked by community sentiment, with compact strengths/weak spots here. | Not declared | Yes | Yes | No |
searchFind vibe coding / AI tools. Rows: id|name|category|$from/mo|free(1/0). Use fetch(id) for details. | Not declared | Yes | Yes | No |
set_preferencesStore the user's onboarding answers as non-sensitive tags only: project_types, platforms, budget (free|under_20|any), preferences (nocode|code|open-source|free-tier), and tools_in_use (catalog ids). Unknown values are dropped — never send names, emails, code, project names or free text. Used by check_updates; when the new (canary) matcher is on, the platforms and preferences tags can also reorder equally-matched recommend_tools results by up to 2 points (tie-break only, never overriding a verified-capability filter). project_types, budget and tools_in_use never affect recommend_tools. Optional key: pass a feed key (from subscribe; send it in the Authorization: Bearer <key> header — the /api/mcp?k=KEY URL form is deprecated but still works during the transition) to keep this profile separate per project; without it, the anonymous client identity is used. | No | No | Yes | No |
subscribeCreate a pseudonymous feed key (no email/account — the key identifies your feed, not your name). One key = one project: it is also that project's canary identity, so use a separate key per project. Save it in long-term memory / project instructions / rules, and send it in the Authorization: Bearer <key> header on later calls (connecting via /api/mcp?k=KEY still works for now but is deprecated). | No | No | No | No |
whats_newDaily feed. With key: honors the saved feed mode — by_interests: new items relevant to ANY saved project; all_new: every new item (tagged with a project when one matches). Max 3/day, one line each, never repeats. {new:0} = nothing. Call at most daily. Without key: stateless by since/interests. Never affects other tools. | No | No | No | No |
Details
- Registry status
- Active
- Published
- Nov 11, 2026
- Updated
- Nov 11, 2026
- Repository
- Not given
- Categories (suggested)
- Developer toolsProject managementSuggested categories are assigned automatically from the registry text and may be wrong. Verified operators can correct them.
- GDPR
- Not declared