TikTok Agent Publisher

io.github.davidmosiah由 GitHub 账号 davidmosiah 发布v0.1.5更新于 Oct 24, 2026

Local-first TikTok Content Posting API for AI agents: OAuth checks, dry-run and live uploads.

发布方自己的服务:Tiktokporn

已验证STDIO仅桌面沟通与协作媒体与设计

概览

AI 生成的概览

本地 MCP 服务器,让 AI 助手通过 TikTok 官方 Content Posting API 检查就绪状态、生成 OAuth 链接,并试运行或正式发布视频。

可以做什么
检查连接就绪状态、OAuth 状态与媒体托管配置,且不暴露令牌值;执行隐私审计,说明本地与正式发布边界;提供面向智能体运行时的安装指引。构建并校验带标题和文案的视频发布任务,并轮询发布状态。列出近期视频用于发布后确认。所有写入流程默认试运行并返回合成 ID,直到显式开启正式模式。
适用场景
当助手需要通过 TikTok 官方 Content Posting API 而非浏览器自动化来发布或查看 TikTok 视频,并希望在真实上传前先做安全的试运行演练时使用。
运行要求
以 npm 包形式通过 stdio 在本地运行(需要 Node.js);另有仅限本机回环的可选 HTTP 模式。正式使用需要 TikTok 开发者应用及 TIKTOK_CLIENT_KEY、TIKTOK_CLIENT_SECRET,完成 OAuth 流程,并将 TIKTOK_DRY_RUN 设为 false。图片和从链接拉取流程需要 Supabase Storage 等公共媒体托管。
安装前请注意
正式发布会将内容公开发布到 TikTok,仅在将 TIKTOK_DRY_RUN 设为 false 后启用,请先确认就绪状态。TIKTOK_CLIENT_SECRET 与 OAuth 令牌属敏感信息,应保留在本地;服务器声明不会返回令牌值。只发布你拥有或获授权发布的内容。本地令牌与 OAuth 文件不应提交到版本库。

安装

在 SourceWeft 中

  1. 打开 控制台中的 TikTok Agent Publisher,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

TikTok Agent Publisher

Agent-first TikTok Content Posting API CLI + MCP.
Dry-run safe, OAuth readiness checks, structured output for any agent runtime.

[npm version] [npm downloads] [License MIT] [Built for MCP]

[GitHub stars] [CI status] [Part of the Delx agent stack] [Category]

⭐ If this agent-first tool helps your workflow, please star the repo. Stars make this tooling easier for other builders to discover and help Delx keep shipping open infrastructure.
🧱 Part of the Delx agent stack — 15 open-source MCP servers across body, reach and coordination.


Local-first TikTok Content Posting API tooling for AI agents. It gives Codex, Claude, Cursor, Hermes, OpenClaw and other MCP clients a safe way to check readiness, build OAuth URLs, dry-run publish flows and upload TikTok videos only when live mode is explicitly enabled.

Use it when an agent needs to publish or inspect TikTok content without browser automation, hidden state or token leakage.

Why It Exists

Most social publishing scripts are built for humans at a terminal. Agents need a different contract:

  • a manifest that explains install/runtime rules
  • a connection status tool before write operations
  • privacy boundaries that never return token values
  • dry-run by default
  • structured JSON outputs for planning, retries and audit trails

This repo packages that contract around TikTok's official Content Posting API.

Install

bash
npm install -g tiktok-agent-publisher

Or run without installing:

bash
npm exec --yes --package=tiktok-agent-publisher -- tiktok-agent-publisher doctor

First Post (Dry-Run) Walkthrough

No TikTok credentials are required to try this. With no .env, dry-run is on by default, so every command below returns structured JSON without touching the live API. This is the exact sequence an agent should follow before its first real post. The outputs are real CLI runs, lightly trimmed.

1. Check readiness. doctor reports mode and what is still missing — never any token values.

bash
$ tiktok-agent-publisher doctor{  "ok": true,  "dry_run": true,  "configured": {    "client_key": false,    "client_secret": false,    "access_token": false,    "refresh_token": false,    "public_media_base_url": false,    "supabase_storage": false  },  "missing": [    "TIKTOK_CLIENT_KEY",    "TIKTOK_CLIENT_SECRET",    "TIKTOK_ACCESS_TOKEN",    "TIKTOK_REFRESH_TOKEN"  ],  "ready_for_live_publish": false,  "ready_for_direct_video_upload": false,  "next_steps": [    "Current mode is dry-run. Use dry-run to validate agent workflow before live posting."  ]}

2. Confirm the privacy boundaries. privacy-audit states what stays local and what is sent to TikTok, so the agent can reason about the contract before any write.

