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 整合