mcpField
H
hn-search

hn-search

github.com/dylanfeltus生産性18085 回インストール7 週間前に更新
リポジトリ

hn-search について

hn-searchは、Algolia HN Search APIを通じてHacker Newsのストーリー、コメント、ユーザー投稿を検索・監視するスキルです。関連度順と日付順の検索に対応し、内容種別、反応、期間で絞り込めます。

主な機能

  1. 01ストーリー、コメント、ユーザー投稿の検索
  2. 02関連度順または日付順での検索
  3. 03内容種別と反応による絞り込み
  4. 04トピックの最近の言及を検索
  5. 05特定ストーリーのコメント取得

活用シーン

  1. 01トピックに関するHacker Newsの議論調査
  2. 02製品や企業への最近の言及の追跡
  3. 03Show HNやAsk HN投稿の検索
  4. 04特定ストーリーのコメント確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dylanfeltus/skills --skill hn-search

インストール後、Claude Code で/hn-searchを入力して読み込まれたか確認します。

同梱ファイルREADME.md

詳細

Hacker News の検索

Algolia HN Search API を使って、Hacker News のストーリー、コメント、ユーザーを検索、モニタリングします。API キーは不要です。

使用する場面

  • ユーザーが特定のトピックに関する Hacker News の議論について尋ねたとき
  • ユーザーが企業、製品、技術についての HN の投稿を探したいとき
  • ユーザーが何かについての HN での言及をモニタリングしたいとき
  • ユーザーが「HN で今話題なのは何ですか」や「X について HN はどう考えていますか」と尋ねたとき
  • ユーザーが Show HN/Ask HN/Launch HN の投稿を探したいとき

API の概要

ベース URL: https://hn.algolia.com/api/v1

検索エンドポイントは 2 種類あります。

  • /search — 関連度順(特定のトピックを探すのに最適)
  • /search_by_date — 日付順(モニタリングや最近のアクティビティの確認に最適)

レート制限: 10,000 リクエスト/時間(十分な上限があり、認証不要)

検索方法

ステップ 1:URL を作成する
https://hn.algolia.com/api/v1/search?query=QUERY&tags=TAG&hitsPerPage=N&numericFilters=FILTERS
ステップ 2:web_fetch で取得する

web_fetch を使って API を呼び出します。レスポンスは JSON です。

パラメーター
パラメーター説明例
query検索語(URL エンコード済み)query=openai+gpt
tags種類で絞り込む(下記参照)tags=story
hitsPerPage1 ページあたりの結果数(最大 1000)hitsPerPage=20
pageページ番号(0 始まり)page=0
numericFilters数値フィルター(下記参照)numericFilters=points>100
タグフィルター

tags を使ってコンテンツの種類を絞り込みます。

タグ説明
storyストーリーのみ
commentコメントのみ
show_hnShow HN の投稿
ask_hnAsk HN の投稿
front_page現在フロントページに掲載されている投稿
author_USERNAME特定のユーザーによる投稿
story_ID特定のストーリーへのコメント

タグの組み合わせには、カンマ(AND)またはカンマを含む括弧(OR)を使います。

  • tags=story,show_hn → Show HN のストーリー(AND)
  • tags=(story,comment) → ストーリーまたはコメント
数値フィルター
フィルター説明
points>N最小ポイント数/アップボート数
num_comments>N最小コメント数
created_at_i>TIMESTAMPUnix タイムスタンプより後
created_at_i<TIMESTAMPUnix タイムスタンプより前

カンマで組み合わせます:numericFilters=points>100,num_comments>50

日付範囲

期間を指定して検索するには、created_at_i で Unix タイムスタンプを使います。

まず現在の Unix タイムスタンプを取得し(例:exec: date +%s)、次に以下の値を差し引きます。

期間現在時刻から差し引く値
過去 24 時間- 86400
過去 7 日間- 604800
過去 30 日間- 2592000

例:現在時刻が 1705312200 の場合、過去 7 日間は numericFilters=created_at_i>1704707400 です。

レスポンス形式

各ヒットには以下が含まれます。

{
  "objectID": "12345",
  "title": "Story Title",
  "url": "https://example.com/article",
  "author": "username",
  "points": 150,
  "num_comments": 42,
  "created_at": "2024-01-15T10:30:00Z",
  "created_at_i": 1705312200,
  "story_text": "Text for Ask HN / Show HN (HTML)",
  "_tags": ["story", "author_username", "story_12345"]
}

コメントの場合、ヒットにはさらに以下が含まれます。

{
  "comment_text": "The comment body (HTML)",
  "story_id": 12345,
  "story_title": "Parent Story Title",
  "story_url": "https://example.com",
  "parent_id": 12344
}

レスポンスのラッパーには以下が含まれます。

{
  "hits": [...],
  "nbHits": 1000,
  "page": 0,
  "nbPages": 50,
  "hitsPerPage": 20
}

HN リンクの作成

  • ストーリー: https://news.ycombinator.com/item?id={objectID}
  • コメント: https://news.ycombinator.com/item?id={objectID}
  • ユーザー: https://news.ycombinator.com/user?id={author}

手順

トピックに関するストーリーを検索する
  1. クエリを URL エンコードします
  2. 次を取得します:https://hn.algolia.com/api/v1/search?query=YOUR_QUERY&tags=story&hitsPerPage=10
  3. JSON レスポンスを解析します
  4. 各ヒットについて、タイトル、ポイント数、num_comments、作成者、日付、HN リンク、元の URL を提示します
最近の議論や話題の議論を探す
  1. 対象期間の Unix タイムスタンプを計算します(例:7 日前)
  2. 次を取得します:https://hn.algolia.com/api/v1/search?query=YOUR_QUERY&tags=story&numericFilters=points>50,created_at_i>TIMESTAMP&hitsPerPage=10
  3. 「話題」の順にするには、結果をポイント数またはコメント数で並べ替えます
ストーリーへのコメントを取得する
  1. 検索結果からストーリーの objectID を取得します
  2. 次を取得します:https://hn.algolia.com/api/v1/search?tags=comment,story_STORYID&hitsPerPage=20
  3. 各コメントについて、comment_text、作成者、ポイント数を提示します
トピックをモニタリングする(最近の言及を表示)
  1. /search の代わりに /search_by_date を使用します
  2. 次を取得します:https://hn.algolia.com/api/v1/search_by_date?query=YOUR_QUERY&tags=(story,comment)&hitsPerPage=20
  3. 結果は新しい順です。「HN で X に関する新しい情報は?」といった質問に役立ちます
ユーザーの投稿を検索する
  1. 次を取得します:https://hn.algolia.com/api/v1/search?tags=author_USERNAME,story&hitsPerPage=20
  2. コメントの場合:tags=author_USERNAME,comment

出力形式

結果を見やすいリストで提示します:

### HN Results for "query" (N total)

1. **Story Title** (150 pts, 42 comments)
   By username · Jan 15, 2024
   🔗 https://example.com/article
   💬 https://news.ycombinator.com/item?id=12345

2. ...

コメントの場合:

### HN Comments on "Story Title"

1. **username** (12 pts) · Jan 15, 2024
   > First ~200 chars of the comment text...
   💬 https://news.ycombinator.com/item?id=12345

エラー処理

  • 結果が空の場合: 結果が見つからなかったことをユーザーに伝えます。検索語句を広げるか、フィルターを削除するよう提案します。
  • API エラー/タイムアウト: 1 回再試行します。それでも失敗する場合は、HN 検索 API が一時的に停止している可能性があることをユーザーに伝えます。
  • レート制限(429): 1 時間あたり 10,000 件のため可能性は低いですが、制限された場合は 60 秒待ってから再試行します。
  • 不正な形式のレスポンス: URL の組み立てを確認します。よくある原因は、検索語句内の特殊文字がエンコードされていないことです。

例

例 1:「Rust について HN では何と言っていますか?」
Fetch: https://hn.algolia.com/api/v1/search?query=rust+programming&tags=story&hitsPerPage=5&numericFilters=points>50
例 2:「過去 1 か月の AI エージェントに関する Show HN の投稿を探す」
# Calculate timestamp for 30 days ago, then:
Fetch: https://hn.algolia.com/api/v1/search_by_date?query=ai+agents&tags=show_hn&numericFilters=created_at_i>TIMESTAMP&hitsPerPage=10
例 3:「pg は最近何を投稿しましたか?」
Fetch: https://hn.algolia.com/api/v1/search_by_date?tags=author_pg&hitsPerPage=10

データソース

Algolia HN Search API — 無料で、認証は不要です。 公開されている Hacker News のコンテンツをほぼリアルタイムでインデックス化します。

コメント