# Connect Telegram (/en/docs/connect-telegram) For screenshots and a complete walkthrough, open the [Telegram connection guide](https://taisly.com/blog/how-to-connect-telegram). ## Quick setup [#quick-setup] 1. Open the verified [@BotFather](https://t.me/BotFather) in Telegram. Click **Start → Open → Create a New Bot**, choose a name and a username ending in `bot`. If Open is unavailable, send `/newbot` instead. 2. Add your bot to your channel or group. In a channel, make it an administrator with **Post Messages** permission. In a group, allow it to send messages and videos. 3. In [Taisly](https://app.taisly.com), choose **Add account → Telegram → Connect** and fill in: * **Bot token:** use **Copy** on your bot's page in BotFather and paste the complete token. * **Channel or group:** paste your channel or group's public link or `@username`. For a private chat, use its numeric chat ID. Invite links are not supported. 4. Click **Connect**. Your channel or group is ready to select in **Post**. You can publish or schedule MP4 videos up to **500 MB**. For automatic reposts, select Telegram as the destination, not the source. --- # Getting Started (/en/docs/getting-started) ## 1. Connect social accounts [#1-connect-social-accounts] Open Taisly and connect the social accounts you want agents or integrations to use: [https://app.taisly.com](https://app.taisly.com) Connecting Telegram? Follow the [quick setup](/en/docs/connect-telegram) or the [full guide with screenshots](https://taisly.com/blog/how-to-connect-telegram). Your connected accounts become Taisly platforms. Agents and API integrations should always list platforms first and use the exact platform IDs returned by Taisly. ## 2. Pick an integration path [#2-pick-an-integration-path] * **AI agents:** [connect remote MCP with OAuth](/docs/mcp). Use an existing connection directly. No Taisly package installation or manually copied API key is required. * **Backend integrations:** use the [REST API](/en/docs/api) with a server-side API key. * **Local video files or scripts:** explicitly choose the optional [SDK, CLI and local MCP package](/en/docs/agents/agent-kit). ## 3. Verify access [#3-verify-access] For remote MCP, ask your agent to call `taisly_auth_status` and `taisly_platforms_list`. Confirm that the correct Taisly account and social accounts appear. This first task only reads information. If the connection is missing, follow the client's MCP setup and OAuth login flow. If it already works, do not configure a second connection. For direct API workflows, generate an API key in Taisly settings and send it as a bearer token. ## 4. Validate before posting [#4-validate-before-posting] Agents should validate: * The destination platform ID. * The video URL or local file path. * The caption. * The schedule, if one is provided. Ask the agent to show the final video, caption, destination account, and schedule before it creates a live post. ## 5. Track status [#5-track-status] Every created post returns a Taisly history ID. Save it and use it to check whether the post is pending, successful, failed, or scheduled. --- # Taisly Docs (/en/docs) Taisly publishes short-form videos to connected social accounts. Choose the guide for your workflow. ## AI agents [#ai-agents] Start with [Taisly MCP](/docs/mcp). Connect once with OAuth, then use the available tools to discover accounts, publish and schedule videos, inspect history, and manage reposts. An existing MCP connection does not need a CLI installation or an API key. * [Connect your agent and discover MCP tools](/docs/mcp) * [Video URL requirements and publishing examples](/en/docs/agents/upload-video-with-mcp) ## Developers [#developers] Use the [REST API](/en/docs/api) for direct HTTP integrations with API keys. The [SDK, CLI and local MCP package](/en/docs/agents/agent-kit) is optional for custom code and local video files. * [API reference](/en/docs/api/reference) * [OpenAPI JSON](/openapi.json) ## More guides [#more-guides] * [Getting started](/en/docs/getting-started) * [Connect Telegram](/en/docs/connect-telegram) * [MCP guide as plain text](/mcp.txt) * [Documentation index for agents](/llms.txt) --- # Taisly MCP (/docs/mcp) Taisly connects AI agents to your social accounts. Its remote MCP tools can discover accounts, start social-account connections, validate videos, publish now or schedule for later, inspect posting history, and manage automatic repost rules. ## Connect once, reuse the connection [#connect-once-reuse-the-connection] If Taisly MCP tools are already available in your conversation, use them directly. Call `taisly_auth_status` and `taisly_platforms_list` to check access. Do not install a package, start a local server, run setup/checkin commands, or request an API key for an existing remote MCP connection. If Taisly is not connected, add it to a client that supports remote MCP over Streamable HTTP and OAuth: ```txt Name: Taisly Server URL: https://app.taisly.com/mcp Authentication: OAuth ``` Finish Taisly sign-in and consent in your browser, then enable the connection in the conversation. An agent may help configure its client, but some clients require you or a workspace administrator to add the connection in settings. A prompt alone cannot grant access or bypass client restrictions. After connection, run these read-only tools: 1. `taisly_auth_status`: verify the signed-in Taisly account and plan limits. 2. `taisly_platforms_list`: show connected social accounts and their exact platform IDs. If no social accounts are connected, say so. Do not treat that as an authentication failure or reinstall the connection. ## Client setup [#client-setup] ### Claude [#claude] Add a custom connector in Claude with the server URL above and complete OAuth. Enable Taisly in the conversation. Workspace policies may require administrator approval. [Open the Taisly connector dialog](https://claude.ai/customize/connectors?modal=add-custom-connector\&connectorName=Taisly\&connectorUrl=https%3A%2F%2Fapp.taisly.com%2Fmcp) ### Claude Code [#claude-code] Add the remote connection, then open `/mcp` in Claude Code to authenticate when prompted: ```bash claude mcp add --transport http taisly https://app.taisly.com/mcp ``` This registers a remote server; it does not install the Taisly package. An existing connection can be reused. ### Codex [#codex] Add Taisly in Codex MCP settings with the server URL and authenticate, or use the installed Codex CLI: ```bash codex mcp add taisly --url https://app.taisly.com/mcp codex mcp login taisly ``` Use an existing connection if one is already configured. Follow your client's instructions for refreshing tools or starting a new conversation after adding a server. [Codex MCP documentation](https://developers.openai.com/codex/extend/mcp) ### ChatGPT [#chatgpt] Use ChatGPT's custom MCP connection flow, enter the Taisly server URL, select OAuth, and approve access. Enable the resulting connection in your conversation. Availability depends on account and workspace policies. This does not require the Taisly CLI or a manually copied Taisly API key. [Current ChatGPT connection instructions](https://developers.openai.com/plugins/deploy/connect-chatgpt) ### Other clients and content tools [#other-clients-and-content-tools] Use the client's documented remote MCP and OAuth configuration. Client-specific commands and configuration schemas are not interchangeable. If your client cannot connect, explain that limitation and suggest a compatible client. Do not silently replace MCP with a package installation or API-key flow. A content generator or editor is not necessarily an MCP client. Create or export the video there, then use a compatible agent connected to Taisly for publishing. For example, Gemini CLI has its own MCP configuration; that does not establish that every Gemini chat has the same capability. ## First prompt [#first-prompt] ```txt 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 ``` ## Tools and capabilities [#tools-and-capabilities] | Tool | Purpose | | ------------------------------- | -------------------------------------------------------------------- | | `taisly_auth_status` | Check account access, plan limits, and connected-account count. | | `taisly_platforms_list` | List connected social accounts and exact destination IDs. | | `taisly_platform_schema` | Read posting constraints for a platform. | | `taisly_platform_connect_start` | Return a browser URL for connecting a social account. | | `taisly_platform_connect_check` | Check whether that social account is connected. | | `taisly_posts_validate` | Validate a public video URL, caption, destination IDs, and schedule. | | `taisly_posts_create` | Publish or schedule a confirmed video post. | | `taisly_posts_status` | Check per-platform results using the returned history ID. | | `taisly_posts_list` | Read posting history, including scheduled posts. | | `taisly_reposts_list` | Read automatic repost rules. | | `taisly_reposts_create` | Create a repost rule requested by the user. | Only call tools actually advertised by the connected server. `taisly_agent_setup_start` and `taisly_agent_checkin` belong to the separate local package and are not remote MCP authentication tools. ## Connect a social account [#connect-a-social-account] First list existing accounts. If the requested account is missing, ask whether the user wants to connect it. Call `taisly_platform_connect_start` for a supported platform and show its `connectUrl`. The user completes platform authorization in the browser. Then call `taisly_platform_connect_check` and list accounts again. Connecting a social account is separate from authorizing the agent to access Taisly. Neither step requires collecting a social-network password in chat. ## Publish or schedule a video [#publish-or-schedule-a-video] 1. Check access and list accounts. Match the user's destinations to exact returned IDs; do not guess IDs or choose the first account automatically. 2. Obtain a direct public video URL, caption, and optional schedule. Read `taisly_platform_schema` for relevant constraints. 3. Call `taisly_posts_validate`. 4. Show the video, caption, exact accounts, and schedule to the user for confirmation. 5. Only after approval call `taisly_posts_create` with `confirmed: true`. 6. Save the returned `historyId`. An accepted request is not proof of publication. For immediate posts, check `taisly_posts_status`: `PENDING` means processing, `SUCCESS` means published, and `FAILED` means failed, separately for each destination. 7. For scheduled posts, report the scheduled date and history ID, not that the video has already been published. The `scheduled` field accepts an ISO datetime with timezone or Unix milliseconds. Resolve ambiguous dates and timezones before asking for approval. [Video URL requirements and publishing examples](/en/docs/agents/upload-video-with-mcp) ## History and reposts [#history-and-reposts] Use `taisly_posts_list` to inspect history and `taisly_posts_status` for a particular history ID. Do not call create again just because a request timed out; check history before risking a duplicate. For automatic reposts, list accounts and existing rules first. Show the exact source and destination accounts and obtain approval before calling `taisly_reposts_create`. Do not create a rule as a connection test. Repost automation and scheduling a single video are separate features. ## Access and troubleshooting [#access-and-troubleshooting] OAuth grants access to the signed-in user's Taisly account. The remote connection uses bearer tokens obtained by the client, not keys pasted into chat. Supported permissions are `mcp:read` and `mcp:write`; write operations require write permission. Never print credentials or put them in a prompt, URL, log, or repository. If access expires or is revoked, use the client's OAuth reconnect or authentication action. Do not install the CLI or ask for an API key as an automatic fallback. If a tool is missing after connection, refresh the server's tools or start a new conversation according to the client's instructions. Remote MCP currently publishes videos from publicly reachable URLs. It cannot read local paths or private chat attachments. A file attached to a cloud conversation is not automatically a downloadable public URL. Ask for a suitable URL, or discuss the separate local-file workflow with the user. ## Developer alternatives [#developer-alternatives] The [REST API](/en/docs/api) uses API keys and HTTP requests for custom integrations. The [SDK, CLI and local MCP package](/en/docs/agents/agent-kit) can work with files available to a local process. These are optional alternatives, not prerequisites for remote MCP. Machine-readable version of this guide: [mcp.txt](/mcp.txt). Full documentation index: [llms.txt](/llms.txt). --- # Agent Kit (/en/docs/agents/agent-kit) For ordinary AI-agent connections, start with [Taisly MCP](/docs/mcp). Remote MCP uses OAuth and does not require this package or an API key. If that connection exists, use it directly. This page is for optional developer and local-file workflows. Taisly Agent Kit is the JSON-first package for AI agents that publish short-form videos through Taisly. It includes: * A CLI for local and scripted workflows. * A local stdio MCP server. * Agent setup and check-in commands. * Structured commands for platforms, post validation, publishing, status, and reposts. ## Install [#install] ```bash npm install -g @taisly/agent taisly auth:status ``` ## Recommended workflow [#recommended-workflow] 1. For a local package connection, run `taisly setup --agent `, approve the returned browser URL, then run `taisly checkin --agent `. A manually configured `TAISLY_API_KEY` is an alternative for developer workflows. 2. Run `taisly auth:status`. 3. Run `taisly platforms:list` or `taisly integrations:list`. 4. Run `taisly platforms:schema --platform TikTok`. 5. Run `taisly posts:validate`. 6. Confirm destination accounts and caption with the user. 7. Run `taisly posts:create`. 8. Store the returned `historyId`. 9. Run `taisly posts:status --id `. ## Common commands [#common-commands] ```bash taisly auth:status taisly platforms:list taisly integrations:list taisly platforms:schema --platform TikTok taisly posts:validate --video ./launch.mp4 --platforms --description "Launch day" taisly posts:create --video ./launch.mp4 --platforms --description "Launch day" taisly posts:create --json ./campaign.json taisly posts:list --page 1 taisly posts:status --id taisly reposts:list taisly reposts:create --from --to ``` ## Local MCP [#local-mcp] Use local MCP when an agent can launch local commands and needs access to files on your machine. ```bash npx -y @taisly/agent mcp ``` Example Claude Code setup: ```bash claude mcp add --transport stdio taisly -- npx -y @taisly/agent mcp ``` ## Safety rules [#safety-rules] Never invent platform IDs, never print API keys, and do not create a live post until the user has confirmed the video, caption, destination, and schedule. ## Discovery links [#discovery-links] * npm: [@taisly/agent](https://www.npmjs.com/package/@taisly/agent) * GitHub: [github.com/taisly/agent](https://github.com/taisly/agent) * MCP Registry: [io.github.taisly/agent](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.taisly%2Fagent) * Glama: [glama.ai/mcp/servers/taisly/agent](https://glama.ai/mcp/servers/taisly/agent) --- # Upload and publish videos with Taisly MCP (/en/docs/agents/upload-video-with-mcp) Taisly MCP lets Claude, Claude Code, Codex, ChatGPT, and other AI agents publish short-form videos to the social accounts you connected in Taisly. Connect your agent first using the [Taisly MCP setup guide](/docs/mcp). If the connection already exists, reuse it. This page covers video inputs and publishing after connection. ## What to give your agent [#what-to-give-your-agent] ```txt Use my existing Taisly connection to prepare this post: Video URL: https://example.com/launch.mp4 Caption: Launch day. Short demo, big update. Destination: my connected TikTok account List my connected accounts and match the destination, then validate the post. Show me the video, caption, account and schedule for confirmation before publishing. After I confirm, create the post and check its status. Report acceptance separately from publication. Full documentation: https://docs.taisly.com/docs/mcp ``` ## Public video URL requirements [#public-video-url-requirements] Remote MCP can fetch only public video URLs. Your `videoUrl` should: * Use `http://` or `https://`. HTTPS is recommended. * Point directly to a downloadable video file. * Be reachable without cookies, login, VPN, or an interactive confirmation page. * Use a supported video type such as `mp4`, `mov`, `webm`, `avi`, `mkv`, `flv`, `mpeg`, or `mpg`. * Be 500MB or smaller. Your `videoUrl` should not: * Point to `localhost`, a private network, or a local file path. * Include a username or password in the URL. * Require a browser session to download. * Redirect through too many pages before reaching the video. Short-form vertical video is recommended. Different social platforms may also apply their own limits for duration, format, caption length, privacy settings, and daily posting volume. ## Local files [#local-files] Remote MCP cannot read files on your computer or private chat attachments. Provide a direct public video URL, or explicitly choose the separate [SDK, CLI and local MCP workflow](/en/docs/agents/agent-kit) when local file access is necessary. Installing that package is not part of remote MCP connection setup. ## Troubleshooting [#troubleshooting] ### The agent says Taisly cannot read my local file [#the-agent-says-taisly-cannot-read-my-local-file] Remote MCP runs outside your computer and cannot access paths like `./video.mp4`, `/Users/me/video.mov`, or `C:\Videos\video.mp4`. Use local MCP or the Taisly CLI for local files, or upload the video somewhere that gives you a direct public URL. ### My Google Drive, Dropbox, or cloud storage link fails [#my-google-drive-dropbox-or-cloud-storage-link-fails] The URL must lead directly to the video file. Links that open a preview page, require login, or require cookies may fail. Use a direct download URL when possible. ### Taisly says the URL is not public [#taisly-says-the-url-is-not-public] Remote MCP blocks local and private network addresses for safety. Use a public URL that Taisly can fetch from the internet. ### The video is too large [#the-video-is-too-large] The current upload limit is 500MB. Compress the video or use a shorter export. ### I do not see the right social account [#i-do-not-see-the-right-social-account] Ask the agent to list your connected Taisly platforms. If the account is missing, connect it in Taisly first, then ask the agent to check again. ### The agent is ready to publish without asking me [#the-agent-is-ready-to-publish-without-asking-me] Ask the agent to stop and show the final video URL, caption, destination account, and schedule first. Taisly MCP is designed for explicit confirmation before creating a live post. ## Safe publishing checklist [#safe-publishing-checklist] Before the agent creates a post, confirm: * The video URL or local file is correct. * The destination account is correct. * The caption is correct. * The schedule is correct, or the post should go live now. * The agent is using the connected Taisly account you expect. After publishing, save the returned Taisly history ID and ask the agent to check post status when needed. --- # API Overview (/en/docs/api) The Taisly REST API is for backend integrations that need direct control over video publishing. ## Base URL [#base-url] ```txt https://app.taisly.com/api/private ``` ## Authentication [#authentication] Generate an API key from Taisly settings and send it as a bearer token: ```bash curl -X GET https://app.taisly.com/api/private/platform/platforms \ -H "Authorization: Bearer taisly_your_api_key_here" ``` Never expose Taisly API keys in client-side code, public repositories, browser storage, or logs. ## Upload a video [#upload-a-video] ```bash curl -X POST https://app.taisly.com/api/private/post \ -H "Authorization: Bearer taisly_your_api_key_here" \ -F "video=@/path/to/video.mp4" \ -F "platforms=[\"platform_id_1\"]" \ -F "description=Check out my new video!" ``` ## Requirements [#requirements] * API requests must use HTTPS. * Video uploads are sent as `multipart/form-data`. * Current upload limit is 500MB. * Short-form vertical video is recommended. * List platforms first and use exact platform IDs from Taisly. ## Reference [#reference] The endpoint reference is generated from the current Taisly OpenAPI document. --- # API Reference (/en/docs/api/reference) This section is generated from the Taisly OpenAPI document used by the existing API documentation. Use it when you need exact request methods, paths, authentication rules, request bodies, parameters, and response examples. Endpoint pages below this section are virtual Fumadocs OpenAPI pages. They are not manually hardcoded. ## Endpoint groups [#endpoint-groups] The endpoint groups are shown directly under API in the sidebar: * [API Key Management](/en/docs/api/api-key-management) * [Platforms](/en/docs/api/platforms) * [Posts](/en/docs/api/posts) * [Reposts](/en/docs/api/reposts) Open a group to browse its generated endpoint pages. --- # Get API Key Information (/en/docs/api/api-key-management/getApiKey) Retrieve information about your current API key. --- # Generate API Key (/en/docs/api/api-key-management/generateApiKey) Generate a new API key or regenerate if one already exists. **IMPORTANT**: - The full API key is only shown once. Save it securely. - If you regenerate, the old key will be invalidated immediately. --- # Revoke API Key (/en/docs/api/api-key-management/revokeApiKey) Immediately revoke your current API key. All requests using this key will fail. --- # Get Connected Platforms (/en/docs/api/platforms/getPlatforms) Retrieve all social media accounts connected to your account. --- # Create a Post (/en/docs/api/posts/createPost) Upload a video to one or more connected platforms. **Video Requirements:** - Format: MP4, MOV, or other common video formats - Size: Maximum 500MB - Duration: 3-90 seconds - Orientation: Vertical (9:16) **Scheduling:** - Pass `scheduled` as a Unix timestamp in milliseconds for scheduled posting (omit this parameter if you don't want to schedule) --- # Get Post History (/en/docs/api/posts/getPostHistory) Retrieve your posting history with status information for each platform. **Pagination**: - Use `page` parameter for pagination (10 items per page) - Or use `startTime` and `endTime` for date range filtering (returns all matching posts) **Status Values**: - PENDING: Post is queued - SUCCESS: Posted successfully - FAILED: Post failed (check message field for error code) --- # Cancel Scheduled Post (/en/docs/api/posts/cancelScheduledPost) Cancel a post that was scheduled for later. The post will be permanently deleted. --- # Get Repost Configurations (/en/docs/api/reposts/getReposts) Retrieve all configured automatic reposting rules. When you post to a 'from' platform, the content will be automatically reposted to all 'to' platforms. --- # Add Repost Configuration (/en/docs/api/reposts/addRepost) Configure automatic reposting from one platform to others. **How it works**: - When you post content to the 'from' platform, it will automatically be reposted to all 'to' platforms **Note**: Circular dependencies are prevented. You cannot create A→B if B→A already exists. --- # Delete Repost Configuration (/en/docs/api/reposts/deleteRepost) Remove an automatic reposting rule. Future posts to the source platform will no longer be automatically reposted. --- # Pause/Resume Repost Configuration (/en/docs/api/reposts/pauseRepost) Temporarily pause or resume automatic reposting. Useful when you want to stop reposting temporarily without deleting the configuration. --- # API Key Management (/en/docs/api/api-key-management) Generate, view, and revoke API keys for authentication. API keys are available on every plan. Usage limits depend on the plan. - [Get API Key Information](/en/docs/api/api-key-management/getApiKey): Retrieve information about your current API key. - [Generate API Key](/en/docs/api/api-key-management/generateApiKey): Generate a new API key or regenerate if one already exists. - [Revoke API Key](/en/docs/api/api-key-management/revokeApiKey): Immediately revoke your current API key. All requests using this key will fail. --- # Platforms (/en/docs/api/platforms) View connected social media accounts. - [Get Connected Platforms](/en/docs/api/platforms/getPlatforms): Retrieve all social media accounts connected to your account. --- # Posts (/en/docs/api/posts) Upload videos and post to multiple platforms simultaneously. Schedule posts for later or post immediately. - [Create a Post](/en/docs/api/posts/createPost): Upload a video to one or more connected platforms. - [Get Post History](/en/docs/api/posts/getPostHistory): Retrieve your posting history with status information for each platform. - [Cancel Scheduled Post](/en/docs/api/posts/cancelScheduledPost): Cancel a post that was scheduled for later. The post will be permanently deleted. --- # Reposts (/en/docs/api/reposts) Configure automatic reposting rules to share content from one platform to others automatically. - [Get Repost Configurations](/en/docs/api/reposts/getReposts): Retrieve all configured automatic reposting rules. When you post to a 'from' platform, the content will be automatically reposted to all 'to' platforms. - [Add Repost Configuration](/en/docs/api/reposts/addRepost): Configure automatic reposting from one platform to others. - [Delete Repost Configuration](/en/docs/api/reposts/deleteRepost): Remove an automatic reposting rule. Future posts to the source platform will no longer be automatically reposted. - [Pause/Resume Repost Configuration](/en/docs/api/reposts/pauseRepost): Temporarily pause or resume automatic reposting. Useful when you want to stop reposting temporarily without deleting the configuration. --- # 连接 Telegram (/zh-CN/docs/connect-telegram) 需要截图和完整操作说明?请查看 [Telegram 连接指南](https://taisly.com/zh-CN/blog/how-to-connect-telegram)。 ## 快速设置 [#快速设置] 1. 在 Telegram 中打开已认证的 [@BotFather](https://t.me/BotFather)。依次点击 **Start → Open → Create a New Bot**,设置名称及以 `bot` 结尾的用户名。如果没有 Open 按钮,请发送 `/newbot`。 2. 将机器人添加到频道或群组。在频道中,将其设为拥有 **Post Messages / 发布消息** 权限的管理员。在群组中,允许其发送消息和视频。 3. 在 [Taisly](https://app.taisly.com) 中选择 **添加账号 → Telegram → 连接**,填写: * **机器人令牌:** 在 BotFather 的机器人页面点击 **Copy**,粘贴完整令牌。 * **频道或群组:** 粘贴公开链接或 `@username`。私密聊天请使用数字聊天 ID,不支持邀请链接。 4. 点击 **连接**。现在可以在 **发布** 中选择该频道或群组。 支持立即发布或定时发布不超过 **500 MB** 的 MP4 视频。设置自动转发时,请将 Telegram 选为目标,而不是来源。 --- # Getting Started (/zh-CN/docs/getting-started) ## 1. Connect social accounts [#1-connect-social-accounts] Open Taisly and connect the social accounts you want agents or integrations to use: [https://app.taisly.com](https://app.taisly.com) Connecting Telegram? Follow the [quick setup](/en/docs/connect-telegram) or the [full guide with screenshots](https://taisly.com/blog/how-to-connect-telegram). Your connected accounts become Taisly platforms. Agents and API integrations should always list platforms first and use the exact platform IDs returned by Taisly. ## 2. Pick an integration path [#2-pick-an-integration-path] * **AI agents:** [connect remote MCP with OAuth](/docs/mcp). Use an existing connection directly. No Taisly package installation or manually copied API key is required. * **Backend integrations:** use the [REST API](/en/docs/api) with a server-side API key. * **Local video files or scripts:** explicitly choose the optional [SDK, CLI and local MCP package](/en/docs/agents/agent-kit). ## 3. Verify access [#3-verify-access] For remote MCP, ask your agent to call `taisly_auth_status` and `taisly_platforms_list`. Confirm that the correct Taisly account and social accounts appear. This first task only reads information. If the connection is missing, follow the client's MCP setup and OAuth login flow. If it already works, do not configure a second connection. For direct API workflows, generate an API key in Taisly settings and send it as a bearer token. ## 4. Validate before posting [#4-validate-before-posting] Agents should validate: * The destination platform ID. * The video URL or local file path. * The caption. * The schedule, if one is provided. Ask the agent to show the final video, caption, destination account, and schedule before it creates a live post. ## 5. Track status [#5-track-status] Every created post returns a Taisly history ID. Save it and use it to check whether the post is pending, successful, failed, or scheduled. --- # Taisly 文档 (/zh-CN/docs) Taisly 将短视频发布到已连接的社交账号。请根据你的工作流程选择指南。 ## AI 智能体 [#ai-智能体] 从 [Taisly MCP](/zh-CN/docs/mcp) 开始。通过 OAuth 连接一次,即可查看账号、发布和安排视频、查询历史及管理转发。已有连接不需要安装 CLI 或提供 API 密钥。 * [连接智能体并了解 MCP 工具](/zh-CN/docs/mcp) * [视频 URL 要求与发布示例(英文)](/en/docs/agents/upload-video-with-mcp) ## 开发者 [#开发者] [REST API](/en/docs/api) 通过 API 密钥和 HTTP 请求提供直接集成。[SDK、CLI 与本地 MCP](/en/docs/agents/agent-kit) 是适用于自定义代码和本地文件的可选工具。 * [API 参考](/en/docs/api/reference) * [OpenAPI JSON](/openapi.json) * [文档索引](/llms.txt) --- # Taisly MCP (/zh-CN/docs/mcp) Taisly MCP 将 AI 智能体连接到你的社交账号。你可以查看账号、连接新账号、验证视频、立即发布或定时发布、查询历史记录和管理自动转发规则。 ## 使用现有连接 [#使用现有连接] 如果对话中已经有 Taisly MCP 工具,请直接调用 `taisly_auth_status` 和 `taisly_platforms_list`。OAuth 已经提供访问权限,无需安装 Taisly 软件包、运行本地服务器、执行 setup/checkin 或索要 API 密钥。账号列表为空不代表授权失败。 ## 首次连接 [#首次连接] 在支持远程 MCP、Streamable HTTP 和 OAuth 的客户端中添加: ```txt Name: Taisly Server URL: https://app.taisly.com/mcp Authentication: OAuth ``` 在浏览器中完成 Taisly 登录和授权,并在对话中启用连接。某些客户端需要用户或管理员在设置中添加连接;提示词本身不能授予访问权限。 Claude 使用自定义连接器。ChatGPT 使用自定义 MCP 连接流程,实际可用性取决于账号和工作区策略。Codex 可在 MCP 设置中添加服务器并授权。终端客户端也可使用以下命令,无需安装 Taisly 软件包: ```bash codex mcp add taisly --url https://app.taisly.com/mcp codex mcp login taisly claude mcp add --transport http taisly https://app.taisly.com/mcp ``` 这些是不同客户端的命令,请只使用对应客户端的命令。Claude Code 可通过 `/mcp` 完成授权。已有连接无需重复添加。其他客户端请按其远程 MCP 和 OAuth 指南操作,不要默认切换到 API 密钥或本地安装。 [完整客户端说明(英文)](/docs/mcp#client-setup) ## 首次提示词 [#首次提示词] ```txt 请按照设置指南帮我将 Taisly 连接到这个智能体。检查访问权限并列出我已连接的社交账号。设置期间不要发布任何内容。 Full documentation: https://docs.taisly.com/zh-CN/docs/mcp ``` ## 工具 [#工具] | 工具 | 用途 | | ------------------------------- | -------------------- | | `taisly_auth_status` | 检查当前账号、访问权限和套餐限制。 | | `taisly_platforms_list` | 列出社交账号及准确的目标 ID。 | | `taisly_platform_schema` | 查询平台发布限制。 | | `taisly_platform_connect_start` | 获取连接社交账号的浏览器链接。 | | `taisly_platform_connect_check` | 检查社交账号是否连接成功。 | | `taisly_posts_validate` | 验证视频 URL、文案、目标账号和时间。 | | `taisly_posts_create` | 发布或安排已确认的视频。 | | `taisly_posts_status` | 按历史 ID 检查各平台结果。 | | `taisly_posts_list` | 查询发布历史及计划发布。 | | `taisly_reposts_list` | 查询自动转发规则。 | | `taisly_reposts_create` | 创建用户批准的转发规则。 | 仅调用服务器实际提供的工具。`taisly_agent_setup_start` 和 `taisly_agent_checkin` 属于本地软件包,不是远程 MCP 授权工具。 ## 发布、定时和转发 [#发布定时和转发] 先检查访问权限并列出账号,将用户指定的目标匹配到准确 ID。获取公开可下载的视频 URL、文案和可选发布时间,读取平台限制并验证。发布前展示视频、文案、目标账号和时间,获得用户批准后才调用 `taisly_posts_create`,并设置 `confirmed: true`。 保存返回的 `historyId` 并检查状态。请求被接受不代表已发布:各目标的 `PENDING` 表示处理中,`SUCCESS` 表示发布成功,`FAILED` 表示失败。定时发布应报告预约时间,不应报告已经发布。`scheduled` 支持带时区的 ISO 日期或 Unix 毫秒;有歧义时先确认日期和时区。 连接缺失的社交账号前先询问用户。将 `taisly_platform_connect_start` 返回的 `connectUrl` 交给用户完成浏览器授权,然后检查连接并重新列出账号。不要在聊天中收集社交平台密码。 创建自动转发规则前先列出账号及现有规则,展示来源和目标并获得批准。不要以创建转发规则来测试连接。请求超时后先查历史,不要盲目重试发布。 ## 限制和重新授权 [#限制和重新授权] 远程 MCP 无法读取本地文件或私有聊天附件。视频必须有公开可下载的 URL;聊天附件不会自动成为这种 URL。内容生成器或编辑器也不一定是 MCP 客户端,可先导出内容,再交给兼容的智能体发布。 OAuth 支持 `mcp:read` 和 `mcp:write`,写入操作需要写入权限。授权过期或撤销时,使用客户端的 OAuth 重新连接,不要默认安装 CLI 或索要 API 密钥。不要在提示词、日志或代码中输出凭据。 [视频输入要求](/en/docs/agents/upload-video-with-mcp) ## 开发者选项 [#开发者选项] [REST API](/en/docs/api) 使用 API 密钥和 HTTP 请求。[SDK、CLI 与本地 MCP](/en/docs/agents/agent-kit) 适用于自定义代码和本地文件。它们是可选方案,不是远程 MCP 的前提。 [英文纯文本指南](/mcp.txt) · [文档索引](/llms.txt) --- # Agent Kit (/zh-CN/docs/agents/agent-kit) For ordinary AI-agent connections, start with [Taisly MCP](/docs/mcp). Remote MCP uses OAuth and does not require this package or an API key. If that connection exists, use it directly. This page is for optional developer and local-file workflows. Taisly Agent Kit is the JSON-first package for AI agents that publish short-form videos through Taisly. It includes: * A CLI for local and scripted workflows. * A local stdio MCP server. * Agent setup and check-in commands. * Structured commands for platforms, post validation, publishing, status, and reposts. ## Install [#install] ```bash npm install -g @taisly/agent taisly auth:status ``` ## Recommended workflow [#recommended-workflow] 1. For a local package connection, run `taisly setup --agent `, approve the returned browser URL, then run `taisly checkin --agent `. A manually configured `TAISLY_API_KEY` is an alternative for developer workflows. 2. Run `taisly auth:status`. 3. Run `taisly platforms:list` or `taisly integrations:list`. 4. Run `taisly platforms:schema --platform TikTok`. 5. Run `taisly posts:validate`. 6. Confirm destination accounts and caption with the user. 7. Run `taisly posts:create`. 8. Store the returned `historyId`. 9. Run `taisly posts:status --id `. ## Common commands [#common-commands] ```bash taisly auth:status taisly platforms:list taisly integrations:list taisly platforms:schema --platform TikTok taisly posts:validate --video ./launch.mp4 --platforms --description "Launch day" taisly posts:create --video ./launch.mp4 --platforms --description "Launch day" taisly posts:create --json ./campaign.json taisly posts:list --page 1 taisly posts:status --id taisly reposts:list taisly reposts:create --from --to ``` ## Local MCP [#local-mcp] Use local MCP when an agent can launch local commands and needs access to files on your machine. ```bash npx -y @taisly/agent mcp ``` Example Claude Code setup: ```bash claude mcp add --transport stdio taisly -- npx -y @taisly/agent mcp ``` ## Safety rules [#safety-rules] Never invent platform IDs, never print API keys, and do not create a live post until the user has confirmed the video, caption, destination, and schedule. ## Discovery links [#discovery-links] * npm: [@taisly/agent](https://www.npmjs.com/package/@taisly/agent) * GitHub: [github.com/taisly/agent](https://github.com/taisly/agent) * MCP Registry: [io.github.taisly/agent](https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.taisly%2Fagent) * Glama: [glama.ai/mcp/servers/taisly/agent](https://glama.ai/mcp/servers/taisly/agent) --- # Upload and publish videos with Taisly MCP (/zh-CN/docs/agents/upload-video-with-mcp) Taisly MCP lets Claude, Claude Code, Codex, ChatGPT, and other AI agents publish short-form videos to the social accounts you connected in Taisly. Connect your agent first using the [Taisly MCP setup guide](/docs/mcp). If the connection already exists, reuse it. This page covers video inputs and publishing after connection. ## What to give your agent [#what-to-give-your-agent] ```txt Use my existing Taisly connection to prepare this post: Video URL: https://example.com/launch.mp4 Caption: Launch day. Short demo, big update. Destination: my connected TikTok account List my connected accounts and match the destination, then validate the post. Show me the video, caption, account and schedule for confirmation before publishing. After I confirm, create the post and check its status. Report acceptance separately from publication. Full documentation: https://docs.taisly.com/docs/mcp ``` ## Public video URL requirements [#public-video-url-requirements] Remote MCP can fetch only public video URLs. Your `videoUrl` should: * Use `http://` or `https://`. HTTPS is recommended. * Point directly to a downloadable video file. * Be reachable without cookies, login, VPN, or an interactive confirmation page. * Use a supported video type such as `mp4`, `mov`, `webm`, `avi`, `mkv`, `flv`, `mpeg`, or `mpg`. * Be 500MB or smaller. Your `videoUrl` should not: * Point to `localhost`, a private network, or a local file path. * Include a username or password in the URL. * Require a browser session to download. * Redirect through too many pages before reaching the video. Short-form vertical video is recommended. Different social platforms may also apply their own limits for duration, format, caption length, privacy settings, and daily posting volume. ## Local files [#local-files] Remote MCP cannot read files on your computer or private chat attachments. Provide a direct public video URL, or explicitly choose the separate [SDK, CLI and local MCP workflow](/en/docs/agents/agent-kit) when local file access is necessary. Installing that package is not part of remote MCP connection setup. ## Troubleshooting [#troubleshooting] ### The agent says Taisly cannot read my local file [#the-agent-says-taisly-cannot-read-my-local-file] Remote MCP runs outside your computer and cannot access paths like `./video.mp4`, `/Users/me/video.mov`, or `C:\Videos\video.mp4`. Use local MCP or the Taisly CLI for local files, or upload the video somewhere that gives you a direct public URL. ### My Google Drive, Dropbox, or cloud storage link fails [#my-google-drive-dropbox-or-cloud-storage-link-fails] The URL must lead directly to the video file. Links that open a preview page, require login, or require cookies may fail. Use a direct download URL when possible. ### Taisly says the URL is not public [#taisly-says-the-url-is-not-public] Remote MCP blocks local and private network addresses for safety. Use a public URL that Taisly can fetch from the internet. ### The video is too large [#the-video-is-too-large] The current upload limit is 500MB. Compress the video or use a shorter export. ### I do not see the right social account [#i-do-not-see-the-right-social-account] Ask the agent to list your connected Taisly platforms. If the account is missing, connect it in Taisly first, then ask the agent to check again. ### The agent is ready to publish without asking me [#the-agent-is-ready-to-publish-without-asking-me] Ask the agent to stop and show the final video URL, caption, destination account, and schedule first. Taisly MCP is designed for explicit confirmation before creating a live post. ## Safe publishing checklist [#safe-publishing-checklist] Before the agent creates a post, confirm: * The video URL or local file is correct. * The destination account is correct. * The caption is correct. * The schedule is correct, or the post should go live now. * The agent is using the connected Taisly account you expect. After publishing, save the returned Taisly history ID and ask the agent to check post status when needed. --- # API Overview (/zh-CN/docs/api) The Taisly REST API is for backend integrations that need direct control over video publishing. ## Base URL [#base-url] ```txt https://app.taisly.com/api/private ``` ## Authentication [#authentication] Generate an API key from Taisly settings and send it as a bearer token: ```bash curl -X GET https://app.taisly.com/api/private/platform/platforms \ -H "Authorization: Bearer taisly_your_api_key_here" ``` Never expose Taisly API keys in client-side code, public repositories, browser storage, or logs. ## Upload a video [#upload-a-video] ```bash curl -X POST https://app.taisly.com/api/private/post \ -H "Authorization: Bearer taisly_your_api_key_here" \ -F "video=@/path/to/video.mp4" \ -F "platforms=[\"platform_id_1\"]" \ -F "description=Check out my new video!" ``` ## Requirements [#requirements] * API requests must use HTTPS. * Video uploads are sent as `multipart/form-data`. * Current upload limit is 500MB. * Short-form vertical video is recommended. * List platforms first and use exact platform IDs from Taisly. ## Reference [#reference] The endpoint reference is generated from the current Taisly OpenAPI document. --- # API Reference (/zh-CN/docs/api/reference) This section is generated from the Taisly OpenAPI document used by the existing API documentation. Use it when you need exact request methods, paths, authentication rules, request bodies, parameters, and response examples. Endpoint pages below this section are virtual Fumadocs OpenAPI pages. They are not manually hardcoded. ## Endpoint groups [#endpoint-groups] The endpoint groups are shown directly under API in the sidebar: * [API Key Management](/en/docs/api/api-key-management) * [Platforms](/en/docs/api/platforms) * [Posts](/en/docs/api/posts) * [Reposts](/en/docs/api/reposts) Open a group to browse its generated endpoint pages. --- # Get API Key Information (/zh-CN/docs/api/api-key-management/getApiKey) Retrieve information about your current API key. --- # Generate API Key (/zh-CN/docs/api/api-key-management/generateApiKey) Generate a new API key or regenerate if one already exists. **IMPORTANT**: - The full API key is only shown once. Save it securely. - If you regenerate, the old key will be invalidated immediately. --- # Revoke API Key (/zh-CN/docs/api/api-key-management/revokeApiKey) Immediately revoke your current API key. All requests using this key will fail. --- # Get Connected Platforms (/zh-CN/docs/api/platforms/getPlatforms) Retrieve all social media accounts connected to your account. --- # Create a Post (/zh-CN/docs/api/posts/createPost) Upload a video to one or more connected platforms. **Video Requirements:** - Format: MP4, MOV, or other common video formats - Size: Maximum 500MB - Duration: 3-90 seconds - Orientation: Vertical (9:16) **Scheduling:** - Pass `scheduled` as a Unix timestamp in milliseconds for scheduled posting (omit this parameter if you don't want to schedule) --- # Get Post History (/zh-CN/docs/api/posts/getPostHistory) Retrieve your posting history with status information for each platform. **Pagination**: - Use `page` parameter for pagination (10 items per page) - Or use `startTime` and `endTime` for date range filtering (returns all matching posts) **Status Values**: - PENDING: Post is queued - SUCCESS: Posted successfully - FAILED: Post failed (check message field for error code) --- # Cancel Scheduled Post (/zh-CN/docs/api/posts/cancelScheduledPost) Cancel a post that was scheduled for later. The post will be permanently deleted. --- # Get Repost Configurations (/zh-CN/docs/api/reposts/getReposts) Retrieve all configured automatic reposting rules. When you post to a 'from' platform, the content will be automatically reposted to all 'to' platforms. --- # Add Repost Configuration (/zh-CN/docs/api/reposts/addRepost) Configure automatic reposting from one platform to others. **How it works**: - When you post content to the 'from' platform, it will automatically be reposted to all 'to' platforms **Note**: Circular dependencies are prevented. You cannot create A→B if B→A already exists. --- # Delete Repost Configuration (/zh-CN/docs/api/reposts/deleteRepost) Remove an automatic reposting rule. Future posts to the source platform will no longer be automatically reposted. --- # Pause/Resume Repost Configuration (/zh-CN/docs/api/reposts/pauseRepost) Temporarily pause or resume automatic reposting. Useful when you want to stop reposting temporarily without deleting the configuration. --- # API Key Management (/zh-CN/docs/api/api-key-management) Generate, view, and revoke API keys for authentication. API keys are available on every plan. Usage limits depend on the plan. - [Get API Key Information](/zh-CN/docs/api/api-key-management/getApiKey): Retrieve information about your current API key. - [Generate API Key](/zh-CN/docs/api/api-key-management/generateApiKey): Generate a new API key or regenerate if one already exists. - [Revoke API Key](/zh-CN/docs/api/api-key-management/revokeApiKey): Immediately revoke your current API key. All requests using this key will fail. --- # Platforms (/zh-CN/docs/api/platforms) View connected social media accounts. - [Get Connected Platforms](/zh-CN/docs/api/platforms/getPlatforms): Retrieve all social media accounts connected to your account. --- # Posts (/zh-CN/docs/api/posts) Upload videos and post to multiple platforms simultaneously. Schedule posts for later or post immediately. - [Create a Post](/zh-CN/docs/api/posts/createPost): Upload a video to one or more connected platforms. - [Get Post History](/zh-CN/docs/api/posts/getPostHistory): Retrieve your posting history with status information for each platform. - [Cancel Scheduled Post](/zh-CN/docs/api/posts/cancelScheduledPost): Cancel a post that was scheduled for later. The post will be permanently deleted. --- # Reposts (/zh-CN/docs/api/reposts) Configure automatic reposting rules to share content from one platform to others automatically. - [Get Repost Configurations](/zh-CN/docs/api/reposts/getReposts): Retrieve all configured automatic reposting rules. When you post to a 'from' platform, the content will be automatically reposted to all 'to' platforms. - [Add Repost Configuration](/zh-CN/docs/api/reposts/addRepost): Configure automatic reposting from one platform to others. - [Delete Repost Configuration](/zh-CN/docs/api/reposts/deleteRepost): Remove an automatic reposting rule. Future posts to the source platform will no longer be automatically reposted. - [Pause/Resume Repost Configuration](/zh-CN/docs/api/reposts/pauseRepost): Temporarily pause or resume automatic reposting. Useful when you want to stop reposting temporarily without deleting the configuration.