Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Deterministic Hacker News developer sentiment, themes & feature requests via MCP. No API key.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://joeslade--hn-developer-sentiment-mcp.apify.actor/mcpターミナルでこれを実行します
claude mcp add --transport http hn-developer-sentiment https://joeslade--hn-developer-sentiment-mcp.apify.actor/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"hn-developer-sentiment": {
"url": "https://joeslade--hn-developer-sentiment-mcp.apify.actor/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"hn-developer-sentiment": {
"type": "http",
"url": "https://joeslade--hn-developer-sentiment-mcp.apify.actor/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://joeslade--hn-developer-sentiment-mcp.apify.actor/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント digitalgremlin で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Draugr
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ 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.
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
_What developers really think about your tool._
A deterministic read on Hacker News developer sentiment for any brand, tool, or library — sentiment, mention volume, recurring themes, and feature requests across HN stories and comments, exposed as four agent-callable MCP tools. The differentiator is judgment and aggregation, not raw access: it scores, clusters, and mines public HN discussion so an AI agent can act in a single call, and returns the raw matched items alongside the aggregates so every number is auditable.
Zero setup — no API key. The Hacker News (Algolia) API is open, so this Actor boots and returns data immediately. No credentials, no approval queue, no first-run friction.
No LLM in the analysis layer — sentiment is a transparent lexicon-plus-rules scorer, so the same posts always produce the same answer.
https:// /mcp) using the Streamable HTTP transport.query (a brand, tool, or topic) for the headline read.search_mentions, get_feature_requests, or get_trending_discussions when you need detail. The query tools share the same cached payload per query.query is a brand/tool/topic string (e.g. "prisma", "tailwind"). channels, windowDays, and limit are optional and fall back to the Actor's configured defaults. channels selects HN post types — story, ask_hn, show_hn, comment — and defaults to all (stories and comments, since HN opinion lives in the comments).
get_sentiment_summary — the headline readAggregate sentiment, mention volume, top themes, and representative samples for a query. Input: query (required), channels?, windowDays?.
{
"query": "prisma", "channelsQueried": ["story", "ask_hn", "show_hn", "comment"], "windowDays": 30, "mentionVolume": 52, "netSentiment": 0.18, "sentimentLabel": "Positive", "breakdown": { "positive": 29, "neutral": 16, "negative": 7 }, "topThemes": [ { "term": "type safety", "count": 15 }, { "term": "migrations", "count": 12 }, { "term": "query performance", "count": 7 } ], "topSamples": [ { "title": "Prisma 6 made our migrations painless", "channel": "story", "score": 312, "url": "https://news.ycombinator.com/item?id=48800001", "createdAt": "2026-06-02T14:11:00.000Z", "sentiment": "Positive" } ], "fetchedAt": "2026-07-14T00:00:00.000Z" }
netSentiment is the mean compound score in [-1, 1]; sentimentLabel buckets it at ±0.05. topSamples are the three highest-engagement items. topThemes are stopword- and query-term-filtered unigrams/bigrams ranked by frequency.
search_mentions — matched items with per-item sentimentStories and comments mentioning the query, each scored, ranked by score then recency. Input: query (required), channels?, windowDays?, limit?.
{
"query": "prisma", "channelsQueried": ["story", "comment"], "windowDays": 30, "count": 2, "items": [ { "id": "48800001", "title": "Prisma 6 made our migrations painless", "excerpt": "We migrated a 40-table schema with zero downtime and the typed client caught three bugs before...", "channel": "story", "score": 312, "numComments": 88, "url": "https://news.ycombinator.com/item?id=48800001", "createdAt": "2026-06-02T14:11:00.000Z", "sentiment": "Positive", "sentimentScore": 0.74 } ], "fetchedAt": "2026-07-14T00:00:00.000Z" }
excerpt is the item text truncated to 280 characters. sentimentScore is the per-item compound in [-1, 1]. Comments have an empty title and numComments: 0.
get_feature_requests — requests and pain points, groupedItems that voice a feature request, wish, gap, roadmap question, or pain point about the query — grouped by cue category. Input: query (required), channels?, windowDays?, limit?.
{
"query": "prisma", "channelsQueried": ["story", "ask_hn", "comment"], "windowDays": 30, "count": 3, "items": [ { "id": "48800042", "title": "Ask HN: does Prisma support deep JSON filtering yet?", "excerpt": "Please add deep JSON path filters to the query API.", "cueCategory": "request", "channel": "ask_hn", "score": 54, "url": "https://news.ycombinator.com/item?id=48800042", "createdAt": "2026-06-09T18:30:00.000Z" } ], "byCategory": { "wish": 1, "missing": 1, "request": 1, "plans": 0, "painpoint": 0 }, "fetchedAt": "2026-07-14T00:00:00.000Z" }
cueCategory is one of request / wish / missing / plans / painpoint (matched by priority in that order). excerpt is the matching sentence. byCategory totals always sum to count.
get_trending_discussions — highest-engagement stories (no query)Top Hacker News stories by engagement, no query required. Input: windowDays?, limit?.
{
"channelsQueried": ["story"], "windowDays": 7, "count": 2, "items": [ { "id": "48841676", "title": "Postgres rewritten in Rust, now passing 100% of the regression tests", "channel": "story", "score": 980, "numComments": 240, "engagement": 1220, "url": "https://news.ycombinator.com/item?id=48841676", "createdAt": "2026-07-12T09:02:00.000Z", "sentiment": "Neutral" } ], "fetchedAt": "2026-07-14T00:00:00.000Z" }
engagement is score + numComments; items are ranked by it descending. Trending is story-level (comments excluded — they have no thread engagement).
The server boots with no input required and returns data immediately — the Hacker News (Algolia) API needs no credentials. All fields below are optional.
| Field | Type | Default | Description |
|---|---|---|---|
defaultChannels | array | ["story","ask_hn","show_hn","comment"] | HN post types searched when a tool call doesn't specify its own. Allowed: story, ask_hn, show_hn, comment. |
windowDays | integer | 30 | Default trailing look-back window in days (1–90). |
cacheTtlMinutes | integer | 20 | How long a query's fetched payload is reused before refetching (1–240). |
maxItems | integer | 100 | Upper bound on items per call; per-call limit is clamped to this (10–250). |
Each tool returns a single structured JSON object (shown above per tool). Responses are deterministic — the same posts plus the same config always produce the same result. Every response includes a fetchedAt timestamp reflecting when the underlying Hacker News payload was pulled; a cached read returns the same payload (and timestamp) for that TTL window.
| Field | What it tells you |
|---|---|
netSentiment | Mean compound sentiment across matched items, in [-1, 1] |
sentimentLabel | Positive / Neutral / Negative, bucketed at ±0.05 |
breakdown | Count of positive / neutral / negative items |
mentionVolume | Number of matched items in the window |
topThemes | Most frequent unigrams/bigrams (stopword- and query-term-filtered) |
topSamples | The three highest-engagement matched items |
sentimentScore | Per-item compound sentiment, in [-1, 1] |
channel | HN post type: story / ask_hn / show_hn / comment |
cueCategory | Feature-request category: request / wish / missing / plans / painpoint |
byCategory | Count of feature-request items per cue category |
engagement | score + numComments for a story (trending rank key) |
fetchedAt | When the underlying Hacker News payload was fetched |
This Actor runs in Standby mode and is billed for the compute used while warm and serving requests. Reads are lightweight — each query's HN data is fetched once, cached (default 20 minutes), and shared across the query tools, so calling several tools for the same query costs a single upstream fetch. There is no LLM in the analysis path, so no per-call model cost, and the Hacker News API is free.
["ask_hn"]) to focus on solicitation threads, or drop comment to look only at story-level signal.get_sentiment_summary) with a query.fetchedAt — is returned to the MCP client.All analysis is deterministic and clock-injected (testable without network). Transient errors (network blips, 5xx) are retried with bounded backoff; rate limits (429) surface a resetAt for the caller to handle.
Part of a small slate of agent-focused Apify Actors:
Do I need an API key or account? No. The Hacker News (Algolia) search API is open — the Actor boots and returns data with zero setup.
Is the sentiment from an LLM? No. Sentiment is a transparent lexicon-plus-rules scorer (negation, intensifiers, emoji, VADER-style normalization). There is no model in the analysis layer, which is what makes every call deterministic and auditable.
Does it read comments or just stories? Both, by default — HN opinion lives in the comments. Use the channels argument to narrow to specific post types.
Is the output stable? Yes. Same items plus same config always yield the same
冒頭だけを表示しています。続きはリポジトリで読めます