Labsco
RuumaLilja logo

Tech Collector MCP

from RuumaLilja

Collects and summarizes technical articles from sources like Qiita, Dev.to, NewsAPI, and Hacker News using the Gemini API.

🔥🔥🔥✓ VerifiedAccount requiredNeeds API keys

📰 tech-collector-mcp

Qiita × MCP × Gemini — AI クライアントから呼び出せる “技術記事収集・要約 & Notion 連携” プロトタイプ


✨ What’s this?

tech-collector-mcpMCP (Model Context Protocol) を使い、複数ソース(Qiita/Dev.to/NewsAPI/Hacker News)から技術記事を一括取得し、Gemini API で要約、Notion データベースへ自動同期まで行う CLI ベースの実験プロジェクト です。

AI-Powered Prototyping: ChatGPT や Claude を活用した迅速なプロトタイピングを実施しています。

機能説明
Zero‑ServerJSON‑RPC over STDIO — Web サーバー不要
Multi‑SourceQiita/Dev.to/NewsAPI.org/Hacker News API を横断ラップ
SummarizeURL 要約 (summarizeUrlArticle) & Qiita 特化要約
Aggregate全ソース取得 (fetchAllArticles) & 一括 Notion 同期 (aggregateArticles)
Recommend読了 × 評価 × タグベースの簡易レコメンド (recommendArticles)
Easy IntegrationClaude Desktop などで関数呼び出し感覚で利用可能

Prototyping Phase 🛠️  スキーマ & プロンプトは随時更新中。


📂 Project Structure

tech-collector-mcp/
├── adapters/
│   └── notionSdkStorage.js       # Notion SDK 実装 (StoragePort)
├── clients/
│   ├── devtoClient.js
│   ├── geminiClient.js
│   ├── hackerNewsClient.js
│   ├── newsApiClient.js
│   └── qiitaClient.js
├── config/
│   ├── constants.js
│   ├── environment.js
│   ├── prompts.js                # プロンプト定義
│   ├── toolDefinitions.dynamic.js# Notionスキーマ連動ツール
│   └── toolDefinitions.static.js # 静的ツール定義
├── ports/
│   └── storage.js                # StoragePort インターフェース
├── services/
│   ├── aggregatorService.js      # 全ソース取得→Notion同期
│   ├── devtoService.js
│   ├── fetchService.js           # 全ソース取得
│   ├── hackerNewsService.js
│   ├── newsApiService.js
│   ├── qiitaRanking.js
│   ├── recommenderService.js     # 読了×評価×タグベース推薦
│   ├── reportService.js          # 同期結果レポート
│   ├── summarizeService.js       # URL要約
│   ├── syncBatchService.js       # Notion並列同期
│   └── syncService.js            # 単一記事同期
├── utils/
│   ├── errors.js
│   ├── fieldMapper.js            # 外部→Notionフィールド変換
│   ├── rpcHelpers.js
│   └── simhash.js                # URL→SimHash (MD5)
└── index.js                      # エントリーポイント

📖 JSON‑RPC Overview

Method説明ParamsReturns
initializeMCP ハンドシェイクcapabilities.tools
tools/list利用可能ツール一覧name, description, inputSchema
tools/callツール実行name, arguments実行結果 (content[])

Main Tools (抜粋)

  • getQiitaRanking — Qiita 人気記事ランキング取得
  • getDevtoArticles — Dev.to のタグ/検索記事取得
  • getNewsApiArticles — NewsAPI.org からテックニュース取得
  • getHackerNewsTopStories — Hacker News トップストーリー取得
  • fetchAllArticles — 全ソースまとめて最新取得
  • summarizeUrlArticle — 任意 URL 記事を Gemini で要約
  • syncArticleToNotion — 記事を Notion に保存
  • aggregateArticles — 全ソース取得 →Notion 一括同期
  • recommendArticles — 読了 × 評価 × タグで簡易推薦

詳細は toolDefinitions.*.js を参照。


🗺 Roadmap

  1. Phase 1: Qiita ランキング+要約 (✅)
  2. Phase 2: マルチソース収集 (✅)
  3. Phase 3: Notion 連携 & パーソナライズ推薦 (✅)
  4. Phase 4: Slack 連携
  5. Phase 5: 定期バッチ