Skip to main content
Glama

📰 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‑Server

JSON‑RPC over STDIO — Web サーバー不要

Multi‑Source

Qiita/Dev.to/NewsAPI.org/Hacker News API を横断ラップ

Summarize

URL 要約 (summarizeUrlArticle) & Qiita 特化要約

Aggregate

全ソース取得 (fetchAllArticles) & 一括 Notion 同期 (aggregateArticles)

Recommend

読了 × 評価 × タグベースの簡易レコメンド (recommendArticles)

Easy Integration

Claude Desktop などで関数呼び出し感覚で利用可能

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


🔧 Requirements

  • Node.js 18.x 以上

  • npm または yarn

  • .env.env.example を参照して作成

# ==== API Keys & Tokens ====
GEMINI_API_KEY=your_gemini_api_key_here     # Google Generative AI
NEWSAPI_KEY=your_newsapi_api_key_here       # NewsAPI.org
QIITA_TOKEN=your_qiita_token_here           # Qiita (optional)

# ==== Pagination Settings ====
PAGE_LIMIT=3        # デフォルト取得件数/サービス
ITEMS_PER_PAGE=10   # ページネーション単位

# ==== Notion Integration ====
NOTION_API_KEY=your_notion_api_key_here     # Notion Integration Token
NOTION_DATABASE_ID=your_database_id_here    # 記事保存用DB ID

Dev.to/Hacker News は API キー不要です。


📦 Installation / Quick Start

# 1) Clone
$ git clone https://github.com/RuumaLilja/tech-collector-mcp.git
$ cd tech-collector-mcp

# 2) Install dependencies
$ npm install   # または yarn install

# 3) Setup environment
$ cp .env.example .env
# .env を編集して各種キーを入力

# 4) Run MCP server (STDIO mode)
$ node src/index.js

🛠️ Using with Claude Desktop

settings.json に MCP サーバーを登録:

{
  "mcpServers": {
    "tech-collector": {
      "command": "node",
      "args": ["/absolute/path/to/tech-collector-mcp/src/index.js"]
    }
  }
}

起動後、チャット例:

Dev.toでreactタグの記事を3件取得して
最新テックニュースを取得して
Hacker Newsのトップ技術ネタを5件
https://example.com/article を要約して
取得した記事を Notion に保存して
全ソースを取得して Notion に同期して
全部まとめて最新技術記事を取得して
おすすめ記事(パーソナライズ推薦)を5件教えて```

📂 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

説明

Params

Returns

initialize

MCP ハンドシェイク

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 を参照。


🩹 Troubleshooting

エラー/症状

解決策

Unsupported content type: json

MCP クライアントが type:'text' 以外のレスポンスを受信。ツール実装を確認

401 Unauthorized

.envNEWSAPI_KEY または NOTION_API_KEY を確認

ツールが呼ばれない

descriptionForModelinputSchema を見直し、クライアント再起動


🗺 Roadmap

  1. Phase 1: Qiita ランキング+要約 (✅)

  2. Phase 2: マルチソース収集 (✅)

  3. Phase 3: Notion 連携 & パーソナライズ推薦 (✅)

  4. Phase 4: Slack 連携

  5. Phase 5: 定期バッチ

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/RuumaLilja/tech-collector-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server