mcpField
C
csdn

csdn

github.com/acedatacloud营销与增长17175 次安装今天更新
代码仓库

关于 csdn

这是一个通过用户已登录的 CSDN 账号读取数据和发布 Markdown 文章的 Python 技能,提供文章统计,并在发布前设置预览确认步骤。

主要功能

  1. 01查看账号身份和文章总数
  2. 02列出已发布文章及统计
  3. 03读取单篇文章数据
  4. 04将 Markdown 保存为草稿或公开发布
  5. 05将外部图片转存至 CSDN CDN

适用场景

  1. 01查看账号活动和文章互动数据
  2. 02准备待审核的私密草稿
  3. 03确认后发布文章至 CSDN

安装

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

$npx skills add https://github.com/acedatacloud/skills --skill csdn

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

附带文件scripts/csdn.py

详细介绍

csdn — 使用你自己的 Cookie 在 CSDN 上阅读和发布

通过网站编辑器使用的相同 Web API 操作用户的真实 CSDN 账号,并使用用户通过 ACE 扩展获取的登录 Cookie 进行身份验证。无需浏览器,也无第三方依赖——使用 urllib + hmac(编辑器的 保存端点需要 HMAC 签名,该签名使用标准库计算)。

连接器会将 Cookie jar 注入为环境变量:

  • CSDN_COOKIES — Cookie 的 JSON 数组。机密——切勿回显或打印。 CLI 会为你读取它。

CSDN 的 API 前置有 WAF;CLI 已发送完整的浏览器指纹,因此读取操作不会返回 403。如果你仍然遇到 WAF 403,说明 Cookie 已过期——请让用户重新连接。

CLI

此技能提供 scripts/csdn.py——独立脚本,仅使用标准库。

# $SKILL_DIR can point at another skill loaded this turn — anchor on our own
# script, and re-run this at the top of every Bash block (fresh shell each time).
CSDN="$SKILL_DIR/scripts/csdn.py"; [ -f "$CSDN" ] || CSDN=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/csdn.py' 2>/dev/null | head -1)
[ -f "$CSDN" ] || { echo "csdn script not found (SKILL_DIR=$SKILL_DIR)" >&2; exit 1; }
python3 "$CSDN" whoami                     # who is logged in (+ total article count)
python3 "$CSDN" articles --limit 20        # my published articles + stats
python3 "$CSDN" article <article-id>       # one article's stats

统计数据直接来自 CSDN:view_count(阅读)、digg_count(点赞)、 comment_count(评论)、collect_count(收藏)。

首先验证连接

CSDN="$SKILL_DIR/scripts/csdn.py"; [ -f "$CSDN" ] || CSDN=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/csdn.py' 2>/dev/null | head -1)
python3 "$CSDN" whoami
# → {"username": "...", "nickname": "...", "articles_total": 0}

如果出现 WAF 403 / 身份验证错误,说明 Cookie 已过期——请告知用户前往 https://studio.acedata.cloud/console/connectors 重新连接。不要循环重试。

发布——需确认(除非最后附带 --confirm,否则为试运行)

publish 会写入用户的真实账号。内容为 Markdown。如果末尾没有附带 --confirm,则会进行试运行。只有将 --confirm 作为最后一个参数时才会生效。务必先展示试运行结果并获得明确的“是”,然后再将 --confirm 放在最后重新运行。

CSDN="$SKILL_DIR/scripts/csdn.py"; [ -f "$CSDN" ] || CSDN=$(find /tmp -maxdepth 8 -path '*/skills/*/scripts/csdn.py' 2>/dev/null | head -1)
python3 "$CSDN" publish --title "标题" --content-file a.md                      # dry-run
python3 "$CSDN" publish --title "标题" --content-file a.md --draft-only --confirm  # private draft (status=2)
python3 "$CSDN" publish --title "标题" --content-file a.md --tags "AI,Python" --confirm  # PUBLIC, goes live
  • --draft-only 会保存为私人草稿(CSDN status=2)——安全,不会公开。
  • 如果不使用 --draft-only,文章将以用户的名义公开发布。除非用户明确要求上线,否则默认使用 --draft-only。
  • --tags 是以逗号分隔的文章标签列表。

图片

publish 会在保存前自动将外部 Markdown 图片(![](url))重新托管到 CSDN 自己的 CDN(i-blog.csdnimg.cn)。CSDN 的防盗链会拦截外部 图片,保存一篇包含大量外部 URL 的文章甚至可能超时。已位于 csdnimg.cn 上的图片不会处理;传入 --no-rehost-images 可跳过此操作。上传失败的图片会保留原始 URL(不会阻止文章发布)。

注意事项——提前告知用户,避免其感到意外

  • 这是用户的真实 CSDN 账号。 发布前请先确认。
  • Cookie 过期 / WAF 403:前往 studio.acedata.cloud/console/connectors 重新连接—— 切勿循环重试 WAF 拦截。
  • 编辑器保存端点使用嵌入在 CSDN Web 包中的 HMAC 密钥签名;如果 CSDN 轮换该密钥,发布会明确失败(读取仍可正常进行)。
  • 切勿打印 CSDN_COOKIES——它可完全访问账号。
  • 服务条款:Cookie 自动化仅操作用户自己的账号,并使用用户自己获取的 Cookie;相关风险由用户承担。

记录输出

成功发布并获得实际结果 URL 后,调用内置的 publish_artifact 工具一次,让用户可以在 My Outputs 中跟踪此交付内容:

publish_artifact(kind="article", channel="csdn", title="<title>", url="<the REAL returned URL>", status="delivered")

使用实际返回的 URL——切勿伪造。每个已发布项目仅调用一次, 且只能在确认交付后调用;如果发布失败,则跳过(或使用 status="failed")。 参见 _shared/artifacts.md。

评论

支持 Markdown