Qiita MCP Server
The Qiita MCP Server enables AI agents to interact with the Qiita API for managing articles and retrieving information. With this server, you can:
Get user articles: Fetch the authenticated user's Qiita articles with pagination support
Retrieve specific articles: Access a particular Qiita article using its ID
Create articles: Post new content with customizable title, body (in markdown), tags, privacy settings, slide mode, tweet options, and organization
Update articles: Modify existing content by changing title, body, tags, and other properties
Access markdown resources: Retrieve Qiita's markdown syntax rules and cheat sheet
Provides tools for interacting with the Qiita platform, enabling AI agents to retrieve, create, and update articles on this knowledge-sharing platform for engineers. Capabilities include getting user articles, retrieving specific articles, creating new content, updating existing articles, and accessing Qiita's markdown syntax rules.
Click on "Install 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 Serverpost my new article about TypeScript best practices"
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
A Model Context Protocol (MCP) server for interacting with Qiita, the knowledge-sharing platform for engineers.
Overview
This package provides a Model Context Protocol (MCP) server that enables AI agents to interact with the Qiita API. It allows for creating, reading, and updating articles on Qiita through standardized MCP tools.
MCP is an open protocol for building AI agents that can use external tools and services. This server implements the MCP specification to provide tools for working with Qiita content.
Related MCP server: Kibela MCP Server
Provided Tools
The server provides the following MCP tools:
Tool Name | Description |
| Get current authenticated user's Qiita articles |
| Get a specific Qiita article by its ID |
| Create a new article on Qiita |
| Update an existing Qiita article |
| Get Qiita markdown syntax rules and cheat sheet |
Usage
Prerequisites
Node.js (>=20.0.0)
A Qiita account with API access token
You can generate a Qiita API token by visiting: https://qiita.com/settings/tokens/new
Usage with VS Code
Create a
.vscode/mcp.jsonfile in your project with the following content:
{
"inputs": [
{
"type": "promptString",
"id": "qiita-api-token",
"description": "Qiita API Token",
"password": true
}
],
"servers": {
"qiita-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["@2bo/qiita-mcp-server"],
"env": {
"QIITA_API_TOKEN": "${input:qiita-api-token}"
}
}
}
}Development
Setup
Clone the repository:
git clone https://github.com/2bo/qiita-mcp-server.git
cd qiita-mcp-serverInstall dependencies:
npm installSet up your environment:
npm run dev- Run TypeScript in watch mode for developmentnpm run build- Build the projectnpm run prepare- Prepare the package for publishing
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
5 toolsget_my_qiita_articlesC
get current authenticated user qiita articles
| Name | Required | Description | Default |
|---|---|---|---|
| page | No | Page number for pagination | |
| per_page | No | Number of items per page |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states it's for getting articles, implying a read operation, but doesn't specify authentication requirements, rate limits, pagination behavior beyond the schema, or what the return format looks like. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's appropriately sized for a simple tool, though it could be slightly more informative without losing conciseness. No structural issues are present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (a read operation with pagination), lack of annotations, and no output schema, the description is incomplete. It doesn't explain authentication needs, return format, or error handling, leaving gaps for the agent. For a tool with 2 parameters and no structured behavioral hints, more context is needed to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters ('page' and 'per_page') well-documented in the schema itself. The description adds no additional meaning beyond what the schema provides, such as default values or usage context. Baseline 3 is appropriate when the schema does the heavy lifting, but no extra value is added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('get') and resource ('current authenticated user qiita articles'), making the purpose understandable. It distinguishes from siblings like 'get_qiita_item' by specifying it's for the authenticated user's articles, not general items. However, it doesn't explicitly contrast with 'post_qiita_article' or 'update_qiita_article', which are write operations, so it's not a perfect 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that 'get_qiita_item' might be for specific items by ID, or that 'post_qiita_article' and 'update_qiita_article' are for creating/modifying articles. There's no context on prerequisites like authentication, leaving the agent to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_qiita_itemC
get a specific Qiita article by its ID
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes | The ID of the Qiita article to fetch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool fetches an article but doesn't describe key behaviors: whether it requires authentication, returns public/private articles, handles errors (e.g., invalid IDs), or provides rate limits. This leaves significant gaps for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose ('get a specific Qiita article'), making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., article content, metadata), error handling, or authentication needs. For a tool with no structured behavioral data, this leaves the agent under-informed about how to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with the parameter 'item_id' clearly documented in the schema. The description adds no additional parameter semantics beyond implying the ID is used to fetch an article, which aligns with the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('get') and resource ('a specific Qiita article by its ID'), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_my_qiita_articles' (which likely fetches multiple articles for the current user) or 'get_qiita_markdown_rules' (which fetches formatting rules rather than articles).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an article ID), contrast with sibling tools (e.g., 'get_my_qiita_articles' for user-specific articles), or specify scenarios where this tool is appropriate (e.g., fetching a single public article).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_qiita_markdown_rulesB
get Qiita markdown syntax rules, cheat sheet
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves markdown rules, implying a read-only operation, but doesn't specify aspects like whether it requires authentication, rate limits, or the format of the returned data. This leaves significant gaps in understanding how the tool behaves in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise and front-loaded: 'get Qiita markdown syntax rules, cheat sheet'. It uses minimal words to convey the core purpose without redundancy or unnecessary elaboration, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that likely returns structured data (e.g., markdown rules). It doesn't hint at the response format, potential errors, or any behavioral traits, leaving users with insufficient context to use the tool effectively beyond its basic purpose.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter semantics, as there are none to explain. A baseline score of 4 is appropriate since the schema fully covers the lack of parameters, and the description doesn't introduce confusion.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'get Qiita markdown syntax rules, cheat sheet'. It uses a specific verb ('get') and identifies the resource ('Qiita markdown syntax rules'), making the action and target clear. However, it doesn't explicitly differentiate from sibling tools like 'get_qiita_item', which might also retrieve content-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or contexts where this tool is appropriate, such as when needing formatting rules versus actual articles. Without such guidance, users must infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
post_qiita_articleC
create a new article on Qiita
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Markdown formatted content | |
| organization_url_name | No | The url_name of the organization for the article | |
| private | No | Whether the article is private | |
| slide | No | Whether to enable slide mode | |
| tags | Yes | List of tags for the article | |
| title | Yes | Article title | |
| tweet | No | Whether to post to Twitter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without disclosing behavioral traits. It doesn't mention authentication requirements, rate limits, whether the creation is irreversible, or what happens on success/failure. For a write operation with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's front-loaded with the core action and resource, making it easy to parse quickly, though its brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool with no annotations and no output schema, the description is incomplete. It lacks context about authentication, error handling, return values, or how it differs from sibling tools. The high schema coverage doesn't compensate for missing behavioral and usage information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 7 parameters. The description adds no parameter-specific information beyond implying creation, which doesn't enhance understanding of individual parameters. Baseline 3 is appropriate when the schema does all the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create') and resource ('a new article on Qiita'), making the purpose immediately understandable. However, it doesn't differentiate from sibling tools like 'update_qiita_article' beyond the basic verb difference, missing explicit comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'update_qiita_article' or 'get_my_qiita_articles'. It lacks context about prerequisites (e.g., authentication needed) or typical use cases, leaving the agent to infer usage solely from the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_qiita_articleC
update an existing Qiita article
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Markdown formatted content | |
| item_id | Yes | The ID of the article to update | |
| organization_url_name | No | The url_name of the organization for the article | |
| private | No | Whether the article is private | |
| slide | No | Whether to enable slide mode | |
| tags | No | List of tags for the article | |
| title | Yes | Article title |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states 'update' which implies mutation, but doesn't disclose critical behavioral traits like required permissions, whether changes are reversible, rate limits, or what happens to unspecified fields (partial vs full updates). This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero wasted words. It's appropriately sized and front-loaded with the core purpose, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters, no annotations, and no output schema, the description is insufficiently complete. It doesn't address behavioral aspects like permissions, side effects, or response format, leaving the agent with inadequate context to use the tool safely and effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, so the schema already documents all 7 parameters thoroughly. The description adds no parameter information beyond what's in the schema, maintaining the baseline score of 3 for adequate but no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('update') and resource ('an existing Qiita article'), providing a specific verb+resource combination. However, it doesn't differentiate from sibling tools like 'post_qiita_article' (create vs update), which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing an existing article ID), when not to use it, or how it differs from 'post_qiita_article' for creation versus update operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool has a clearly distinct purpose with no overlap: get_my_qiita_articles retrieves the user's articles, get_qiita_item fetches a specific article by ID, get_qiita_markdown_rules provides documentation, post_qiita_article creates new articles, and update_qiita_article modifies existing ones. The descriptions make it easy to tell them apart without ambiguity.
All tool names follow a consistent verb_noun pattern with 'qiita' as a prefix: get_my_qiita_articles, get_qiita_item, get_qiita_markdown_rules, post_qiita_article, and update_qiita_article. This predictable naming scheme enhances readability and usability.
With 5 tools, this server is well-scoped for managing Qiita articles, covering key operations like listing, retrieving, creating, and updating. The count is appropriate for the domain, avoiding bloat while ensuring each tool earns its place in the workflow.
The tool set covers core CRUD operations for Qiita articles (create, read, update) and includes useful extras like markdown rules. A minor gap is the lack of a delete_qiita_article tool, which agents might need for full lifecycle management, but this is not critical for basic workflows.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
The Mercado Pago MCP Server implements the Model Context Protocol to provide AI agents and LLMs with access to Mercado Pago's APIs and tools within compatible development environments. It acts as an intermediary that translates Mercado Pago resources into executable functions (tools) that AI applications can invoke to perform actions and automate flows. The server simplifies integration, enables using documentation to implement or improve code, and optimizes operations through natural language interactions without manual implementations.
MCP server for QPost — lets AI agents publish video and image posts to YouTube, TikTok, Instagram.
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol server that enables AI assistants to search and access information stored in Kibela, supporting note search, retrieval, creation and updating.63213MIT

Kibela MCP Serverofficial
AlicenseNot gradedqualityCmaintenanceA Model Context Protocol server that allows AI applications to interact with Kibela knowledge bases, enabling users to search, create, update, and organize content through natural language.15MIT- AlicenseCqualityAmaintenanceA Model Context Protocol server that enables AI assistants like Claude to interact with microCMS content management system through six core tools for performing CRUD operations on microCMS list-type APIs.221,13022MIT
- AlicenseBqualityDmaintenanceA comprehensive MCP server that enables AI to interact with all 68 functions of the Qiita API v2, covering articles, comments, tags, and team management. It allows users to perform CRUD operations on Qiita content and manage interactions through natural language.6814MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/2bo/qiita-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server