bash
$ tiktok-agent-publisher privacy-audit{  "project": "tiktok-agent-publisher",  "secrets_returned_to_agent": false,  "token_storage": "Environment variables or local .env with user-only file permissions; tokens are never returned by tools.",  "safety_rules": [    "Dry-run is the default.",    "Only post content the user owns or has permission to publish.",    "Use explicit confirmation before live direct posting."  ]}

3. Build the publish payload (dry-run). This validates the job shape and caption without uploading anything. result.platformPostId is a synthetic dryrun_* id and raw.dryRun is true, so you can wire up retries and audit logging safely.

bash
$ tiktok-agent-publisher publish-video \    --video ./short.mp4 \    --caption "First agent post — testing the dry-run flow" \    --title "Hello from an agent"{  "ok": true,  "dry_run": true,  "job": {    "id": "tiktok_1780082349025",    "platform": "tiktok",    "status": "queued",    "caption": "First agent post — testing the dry-run flow",    "mediaPaths": ["./short.mp4"],    "metadata": { "title": "Hello from an agent" }  },  "result": {    "provider": "tiktok_official",    "platformPostId": "dryrun_1780082349025",    "raw": { "dryRun": true, "jobId": "tiktok_1780082349025" }  }}

4. Poll status (dry-run). publish-status returns a DRY_RUN status so the polling loop can be exercised end to end.

bash
$ tiktok-agent-publisher publish-status --publish-id dryrun_1780082349025{ "dryRun": true, "publishId": "dryrun_1780082349025", "status": "DRY_RUN" }

5. List recent videos (dry-run). Returns an empty, well-formed list — the same shape the live API returns, so post-publish confirmation code works unchanged.

bash
$ tiktok-agent-publisher list-videos --max-count 5{ "dryRun": true, "videos": [], "cursor": null, "has_more": false }

Going live. Fill in TIKTOK_CLIENT_KEY / TIKTOK_CLIENT_SECRET (and complete OAuth — see auth-url), confirm doctor reports ready_for_live_publish: true, then set TIKTOK_DRY_RUN=false. The same five commands then operate against the real Content Posting API.

CLI

bash
tiktok-agent-publisher manifest --client codextiktok-agent-publisher doctortiktok-agent-publisher privacy-audittiktok-agent-publisher auth-url --redirect-uri http://localhost:8787/callbacktiktok-agent-publisher publish-video --video ./short.mp4 --caption "Launch copy"tiktok-agent-publisher publish-status --publish-id <publish_id>tiktok-agent-publisher list-videos --max-count 10

Dry-run is enabled by default. Set TIKTOK_DRY_RUN=false only after doctor is clean and you are ready for live API calls.

MCP

Stdio:

bash
tiktok-agent-mcp

HTTP (v2 stateless)

Default is stdio. Optional Streamable HTTP — no session id, JSON responses, loopback only:

bash
npx -y -p tiktok-agent-publisher tiktok-agent-mcp --http# GET  http://127.0.0.1:3031/health# POST http://127.0.0.1:3031/mcp   (sessionless)

Env: TIKTOK_MCP_HOST, TIKTOK_MCP_PORT, TIKTOK_MCP_TRANSPORT=http.

Hermes-style config:

yaml
mcp_servers:  tiktok:    command: npx    args: ["-y", "tiktok-agent-publisher"]    sampling:      enabled: false

Recommended first calls:

  1. tiktok_connection_status
  2. tiktok_privacy_audit
  3. tiktok_publish_video

Agent Surfaces

ToolPurpose
tiktok_agent_manifestInstall/runtime guidance for Codex, Claude, Cursor, Hermes and OpenClaw
tiktok_connection_statusDry-run, OAuth and media-hosting readiness without token values
tiktok_privacy_auditLocal file, token and live-publish boundaries
tiktok_publish_videoDry-run or live video publish flow
tiktok_publish_statusPublish-status polling
tiktok_list_videosRecent video list for post-publish checks

Copy-Paste Agent Prompt

text
Use tiktok-agent-publisher. First call tiktok_connection_status and tiktok_privacy_audit.If dry-run is enabled, build the publish payload only. Do not request or print token values.

Configuration

Copy .env.example to .env and fill only the values you need. Do not commit .env, token files or .agent-data/.

For video inbox uploads, a local file can be uploaded directly through TikTok's upload URL. Photo and pull-from-url workflows can use Supabase Storage or another public media host.

Safety Model

  • Tokens are read from environment or local .env; tool responses never include token values.
  • Live publishing is disabled unless TIKTOK_DRY_RUN=false.
  • OAuth PKCE verifier is persisted locally in .agent-data/ and not returned in MCP output.
  • The package uses TikTok's official API surfaces; it does not automate a browser session.

Development

bash
npm installnpm testnpm run check

📧 Contact & Support

来源:README.md,提交 d262af5

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.1.5最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分

其他 Tik-Tok 集成