使用说明
Pixiv MCP服务器
Pixiv的模型上下文协议(MCP)服务器,使LLM能够直接搜索、浏览和下载插图。
✨ 主要特点
- 搜索与发现:按关键字(标签/标题)、查看排名和趋势标签搜索插图和用户。
- 详细信息和预览:使用本地代理获取详细的插图信息,以绕过Referer限制,允许LLM查看图像。
- 下载管理:异步后台下载(自动将Ugoira转换为GIF/WebP),具有任务状态跟踪功能。
- 个性化:访问用户书签、以下列表和官方推荐(需要身份验证)。
- 结构化输出:所有工具都返回结构化JSON,并为客户端发布MCP输出模式。
🚀 快速开始
1.安装
需要Python 3.10+。使用安装依赖项 uv (推荐)或 pip:
uv sync
2.配置
复制 .env.example 到 .env (如果缺少则创建)并设置环境变量:
# Pixiv Refresh Token (required for Pixiv API tools)
# Recommended: run `uvx gppt login -j` and copy the JSON `refresh_token`
PIXIV_REFRESH_TOKEN=your_refresh_token_here
# (Optional) Download path, defaults to ./downloads
DOWNLOAD_PATH=./downloads
# (Optional) Proxy settings (Required in some regions)
HTTPS_PROXY=http://127.0.0.1:7890
HTTPS_PROXY 作为两者传递给PixivPy3 http 和 https 请求代理。预览图像代理在获取上游Pixiv图像时使用相同的代理URL。
获得Pixiv刷新令牌的推荐方法:
# Preferred: browser OAuth flow maintained by gppt
uvx gppt login -j
# If your network needs a proxy
HTTPS_PROXY=http://127.0.0.1:7890 uvx gppt login -j
# Fallback: built-in manual callback helper
uv run python get_token.py --env-file .env
内置助手写入 .env 旁边 get_token.py 默认情况下。如果写作 .env 如果失败,它将显示目标路径并在打印完整路径之前询问 PIXIV_REFRESH_TOKEN=... 用于手动保存的行。
3.跑步
# stdio mode (default, for Claude Desktop and local clients)
uv run pixiv-mcp-server
# SSE mode (Server-Sent Events)
uv run pixiv-mcp-server sse --host 0.0.0.0 --port 8000
# HTTP mode (Streamable HTTP, recommended for web deployment)
uv run pixiv-mcp-server http --host 0.0.0.0 --port 8000
# Debug with MCP Inspector
npx -y @modelcontextprotocol/inspector uv run pixiv-mcp-server
HTTP和SSE传输本身不添加身份验证。如果绑定到非本地主机,例如 0.0.0.0,将服务器置于经过身份验证的反向代理之后或限制网络访问。
4.MCP客户端配置
将以下内容添加到您的MCP客户端(例如,Claude Desktop):
{
"mcpServers": {
"pixiv": {
"command": "uv",
"args": ["--directory", "/path/to/pixiv-mcp-server", "run", "pixiv-mcp-server"],
"env": {
"PIXIV_REFRESH_TOKEN": "your_token_here"
}
}
}
}
替换
/path/to/pixiv-mcp-server使用您的实际项目路径
🛠️ MCP工具
搜索
search_illust:搜索插图(支持R-18过滤器)search_user:搜索用户get_trending_tags:获取当前趋势标签
插画
get_illust_detail:获取插图详细信息get_illust_ranking:获取排名(每日/每周/每月)get_illust_related:获取相关/类似作品get_illust_recommended:获取官方推荐(需要授权)
用户
get_user_bookmarks:获取用户书签(需要身份验证)get_user_following:获取用户关注列表(需要身份验证)
下载
download:创建后台下载任务(批处理支持)manage_download_tasks:查询或取消下载任务
工具集
next_page:从显式文件中获取下一页cursorupdate_setting:在运行时更新服务器配置
v3响应格式
所有MCP工具返回相同的信封:
{
"ok": true,
"data": {},
"error": null,
"meta": {},
"display_markdown": "optional markdown for clients"
}
结构化字段,如 cards, illust, tags, task_ids, tasks,以及 results 生活在...之下 data.计数、消息、分页和重启提示都在下面 metaMarkdown仅用于显示,不应被视为数据模型。
分页是无状态的。搜索/列表工具返回 meta.pagination.cursor 当另一个页面存在时:
{
"meta": {
"pagination": {
"has_more": true,
"cursor": "..."
}
}
}
将该值传递给 next_page(cursor) 继续。
v2到v3迁移
| v2 | v3 |
|---|---|
next_page() 使用了服务器端的先前命令状态 |
next_page(cursor) 用途 meta.pagination.cursor |
cards, illust, tags, task_ids, tasks 位于顶层 |
已移至下方 data |
markdown / summary 作为主要输出 |
display_markdown 是可选的显示文本 |
filtered_count, display_count,分页在顶层 |
移至下方 meta |
update_setting 接受的宽密钥 |
只接受运行时安全密钥;代理、主机、端口和刷新令牌需要重新启动 |
📦 资源
pixiv://config:查看当前服务器配置pixiv://tasks:查看当前下载任务队列
📝 提示
search_prompt:生成标准搜索说明download_prompt:生成标准下载流程说明
📦 发布(维护人员)
版本控制:更新
[project].version在pyproject.toml在上传之前。PyPI不允许为相同的项目名称、版本和分发类型重用分发文件名。 凭证:发布脚本使用UV_PUBLISH_TOKEN设置时;否则,它将读取匹配项[pypi]或[testpypi]令牌来自$HOME\.pypirc.
# Build + test + sdist safety check + package metadata validation (no upload)
.\scripts\pypi_release.ps1
# Upload to TestPyPI
.\scripts\pypi_release.ps1 -TestPyPI -Upload
# Upload to PyPI
.\scripts\pypi_release.ps1 -Upload
⚠️ 免责声明
本项目仅用于教育和研究目的。Pixiv的所有图像版权均归其各自的作者所有。请勿将此项目用于非法抓取或商业目的。使用风险自负。