Skip to main content
Glama
Qiita API MCP Server

Qiita API MCP Server

by Selenium39

MCP Server for Qiita

Qiita API v2用のMCP(Model Context Protocol)サーバーです。日本ユーザー向けに日本語のコメントとドキュメントを提供します。

機能

このMCPサーバーは以下のQiita API機能を提供します:

ユーザー関連

  • 認証されたユーザー情報の取得

  • ユーザー詳細情報の取得

  • ユーザー一覧の取得

  • ユーザーの記事一覧の取得

  • ユーザーのストック一覧の取得

  • ユーザーのフォロワー・フォロー一覧の取得

  • ユーザーのフォロー・フォロー解除

記事関連

  • 記事一覧の取得(検索機能付き)

  • 記事詳細情報の取得

  • 記事の作成・更新・削除

  • 記事のストック・ストック解除

  • 記事のストック状況確認

  • 記事のストッカー一覧取得

タグ関連

  • タグ一覧の取得(ソート機能付き)

  • タグ詳細情報の取得

  • タグの記事一覧の取得

  • タグのフォロー・フォロー解除

  • タグのフォロー状況確認

コメント関連

  • 記事のコメント一覧の取得

  • コメントの作成・更新・削除

  • コメント詳細情報の取得

Related MCP server: note.com MCP Server

インストール

前提条件

  • Node.js 18.0.0以上

NPMからインストール(推奨)

npm install -g mcp-server-qiita

開発版のセットアップ

  1. リポジトリをクローン

git clone https://github.com/selenium39/mcp-server-qiita.git
cd mcp-server-qiita
  1. 依存関係をインストール

npm install
  1. ビルド

npm run build

使用方法

環境変数の設定

Qiita APIを使用するには、アクセストークンが必要です。以下の環境変数を設定してください:

export QIITA_ACCESS_TOKEN="your_qiita_access_token_here"

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

サーバーの起動

pnpm start

または開発モードで起動:

pnpm dev

MCPクライアントでの使用

このサーバーはMCPプロトコルを使用してクライアントと通信します。

Cursor設定例 (.cursor/mcp.json)

{
  "mcpServers": {
    "qiita": {
      "command": "mcp-server-qiita",
      "env": {
        "QIITA_ACCESS_TOKEN": "your_qiita_access_token_here"
      }
    }
  }
}

利用可能なツール

以下のようなツールが利用可能です:

ユーザー関連ツール

  • get_authenticated_user: 認証されたユーザー情報を取得

  • get_user: 指定されたユーザーの詳細情報を取得

  • get_users: ユーザー一覧を取得

  • get_user_items: 指定されたユーザーの記事一覧を取得

  • get_user_stocks: 指定されたユーザーのストック一覧を取得

  • get_user_followers: 指定されたユーザーのフォロワー一覧を取得

  • get_user_followees: 指定されたユーザーのフォロー一覧を取得

  • follow_user: 指定されたユーザーをフォロー

  • unfollow_user: 指定されたユーザーのフォローを解除

  • is_user_followed: 指定されたユーザーをフォローしているかどうかを確認

記事関連ツール

  • get_items: 記事一覧を取得(検索機能付き)

  • get_item: 指定された記事の詳細情報を取得

  • create_item: 新しい記事を作成

  • update_item: 既存の記事を更新

  • delete_item: 指定された記事を削除

  • stock_item: 指定された記事をストック

  • unstock_item: 指定された記事のストックを解除

  • is_item_stocked: 指定された記事がストックされているかどうかを確認

  • get_item_stockers: 指定された記事をストックしたユーザー一覧を取得

タグ関連ツール

  • get_tags: タグ一覧を取得(ソート機能付き)

  • get_tag: 指定されたタグの詳細情報を取得

  • get_tag_items: 指定されたタグの記事一覧を取得

  • follow_tag: 指定されたタグをフォロー

  • unfollow_tag: 指定されたタグのフォローを解除

  • is_tag_followed: 指定されたタグをフォローしているかどうかを確認

コメント関連ツール

  • get_item_comments: 指定された記事のコメント一覧を取得

  • create_comment: 指定された記事にコメントを作成

  • update_comment: 指定されたコメントを更新

  • delete_comment: 指定されたコメントを削除

  • get_comment: 指定されたコメントの詳細情報を取得

開発

開発環境のセットアップ

# 依存関係をインストール
pnpm install

# 型チェック
pnpm type-check

# ビルド
pnpm build

# 開発モードで実行
pnpm dev

プロジェクト構造

mcp-server-qiita/
├── src/
│   └── index.ts          # メインのMCPサーバーファイル
├── dist/                 # ビルド出力ディレクトリ
├── package.json          # プロジェクト設定
├── tsconfig.json         # TypeScript設定
└── README.md            # このファイル

ライセンス

MIT License

貢献

プルリクエストやイシューの報告を歓迎します。

注意事項

  • このサーバーはQiita API v2を使用しています

  • 認証が必要な操作(記事の作成、更新、削除など)には有効なアクセストークンが必要です

  • APIレート制限に注意してください(認証済みリクエスト: 1000回/時間、未認証リクエスト: 60回/時間)

  • すべてのコメントとドキュメントは日本語で記述されています


関連プロジェクト

MCP Server for Temporary Email

開発・テスト時に一時メールが必要な場合に、mcp-server-tempmailをお試しください。

mcp-server-tempmailは、ChatTempMail APIを使用した一時メール管理のためのMCPサーバーです。AI開発ワークフローに一時メール機能をシームレスに統合し、以下の機能を提供します:

  • AI統合: Cursor、Claude、VS Code Copilotなどの人気AIツールとのネイティブ統合

  • リアルタイム監視: 一時受信箱にメールが届いたときに即座に通知

  • プライバシー保護: 開発とテスト中に実際のメールアドレスをプライベートに保持

  • 簡単セットアップ: わずか数行のJSON設定で簡単に設定

  • 柔軟な設定: メール有効期限とWebhook設定をカスタマイズ

# NPMからインストール
npm install -g mcp-server-tempmail

詳細は公式サイトをご覧ください。

Available Tools

30 tools
create_commentC

指定された記事にコメントを作成します

Inputs: itemId (required), body (required).

create_itemC

新しい記事を作成します

Inputs: title (required), body (required), tags (required), private, +1 more.

delete_commentC

指定されたコメントを削除します

Inputs: commentId (required).

delete_itemC

指定された記事を削除します

Inputs: itemId (required).

follow_tagC

指定されたタグをフォローします

Inputs: tagId (required).

follow_userC

指定されたユーザーをフォローします

Inputs: userId (required).

get_authenticated_userB

認証されたユーザーの詳細情報を取得します

Inputs: no named parameters.

get_commentC

指定されたコメントの詳細情報を取得します

Inputs: commentId (required).

get_itemC

指定された記事の詳細情報を取得します

Inputs: itemId (required).

get_item_commentsC

指定された記事のコメント一覧を取得します

Inputs: itemId (required).

get_itemsC

記事一覧を取得します

Inputs: page, perPage, query.

get_item_stockersC

指定された記事をストックしたユーザー一覧を取得します

Inputs: itemId (required), page, perPage.

get_tagC

指定されたタグの詳細情報を取得します

Inputs: tagId (required).

get_tag_itemsC

指定されたタグの記事一覧を取得します

Inputs: tagId (required), page, perPage.

get_tagsC

タグ一覧を取得します

Inputs: page, perPage, sort.

get_userC

指定されたユーザーの詳細情報を取得します

Inputs: userId (required).

get_user_followeesC

指定されたユーザーのフォロー一覧を取得します

Inputs: userId (required), page, perPage.

get_user_followersB

指定されたユーザーのフォロワー一覧を取得します

Inputs: userId (required), page, perPage.

get_user_itemsC

指定されたユーザーの記事一覧を取得します

Inputs: userId (required), page, perPage.

get_usersC

ユーザー一覧を取得します

Inputs: page, perPage.

get_user_stocksC

指定されたユーザーのストック一覧を取得します

Inputs: userId (required), page, perPage.

is_item_stockedC

指定された記事がストックされているかどうかを確認します

Inputs: itemId (required).

is_tag_followedC

指定されたタグをフォローしているかどうかを確認します

Inputs: tagId (required).

is_user_followedB

指定されたユーザーをフォローしているかどうかを確認します

Inputs: userId (required).

stock_itemC

指定された記事をストックします

Inputs: itemId (required).

unfollow_tagC

指定されたタグのフォローを解除します

Inputs: tagId (required).

unfollow_userC

指定されたユーザーのフォローを解除します

Inputs: userId (required).

unstock_itemC

指定された記事のストックを解除します

Inputs: itemId (required).

update_commentC

指定されたコメントを更新します

Inputs: commentId (required), body (required).

update_itemC

既存の記事を更新します

Inputs: itemId (required), title (required), body (required), tags (required), +1 more.

Tool Schema Changelog

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

Loading tool schema changelog…

    TDQS

    B3.2/5.0

    Scored across 30 tools

    Disambiguation5/5

    Every tool has a clearly distinct purpose targeting specific resources (items, comments, tags, users) and actions (create, get, update, delete, follow/unfollow, stock/unstock). No ambiguity exists—for example, get_item retrieves a single article while get_items lists multiple, and follow_user/unfollow_user are complementary opposites.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern using snake_case (e.g., create_item, get_user, update_comment). The naming is highly predictable, with verbs like get, create, update, delete, follow, unfollow, stock, unstock, and is applied uniformly across resources.

    Tool Count3/5

    With 30 tools, the count is borderline high for a typical MCP server, though it covers a comprehensive social blogging platform (Qiita). While each tool serves a purpose, the number might feel heavy compared to simpler APIs, but it's justified by the domain's complexity.

    Completeness5/5

    The toolset provides complete CRUD/lifecycle coverage for all core resources (items, comments, tags, users), including follow/unfollow and stock/unstock operations. There are no obvious gaps—every major action an agent would need for interacting with Qiita's API is available.

    Related MCP Connectors

    Related MCP Servers