Skip to content

yotsuda/QiitaDrive

Repository files navigation

QiitaDrive

Qiita の記事をファイルシステムのように操作できる PowerShell Provider モジュール。

PS > dir Qiita:\Tags\PowerShell.MCP

   Directory: Qiita:\Tags\PowerShell.MCP

Name                                                                   Likes Stocks Info            CreatedAt  UpdatedAt
----                                                                   ----- ------ ----            ---------  ---------
5262_Vibe Editing のための Markdown ビューアを MCP で作ってみた.md         0      0 ytsuda          2026-02-26 2026-02-28
24dd_いま一番新しい、Git の使い方を学ぶ方法.md                            64     54 ytsuda          2025-12-06 2025-12-20
c3f4_MCP 時代の到来とアプリ開発の新常識.md                                15      6 ytsuda          2025-07-11 2025-11-16
6c6f_PowerShell コンソールを MCP サーバーにする.md                         6      6 ytsuda          2025-05-26 2026-02-09

特徴

  • 仮想ファイルシステムdir, cd, Get-Content, Invoke-Item など標準の PowerShell コマンドで Qiita を操作
  • OAuth 認証 — ブラウザでログインするだけ。トークンの手動取得は不要
  • Qiita Team 対応-Team パラメータでチーム環境に接続
  • ページング-Skip / -First で大量の記事を効率的にブラウズ
  • キャッシュ — 一度取得した記事はセッション中キャッシュ。-Force で再取得
  • 読み取り専用 — 記事の閲覧・検索に特化。更新・削除は行わない

動作環境

  • PowerShell 7.4 以降
  • .NET 8.0

インストール

Install-PSResource QiitaDrive

使い方

ドライブの作成

# OAuth 認証(ブラウザが開きます)
New-QiitaDrive

# トークンを直接指定
New-QiitaDrive -Token your_access_token

# Qiita Team に接続
New-QiitaDrive -Team your-team

記事のブラウズ

# タグで記事を一覧
dir Qiita:\Tags\PowerShell

# ユーザーの記事を一覧
dir Qiita:\Users\Qiita

# 検索
dir Qiita:\Search\Docker

# 自分の記事
dir Qiita:\Me\Items

# ストックした記事
dir Qiita:\Me\Stocks

# ページング
dir Qiita:\Tags\Python -First 50
dir Qiita:\Tags\Python -Skip 100 -First 20

記事を読む

# Get-Content で Markdown として取得
Get-Content Qiita:\Tags\PowerShell\9ed7_記事タイトル.md

# MarkdownPointer モジュールでレンダリング表示
mdp Qiita:\Tags\PowerShell\9ed7_記事タイトル.md

# Invoke-Item で既定のアプリで開く
Invoke-Item Qiita:\Tags\PowerShell\9ed7_記事タイトル.md

# Open-QiitaPage でブラウザで Qiita ページを開く
Open-QiitaPage Qiita:\Tags\PowerShell\9ed7_記事タイトル.md

URL / ID で記事を取得

# URL で取得
Get-QiitaItem https://qiita.com/user/items/abc123

# 短縮 ID で取得(キャッシュ済み記事)
Get-QiitaItem 1c6b

# URL → プロバイダパスに変換して Get-Content で読む
Resolve-QiitaPath https://qiita.com/user/items/abc123 | Get-Content

検索

# API 検索
dir Qiita:\Search\PowerShell

# キャッシュ済み記事の全文検索
Search-QiitaContent PowerShell

# 特定タグの記事を検索
Search-QiitaContent API -Path Qiita:\Tags\PowerShell

# 全フォルダを再帰検索
Search-QiitaContent Docker -Recurse

# 前後行を表示
Search-QiitaContent error -Context 2

記事の詳細情報

# コメントを一覧
dir Qiita:\ItemDetails\c686_記事タイトル\Comments

# コメントの内容を読む
Get-Content Qiita:\ItemDetails\c686_記事タイトル\Comments\1_user_2025-12-06.md

# いいねしたユーザーを一覧
dir Qiita:\ItemDetails\c686_記事タイトル\Likes

# ストックしたユーザーを一覧
dir Qiita:\ItemDetails\c686_記事タイトル\Stockers

