Token导航 LogoToken导航

Agent Skill · 研究检索

xreplyai(xreplyai 搜索)

xreplyai 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

xreplyai 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描已通过,按安装量在研究检索类的 73,675 个 Skill 里排第 10,323。

总安装 12,768周安装 532GitHub Stars 公开资料未说明下载 4,256核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
0.3.17

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:xreplyai(xreplyai 搜索)
来源仓库:https://github.com/jmoon90/xreplyai
安装命令:
openclaw skills install xreplyai
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install xreplyai

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

Generate, schedule, and publish posts to X, LinkedIn, and Threads in your voice using AI.管理偏好并跟踪账单。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install xreplyai;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

xreplyai 怎么安装?

在终端执行 openclaw skills install xreplyai。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

xreplyai 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

xreplyai 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

xreplyai 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

xreplyai 用的人多吗?

公开数据是累计安装 12,768 次,近一周安装 532 次,下载 4,256 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

xreplyai 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
xreplyai

xreplyai 搜索 · 本页

12,768—接触敏感数据MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
xreply
description
Generate, schedule, and publish posts to X, LinkedIn, and Threads in your voice using AI. Manage preferences and track billing.
slug
xreply
version
0.3.17
license
MIT-0
homepage
https://xreplyai.com
metadata
{"openclaw":{"emoji":"✨","requires":{"anyBins":["mcporter","npx"],"env":["XREPLY_TOKEN"]},"primaryEnv":"XREPLY_TOKEN","install":[{"id":"mcporter","kind":"node","package":"mcporter","bins":["mcporter"],"label":"Install mcporter (node)"}]}}

XreplyAI — AI Post Generator

Generate, schedule, and publish posts to X, LinkedIn, and Threads in your voice using AI. Manage your post queue, preferences, and track billing and quota.

Authentication

All tools require an XREPLY_TOKEN environment variable — a JWT token from XreplyAI Settings. This is automatically injected by OpenClaw when set in your skill config.

MCP Server

The XreplyAI MCP server is published as @xreplyai/mcp on npm. You invoke tools via mcporter:

mcporter call 'npx @xreplyai/mcp@0.3.17' <tool_name> [param:value ...]

To discover all available tools and their parameters:

mcporter list 'npx @xreplyai/mcp@0.3.17' --all-parameters

Tools

Generation

xreply_posts_generate

Generate AI post(s) in the user's voice and auto-save as draft(s). Use platform for a single platform or platforms (array) to generate platform-native variants for multiple platforms at once. Each platform variant counts as 1 against the daily quota (5/day free, 100/day pro).

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate topic:"my SaaS hit 1000 users"
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate topic:"lessons from year 1" angle:story_arc
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate platform:linkedin topic:"leadership lessons"
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate angle:one_liner
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate topic:"entrepreneurship hardships" 'platforms:["twitter","linkedin","threads"]'

Parameters:

  • topic (optional): topic or prompt for the post (max 280 chars)
  • angle (optional): one_liner | list | question | story_arc | paragraph | my_voice
  • platform (optional): twitter (default) | linkedin | threads | instagram | youtube — single platform, controls output length and style
  • platforms (optional): array of 2–5 platforms — generates platform-native variants for each. Returns variants array + single combined post draft. Each variant counts as 1 quota.
xreply_posts_generate_batch

Generate multiple AI posts at once. Each post counts as 1 against the daily quota — check billing first if quota is a concern. A batch of 9 will exhaust a free account.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate_batch category:personalized count:5
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate_batch category:trending count:3

Parameters:

  • category (required): personalized | trending
  • count (required): number of posts to generate (1–9, must not exceed remaining daily quota)

Post Management

xreply_posts_list

List all posts in the queue — drafts, scheduled, and recent posts. Returns post IDs, body text, status, scheduled times, and per-platform content.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_list

No parameters.

xreply_posts_create

