XReplyAI - Social Post Manager

TotalClaw 作者 jmoon90 v0.3.11

使用 AI 以语音方式生成、安排帖子并将其发布到 X 和 LinkedIn。浏览热门内容、管理偏好并跟踪账单。

源码 ↗

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:jmoon90~xreplyai
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Ajmoon90~xreplyai/file -o xreplyai.md
Git 仓库获取源码
git clone https://github.com/openclaw/skills/commit/e4a358d3c2bdedc910dd1e0f723e51ca332866e2
## 概述(中文)

使用 AI 以语音方式生成、安排帖子并将其发布到 X 和 LinkedIn。浏览热门内容、管理偏好并跟踪账单。

## 原文

# XReply — AI Post Generator

Generate, schedule, and publish posts to X and LinkedIn in your voice using AI. Browse viral content for inspiration, manage your post queue, 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 XReply MCP server is published as `@xreplyai/mcp` on npm. You invoke tools via `mcporter`:

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

To discover all available tools and their parameters:

```
mcporter list 'npx @xreplyai/mcp@0.3.11' --all-parameters
```

## Tools

### Discovery

#### xreply_viral_library

Browse high-performing tweets (100+ likes) for inspiration. Filter by niche, keyword, and time range. Requires Pro or BYOK subscription.

```
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_viral_library
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_viral_library niche:ai sort:top_engaged
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_viral_library niche:saas query:pricing time_range:7d
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_viral_library niche:startups sort:recent page:2
```

Parameters:
- `niche` (optional): `ai` | `saas` | `marketing` | `productivity` | `startups` | `growth`
- `sort` (optional): `top_engaged` (default) | `recent`
- `query` (optional): keyword search within tweet text
- `time_range` (optional): `7d` | `30d`
- `page` (optional): page number, 20 results per page (default: 1)

---

### Generation

#### xreply_posts_generate

Generate a single AI post in the user's voice and auto-save it as a draft. Specify `platform` to control output length and style — X posts are capped at 280 chars, LinkedIn posts up to 3000 chars. Returns the generated body and saved post ID. Counts as 1 against the daily quota (5/day free, 100/day pro).

```
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_posts_generate
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_posts_generate topic:"my SaaS hit 1000 users"
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_posts_generate topic:"lessons from year 1" angle:story_arc
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_posts_generate platform:linkedin topic:"leadership lessons"
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_posts_generate angle:one_liner
```

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): `x` (default) | `linkedin` — controls output length and style

#### 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.11' xreply_posts_generate_batch category:personalized count:5
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_posts_generate_batch category:trending count:3
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_posts_generate_batch category:viral count:9
```

Parameters:
- `category` (required): `personalized` | `trending` | `viral`
- `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.11' 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 posts 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.11' xreply_posts_create body:"Your tweet text here"
```

**X post with auto-retweet:**
```
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_posts_create post_contents:'[{"platform":"twitter","body":"Tweet text","metadata":{"auto_rt_hours":24}}]'
```

**LinkedIn post:**
```
mcporter call 'npx @xreplyai/mcp@0.3.11' 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.11' 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.11' 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.11' 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 or cross-posting.
- `post_contents` (optional): array of per-platform content objects. Takes precedence over `body`.
  - `platform` (required): `twitter` | `linkedin`
  - `body` (required, except for LinkedIn video): post body (max 280 for X, max 3000 for LinkedIn). 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 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.11' xreply_posts_edit id:123 body:"Updated tweet text"
mcporter call 'npx @xreplyai/mcp@0.3.11' xreply_posts_edit id:123 'scheduled_at:2026-03-15T09:00:00Z'
mcporter call 'npx @xreplyai/mcp@0.3.11' 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. `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).
- `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.11' 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:*