technews-port について
technews-portは、Hacker Newsを閲覧・検索するCLI兼stdio MCPサーバーです。公開Firebase APIによるランキングやアイテム・ユーザー照会と、Algoliaによるストーリー全文検索を組み合わせています。
主な機能
- 01top・new・bestのストーリー一覧
- 02数値IDによるアイテム取得
- 03公開ユーザープロフィールの取得
- 04Algoliaによるストーリー本文検索
- 05一覧に含まれる解析済みの詳細情報
活用シーン
- 01Hacker Newsのランキングを確認
- 02ストーリー、コメント、求人、投票を調査
- 03ユーザーの公開プロフィールを確認
- 04条件に合うストーリーを検索
MCP 対応
ランキング一覧、アイテム・ユーザー照会、ストーリー検索のMCPツールを提供します。Hacker Newsの公開Firebase APIとAlgolia HN Search APIを使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
6掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 返すトップ記事の最大数です。デフォルトは 30 で、1~100 に制限されます。 |
詳細
technews-port
technews-port は Hacker News 用の小さなリーダーです。サイト独自の公開 API を利用するため、スクレイピングも登録も不要です。公式 Firebase API から、ランキング順のトップページ一覧(top、new、best)、数値 ID で指定した個別アイテム、ユーザーの公開プロフィールを取得し、Firebase API にはない機能として、Algolia HN Search API でストーリーの本文を検索します。
ストーリー一覧は、ID だけではなく、取得済みのアイテムをランキング順に返します。各項目には見出し、投稿者、スコア、コメント数が含まれます。
インストール
npx @reneturcios/technews-port top --limit 10
または、コンテナイメージを実行します。
docker run -i ghcr.io/cloudcorprecords/technews-port
コンテナはデフォルトで MCP サーバーとして動作します(以下を参照)。CLI として使用するには、CLI 引数を渡してください。
CLI
すべてのコマンドは JSON を出力します。
# The three ranked lists (default 30 stories, capped at 100)
technews-port top
technews-port new --limit 10
technews-port best --limit 5
# One item, one user
technews-port item 8863
technews-port user pg
# Full-text story search via Algolia (default 20 hits)
technews-port search "show hn" --limit 10
technews-port --version
終了コード:成功時は 0、検索に失敗した場合(不明なアイテムまたはユーザー、あるいはメッセージに記載された上流エラー)は 1、使用方法に誤りがある場合は 2 です。
MCP サーバー
1 つの実行ファイルで両方の使い方に対応しています。mcp サブコマンドを実行すると、stdio MCP サーバーが起動します。
npx -y @reneturcios/technews-port mcp
MCP クライアントの設定:
{
"mcpServers": {
"technews-port": {
"command": "npx",
"args": ["-y", "@reneturcios/technews-port", "mcp"]
}
}
}
ツール
| ツール | 入力 | 返される内容 |
|---|---|---|
get_top_stories | limit(整数、任意) | 現在のトップストーリー:ランキング順のアイテム ID と、解析済みの各ストーリー(タイトル、投稿者、スコア、コメント数、URL、タイムスタンプ)。 |
get_new_stories | limit(整数、任意) | 最新のストーリー。形式は get_top_stories と同じです。 |
get_best_stories | limit(整数、任意) | ベストストーリー。形式は get_top_stories と同じです。 |
get_item | item_id(整数、必須) | あらゆる種類のアイテム 1 件(ストーリー、コメント、求人、投票):種類、投稿者、本文またはタイトル、スコア、子コメント ID、削除済み/無効のフラグ。 |
get_user | username(文字列、必須) | ユーザーの公開プロフィール:作成日時、カルマ、自己紹介文、投稿したアイテム ID。 |
search_stories | query(文字列、必須)、limit(整数、任意) | Algolia から取得した、クエリに一致するストーリー。検索結果ごとに、タイトル、URL、投稿者、ポイント、コメント数、投稿時刻が含まれます。 |
ランキング一覧の ID を読み取ってからアイテムを取得するまでの間に、その ID が消えることがあります(ライブサイトでは起こりえます)。その場合、ID は item_ids に残り、アイテムは items に含まれません。
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network
npm run dev # run the CLI from source via tsx
コアでは fetch 関数を差し替えられます。テストスイートでは、URL に応じて、本物の Firebase および Algolia のレスポンス形式を模した手書きのペイロードを返すフェイク fetch を使用するため、テストでネットワークにアクセスすることはありません。
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。