Save a post draft. Use body for a simple X-only post. Use post_contents for LinkedIn, Threads, or when posting different content to multiple platforms. The post is not published until you call xreply_posts_publish.

X-only post (simple):

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create body:"Your tweet text here"

X post with auto-retweet:

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"twitter","body":"Tweet text","metadata":{"auto_rt_hours":24}}]'

LinkedIn post:

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"linkedin","body":"Your long LinkedIn post here..."}]'

Cross-post to X and LinkedIn with different text:

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"twitter","body":"Short tweet"},{"platform":"linkedin","body":"Expanded LinkedIn version..."}]'

X post with image (upload first with xreply_media_upload):

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"twitter","body":"Check this out","content_type":"single_image","metadata":{"media_id":"1234567890"}}]'

LinkedIn post with image (upload first with xreply_media_upload):

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"linkedin","body":"Caption here","content_type":"single_image","metadata":{"asset_urn":"urn:li:digitalmediaAsset:..."}}]'

Parameters:

  • body (optional): X post body text (max 280 chars). Use post_contents for LinkedIn, Threads, or cross-posting.
  • post_contents (optional): array of per-platform content objects. Takes precedence over body.

- platform (required): twitter | linkedin | threads - body (required, except for LinkedIn video): post body (max 280 for X, max 3000 for LinkedIn, max 500 for Threads). Optional when content_type is video. - content_type (optional): text (default) | single_image | multi_image | video - metadata (optional): For X images: { media_id: "..." } or { media_ids: ["..."] }. For LinkedIn images: { asset_urn: "..." } or { asset_urns: ["..."] }. For LinkedIn video: { asset_urn: "..." } (from xreply_video_upload). For Threads image: { image_url: "https://..." } (public HTTPS URL — no upload step needed). For auto-retweet: { auto_rt_hours: 24 }. For X communities: { community_id: "12345" } (use xreply_list_twitter_communities to get IDs).

  • account_id / account_ids (optional): social account(s) to post from
xreply_posts_edit

Edit a post's content, scheduled time, or auto-retweet setting. Use body to update X-only text, or post_contents to update per-platform content. Cannot edit posts that are processing or already published.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_edit id:123 body:"Updated tweet text"
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_edit id:123 'scheduled_at:2026-03-15T09:00:00Z'
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_edit id:123 post_contents:'[{"platform":"linkedin","body":"Updated LinkedIn text"}]'

Parameters:

  • id (required): post ID (integer)
  • body (optional): new X body text (max 280 chars)
  • post_contents (optional): per-platform content to update — replaces content for submitted platforms only. platform can be twitter | linkedin | threads. metadata.auto_rt_hours sets X auto-retweet hours; pass null to disable. metadata.community_id sets the X community to post into (use xreply_list_twitter_communities to get IDs). For Threads image: metadata.image_url.
  • scheduled_at (optional): ISO 8601 datetime string — omit to leave unchanged; pass null to unschedule
xreply_posts_delete

Delete a post. Cannot delete posts that are processing or already published.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_delete id:123

Parameters:

  • id (required): post ID (integer)

Media Upload

xreply_media_upload

Upload an image file from disk and get back a media identifier to attach to a post. Call this before xreply_posts_create or xreply_posts_edit to attach images. Supports JPEG, PNG, GIF, and WebP up to 5 MB.

Note: Requires filesystem access — works in Claude Code, Cursor, and mcporter CLI. Not available in Claude.ai (no filesystem); in that case use the Posts dashboard at app.xreplyai.com/dashboard/posts to attach images directly.

Upload an image for X:

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_media_upload image_path:/path/to/photo.jpg platform:twitter
→ returns { platform: "twitter", media_id: "1234567890" }

Upload an image for LinkedIn:

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_media_upload image_path:/path/to/photo.png platform:linkedin
→ returns { platform: "linkedin", asset_urn: "urn:li:digitalmediaAsset:..." }

