Publishes short-form videos to TikTok, Instagram Reels, YouTube Shorts, X, and Facebook from an AI agent workflow.
Also known as taisly/agent, agent, @taisly/agent
- Stars
- 221
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 0.2.10
- Last commit
- Oct 22, 2026
- License
- MIT
What is Taisly MCP?
Taisly publishes short-form videos to TikTok, Instagram Reels, YouTube Shorts, X, and Facebook from an AI agent workflow.
Summary generated from the project's README
About Taisly MCP server
Automating short-form video distribution across multiple social platforms is what Taisly Social Media Posting enables for developers and AI agent users. This tool allows an agent to publish content directly to TikTok, Instagram Reels, YouTube Shorts, X, and Facebook. It acts as a bridge for agents that can generate content or write captions but lack the direct integrations required to post them online.
Users can connect via a remote MCP endpoint using OAuth for a streamlined setup or run a local stdio MCP server via npx to allow agents to access video files stored on a local machine. The system provides a structured JSON-first workflow that includes discovering connected accounts, validating video payloads, and checking post status. Developers can integrate these capabilities into tools like Claude Code, Cursor, or Codex to move from an initial idea to a published video without building individual platform integrations.
What you can do with it
- 1Cross-platform video publishingAn AI agent can take a single local video file and publish it to multiple social media accounts simultaneously.
- 2Automated content validationA developer can instruct an agent to verify if a video and its description are valid for specific platforms before attempting to post.
Written from the project's README. Every use case is checked against a quote from it.
How to install Taisly MCP
Formats verified 10 Nov 2026Install Taisly MCP in Claude Code
$ claude mcp add --env TAISLY_API_KEY=<YOUR_TAISLY_API_KEY> agent -- npx -y @taisly/agentInstall Taisly MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"agent": {
"command": "npx",
"args": [
"-y",
"@taisly/agent"
],
"env": {
"TAISLY_API_KEY": "<YOUR_TAISLY_API_KEY>"
}
}
}
}Install Taisly MCP in VS Code
.vscode/mcp.json
{
"servers": {
"agent": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@taisly/agent"
],
"env": {
"TAISLY_API_KEY": "<YOUR_TAISLY_API_KEY>"
}
}
}
}Install Taisly MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"agent": {
"command": "npx",
"args": [
"-y",
"@taisly/agent"
],
"env": {
"TAISLY_API_KEY": "<YOUR_TAISLY_API_KEY>"
}
}
}
}Install Taisly MCP in Codex
~/.codex/config.toml
[mcp_servers.agent] command = "npx" args = ["-y", "@taisly/agent"] [mcp_servers.agent.env] TAISLY_API_KEY = "<YOUR_TAISLY_API_KEY>"
Install Taisly MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"agent": {
"command": "npx",
"args": [
"-y",
"@taisly/agent"
],
"env": {
"TAISLY_API_KEY": "<YOUR_TAISLY_API_KEY>"
}
}
}
}Configuration
TAISLY_API_KEYSecretOptional. Run `taisly setup --agent <agent-slug>` to store a local Taisly agent credential, or set this manual API key from Taisly Settings.
TAISLY_API_KEY
| Name | Description | |
|---|---|---|
| TAISLY_API_KEY | Optional. Run `taisly setup --agent <agent-slug>` to store a local Taisly agent credential, or set this manual API key from Taisly Settings. | Secret |
| TAISLY_API_KEY | — |
Automated checks
Ran Nov 12, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachablePass
- Open source license (OSI)Pass
- Commit or release in the last yearPass
- Package name not close to a popular packagePass
- Remote endpoint uses HTTPSPass
- Destructive tools are labelledNot checked
- No hidden instructions to the modelPass
- No critical advisory in the package or its dependenciesPass
README
View on GitHub
Taisly Agent Kit
Free AI-first social media posting for short-form video. Taisly Agent Kit is a JSON-first SDK, CLI, Agent Skill, and MCP server that lets AI agents, developer tools, and automation workflows publish videos to TikTok, Instagram Reels, YouTube Shorts, X, Facebook, and other connected social platforms through Taisly.
Use it when your agent can create content, write captions, or prepare a campaign, but still needs a reliable video publishing API to put that content online. The package is free to install and designed to get an agent from idea to published video without building every platform integration yourself.
Website | Agent Kit | API Docs | npm | GitHub | MCP Registry | Glama | Guide
Languages
Read this guide in: English, Español, Deutsch, Français, Português, ไทย, 中文, Bahasa Indonesia, Русский, Nederlands, 한국어, 日本語, العربية, Türkçe, Polski.
Why developers use it
- Build AI agent social media posting into Codex, Claude Code, Cursor, OpenClaw, and custom automation tools.
- Automate video publishing from one local file to multiple connected social accounts.
- Give agents a safe JSON workflow: discover accounts, validate payloads, create posts, and check status.
- Add TikTok API posting automation, Instagram Reels automation, YouTube Shorts publishing, and cross-platform social media automation without building every platform integration yourself.
- Start free, then upgrade only when the publishing workflow grows.
Taisly handles the connected accounts and posting execution. Your agent handles planning, caption writing, campaign logic, or workflow orchestration.
Optional local workflows
- Install the package for free.
- Create or connect a Taisly account from your AI agent.
- Let the agent authenticate, connect social accounts, validate videos, and publish through a JSON-first workflow.
- Upgrade later when you need higher-volume publishing, larger account sets, or automatic repost workflows.
No credit card is required to get started. Paid plans are for teams and workflows that need more scale.
Agent Skill
This package includes the Taisly Social Media Posting Skill in SKILL.md. Use it with Claude Code, Codex, Cursor, OpenClaw, and other agents when you want the agent to understand the safe posting workflow before it touches live social accounts.
Recommended skill workflow:
auth -> platforms -> validate -> confirm -> create -> status
The skill tells agents to discover connected accounts, validate the post, ask for explicit user confirmation, create the post, and save the returned historyId for status checks.
Codex plugin
This package includes a Codex plugin manifest in .codex-plugin/plugin.json. The plugin points Codex to the canonical SKILL.md file and the official remote MCP server:
https://app.taisly.com/mcp
Use the plugin when you want Codex to discover both the posting workflow instructions and the Taisly MCP tools from one package. The root SKILL.md is the single source of truth for the agent workflow.
Connect an AI agent through remote MCP
Remote MCP is the default AI-agent connection. If Taisly tools are already available, call taisly_auth_status and taisly_platforms_list directly. OAuth provides access; do not install this package or ask for an API key for that connection.
Help me connect Taisly to this agent using the setup guide. Check access and list my connected social accounts. Do not publish anything during setup.
Full documentation: https://docs.taisly.com/docs/mcp
The remote server URL is https://app.taisly.com/mcp. Add it through your client's remote MCP and OAuth settings if needed. Human authorization or administrator approval may be required. On expiry, reconnect through OAuth rather than switching to the CLI.
Optional local package installation
Use the following package instructions for explicit SDK, CLI or local-file workflows. They are not remote MCP setup requirements.
npm install -g @taisly/agent
Or run it without a global install:
npx @taisly/agent help
Start the stdio MCP server:
npx @taisly/agent mcp
For local development inside this repository:
node packages/agent/src/cli.js help
Local package authentication
For the local package, browser setup can store a local credential without manually copying an API key. Use any short agent slug, for example claude-code, codex, cursor, windsurf, openclaw, hermes-agent, cline, or aider.
Help me set up Taisly Agent Kit.
1. Install the CLI: npm i -g @taisly/agent
2. Run taisly setup --agent <agent-slug> and send me the login URL so I can finish authentication.
3. Wait for me to finish login in the browser.
4. Run taisly checkin --agent <agent-slug>.
5. Tell me if Taisly is connected and ready. If not, tell me what failed.
If you cannot install or run the Taisly CLI in this environment, stop and tell me to open Taisly Settings instead.
The setup command stores a local Taisly agent credential, so later CLI and MCP commands can run without manually copying an API key.
Manual fallback: create an API key in Taisly Settings, then set:
export TAISLY_API_KEY="taisly_..."
Advanced: by default, the browser setup stores the local credential in ~/.taisly/config.json. Most users should not change this. Set TAISLY_CONFIG_HOME=/path/to/dir only for CI, tests, or isolated agent profiles that need a separate credential store.
Quick start
List the connected social accounts available to the API key:
taisly auth:status
taisly platforms:list
Connect a social account from an AI-agent flow:
taisly platforms:connect:start --platform instagram
# Open the returned connectUrl and finish authorization in the browser.
taisly platforms:connect:check --platform instagram
taisly platforms:list
Supported connect slugs: instagram, tiktok, youtube, x, facebook.
Validate a local video before publishing:
taisly posts:validate \
--video ./launch.mp4 \
--platforms platform_id_1,platform_id_2 \
--description "Launch day"
Publish now:
taisly posts:create \
--video ./launch.mp4 \
--platforms platform_id_1,platform_id_2 \
--description "Launch day"
Schedule for later:
taisly posts:create \
--video ./launch.mp4 \
--platforms platform_id_1,platform_id_2 \
--description "Launch day" \
--scheduled "2026-06-14T09:00:00+07:00"
Check the returned post:
taisly posts:status --id <historyId>
Posting settings
Discover supported options and accepted values for each destination platform:
taisly platforms:schema --platform TikTok
taisly platforms:schema --platform YouTube
Group options by platform name in settings. For example:
taisly posts:create \
--video ./launch.mp4 \
--platforms your_tiktok_platform_id,your_youtube_platform_id \
--description "Product walkthrough" \
--settings '{"TikTok":{"status":"PUBLIC_TO_EVERYONE"},"YouTube":{"title":"Product walkthrough","status":"unlisted"}}'
With --json, put the same object in the input file's settings property. SDK
calls accept settings as an object. For remote or local MCP, discover options
with taisly_platform_schema and pass settings to both taisly_posts_validate
and taisly_posts_create. The HTTP API accepts a JSON-encoded settings form field.
| Platform | Settings | Meaning |
|---|---|---|
| TikTok | status |
PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, FOLLOWER_OF_CREATOR, or SELF_ONLY, subject to the account's available visibility options. |
| TikTok | comment_disabled, duet_disabled, stitch_disabled |
Boolean switches; true disables the interaction. |
| TikTok | brand_content_toggle |
Boolean; discloses a paid partnership promoting a third-party business. Cannot be combined with SELF_ONLY. |
| TikTok | brand_organic_toggle |
Boolean; discloses promotion of the creator's own business. Both brand switches may be enabled together. |
| TikTok | is_aigc |
Boolean; true enables the native AI-generated content label. Omit to keep existing behavior, or explicitly pass false. |
| YouTube | title |
Optional video title, up to 100 characters. Omit to use the post caption. |
| YouTube | status |
public, private, or unlisted. |
For example, a public TikTok post promoting your own business and an unlisted YouTube post with its own title can share one request:
{
"settings": {
"TikTok": {
"status": "PUBLIC_TO_EVERYONE",
"brand_organic_toggle": true,
"comment_disabled": false
},
"YouTube": {
"title": "Product walkthrough",
"status": "unlisted"
}
}
}
These settings work with --settings, --json, SDK calls, and both MCP servers,
for immediate and scheduled posts. They apply to all selected accounts on the
corresponding platform. Omitted fields keep the usual posting behavior. These
options apply only to the requested post. TikTok account restrictions still apply.
Every command prints JSON so agents can parse results without scraping terminal text.
MCP server
Taisly is published in the official MCP Registry as:
io.github.taisly/agent
Display name: Taisly Social Media Posting
Remote MCP endpoint:
https://app.taisly.com/mcp
The remote MCP server uses streamable HTTP and OAuth. Remote MCP tools can publish only from public videoUrl values because they cannot read local files from your machine.
Codex remote MCP setup:
codex mcp add taisly --url https://app.taisly.com/mcp
codex mcp login taisly
Claude Code remote MCP setup:
claude mcp add --transport http taisly https://app.taisly.com/mcp
Then ask Claude Code to verify the connection. If OAuth is needed, Claude Code can guide the browser login from the session. You can also authenticate explicitly with claude mcp login taisly if you want to complete the OAuth flow from the shell before using tools.
Taisly Agent Kit also includes a local stdio MCP server in the same package. Use local MCP when your agent needs to read local video files:
{
"mcpServers": {
"taisly": {
"command": "npx",
"args": ["@taisly/agent", "mcp"]
}
}
}
If you already use a manual API key, you can still pass TAISLY_API_KEY in the MCP server env block.
Codex local MCP setup:
codex mcp add taisly -- npx @taisly/agent mcp
Claude Code local MCP setup:
claude mcp add taisly -- npx @taisly/agent mcp
Then ask the agent:
Use the local Taisly MCP server you just added and run the Taisly agent setup start tool with agentId: "<agent-slug>".
Send me the login URL and wait for me to finish in the browser.
Then run the Taisly agent checkin tool with agentId: "<agent-slug>".
After checkin, run the Taisly auth status tool.
Tell me if Taisly is connected and ready. If not, tell me what failed.
Available MCP tools:
taisly_agent_setup_starttaisly_agent_checkintaisly_auth_statustaisly_platforms_listtaisly_platform_schemataisly_platform_connect_starttaisly_platform_connect_checktaisly_posts_validatetaisly_posts_createtaisly_posts_statustaisly_posts_listtaisly_reposts_listtaisly_reposts_create
taisly_posts_create requires confirmed: true. Set it only after the user explicitly approves the video, destination accounts, caption, and schedule.
JSON workflow for agents
Agents can write a payload file and pass it to the CLI:
{
"video": "./launch.mp4",
"platforms": ["platform_id_1", "platform_id_2"],
"description": "Launch day. Short demo, big update.",
"scheduled": "2026-06-14T09:00:00+07:00"
}
Then run:
taisly posts:validate --json ./campaign.json
taisly posts:create --json ./campaign.json
The video path must point to a real local file available to the agent. Supported local preflight extensions are .mp4, .mov, .avi, .mkv, .webm, .flv, .mpeg, and .mpg.
Commands
taisly auth:status
taisly setup --agent <agent-slug>
taisly checkin --agent <agent-slug>
taisly platforms:list
taisly integrations:list
taisly platforms:schema --platform TikTok
taisly posts:validate --video ./launch.mp4 --platforms platform_id_1 --description "Launch day"
taisly posts:create --video ./launch.mp4 --platforms platform_id_1 --description "Launch day"
taisly posts:create --json ./campaign.json
taisly posts:list --page 1
taisly posts:status --id <historyId>
taisly reposts:list
taisly reposts:create --from <platform_id> --to <platform_id_1,platform_id_2>
taisly mcp
integrations:* commands are aliases for platforms:* commands. Taisly calls connected social accounts platforms in the app, while many public APIs call them integrations.
SDK
import { Taisly } from "@taisly/agent";
const taisly = new Taisly({
apiKey: process.env.TAISLY_API_KEY,
});
const platforms = await taisly.platforms.list();
const validation = await taisly.posts.validate({
video: "./launch.mp4",
platforms: [platforms.data[0].id],
description: "Launch day",
});
const post = await taisly.posts.create({
video: "./launch.mp4",
platforms: [platforms.data[0].id],
description: "Launch day",
scheduled: "2026-06-14T09:00:00+07:00",
});
console.log(validation.success);
console.log(post.historyId);
Use with AI agents
Taisly Agent Kit is designed for agentic workflows where the user gives a high-level instruction and the agent executes a safe posting path.
- Codex: let a coding agent publish demo videos, launch clips, or build updates after user confirmation.
- Claude Code: add social posting to local content workflows and campaign scripts.
- Cursor: ship video publishing from developer tools, content apps, and internal automation.
- OpenClaw and other agents: connect planning, caption writing, and posting execution through a single CLI.
Recommended agent path:
auth:status -> platforms:list -> platforms:schema -> posts:validate -> user confirmation -> posts:create -> posts:status
Agent recipes
The examples/ folder includes copy-paste workflows for common coding agents:
examples/codex/post-video.mdexamples/claude-code/schedule-video.mdexamples/cursor/post-build-demo-video.mdexamples/post-video.shexamples/schedule-video.sh
What this package is not
- It is not a social media dashboard.
- It is not a video editor.
- It does not replace a Taisly account.
- It requires connected social accounts and a Taisly agent credential or API key.
- It does not bypass platform rules, account permissions, or media validation.
Current limits
posts:createuses the existing multipart/postAPI.posts:statusreads recent history because a single-post status endpoint is not available yet.posts:validateis local preflight; final validation still happens in Taisly.- Local MCP uses stdio transport. Remote MCP uses streamable HTTP at
https://app.taisly.com/mcp. - Remote MCP requires public video URLs; use local MCP or the CLI for local video files.
- Media upload reuse is planned later.
Links
- Taisly: https://taisly.com/en
- Agent Kit page: https://taisly.com/en/ai-agent-kit
- API docs: https://docs.taisly.com/en/docs
- npm package: https://www.npmjs.com/package/@taisly/agent
- GitHub repo: https://github.com/taisly/agent
- MCP Registry: https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.taisly%2Fagent
- SEO guide: https://taisly.com/en/blog/ai-agent-social-media-posting-api
Taisly MCP questions
How do I add Taisly MCP to Claude Code?
Run claude mcp add --env TAISLY_API_KEY=<YOUR_TAISLY_API_KEY> agent -- npx -y @taisly/agent in your terminal. Add --scope user to make it available in every project.
How do I add Taisly MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
Can Taisly publish a video from a local file?
Yes, but only through the local stdio MCP server or CLI, since the remote server cannot read files from your machine. Run npx @taisly/agent mcp for local file access.
Which social platforms can Taisly post to?
It publishes to Instagram, TikTok, YouTube, X, and Facebook. You can also schedule posts for a later time.
How do I validate a video before publishing it?
Run taisly posts:validate with the video path, target platform IDs, and a description. The recommended workflow is auth, platforms, validate, confirm, create, then status.
Can the agent check whether a post succeeded?
Yes, run taisly posts:status with the returned historyId. The skill tells agents to save that ID for status checks.