Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Judges startup and side-project ideas: KILL IT, FIX IT or SHIP IT, a 0-100 score and 8 sub-scores.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://killmyidea.biz/api/mcpターミナルでこれを実行します
claude mcp add --transport http killmyidea https://killmyidea.biz/api/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"killmyidea": {
"url": "https://killmyidea.biz/api/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"killmyidea": {
"type": "http",
"url": "https://killmyidea.biz/api/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://killmyidea.biz/api/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。
judge_ideaJudge a startup or side-project idea. Returns a verdict (verdict KILL, FIX or SHIP, shown as verdict_label KILL IT, FIX IT or SHIP IT), an overall score, the best_signal, the biggest_risk and the eight scored dimensions. If the idea is too vague to judge, needs_detail is true and
get_statsHow many ideas Kill My Idea has analyzed so far and how many were killed, fixed or shipped. Cached for 5 minutes.
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月8日にチェック
レジストリ名はドメイン killmyidea.biz で確認済みです(レジストリがドメインの所有を確認しています)
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
336ミリ秒で応答(HTTP 200)
サインイン不要
2件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(1.0.0)がレジストリに届いたのは3 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, A1RO — Irish employment tools
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Irish temp worker cost, public holiday pay and holidays, and SafeHandle certificate checks.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Describe a startup idea. Jev decides: KILL IT, FIX IT or SHIP IT.
No generative LLM. One request asks TypeSafe Jev 10 questions in parallel: 8 plain indie-hacker questions scored 0–4, plus the category and whether the idea is understandable.
idea → Jev (8 scores) → each × 25 → weighted average → clarity gate → KILL / FIX / SHIP
npm install
cp .env.example .env
TYPESAFE_API_KEY=your_key
The key is only read by api/evaluate.ts and never reaches the browser.
Successful evaluations are archived in SQLite at data/analytics.sqlite by default. Set ANALYTICS_DB_PATH to an absolute path on a persistent disk in production. Users can opt out per request with the checkbox below private history.
SITE_URL (optional) sets the absolute URL used in the canonical and OG/Twitter tags, robots.txt, sitemap.xml, /mcp.md and llms.txt (generated at build time). It defaults to https://killmyidea.biz. The image itself is public/og.png (1200×630).
For UI work without a key, set TYPESAFE_MOCK=1. The API then returns deterministic fake answers labelled MOCK DATA in the raw-data panel. Mock mode is ignored in production.
npm run dev # http://127.0.0.1:5317 (serves /api/* and /mcp/ too)
npm test # unit tests npm run benchmark # balanced scoring benchmark; requires the app to be running
Every result has a collapsed "How Jev decided" panel with raw Jev answers, probabilities, confidence, the average, the verdict, latency and token usage. ?debug=1 opens it by default.
npm run build # typecheck + static build in dist/
The site runs on Forge as a Node server: npm run build for the static assets in dist/, then npm run build:server && npm start to serve the API endpoints. Set TYPESAFE_API_KEY in the site's environment file.
SQLite needs a persistent local disk, which the Forge server provides directly (data/analytics.sqlite); set ANALYTICS_DB_PATH to an absolute path on that disk in production.
Because the SPA is served with an nginx fallback (try_files ... /index.html), every unknown path returns the index page with HTTP 200. Bots probing random URLs therefore show up as pageviews in DataFast. To stop that, change the fallback in the site's nginx configuration (Forge → site → Edit Nginx Configuration) to return 404 for unknown paths if the app has no real routes:
location / {
try_files $uri $uri/ =404; }
Both domains belong to the same Forge site. The old one answers every request with a 301 to the same path and query on killmyidea.biz, via deploy/nginx-old-domain-redirect.conf, pasted into the site's nginx configuration inside the server block. Keep that redirect for at least a year.
Idea history lives in localStorage, which is per origin. The 301 adds #moved; the inline script in index.html then makes one hop to public/history-transfer.html on the old domain, which returns with its history in the URL fragment (never sent to a server) to be merged. It runs at most once per browser. Remove both once the old domain is retired.
api/mcp.ts is a free, public MCP server at /api/mcp (Streamable HTTP, no auth). It is stateless: every POST is one JSON-RPC message answered with plain JSON, there are no sessions and GET returns 405. Tools:
judge_idea(idea, goal?, do_not_archive?): same pipeline as /api/evaluate (api/_judge.ts), returns the verdict, score, best signal, biggest risk and the eight sub-scores, without the raw Jev responseget_stats(): analyzed count and verdict splitMCP evaluations are archived like web ones, with source = 'mcp'.
Usage is tracked in the mcp_requests table: one row per JSON-RPC message with the method, tool name, client name and version (sent with initialize), user agent, protocol version, success or error, and latency. It never stores tool arguments or IP addresses. Summary for the last 7 days (or -- 30 for 30):
npm run mcp:usage
That report includes user agents and error messages, so it stays private. The public /stats/ page (stats/index.html + src/stats-page.tsx, linked in the footer) reads GET /api/usage (api/usage.ts, cached 5 minutes): ideas analyzed on the web and via MCP, a 30-day daily chart, tool calls, clients and verdicts. Client and tool names come from callers, so only known ones are published (clientLabel), everything else is "Other".
Docs: mcp/index.html is the static SEO page at /mcp/ (a second Vite entry); mcp/mcp.md is served as /mcp.md for agents and llms.txt is generated in vite.config.ts. Both are emitted at build time and served by the dev server.
claude mcp add --transport http killmyidea https://killmyidea.biz/api/mcp
nginx already proxies /api/ to the Node server, so no extra config is needed.
src/lib/scoring.ts and src/lib/verdict.ts. That's all there is:
WEIGHTS)goal (money default, open_source, fun).VERDICT_THRESHOLDS)SCORING_VERSION identifies the exact questions, weights, thresholds and gating semanticsBEST SIGNAL / BIGGEST RISK are the highest / lowest question, with fixed copy in src/lib/copy.ts.
src/lib/questions.ts: Real problem, Clear customer, Demand, Money, Reach, Different, Buildable, Shareable, plus Adoption, Immediate appeal and Fun for goal-specific scoring. Each has five levels written as concrete situations (Jev judges each level on its own). The HTTP client is src/lib/typesafe.ts.
api/evaluate.ts API endpoint for the website
api/mcp.ts MCP server (JSON-RPC over POST /api/mcp) api/_judge.ts shared pipeline (validate → Jev → score → archive) api/stats.ts API endpoint (ideas submitted + verdict split, 5-min cache) api/usage.ts public usage numbers for /stats/ (5-min cache) api/_analytics-db.ts SQLite archive for evaluation requests and scores api/_mock.ts local-only fake answers src/lib/questions.ts Jev questions src/lib/scoring.ts 0-4 → 0-100, average src/lib/verdict.ts KILL / FIX / SHIP thresholds src/lib/copy.ts fixed copy per question src/lib/storage.ts history (IdeaStore interface, localStorage implementation) src/lib/share.ts share text and X intent URL src/lib/features.ts public site and repository URLs src/components/ UI mcp/index.html /mcp/ docs page (SEO) mcp/mcp.md /mcp.md docs for agents stats/index.html /stats/ public usage page benchmarks/cases.json balanced, synthetic benchmark cases scripts/run-scoring-benchmark.mjs benchmark runner and summary
Production builds load DataFast's cookieless script (script.cookieless.js) with the site id dfid_UvVlC3fid8kOr95YTMIho (vite.config.ts). Dev builds only track when DATAFAST_WEBSITE_ID is set; DATAFAST_WEBSITE_ID=off disables tracking. DATAFAST_DOMAIN defaults to killmyidea.biz; DATAFAST_ALLOWED_HOSTNAMES defaults to killmyidea.stemonte.io so the old domain still counts during the move. In DataFast, enable Settings → General → Cookieless / privacy mode so the dashboard matches the script.
There is one custom goal (src/lib/analytics.ts): idea_submitted, with length, saved, and archived params. The idea text is never sent to DataFast.
Unless the user checks the opt-out, each successful evaluation creates one row in the evaluations table. It includes the idea, where it came from (source: web or mcp), scoring version, total score, raw verdict, clarity-gate status, category, all eight dimension scores, understandability, latency, model, token usage and the complete diagnostic response JSON. It deliberately excludes IP addresses, cookies and browser identifiers.
For example:
sqlite3 data/analytics.sqlite \
'SELECT scoring_version, goal, COUNT(*), ROUND(AVG(score), 1) FROM evaluations GROUP BY scoring_version, goal;'
Rows collected before scoring v2 are migrated without being reinterpreted: they remain scoring_version = 1, while v2 stores the new appeal score for fun ideas. To export:
sqlite3 -header -csv data/analytics.sqlite 'SELECT * FROM evaluations;' > evaluations.csv
benchmarks/cases.json contains two similarly detailed, synthetic ideas for each category. The runner evaluates every case against all three goals and always sends doNotArchive: true. With the app running against Jev:
BENCHMARK_RUNS=3 npm run benchmark
It reports score and verdict distributions by goal, category accuracy, clarity gates and repeat-score range. The full JSON is written to the ignored benchmarks/results/latest.json; set BENCHMARK_URL to test a deployed instance.
.mcp.json registers the official DataFast MCP server (https://datafa.st/api/mcp). In Claude Code, run /mcp and sign in with OAuth to query these analytics.
The public policy is privacy/index.html (/privacy/), with the terms in terms/index.html (/terms/). Keep them in step with what the code stores. Contact: hello@killmyidea.biz (Cloudflare Email Routing).
localStorage. There are no accounts.IdeaStore in src/lib/storage.ts.MIT. See LICENSE.