Parameters:

  • image_path (required): absolute or relative path to the image file on disk
  • platform (required): twitter | linkedin
  • content_type (optional): image/jpeg | image/png | image/gif | image/webp — inferred from extension if omitted

Use the returned identifier in post_contents[].metadata:

  • X single image: metadata: { media_id: "..." }
  • X multiple images: metadata: { media_ids: ["...", "..."] }
  • LinkedIn single image: metadata: { asset_urn: "urn:li:..." }
  • LinkedIn multiple images: metadata: { asset_urns: ["urn:li:...", "urn:li:..."] }
xreply_video_upload

Upload an MP4 video file from disk to LinkedIn and get back an asset URN to attach to a post. Uses your primary connected LinkedIn account. Call this before xreply_posts_create or xreply_posts_edit to attach a video. Supports MP4 only, up to 100 MB.

Note: Only LinkedIn is supported — X video upload requires OAuth 1.0a which is not currently supported. Requires filesystem access — works in Claude Code, Cursor, and mcporter CLI. Not available in Claude.ai; use the Posts dashboard at app.xreplyai.com/dashboard/posts to attach videos directly.

Upload a video for LinkedIn:

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_video_upload video_path:/path/to/video.mp4
→ returns { platform: "linkedin", asset_urn: "urn:li:video:ABC123" }

Parameters:

  • video_path (required): absolute or relative path to the MP4 file on disk (max 100 MB)

Use the returned asset_urn in post_contents[].metadata with content_type: "video":

  • LinkedIn video: content_type: "video", metadata: { asset_urn: "urn:li:video:..." } (body is optional)

Publishing

xreply_posts_publish

Publish or schedule a post. Requires account_id or account_ids — if neither is provided and no accounts were attached when the post was created, returns NO_ACCOUNT_SPECIFIED. If scheduled_at is provided (ISO 8601), the post will be queued for that time (scheduling horizon depends on your plan). If omitted, the post is published immediately. Each platform (X, LinkedIn) requires the corresponding social account to be connected.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:123 account_id:1
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:123 account_id:1 'scheduled_at:2026-03-15T09:00:00Z'
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:123 'account_ids:[1,2]'

Parameters:

  • id (required): post ID (integer)
  • account_id (required if no accounts attached): social account ID to publish from
  • account_ids (optional): array of social account IDs — takes precedence over account_id
  • scheduled_at (optional): ISO 8601 datetime to schedule; omit to publish immediately

Context

xreply_billing_status

Get subscription tier (free/byok/pro), quota usage, daily limits, and subscription details.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_billing_status

No parameters.

xreply_voice_status

Get voice profile status — whether it has been analyzed, tweet count, AI provider configured, and writing style summary.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_voice_status

No parameters.

xreply_preferences_get

Get current post generation preferences — tone, emoji usage, and default structure.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_preferences_get

No parameters.

xreply_preferences_set

Update post generation preferences. Provide only the fields you want to change.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_preferences_set tone:witty
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_preferences_set tone:professional include_emoji:false
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_preferences_set structure:story_arc

Parameters:

  • tone (optional): auto | casual | professional | witty | empathetic
  • include_emoji (optional): true | false
  • structure (optional): one_liner | paragraph | question | list | story_arc
xreply_list_social_accounts

List all connected social accounts (X/Twitter, LinkedIn, YouTube, Threads) with their IDs, platform, username, and primary status. Use this to find account_id values needed for xreply_posts_create and xreply_posts_publish — especially for newly connected accounts that have no posts yet.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_list_social_accounts

Returns: social_accounts[] — each with id, platform, uid (platform-native user ID), username, email, primary, connected_at.

xreply_platform_styles_get

Get the effective platform style profiles — system defaults merged with your per-platform overrides. Shows tone, structure, target length, hashtag rules, CTA rules, and whether defaults are active.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_platform_styles_get
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_platform_styles_get platform:linkedin

Parameters:

  • platform (optional): twitter | linkedin | threads | instagram | youtube — omit to get all platforms
xreply_platform_styles_set

Override style settings for a specific platform. Only the fields you provide are updated — other fields keep their system defaults. Changes apply to all future generation for that platform.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_platform_styles_set platform:linkedin tone:witty
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_platform_styles_set platform:threads hashtag_rules:none cta_rules:soft_question
mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_platform_styles_set platform:linkedin custom_instructions:"always reference my bootstrapping journey"

Parameters:

  • platform (required): twitter | linkedin | threads | instagram | youtube
  • tone (optional): auto | casual | professional | witty | empathetic
  • target_length (optional): integer — target character count for generated posts
  • hashtag_rules (optional): none | few | moderate | match_voice
  • cta_rules (optional): never | soft_question | link_in_comments | direct
  • banned_phrases (optional): array of strings — phrases to never use for this platform
  • custom_instructions (optional): free-text instructions, max 500 chars

xreply_rules_list

List custom writing rules applied during generation — e.g. "never use hashtags", "always end with a question". Requires Pro or BYOK subscription.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_rules_list

No parameters.

xreply_list_twitter_communities

List the X communities the user has previously posted to, ordered by most recently used. Returns community IDs and names to use as community_id in post_contents metadata.

mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_list_twitter_communities

No parameters.


Workflow Examples

Generate and schedule an X post

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate topic:"ship fast, learn faster" angle:story_arc
   → returns { body: "...", post: { id: 42, ... } }
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:42 account_id:1 'scheduled_at:2026-03-12T09:00:00Z'

Generate and schedule a LinkedIn post

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate platform:linkedin topic:"leadership lessons from year 1" angle:story_arc
   → returns { body: "...", post: { id: 43, ... } }
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:43 account_id:2 'scheduled_at:2026-03-12T09:00:00Z'

Cross-post to X and LinkedIn with different text

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate topic:"motivation" platform:twitter
   → { body: "Short tweet...", post: { id: 44 } }
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate topic:"motivation" platform:linkedin
   → { body: "Long LinkedIn article...", post: { id: 45 } }

   Or create as a single post with both platforms:
3. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"x","body":"Short tweet..."},{"platform":"linkedin","body":"Long LinkedIn article..."}]'
4. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:46 'account_ids:[1,2]' 'scheduled_at:2026-03-13T09:00:00Z'

Plan posts for the week

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_billing_status
   → check remaining quota before a large batch
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_generate_batch category:personalized count:7
   → generates 7 drafts
3. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_list
   → review the queue
4. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_edit id:101 'scheduled_at:2026-03-11T09:00:00Z'
   mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_edit id:102 'scheduled_at:2026-03-12T09:00:00Z'
   → schedule each post

Edit and publish an existing draft

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_list
   → find the draft ID
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_edit id:55 body:"Revised tweet text"
3. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:55 account_id:1

Post an X image

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_media_upload image_path:/Users/me/photo.jpg platform:twitter
   → { media_id: "1234567890" }
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"twitter","body":"Check this out!","content_type":"single_image","metadata":{"media_id":"1234567890"}}]'
   → { post: { id: 77, ... } }
3. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:77 account_id:1

Post to an X community

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_list_twitter_communities
   → returns [{ community_id: "12345", name: "AI Builders", last_used_at: "..." }, ...]
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"twitter","body":"Exciting update for the community!","metadata":{"community_id":"12345"}}]'
   → { post: { id: 88, ... } }
3. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:88 account_id:1

Post to Threads

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_list_social_accounts
   → find your Threads account id (platform: "threads")
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"threads","body":"Your Threads post here (max 500 chars)"}]'
   → { post: { id: 90, ... } }
3. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:90 account_id:3

Post a Threads image

Threads takes a public image URL directly — no upload step needed (unlike X and LinkedIn).

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"threads","body":"Check this out!","content_type":"single_image","metadata":{"image_url":"https://example.com/image.jpg"}}]'
   → { post: { id: 91, ... } }
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:91 account_id:3

