VibeCodePicks MCP
An MCP server that connects AI assistants to VibeCodePicks' catalog of AI coding and creation tools. It allows agents to search for tools, fetch detailed profiles, recommend tools based on user goals, compare options, and access community sentiment data regarding pricing, free tiers, and alternatives.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://vibecodepicks.com/api/mcpWhat you can do with it
- Search for AI tools by keyword or category
- Recommend tools based on specific development goals
- Compare features and pricing between different AI tools
- Fetch detailed profiles and community sentiment for specific tools
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- vibecodepicks 2.5.1
- MCP protocol
- 2025-06-18
- Tools
- 13 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
13 advertised
search — Search tools
Keyword search over VibeCodePicks' reviewed AI coding and AI creation tools. Use when the user names a tool or a kind of tool ('is there an AI tool for deploying my app', 'find a no-code SaaS builder') and you need tool ids. Not for 'which is best for me' (use recommend_tools). Input: `query` (plain words, e.g. 'no-code SaaS builder'); `limit` (default 5), `offset` for paging. Returns one row per tool: id|name|category|lowest paid $/month|has free tier (1/0), and the next offset. Call fetch(id) for details.
{
"type": "object",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"description": "number of results, default 5"
},
"query": {
"type": "string",
"description": "plain words, e.g. 'no-code SaaS builder'"
},
"offset": {
"type": "integer",
"description": "paging offset from the previous result"
},
"verbose": {
"type": "boolean",
"description": "returns long-form fields"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}fetch — Get tool details
Get one tool's profile when the user asks about a specific tool ('what does Cursor cost', 'does Bolt have a free plan', 'what's Lovable bad at'). Input: `id` from search/recommend results (e.g. 'cursor'); optional `fields` (summary, description, best_for, not_for, skill, coding, pricing, platforms, strengths, weaknesses, alternatives, video, compare, official, all). Default returns summary, who it's best for, lowest paid price and plan text, free tier text, 2 strengths, 2 weaknesses, go link (tracked link to the official site) and the VCP page URL to cite.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "tool id from search/recommend results (e.g. 'cursor')"
},
"fields": {
"enum": [
"summary",
"description",
"best_for",
"not_for",
"skill",
"coding",
"pricing",
"platforms",
"strengths",
"weaknesses",
"alternatives",
"video",
"compare",
"official",
"all"
],
"type": "array",
"items": {
"type": "string"
},
"description": "which profile fields to return"
},
"verbose": {
"type": "boolean",
"description": "returns long-form fields"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}recommend_tools — Recommend tools
Recommend tools for what the user is building. Use for 'what should I use to build X', 'best free tool for a beginner who can't code', 'which AI tool fits my project'. Fill inputs from the conversation instead of asking when you already know them: `goal` (the project in plain words, required), `can_code` (true/false), `budget` ('free' or max USD per month), `platform` (e.g. 'web', 'ios', 'mac'), `limit`/`offset`. Returns ranked tools with a one-line why, the main caveat (what it is not good for), price from, free tier flag, page URL and go link. Rankings are not affected by saved preferences or payments. If the user has a feed key and later picks one, offer log_choice.
{
"type": "object",
"required": [
"goal"
],
"properties": {
"goal": {
"type": "string",
"description": "the project in plain words"
},
"limit": {
"type": "integer",
"description": "number of results, default 5"
},
"budget": {
"type": "string",
"description": "'free' or max USD per month"
},
"offset": {
"type": "integer",
"description": "paging offset from the previous result"
},
"verbose": {
"type": "boolean",
"description": "returns long-form fields"
},
"can_code": {
"type": "boolean",
"description": "whether the user can code (true/false)"
},
"platform": {
"type": "string",
"description": "target platform, e.g. 'web', 'ios', 'mac'"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}compare_tools — Compare two tools
Compare two named tools side by side when the user asks 'A vs B' or 'should I use A or B'. Inputs: `a`, `b` tool ids (use search to resolve names). Returns for each: category, lowest paid price and plan text, free tier, skill level, needs coding, best for, 2 strengths, 2 weaknesses, and the VCP comparison page URL. For more than two tools use recommend_tools or scenario.
{
"type": "object",
"required": [
"a",
"b"
],
"properties": {
"a": {
"type": "string",
"description": "first tool id (use search to resolve names)"
},
"b": {
"type": "string",
"description": "second tool id (use search to resolve names)"
},
"verbose": {
"type": "boolean",
"description": "returns long-form fields"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}list_alternatives — Find alternatives
List tools that can replace a given tool, for 'alternatives to X', 'cheaper/free tool like X', 'I'm leaving X'. Input: `tool` id; `limit`/`offset`. Returns rows id|name|lowest paid $/month|free tier (1/0) and the VCP alternatives page URL. Then fetch or compare_tools for details.
{
"type": "object",
"required": [
"tool"
],
"properties": {
"tool": {
"type": "string",
"description": "tool id to find alternatives for"
},
"limit": {
"type": "integer",
"description": "number of results, default 5"
},
"offset": {
"type": "integer",
"description": "paging offset from the previous result"
},
"verbose": {
"type": "boolean",
"description": "returns long-form fields"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}list_scenarios — List scenarios
List the use cases VibeCodePicks tracks (e.g. landing-page, mobile-app, code-review, ai-game-development) with how often each was discussed and the top 3 tools people mention for it, from a dated window of public community posts. Use to find a scenario slug, or when the user asks 'what do people use for X'. No input. Returns slug, title, mention count, top tool ids, page URL, and the date window.
{
"type": "object",
"properties": {}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}scenario — Scenario ranking
Rank the tools people actually use for one use case, by number of community mentions in a dated window, with what users praise and complain about. Use for 'what's the best AI code review tool according to users', 'what do people use for mobile apps'. Input: `slug` from list_scenarios; `limit`. Returns per tool: id, mention count, main strengths and weak spots (M = most mentions, S = some), the date window and last update date. Say the window when quoting.
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "scenario slug from list_scenarios"
},
"limit": {
"type": "integer",
"description": "number of results, default 5"
},
"verbose": {
"type": "boolean",
"description": "returns long-form fields"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}list_categories — List categories
List VibeCodePicks' tool categories (e.g. editor, terminal, builder, agent, video, image) with the tool ids in each. Use when the user wants to browse a whole kind of tool ('show me all terminal coding agents') or you need valid category names. Takes no required input. Returns category → tool ids.
{
"type": "object",
"properties": {
"verbose": {
"type": "boolean",
"description": "returns long-form fields"
}
}
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true
}whats_new — What's new for you
Check for new AI coding tools that match the user's saved projects. Use once a day (e.g. at the start of a work session) when the user has a feed key, or when they ask 'anything new for my project?'. Inputs: `key` (uses saved projects and mode, never repeats items, max 3 per day); without a key, optional `since` (date) and `interests` for a one-off look. Returns `new` count and one line per item: name, category, [project it matches], one-line summary, page URL. `{new:0}` means nothing new — say so briefly or stay silent. Has no effect on other tools.
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "the user's anonymous feed key from subscribe"
},
"limit": {
"type": "integer",
"description": "number of results, default 5"
},
"since": {
"type": "string",
"description": "only tools added on or after this date, format YYYY-MM-DD (default: 7 days ago)"
},
"interests": {
"type": "array",
"items": {
"type": "string"
},
"description": "interest tags to filter by, for a one-off look without a key"
}
}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}subscribe — Subscribe to the feed
Start the user's personal new-tools watch. Only after the user has agreed to the feed (explain it first; see server instructions). Creates an anonymous key — no email or account. No input. Returns `key` and a note. Save the key in long-term memory / project rules (or connect with /api/mcp?k=KEY), then call save_preferences with their projects and chosen mode.
{
"type": "object",
"properties": {}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}save_preferences — Save your preferences
Save which projects the user wants watched for new tools, e.g. 'my Next.js SaaS: auth, deploy, payments'. Use after subscribe, or when the user says they started/finished a project or changed interests. Replaces the whole list each time, so send all projects. Inputs: `key`; `projects` [{name, interests: short tags}]; `mode` 'by_interests' (only matching new tools) or 'all_new' (every new tool). Returns ok, project count, mode. Only whats_new reads this; it never changes search or recommendations.
{
"type": "object",
"required": [
"projects"
],
"properties": {
"key": {
"type": "string",
"description": "the user's anonymous feed key from subscribe"
},
"mode": {
"enum": [
"by_interests",
"all_new"
],
"type": "string",
"description": "'by_interests' (only matching new tools) or 'all_new' (every new tool)"
},
"projects": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"interests"
],
"properties": {
"name": {
"type": "string",
"description": "project name"
},
"interests": {
"type": "array",
"items": {
"type": "string"
},
"description": "short interest tags"
}
}
},
"description": "list of projects to watch (replaces the whole list each time)"
}
}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}log_choice — Log a choice or purchase
Record what the user decided about a tool for their project, after asking them: picked, rejected, tried, starred, purchased (a paid plan), or feedback (later, with a 1–5 rating and short what worked / fell short). Use when the user says 'I'll go with Bolt', 'Cursor didn't work for me', 'I bought Lovable Pro'. Never log silently. Inputs: `id`, `action`, optional `key`, and for purchased/feedback: plan, price_usd, period, rating, worked, fell_short, combo (other tool ids used together). No personal data. Returns ok. picked/rejected shape whats_new; it never changes rankings.
{
"type": "object",
"required": [
"id",
"action"
],
"properties": {
"id": {
"type": "string",
"description": "tool id"
},
"key": {
"type": "string",
"description": "the user's anonymous feed key from subscribe"
},
"plan": {
"type": "string",
"description": "Plan bought, e.g. 'Pro monthly'"
},
"combo": {
"type": "array",
"items": {
"type": "string"
},
"description": "Ids of other tools used together with this one"
},
"action": {
"enum": [
"picked",
"rejected",
"tried",
"starred",
"purchased",
"feedback"
],
"type": "string",
"description": "what the user decided"
},
"period": {
"enum": [
"month",
"year",
"one_time"
],
"type": "string",
"description": "billing period"
},
"rating": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "1-5 rating for feedback"
},
"worked": {
"type": "string",
"description": "What worked well (short, no personal data)"
},
"price_usd": {
"type": "number",
"description": "Price paid per period in USD"
},
"fell_short": {
"type": "string",
"description": "What fell short (short, no personal data)"
}
}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}forget_me — Forget me
Permanently delete everything stored for the user's feed key: projects, interests, items shown, logged choices and purchases. Use when the user asks to stop the feed, delete their data, or be forgotten. Input: `key`. Returns ok and deleted count. Cannot be undone; confirm with the user first.
{
"type": "object",
"properties": {
"key": {
"type": "string",
"description": "the user's anonymous feed key from subscribe"
}
}
}{
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": true
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 605 ms
- 95th percentile latency
- 605 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 605 ms · metadata changed · 13 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http vibecodepicks-mcp https://vibecodepicks.com/api/mcpCodex
codex mcp add vibecodepicks-mcp --url https://vibecodepicks.com/api/mcpCursor
{
"mcpServers": {
"vibecodepicks-mcp": {
"url": "https://vibecodepicks.com/api/mcp"
}
}
}Cline
{
"mcpServers": {
"vibecodepicks-mcp": {
"type": "streamableHttp",
"url": "https://vibecodepicks.com/api/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"vibecodepicks-mcp": {
"type": "http",
"url": "https://vibecodepicks.com/api/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http vibecodepicks-mcp https://vibecodepicks.com/api/mcpClaude Desktop
{
"mcpServers": {
"vibecodepicks-mcp": {
"url": "https://vibecodepicks.com/api/mcp"
}
}
}Windsurf
{
"mcpServers": {
"vibecodepicks-mcp": {
"serverUrl": "https://vibecodepicks.com/api/mcp"
}
}
}Let your agent find its tools
Find servers like VibeCodePicks MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.