Loading...
Loading...
Pre-build reality check for AI coding agents — scan GitHub, HN, npm, PyPI, Product Hunt to validate ideas before building
npx skill4agent add aradotso/mcp-skills idea-reality-mcp-validationSkill by ara.so — MCP Skills collection.
uvx idea-reality-mcpclaude mcp add idea-reality -- uvx idea-reality-mcp~/Library/Application Support/Claude/claude_desktop_config.json%APPDATA%\Claude\claude_desktop_config.json.cursor/mcp.json{
"mcpServers": {
"idea-reality": {
"command": "uvx",
"args": ["idea-reality-mcp"]
}
}
}npx -y @smithery/cli install idea-reality-mcp --client claudeidea-reality setupidea-reality config # interactive menu
idea-reality config claude_code # auto-installs
idea-reality config cursor # prints Cursor config
idea-reality config raw_json # generic MCP JSONidea-reality doctor # core checks (~2s)
idea-reality doctor --full # + API validation, all 6 sourcesexport GITHUB_TOKEN=ghp_... # Higher GitHub API rate limits
export PRODUCTHUNT_TOKEN=... # Enable Product Hunt (deep mode)idea_checkidea_textdepth"quick""deep"quickdeepidea_check{
"tool": "idea_check",
"arguments": {
"idea_text": "a CLI tool that converts Figma designs to React components",
"depth": "deep"
}
}{
"reality_signal": 72,
"duplicate_likelihood": "high",
"trend": "accelerating",
"sub_scores": {
"market_momentum": 73
},
"evidence": [
{
"source": "github",
"type": "repo_count",
"query": "figma react converter CLI",
"count": 342
},
{
"source": "github",
"type": "max_stars",
"query": "figma react converter",
"count": 15000
},
{
"source": "hackernews",
"type": "mention_count",
"query": "figma react",
"count": 18
},
{
"source": "npm",
"type": "package_count",
"query": "figma-react",
"count": 56
},
{
"source": "pypi",
"type": "package_count",
"query": "figma-react",
"count": 23
},
{
"source": "producthunt",
"type": "product_count",
"query": "figma react",
"count": 8
},
{
"source": "stackoverflow",
"type": "question_count",
"query": "figma react converter",
"count": 120
}
],
"top_similars": [
{
"name": "figma-to-react/figma-to-react",
"url": "https://github.com/figma-to-react/figma-to-react",
"stars": 15000,
"description": "Convert Figma designs to React components"
}
],
"pivot_hints": [
"High competition. Consider a niche differentiator like supporting design tokens or specific component libraries.",
"The leading project may have gaps in TypeScript support or accessibility features."
]
}import httpx
response = httpx.post(
"https://idea-reality-mcp.onrender.com/api/check",
json={
"idea_text": "AI code review tool",
"depth": "deep"
},
timeout=30.0
)
result = response.json()
print(f"Reality Score: {result['reality_signal']}/100")
print(f"Trend: {result['trend']}")
print(f"Top Competitor: {result['top_similars'][0]['name']} ({result['top_similars'][0]['stars']} ⭐)")curl -X POST https://idea-reality-mcp.onrender.com/api/check \
-H "Content-Type: application/json" \
-d '{
"idea_text": "a markdown-based static site generator with live reload",
"depth": "quick"
}'# User says: "I want to build a CLI tool for GitHub issue management"
# Agent calls:
{
"tool": "idea_check",
"arguments": {
"idea_text": "CLI tool for GitHub issue management with labels and milestones",
"depth": "deep"
}
}
# If reality_signal > 80:
# → Suggest niche differentiation or pivot
# If reality_signal 40-80:
# → Validate unique features, check top_similars
# If reality_signal < 40:
# → Green light, low competition{
"tool": "idea_check",
"arguments": {
"idea_text": "add real-time collaborative editing to my markdown editor",
"depth": "quick"
}
}{
"tool": "idea_check",
"arguments": {
"idea_text": "browser automation library using Chrome DevTools Protocol",
"depth": "deep"
}
}trend"accelerating""stable""declining".cursorrulesCLAUDE.md.github/copilot-instructions.mdWhen starting a new project, use the idea_check MCP tool to check if similar projects already exist..github/workflows/idea-check.ymlname: Idea Reality Check
on:
issues:
types: [opened]
jobs:
check:
if: contains(github.event.issue.labels.*.name, 'proposal')
runs-on: ubuntu-latest
steps:
- uses: mnemox-ai/idea-check-action@v1
with:
idea: ${{ github.event.issue.title }}
github-token: ${{ secrets.GITHUB_TOKEN }}proposallowmediumhighvery_high| Source | Weight |
|---|---|
| GitHub repos | 60% |
| GitHub stars | 20% |
| Hacker News | 20% |
| Source | Weight |
|---|---|
| GitHub repos | 22% |
| GitHub stars | 9% |
| Hacker News | 14% |
| npm | 18% |
| PyPI | 13% |
| Product Hunt | 14% |
| Stack Overflow | 10% |
idea-reality doctorclaude mcp list # verify installation
claude mcp remove idea-reality
claude mcp add idea-reality -- uvx idea-reality-mcpexport GITHUB_TOKEN=ghp_your_token_here
idea-reality doctor --full # verifyexport PRODUCTHUNT_TOKEN=your_token_heredepth: "quick"idea_text# Python httpx client
httpx.post(..., timeout=30.0)depth: "quick"User: "I want to build a Rust-based SQL formatter with auto-fix"
Agent:
1. Call idea_check with depth="deep"
2. If reality_signal > 70:
- Show top competitors (e.g. sqlformat, prettier-plugin-sql)
- Suggest niches from pivot_hints (e.g. Rust performance angle)
3. If reality_signal < 50:
- Proceed with project scaffoldingUser: "Should I add Vim keybindings to my editor?"
Agent:
1. Call idea_check: "text editor with vim keybindings"
2. Check evidence[].count for npm/PyPI packages
3. High count → already solved, suggest integration
4. Low count → potential differentiatorUser: "Is AI code review still worth building?"
Agent:
1. Call idea_check with depth="deep"
2. Check trend field
3. If "accelerating" → market growing, move fast
4. If "declining" → suggest pivot to specific nicheimport httpx
ideas = [
"AI-powered commit message generator",
"Real-time Markdown collaboration",
"GitHub issue templates manager"
]
async with httpx.AsyncClient() as client:
tasks = [
client.post(
"https://idea-reality-mcp.onrender.com/api/check",
json={"idea_text": idea, "depth": "quick"}
)
for idea in ideas
]
results = await asyncio.gather(*tasks)
for idea, resp in zip(ideas, results):
data = resp.json()
print(f"{idea}: {data['reality_signal']}/100 ({data['trend']})")def should_build(result: dict) -> str:
score = result['reality_signal']
trend = result['trend']
if score < 40:
return "BUILD: Low competition, novel idea"
elif score < 70 and trend == "accelerating":
return "BUILD WITH NICHE: Growing market, differentiate"
elif score > 85:
return "PIVOT: Saturated market"
else:
return "RESEARCH: Validate unique angle"
response = httpx.post(...)
verdict = should_build(response.json())idea_checkdepth="quick"pivot_hintstop_similarstrendGITHUB_TOKEN