Post a LinkedIn image

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_media_upload image_path:/Users/me/banner.png platform:linkedin
   → { asset_urn: "urn:li:digitalmediaAsset:ABC123" }
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"linkedin","body":"Excited to share this!","content_type":"single_image","metadata":{"asset_urn":"urn:li:digitalmediaAsset:ABC123"}}]'
   → { post: { id: 78, ... } }
3. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:78 account_id:2

Post a LinkedIn video

1. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_video_upload video_path:/Users/me/demo.mp4
   → { platform: "linkedin", asset_urn: "urn:li:video:ABC123" }
2. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_create post_contents:'[{"platform":"linkedin","body":"Watch this demo!","content_type":"video","metadata":{"asset_urn":"urn:li:video:ABC123"}}]'
   → { post: { id: 79, ... } }
3. mcporter call 'npx @xreplyai/mcp@0.3.17' xreply_posts_publish id:79 account_id:2

Error Handling

Token expired: If tools return a 401 error, the XREPLY_TOKEN has expired (tokens last 30 days). Ask the user to get a fresh token from XreplyAI Settings and update it in their OpenClaw config.

Quota exhausted: If generation returns a quota error (e.g. "Daily generation quota exhausted"), call xreply_billing_status to check limits and inform the user. Quota resets at midnight.

Quota insufficient for batch: If xreply_posts_generate_batch returns quota_insufficient: true, reduce count to the available value shown in the response, or ask the user to confirm.

Schedule out of range: If scheduling returns a validation error, the requested time exceeds the plan's scheduling horizon. Call xreply_billing_status to check max_schedule_days and suggest an earlier time.

Cannot edit/delete: Posts with status processing or posted cannot be edited or deleted. Call xreply_posts_list to check the current status.

Rules list requires Pro: If xreply_rules_list returns a 403, inform the user this feature requires a Pro or BYOK subscription.

No account specified: If publish returns NO_ACCOUNT_SPECIFIED, you must pass account_id or account_ids. Call xreply_list_social_accounts to discover available account IDs (works even for newly connected accounts with no posts yet), then retry with the correct ID.

LinkedIn account not connected: If publishing to LinkedIn returns a 422, the user has not connected their LinkedIn account. Direct them to XreplyAI Settings to connect it.

Threads account not connected: If publishing to Threads returns a 422, the user has not connected their Threads account. Direct them to XreplyAI Settings to connect it.

Threads token expired: If a Threads post returns THREADS_TOKEN_EXPIRED, the access token has expired (Threads tokens expire after ~60 days). Direct the user to XreplyAI Settings to reconnect their Threads account.

Media upload — file not found: If xreply_media_upload cannot read the file, check that the path is correct and accessible. Use an absolute path to avoid ambiguity.

Media upload — file too large: Maximum image size is 5 MB. Compress or resize the image before retrying.

Media upload — unsupported format: Only JPEG, PNG, GIF, and WebP are supported. Convert the image to a supported format.

Media upload — no X account connected: If the Twitter upload returns NO_TWITTER_ACCOUNT, the user must connect their X account in XreplyAI Settings first.

Claude.ai users: xreply_media_upload and xreply_video_upload require filesystem access and are not available in Claude.ai (which has no disk access). Use the Posts dashboard at app.xreplyai.com/dashboard/posts to attach images or videos via the compose or edit form.

Video upload — unsupported format: Only MP4 is supported for video. Convert the video to MP4 before retrying.

Video upload — file too large: Maximum video size is 100 MB. Compress the video before retrying.

Video upload — no LinkedIn account connected: If xreply_video_upload returns NO_LINKEDIN_ACCOUNT, the user must connect their LinkedIn account in XreplyAI Settings first.

Video upload — X not supported: X video upload requires OAuth 1.0a which is not currently supported. For X videos, use the Posts dashboard at app.xreplyai.com/dashboard/posts.

平台分布

OpenClaw

95.23%
按下载量换算4,053

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills