文章搜索服务

提供Qiita及Qiita Team的文章搜索、浏览功能,支持标签筛选、用户文章获取、评论查看及收藏文章管理。

  • by ningen
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 ningen/qiita-mcp-server

使用说明

Qiita MCP服务器

Qiita 以及Qiita Team 的文章检索·阅览功能MCP (Model Context Protocol) 服务器。

特徴

  • 📖 搜索和浏览文章
  • 🏷️ 使用标记筛选
  • 👤 按用户获取文章
  • 💬 获取注释
  • ⭐ 获取库存(书签)文章
  • 🔒 Qiita Team 対応
  • ⚡ Hono 快速路由
  • ✅ Zod 的模具安全验证

技术栈

  • 荣誉:重量轻、速度快Web 框架结构
  • 萨德: TypeScript 第一架构验证
  • MCP-SDK: Model Context Protocol 公式SDK
  • TypeScript:型安全开发

仕样书

详细的规格是 文件/规范.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

视窗: %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

提供的工具

搜索项目

搜索文章。

参数:

  • query (string, optional): 搜索查询
  • page (number, optional): 页码(1-100,默认值:1)
  • per_page (number, optional): 1每页计数(1-100,默认值:20)

使用例:

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

获取项目

获取特定文章。

参数:

  • 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" の記事を表示してください

获取标签

获取标记列表。

参数:

  • 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

许可证

麻省理工学院

参考