mcpField
P
pp-pypi

pp-pypi

github.com/mvanhorn开发2.1k261 次安装今天更新
代码仓库

关于 pp-pypi

用于检查和分析 PyPI 数据的只读 Printing Press CLI 技能。支持适合 Agent 的 JSON 输出、基于本地 SQLite 的工作流和 RSS 订阅,无需身份验证。

主要功能

  1. 01只读检查 PyPI
  2. 02获取最新包与更新 RSS
  3. 03自然语言命令查询
  4. 04Agent 模式 JSON 与字段筛选
  5. 05本地 SQLite 同步和搜索
  6. 06将输出发送到文件或 Webhook

适用场景

  1. 01查看近期新增的软件包
  2. 02跟踪 PyPI 最近更新
  3. 03在 Agent 工作流中查询 PyPI 数据

MCP 相关

README 说明可安装 PyPI MCP 服务 `pypi-pp-mcp` 并将其注册到 Claude Code,但未说明它提供的资源或工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-pypi

安装后在 Claude Code 中输入/pp-pypi确认已加载。

详细介绍

Pypi — Printing Press CLI

前置条件:安装 CLI

此技能使用 pypi-pp-cli 二进制文件。**调用此技能中的任何命令之前,必须确认 CLI 已安装。**如果尚未安装,请先安装:

  1. 使用 Printing Press 安装程序安装。默认情况下,macOS/Linux 上的二进制文件安装到 $HOME/.local/bin,Windows 上安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install pypi --cli-only
    
  2. 验证:pypi-pp-cli --version
  3. 确保所报告的安装目录位于将调用此技能的 Agent/运行时的 $PATH 中。

如果 npx 安装失败(没有 Node、处于离线状态等),则改用直接通过 Go 安装(需要 Go 1.26.6 或更高版本):

go install github.com/mvanhorn/printing-press-library/library/developer-tools/pypi/cmd/pypi-pp-cli@latest

如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。验证成功之前,请勿继续执行技能命令。

何时不使用此 CLI

对于需要创建、更新、删除、发布、评论、点赞、邀请、订购、发送消息、预订、购买或更改远程状态的请求,请勿启用此 CLI。此 CLI 仅提供用于检查、导出、同步和分析的只读命令。

命令参考

pypi — 管理 pypi

rss — 获取近期更新和最新软件包的 RSS 订阅源

  • pypi-pp-cli rss newest-packages — PyPI 上最新添加的软件包的 RSS 订阅源。
  • pypi-pp-cli rss recent-updates — PyPI 上最近更新的软件包的 RSS 订阅源。
查找合适的命令

知道要做什么,但不确定该用哪个命令时,可以直接询问 CLI:

pypi-pp-cli which "<capability in your own words>"

which 会根据自然语言能力查询,从此 CLI 精选的功能索引中匹配最合适的命令。退出代码 0 表示至少有一个匹配项;退出代码 2 表示没有足够可靠的匹配项——请改用 --help 或使用更具体的查询。

身份验证设置

无需身份验证。

运行 pypi-pp-cli doctor 以验证设置。

Agent 模式

为任何命令添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。

  • 支持管道处理 — JSON 输出到 stdout,错误输出到 stderr

  • 支持筛选 — --select 保留部分字段。点分路径可访问嵌套结构;数组会逐元素遍历。对于内容冗长的 API,这是缩小上下文的关键:

    pypi-pp-cli rss newest-packages --agent --select id,name,status
    
  • 支持预览 — --dry-run 显示请求,但不会发送

  • 适合离线使用 — 有本地 SQLite 存储时,同步/搜索命令可以使用该存储

  • 非交互式 — 从不提示输入,所有输入均通过标志指定

  • 只读 — 不要使用此 CLI 执行创建、更新、删除、发布、评论、点赞、邀请、订购、发送或其他会修改状态的请求

响应封装

从本地存储或 API 读取数据的命令会将输出封装在一个来源信息对象中:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

解析 .results 获取数据,并查看 .meta.source 以确认数据来自实时来源还是本地来源。只有当 stdout 是终端时,才会将便于阅读的 N results (live) 摘要输出到 stderr——通过管道接收输出的程序/Agent 会在 stdout 获得纯 JSON。

Agent 反馈

当你(或 Agent)发现此 CLI 有异常之处时,请记录下来:

pypi-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
pypi-pp-cli feedback --stdin < notes.txt
pypi-pp-cli feedback list --json --limit 10

记录会保存在本地的 ~/.pypi-pp-cli/feedback.jsonl 中。除非设置了 PYPI_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 PYPI_FEEDBACK_AUTO_SEND=true,否则不会发送 POST 请求。默认情况下,反馈仅保存在本地。

请写下让你感到意外的地方,而不是提交缺陷报告。简短、具体,用一行描述:这才是能够不断积累价值的内容。

输出交付

每个命令都接受 --deliver <sink>。输出会发送到指定的接收端,并且可以同时输出到标准输出,也可以替代标准输出,这样 Agent 就能路由命令结果,无需手动通过管道传递。支持三种接收端:

接收端效果
stdout默认;仅写入标准输出
file:<path>将输出原子写入 <path>(临时文件 + 重命名)
webhook:<url>将输出正文 POST 到该 URL(使用 application/json;指定 --compact 时使用 application/x-ndjson)

遇到未知方案时会拒绝请求,并返回结构化错误,列出受支持的方案。Webhook 请求失败时会返回非零状态码,并在标准错误中记录 URL 和 HTTP 状态码。

命名配置

配置文件是一组保存的标志值,可在多次调用中重复使用。如果定时运行的 Agent 每次都以相同配置调用同一命令,就可以使用配置文件,例如 HeyGen 的“Beacon”模式。

pypi-pp-cli profile save briefing --json
pypi-pp-cli --profile briefing rss newest-packages
pypi-pp-cli profile list --json
pypi-pp-cli profile show briefing
pypi-pp-cli profile delete briefing --yes

显式标志的优先级始终高于配置文件中的值;配置文件中的值优先级高于默认值。agent-context 会在 available_profiles 下列出所有可用配置文件,让进行自省的 Agent 能在运行时发现它们。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
5API 错误(上游问题)
7受到速率限制(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 pypi-pp-cli --help 输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的先决条件
  3. 其他任何内容 → 直接使用(作为 CLI 命令执行,并带上 --agent)

安装 MCP 服务

  1. 安装 MCP 服务:
    go install github.com/mvanhorn/printing-press-library/library/other/pypi-pp-cli/cmd/pypi-pp-mcp@latest
    
  2. 在 Claude Code 中注册:
    claude mcp add pypi-pp-mcp -- pypi-pp-mcp
    
  3. 验证:claude mcp list

直接使用

  1. 检查是否已安装:which pypi-pp-cli 如果未找到,请提供安装选项(参见本技能顶部的先决条件)。
  2. 根据用户查询,从上文的独特功能和命令参考中选择最合适的命令。
  3. 使用 --agent 标志执行:
    pypi-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果含义不明确,请查看子命令帮助:pypi-pp-cli <command> --help。

评论

支持 Markdown