# コメント・いいね・ストックを一括取得
dir Qiita:\ItemDetails\c686_記事タイトル -Recurse

フォルダの操作

# Qiita の対応ページをブラウザで開く
Open-QiitaPage Qiita:\Tags\PowerShell  # → https://qiita.com/tags/PowerShell
Open-QiitaPage Qiita:\Users\Qiita      # → https://qiita.com/Qiita

# キャッシュの削除(Search, Tags, Users のサブフォルダ)
Remove-Item Qiita:\Search\PowerShell
Remove-Item Qiita:\Tags\Python
Remove-Item Qiita:\Users\Qiita

キャッシュ管理

# カレントフォルダの全キャッシュクリア
Clear-QiitaCache

# 特定パスのキャッシュをクリア
Clear-QiitaCache Tags/PowerShell

# -Force で再取得
dir Qiita:\Tags\PowerShell -Force

# ワイルドカード文字を含むタグ名をそのまま指定
Clear-QiitaCache -LiteralPath Tags/C*

自分の記事をトラックする

# 自分の全記事を一覧(いいね・ストック・PV 付き)
dir Qiita:\Me\Items -First 100

# いいね数でランキング(-First をつけないとキャッシュ済みの記事が対象)
dir Qiita:\Me\Items | Sort-Object LikesCount -Descending |
    Select-Object Title, LikesCount, StocksCount, PageViewsCount

# 統計サマリー
dir Qiita:\Me\Items | Measure-Object -Property LikesCount, StocksCount, PageViewsCount -Sum -Average

# 記事のパフォーマンスを CSV にエクスポート
dir Qiita:\Me\Items |
    Select-Object Title, LikesCount, StocksCount, PageViewsCount, CommentsCount, CreatedAt |
    Export-Csv -Path my-articles.csv -NoTypeInformation

# 自分の記事をローカルにバックアップ
cd Qiita:\Me\Items; dir -First 100
Copy-QiitaItem * C:\backup\qiita\

Me\Items では PageViewsCount(PV 数)が取得でき、Private(限定公開)フラグも確認できます。

パイプラインとの連携

# いいね数でソート(API の制限により、取得済みの記事のみが対象)
dir Qiita:\Tags\PowerShell -First 100 | Sort-Object LikesCount -Descending

# 条件でフィルタ
dir Qiita:\Tags\Python -First 100 | Where-Object { $_.LikesCount -ge 10 }

フォルダ構造

Qiita:\
├── CachedItems\              # キャッシュされた全記事
├── ItemDetails\              # 記事の詳細情報
│   └── <記事名>\
│       ├── Comments\         # コメント(Get-Content 対応)
│       ├── Likes\            # いいねしたユーザー
│       └── Stockers\         # ストックしたユーザー
├── LatestItems\              # Qiita 全体の新着記事
├── Me\                       # 認証ユーザー
│   ├── Followers\            # フォロワー
│   ├── FollowingTags\        # フォロー中のタグ
│   ├── FollowingUsers\       # フォロー中のユーザー
│   ├── Items\                # 自分の記事
│   └── Stocks\               # ストック
├── Search\                   # 検索結果
│   └── <query>\
├── Tags\                     # タグ別記事
│   └── <tag>\
├── Team\                     # Qiita Team(Team 接続時のみ)
│   ├── Groups\
│   ├── Invitations\
│   ├── Members\
│   └── Templates\
└── Users\                    # ユーザー別記事
    └── <user_id>\

コマンドレット一覧

コマンド 説明
New-QiitaDrive Qiita ドライブに接続(OAuth 認証またはトークン指定)
Copy-QiitaItem 記事をローカルファイルにコピー(ワイルドカード対応)
Open-QiitaPage Qiita の対応ページをブラウザで開く
Clear-QiitaCache キャッシュをクリア
Get-QiitaItem URL または ID で記事を取得
Get-QiitaComment URL または ID でコメントを取得
Resolve-QiitaPath URL/ID をプロバイダパスに変換
Search-QiitaContent キャッシュ済み記事の全文検索

ライセンス

MIT License — 詳細は LICENSE を参照してください。

About

Qiita API v2 as a PowerShell drive. Articles become files you can cd, dir, cat, and copy.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors