Qiita MCP Server
Provides comprehensive access to the Qiita API v2, allowing AI agents to manage articles, comments, tags, users, reactions, teams, groups, and templates on the Qiita platform.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Qiita MCP Server search for the latest articles about TypeScript and React"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Qiita MCP Server
Qiita API v2 の全機能 (68 ツール) を MCP (Model Context Protocol) 経由で AI から操作できる stdio サーバーです。
クイックスタート
1. アクセストークンの取得
Qiita の設定ページ でアクセストークンを発行してください。
2. Claude Desktop で使う
claude_desktop_config.json に以下を追加するだけ:
{
"mcpServers": {
"qiita-mcp": {
"command": "npx",
"args": ["-y", "@sunu-py-jp/qiita-mcp"],
"env": {
"QIITA_ACCESS_TOKEN": "your_token_here"
}
}
}
}設定ファイルの場所
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
3. Claude Code で使う
claude mcp add qiita -e QIITA_ACCESS_TOKEN=your_token -- npx -y @sunu-py-jp/qiita-mcp4. その他の MCP クライアント
# npx で直接起動 (インストール不要)
QIITA_ACCESS_TOKEN=your_token npx -y @sunu-py-jp/qiita-mcp
# またはグローバルインストール
npm install -g @sunu-py-jp/qiita-mcp
QIITA_ACCESS_TOKEN=your_token qiita-mcpRelated MCP server: Qiita API MCP Server
Qiita Team での利用
Qiita Team で使用する場合は QIITA_BASE_URL 環境変数を追加してください:
{
"mcpServers": {
"qiita": {
"command": "npx",
"args": ["-y", "@sunu-py-jp/qiita-mcp"],
"env": {
"QIITA_ACCESS_TOKEN": "your_token_here",
"QIITA_BASE_URL": "https://your-team.qiita.com"
}
}
}
}ツールフィルタリング
68 ツール全てが不要な場合、環境変数でグループ単位・ツール単位のフィルタリングが可能です。
QIITA_ENABLED_GROUPS
カンマ区切りで カテゴリ:操作 を指定し、有効にするツールグループを絞り込みます。
未設定: 全ツールが有効(デフォルト)
カテゴリのみ: そのカテゴリの read/write 両方が有効
カテゴリ:操作: 指定した操作のツールのみ有効
操作は read(GET 系)と write(POST/PUT/PATCH/DELETE 系)の 2 種類です。
カテゴリ一覧: auth, authenticated_user, items, comments, tags, users, reactions, teams, groups, templates
QIITA_DISABLED_TOOLS
カンマ区切りでツール名を指定し、個別にツールを除外します。QIITA_ENABLED_GROUPS でフィルタされた後に適用されます。
設定例
{
"mcpServers": {
"qiita-mcp": {
"command": "npx",
"args": ["-y", "@sunu-py-jp/qiita-mcp"],
"env": {
"QIITA_ACCESS_TOKEN": "your_token_here",
"QIITA_ENABLED_GROUPS": "items:read,comments:read",
"QIITA_DISABLED_TOOLS": "list_item_stockers"
}
}
}
}ユースケース | 設定 | 結果 |
記事の閲覧のみ |
| 5 ツール |
記事の全操作 |
| 11 ツール |
記事操作から削除を除外 |
| 10 ツール |
特定ツールだけ除外 |
| 66 ツール |
提供ツール一覧 (68 tools)
認証 (auth) - 4 tools
ツール | 説明 |
| アクセストークンを作成 |
| アクセストークンを無効化 |
| チーム用アクセストークンを作成 |
| チーム用アクセストークンを無効化 |
認証ユーザー (authenticated-user) - 2 tools
ツール | 説明 |
| 認証ユーザーの情報を取得 |
| 認証ユーザーの記事一覧を取得 |
記事 (items) - 11 tools
ツール | 説明 |
| 記事一覧を取得 (検索クエリ対応) |
| 記事を ID で取得 |
| 記事を作成 |
| 記事を更新 |
| 記事を削除 |
| ユーザーの記事一覧を取得 |
| ユーザーのストック一覧を取得 |
| 記事をストックしたユーザー一覧を取得 |
| 記事をストック |
| 記事のストックを解除 |
| 記事をインポート (Team 管理者のみ) |
コメント (comments) - 6 tools
ツール | 説明 |
| 記事のコメント一覧を取得 |
| コメントを投稿 |
| コメントを取得 |
| コメントを更新 |
| コメントを削除 |
| コメントをインポート (Team 管理者のみ) |
タグ (tags) - 8 tools
ツール | 説明 |
| タグ一覧を取得 |
| タグ詳細を取得 |
| タグが付いた記事一覧を取得 |
| ユーザーがフォロー中のタグ一覧を取得 |
| タグをフォロー |
| タグのフォローを解除 |
| 記事にタグを追加 (Team のみ) |
| 記事からタグを削除 (Team のみ) |
ユーザー (users) - 9 tools
ツール | 説明 |
| ユーザー一覧を取得 |
| ユーザー情報を取得 |
| フォロー中のユーザー一覧を取得 |
| フォロワー一覧を取得 |
| ユーザーをフォロー |
| ユーザーのフォローを解除 |
| フォロー状態を確認 |
| 記事のいいね一覧を取得 |
| 記事のストック状態を確認 |
リアクション (reactions) - 7 tools
ツール | 説明 |
| 記事に絵文字リアクションを追加 |
| 記事のリアクション一覧を取得 |
| 記事のリアクションを削除 |
| コメントに絵文字リアクションを追加 |
| コメントのリアクション一覧を取得 |
| コメントのリアクションを削除 |
| プロジェクトコメントにリアクションを追加 |
チーム (teams) - 6 tools
ツール | 説明 |
| 所属チーム一覧を取得 |
| チームメンバー一覧を取得 |
| チーム招待一覧を取得 |
| チームに招待 |
| チーム招待を取り消し |
| チームメンバーを削除 |
グループ (groups) - 9 tools
ツール | 説明 |
| グループ一覧を取得 |
| グループを作成 |
| グループ詳細を取得 |
| グループを更新 |
| グループを削除 |
| グループメンバー一覧を取得 |
| グループにメンバーを追加 |
| グループからメンバーを削除 |
| グループメンバー情報を取得 |
テンプレート (templates) - 6 tools
ツール | 説明 |
| テンプレート一覧を取得 |
| テンプレートを作成 |
| テンプレートを取得 |
| テンプレートを更新 |
| テンプレートを削除 |
| テンプレート変数を展開 |
開発
git clone https://github.com/sunu-py-jp/Qiita-MCP.git
cd Qiita-MCP
npm install
npm run buildライセンス
Available Tools
68 toolsadd_group_memberC
Add members to a group (Qiita Team only)
Inputs: url_name (required), user_ids (required).
check_item_stockC
Check if the authenticated user has stocked the item
Inputs: item_id (required).
check_user_followingB
Check if the authenticated user is following the specified user
Inputs: user_id (required).
create_access_tokenC
Create a new access token by exchanging an authorization code
Inputs: client_id (required), client_secret (required), code (required).
create_commentC
Post a new comment on an item (article)
Inputs: item_id (required), body (required).
create_comment_reactionB
Add an emoji reaction to a comment (Qiita Team only)
Inputs: comment_id (required), name (required).
create_groupC
Create a new group (Qiita Team only)
Inputs: name (required), url_name (required), private.
create_itemC
Create a new Qiita item (article)
Inputs: title (required), body (required), tags (required), private, +1 more.
create_item_reactionB
Add an emoji reaction to an item (Qiita Team only)
Inputs: item_id (required), name (required).
create_project_comment_reactionB
Add an emoji reaction to a project comment (Qiita Team only)
Inputs: comment_id (required), name (required).
create_taggingB
Add a tag to an item (Qiita Team only). Optionally specify versions.
Inputs: item_id (required), name (required), versions.
create_team_access_tokenB
Create a new team access token by exchanging an authorization code
Inputs: client_id (required), client_secret (required), code (required).
create_team_invitationB
Invite a user to the team by email (Qiita Team only)
Inputs: email (required).
create_templateC
Create a new template (Qiita Team only)
Inputs: title (required), body (required), tags (required).
delete_access_tokenC
Revoke an access token
Inputs: access_token (required).
delete_commentC
Delete a comment
Inputs: comment_id (required).
delete_comment_reactionB
Delete an emoji reaction from a comment (Qiita Team only)
Inputs: comment_id (required), reaction_name (required).
delete_groupB
Delete a group (Qiita Team only)
Inputs: url_name (required).
delete_itemC
Delete a Qiita item
Inputs: item_id (required).
delete_item_reactionB
Delete an emoji reaction from an item (Qiita Team only)
Inputs: item_id (required), reaction_name (required).
delete_taggingB
Remove a tag from an item (Qiita Team only)
Inputs: item_id (required), tagging_id (required).
delete_team_access_tokenC
Revoke a team access token
Inputs: team_access_token (required).
delete_team_invitationC
Cancel a pending team invitation (Qiita Team only)
Inputs: email (required).
delete_templateC
Delete a template (Qiita Team only)
Inputs: template_id (required).
expand_templateC
Expand template variables in the given body and tags (Qiita Team only)
Inputs: body (required), tags (required).
follow_tagC
Follow a tag
Inputs: tag_id (required).
follow_userC
Follow a user
Inputs: user_id (required).
get_authenticated_userB
Get the currently authenticated user's profile
Inputs: no named parameters.
get_commentC
Get a specific comment by its ID
Inputs: comment_id (required).
get_groupC
Get a specific group by URL name (Qiita Team only)
Inputs: url_name (required).
get_group_memberB
Get a specific member of a group (Qiita Team only)
Inputs: url_name (required), user_id (required).
get_itemC
Get a specific Qiita item by ID
Inputs: item_id (required).
get_tagB
Get a specific tag by its ID
Inputs: tag_id (required).
get_templateC
Get a specific template by ID (Qiita Team only)
Inputs: template_id (required).
get_userB
Get a specific user by user ID
Inputs: user_id (required).
import_commentC
Import a comment on an item with optional created_at and updated_at timestamps
Inputs: item_id (required), body (required), created_at, updated_at.
import_itemC
Import an item with custom created_at/updated_at timestamps
Inputs: title (required), body (required), tags (required), private, +2 more.
list_authenticated_user_itemsB
List items posted by the currently authenticated user
Inputs: page, per_page.
list_comment_reactionsC
List emoji reactions on a comment (Qiita Team only)
Inputs: comment_id (required).
list_group_membersB
List members of a group (Qiita Team only)
Inputs: url_name (required), page, per_page.
list_groupsC
List groups (Qiita Team only)
Inputs: page, per_page.
list_item_commentsB
List comments on a specific item (article)
Inputs: item_id (required).
list_item_likesC
List likes on an item
Inputs: item_id (required).
list_item_reactionsB
List emoji reactions on an item (Qiita Team only)
Inputs: item_id (required).
list_itemsC
List items on Qiita with optional search query
Inputs: page, per_page, query.
list_item_stockersC
List users who stocked a specific item
Inputs: item_id (required), page, per_page.
list_tag_itemsB
List items (articles) associated with a specific tag
Inputs: tag_id (required), page, per_page.
list_tagsB
List tags in order of popularity or name
Inputs: page, per_page, sort.
list_team_invitationsC
List pending team invitations (Qiita Team only)
Inputs: page, per_page.
list_team_membershipsC
List team memberships (Qiita Team only)
Inputs: page, per_page.
list_teamsB
List teams the authenticated user belongs to
Inputs: no named parameters.
list_templatesC
List templates (Qiita Team only)
Inputs: page, per_page.
list_user_followeesB
List users that the specified user is following
Inputs: user_id (required), page, per_page.
list_user_followersB
List users who follow the specified user
Inputs: user_id (required), page, per_page.
list_user_following_tagsC
List tags that a specific user is following
Inputs: user_id (required), page, per_page.
list_user_itemsC
List items posted by a specific user
Inputs: user_id (required), page, per_page.
list_usersB
List all users in recently created order
Inputs: page, per_page.
list_user_stocksC
List items stocked by a specific user
Inputs: user_id (required), page, per_page.
remove_group_memberC
Remove a member from a group (Qiita Team only)
Inputs: url_name (required), user_id (required).
remove_team_memberC
Remove a member from the team (Qiita Team only)
Inputs: user_id (required).
stock_itemC
Stock (bookmark) an item
Inputs: item_id (required).
unfollow_tagC
Unfollow a tag
Inputs: tag_id (required).
unfollow_userC
Unfollow a user
Inputs: user_id (required).
unstock_itemB
Unstock (remove bookmark from) an item
Inputs: item_id (required).
update_commentC
Update an existing comment
Inputs: comment_id (required), body (required).
update_groupC
Update a group (Qiita Team only)
Inputs: url_name (required), name, private.
update_itemC
Update an existing Qiita item
Inputs: item_id (required), title, body, tags, +1 more.
update_templateC
Update an existing template (Qiita Team only)
Inputs: template_id (required), title, body, tags.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 68 tools
Most tools have distinct purposes targeting specific resources and actions, but there is some overlap between 'list_user_items' and 'list_authenticated_user_items' which could cause confusion. Additionally, 'check_item_stock' and 'list_user_stocks' serve related but different functions, which might require careful reading to differentiate.
Tool names follow a highly consistent verb_noun pattern throughout, such as 'create_item', 'delete_comment', 'list_tags', and 'update_template'. This predictability makes it easy for agents to understand and navigate the toolset without ambiguity in naming conventions.
With 68 tools, the count is excessive for a typical MCP server, making it overwhelming and difficult to manage. This large number suggests over-fragmentation of functionality, which can hinder agent efficiency and increase the risk of misselection.
The toolset provides comprehensive coverage for the Qiita domain, including CRUD operations for items, comments, tags, users, and team features. It supports full lifecycles with create, read, update, delete, and list actions, ensuring no significant gaps for agent workflows.
Maintenance
Related MCP Connectors
One MCP server for the services your AI needs: memory, files, Microsoft 365, kanban and more.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server for QPost — lets AI agents publish video and image posts to YouTube, TikTok, Instagram.
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables AI agents to interact with Qiita, allowing for creating, reading, and updating articles through standardized MCP tools.533 npm9MIT
- AlicenseBqualityDmaintenanceEnables interaction with Qiita, a Japanese developer community platform, through its API v2. Supports comprehensive operations including article management, user interactions, tag following, and commenting with Japanese language support.3011 npm1MIT
- AlicenseAqualityDmaintenanceA lightweight MCP server that connects AI assistants to Kintone applications for managing records and automating business workflows. It enables secure authentication and natural language interaction for performing CRUD operations and querying data within the Kintone platform.101MIT
- AlicenseAqualityDmaintenanceA Python-based MCP server that enables users to interact with the esa.io API for documentation management. It provides tools for retrieving user information and performing full CRUD operations on articles.61MIT