Skip to main content
Glama

Qiita MCP Server

Qiita および Qiita Team の記事検索・閲覧機能を提供する MCP (Model Context Protocol) サーバー。

特徴

  • 📖 記事の検索・閲覧

  • 🏷️ タグによる絞り込み

  • 👤 ユーザー別記事取得

  • 💬 コメント取得

  • ⭐ ストック(ブックマーク)記事の取得

  • 🔒 Qiita Team 対応

  • ⚡ Hono による高速なルーティング

  • ✅ Zod による型安全なバリデーション

Related MCP server: Qiita API MCP Server

技術スタック

  • Hono: 軽量で高速な Web フレームワーク

  • Zod: TypeScript ファーストなスキーマバリデーション

  • MCP SDK: Model Context Protocol の公式 SDK

  • TypeScript: 型安全な開発

仕様書

詳細な仕様は docs/specification.md を参照してください。

インストール

npm install
npm run build

起動

サーバーの起動

npm start

デフォルトでは http://localhost:3000 で起動します。

環境変数

ポート設定(オプション)

export PORT=3000

Qiita アクセストークン(オプション)

認証なしでも公開記事は閲覧できますが、レート制限が厳しくなります。 アクセストークンを設定することを推奨します。

export QIITA_ACCESS_TOKEN=your_access_token_here

アクセストークンは Qiita の設定ページ で取得できます。

Qiita Team(オプション)

Qiita Team を使用する場合は、チーム名を設定します。

export QIITA_TEAM=your_team_name

環境変数を設定して起動

QIITA_ACCESS_TOKEN=your_token PORT=3000 npm start

Claude Desktop での設定

本サーバーは SSE (Server-Sent Events) 方式で動作します。

Claude Desktop の設定ファイルに以下を追加します。

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "qiita": {
      "url": "http://localhost:3000/sse"
    }
  }
}

重要: Claude Desktop から接続する前に、サーバーを起動しておく必要があります。

サーバーを起動してから Claude Desktop を起動、またはリロードしてください。

環境変数付きで起動する場合

別のターミナルウィンドウで以下のコマンドを実行してサーバーを起動します:

QIITA_ACCESS_TOKEN=your_token npm start

Qiita Team を使用する場合:

QIITA_ACCESS_TOKEN=your_token QIITA_TEAM=your_team_name npm start

提供されるツール

search_items

記事を検索します。

パラメータ:

  • query (string, optional): 検索クエリ

  • page (number, optional): ページ番号(1-100、デフォルト: 1)

  • per_page (number, optional): 1ページあたりの件数(1-100、デフォルト: 20)

使用例:

Qiita で「MCP Server」を検索してください

get_item

特定の記事を取得します。

パラメータ:

  • item_id (string, required): 記事ID

使用例:

記事 ID が "abc123" の記事を表示してください

get_items_by_tag

特定のタグが付いた記事を取得します。

パラメータ:

  • tag_id (string, required): タグID

  • page (number, optional): ページ番号

  • per_page (number, optional): 1ページあたりの件数

使用例:

Python タグの記事を表示してください

get_items_by_user

特定のユーザーの記事を取得します。

パラメータ:

  • user_id (string, required): ユーザーID

  • page (number, optional): ページ番号

  • per_page (number, optional): 1ページあたりの件数

使用例:

ユーザー "example_user" の記事を表示してください

get_tags

タグ一覧を取得します。

パラメータ:

  • page (number, optional): ページ番号

  • per_page (number, optional): 1ページあたりの件数

  • sort (string, optional): ソート順("count" または "name")

使用例:

人気のタグ一覧を表示してください

get_item_comments

記事のコメントを取得します。

パラメータ:

  • item_id (string, required): 記事ID

使用例:

記事 "abc123" のコメントを表示してください

get_user_stocks

ユーザーがストックした記事を取得します。

パラメータ:

  • user_id (string, required): ユーザーID

  • page (number, optional): ページ番号

  • per_page (number, optional): 1ページあたりの件数

使用例:

ユーザー "example_user" がストックした記事を表示してください

開発

# ビルド
npm run build

# 開発モード(ウォッチモード)
npm run dev

# 起動
npm start

ライセンス

MIT

参考

Available Tools

7 tools
get_itemB

Get a specific Qiita article by its ID.

Inputs: item_id (required).

get_item_commentsB

Get comments on a specific article.

Inputs: item_id (required).

get_items_by_tagC

Get Qiita articles with a specific tag.

Inputs: tag_id (required), page, per_page.

get_items_by_userC

Get articles written by a specific user.

Inputs: user_id (required), page, per_page.

get_tagsC

Get a list of tags used in Qiita.

Inputs: page, per_page, sort.

get_user_stocksC

Get articles that a user has stocked (bookmarked).

Inputs: user_id (required), page, per_page.

search_itemsB

Search Qiita articles. You can search with a query string or get recent articles without a query.

Inputs: query, page, per_page.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 7 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose targeting specific resources and actions: retrieving articles by ID, comments, tags, users, stocks, or search. No ambiguity exists as each tool name precisely indicates its function without overlap.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern using snake_case (e.g., get_item, get_tags, search_items). The naming is highly predictable and readable throughout the set.

    Tool Count5/5

    With 7 tools, the count is well-scoped for a Qiita article browsing and retrieval server. Each tool earns its place by covering distinct aspects like articles, tags, users, comments, and search.

    Completeness4/5

    The tool set provides comprehensive read-only coverage for browsing and retrieving Qiita content, including articles, comments, tags, users, and search. A minor gap exists in write operations (e.g., creating or updating articles), but agents can effectively work with the available tools for querying purposes.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers