🚀 HackerNews MCP Server
このサーバーは、Model Context Protocol (MCP) を用いた包括的なサーバーです。HackerNews API とシームレスに統合し、標準化された MCP インターフェースを通じて、AI アシスタントが HackerNews のコンテンツにアクセス、分析、理解できるようにします。
🚀 クイックスタート
npm install
npm run build
npm start
その後、MCP 互換のクライアント(Cursor など)を再起動してサーバーに接続します。
✨ 主な機能
🔧 ツール (5つの対話型コマンド)
-
search_posts - HackerNews の投稿を検索およびフィルタリングします。
- キーワード、投稿者、スコア、日付範囲でフィルタリングできます。
- 例: "スコアが 100 を超える 'AI' に関する記事を探す"
-
get_post - 投稿の詳細を取得します。
- メタデータ、コメントツリー、エンゲージメント指標が含まれます。
- 例: "コメント付きで記事 44473319 の詳細を取得する"
-
search_user - ユーザープロファイルとアクティビティを分析します。
- ユーザー統計、トップ記事、投稿パターンが含まれます。
- 例: "ユーザー 'pg' を分析し、彼らのアクティビティを表示する"
-
search_trending - 現在のトレンドトピックを見つけます。
- トップ記事からのキーワード頻度分析を行います。
- 例: "今日の HackerNews でトレンドになっているトピックは何ですか?"
-
search_comments - コメントのエンゲージメントを分析します。
- コメント統計、トップコメンター、ディスカッションパターンが含まれます。
- 例: "記事 44473319 のコメントを分析する"
📦 インストール
前提条件
インストール手順
-
クローンとインストール:
git clone <repository-url>
cd hackernews-mcp-server
npm install
-
プロジェクトのビルド:
npm run build
-
MCP クライアント (Cursor) の設定:
.cursor/mcp.json ファイルはすでに設定されています。
- Cursor を再起動して MCP サーバーを読み込みます。
-
使用開始:
npm start
💻 使用例
基本的な使用法
🔍 投稿の検索 - トピック別の記事を見つける
search_posts with query="AI", minScore=50, limit=10
- "'Positive review only': Researchers hide AI prompts in papers" (100 ポイント, 52 件のコメント)
- "Cops in [Spain] think everyone using a Google Pixel must be a drug dealer" (65 ポイント, 50 件のコメント)
使用例:
- 特定のトピックに関する高エンゲージメントの記事を見つける
- 投稿者、スコアの閾値、または日付範囲でフィルタリングする
- 自分の分野でトレンドになっているディスカッションを調査する
📄 投稿詳細の取得 - 記事の深層分析
get_post for story ID 44473319 (AI prompts story)
- 記事の完全なメタデータ (投稿からの経過時間: 3.2 時間, ドメイン: asia.nikkei.com)
- 完全なコメントツリー (38 人の投稿者からの 57 件のコメント)
- エンゲージメント指標とディスカッションの質
使用例:
- 自分が興味を持っている特定の記事を分析する
- 完全なコメントディスカッションを取得する
- ニュースに対するコミュニティの反応を理解する
👤 ユーザーの検索 - プロファイル分析
search_user for "zczc" (Google Pixel story author)
- HackerNews で 8.6 年の経歴、876 のカルマ、安定した投稿者
- 研究志向: 一次情報源を提供する
- クロスドメインの専門知識: 技術、政策、プログラミング
- 質より量を重視するアプローチ
使用例:
- 興味深い投稿の投稿者を調査する
- ドメインの専門家や考えのリーダーを見つける
- ユーザーの投稿パターンを理解する
📈 トレンドの検索 - トピック分析
search_trending analyzing 49 current top stories
- "software", "game", "first" (それぞれ 6.1%)
- "systems", "local", "google" (それぞれ 4.1%)
- 宇宙技術: "satellite", "geostationary"
- ローカルファーストのソフトウェアとゲームに焦点を当てたトレンド
使用例:
- 技術コミュニティで議論されていることを追跡する
- 新興の技術トレンドを特定する
- コミュニティの関心の変化を監視する
💬 コメントの検索 - ディスカッション分析
search_comments on the Google Pixel Spain story
- 38 人の一意の投稿者からの 56 件のコメント
- 活発なディスカッション (4 件以上のコメントを投稿した複数のユーザー)
- プライバシー/監視に関する国際的な視点
- 質の高いモデレーション (5 件削除、1 件フラグ付け)
使用例:
- トピックに対するコミュニティの感情を分析する
- 最も積極的な議論参加者を見つける
- ディスカッションの質とパターンを理解する
🔧 技術詳細
スマートキャッシュシステム
- 3 層キャッシュ: アイテム、ユーザー、記事リスト
- 設定可能な TTL: デフォルトは 5 分、調整可能
- LRU エビクション: キャッシュがいっぱいになったときに自動的にクリーンアップ
- パフォーマンス: API 呼び出しを約 80% 削減
API クライアントの機能
- 包括的なカバレッジ: すべての HackerNews API エンドポイント
- バッチ操作: 複数のアイテムを効率的に読み込む
- エラーハンドリング: 堅牢なリトライとタイムアウトロジック
- レート制限: API の使用を適切に行う
拡張データ
- 記事のメタデータ: 投稿からの経過時間、ドメイン、コメント数の計算
- ユーザー統計: 平均スコア、トップ記事、アクティビティパターン
- コメント分析: エンゲージメント指標、ディスカッションツリー
- トレンド分析: キーワード頻度、トピック抽出
🔧 設定
環境変数 (オプション):
# サーバー設定
SERVER_NAME=hackernews-mcp-server
SERVER_VERSION=1.0.0
# API 設定
HACKERNEWS_API_BASE_URL=https://hacker-news.firebaseio.com/v0
HACKERNEWS_API_TIMEOUT=10000
# キャッシュ設定
CACHE_TTL_SECONDS=300
CACHE_MAX_SIZE=1000
# ロギング
LOG_LEVEL=info
🧪 開発
npm run dev
npm test
npm run lint
npm run lint:fix
npm run build
📊 MCP ツールと機能
実際にテストしたツールでできること:
| プロパティ |
詳細 |
| MCP ツール |
機能 |
search_posts |
条件に基づいて記事を検索する |
get_post |
記事の完全な詳細を取得する |
search_user |
ユーザープロファイルを分析する |
search_trending |
トピック分析を行う |
search_comments |
ディスカッション分析を行う |
リソースアクセスパターン:
hackernews://stories/top → 現在のトップ記事
hackernews://user/username → ユーザープロファイル
hackernews://item/12345 → 個々の投稿
hackernews://comments/12345 → コメントツリー
🤝 実世界での使用例
📰 コンテンツの調査と分析
- 最新の技術記事を見つける: 論文に AI プロンプトを隠す研究に関する記事のような、高エンゲージメントの記事を見つける
- 物議を醸すトピックを追跡する: Google Pixel のプロファイリングに関する記事のようなプライバシー問題を追跡する
- ディスカッションの質を分析する: 38 人の投稿者からの 57 件のコメントは、本当のエンゲージメントを示している
- 新興のトレンドを監視する: 宇宙技術、ローカルファーストのソフトウェア、ゲーム開発の動向を監視する
👥 コミュニティインテリジェンス
- 質の高い投稿者を特定する: 研究志向でクロスドメインの専門家である "zczc" を見つける
- ユーザーのパターンを理解する: 8.6 年の経歴、安定したカルマの増加、情報源の検証習慣を理解する
- ドメインの専門家を見つける: 一貫して質の高い投稿を行っているユーザーを見つける
- 考えのリーダーを追跡する: 特定の技術分野で活発なユーザーを追跡する
📈 トレンドと感情分析
- 現在の技術焦点: "software", "systems", "game" がそれぞれ 6.1% のトレンドを占めている
- 新興技術: 衛星/宇宙技術に関する議論が増えている
- コミュニティの感情: 国際的なプライバシー問題、学術的な誠実さに関する議論
- ディスカッションパターン: 質の高いモデレーション、国際的な視点
🔍 研究アプリケーション
- 学術研究: 技術コミュニティの議論と感情を研究する
- 市場調査: 開発者と技術コミュニティの関心を理解する
- 競争力分析: 技術や企業に関する議論を監視する
- コンテンツ戦略: 高いエンゲージメントを生み出すトピックを見つける
🚀 パフォーマンス
- キャッシュ: API 呼び出しを 80% 削減
- バッチ操作: 複数アイテムの読み込みを 3 倍高速化
- スマートフィルタリング: クライアント側での検索によりサーバーの負荷を軽減
- 並列リクエスト: 並列処理による効率化
🔒 プライバシーと倫理
- 公開データのみ: 個人情報にはアクセスしません。
- 適切な使用: レート制限とキャッシュを使用します。
- データの保存なし: 一時的なキャッシュのみを使用します。
- 透明性: オープンソースの実装です。
🐛 トラブルシューティング
一般的な問題
-
サーバーが起動しない場合
node --version
npm run build
-
MCP 接続に問題がある場合
- MCP クライアント (Cursor) を再起動します。
.cursor/mcp.json の設定を確認します。
npm start でサーバーが起動していることを確認します。
-
API エラーが発生した場合
- ネットワーク接続を確認します。
- HackerNews API にアクセスできることを確認します。
- キャッシュの設定を確認します。
デバッグモード
LOG_LEVEL=debug npm start
📈 ロードマップ
- [ ] リアルタイム WebSocket 更新
- [ ] 高度な感情分析
- [ ] ユーザーネットワーク分析
- [ ] エクスポート機能
- [ ] カスタムフィルタリングルール
- [ ] パフォーマンスダッシュボード
🤝 コントリビューション
- リポジトリをフォークします。
- 機能ブランチを作成します (
git checkout -b feature/amazing-feature)。
- 変更をコミットします (
git commit -m 'Add amazing feature')。
- ブランチにプッシュします (
git push origin feature/amazing-feature)。
- プルリクエストを作成します。
📄 ライセンス
🆓 この MCP サーバー
MIT ライセンス - 使用、修正、共有が可能です。詳細は LICENSE ファイルを参照してください。
作成者: Traves Theberge Traves.Theberge@gmail.com
📊 HackerNews API
非商用利用は無料 - コンテンツを作成するコミュニティを尊重してください。
商用利用: Y Combinator の利用規約 を確認してください。
🌟 コミュニティに参加しましょう
バグを見つけた場合: イシューを作成してください!
アイデアがある場合: ディスカッションを開始してください!
コントリビュートしたい場合: プルリクエストを歓迎します!
🔗 接続情報
- 📧 メール: Traves.Theberge@gmail.com
- 🐙 GitHub: このリポジトリ
- 🗨️ ディスカッション: あなたの HackerNews の洞察を共有しましょう!
🧡 Hacking を続け、探求を続けましょう! 🧡
HackerNews コミュニティのために愛を込めて作成されました
⭐ このリポジトリをスターする • 🍴 フォークする • 📝 コントリビュートする