Skip to main content
Glama
danyial
by danyial

reelfaceless-mcp

MCP server (stdio) for the ReelFaceless public API. Schedule short-form video posts to YouTube and TikTok from Claude Desktop, Claude Code or any other MCP client.

Setup

You need an API key: ReelFaceless → workspace → Settings → API (Creator plan and up). Plan quotas and rate limits apply automatically.

Claude Code

claude mcp add reelfaceless \
  --env REELFACELESS_API_KEY=rf_your_key \
  -- npx -y reelfaceless-mcp@latest

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "reelfaceless": {
      "command": "npx",
      "args": ["-y", "reelfaceless-mcp@latest"],
      "env": { "REELFACELESS_API_KEY": "rf_your_key" }
    }
  }
}

Optional: REELFACELESS_BASE_URL to point at a different instance.

Related MCP server: viralnote-mcp

Tools

Tool

Purpose

list_channels

Connected channels incl. posting schedule (needed for channel IDs)

get_channel_info

TikTok posting constraints: allowed privacy levels, disabled interactions, max duration

upload_video

Upload a local MP4/MOV/WebM (max 500 MB), returns media_id

create_post

Schedule a post across channels — queue slots or a fixed time

list_posts

List posts, newest first, optional status filter

get_post_status

Per-channel status, remote URLs, error details

update_post

Edit a scheduled post: content, per-channel settings, timing, channels

publish_post_now

Publish a scheduled post immediately instead of waiting for its slot

get_post_metrics

Latest views/likes/comments per channel for a published post

Example prompt: "Upload ~/exports/recap.mp4 and add it to the queue for all my channels with the caption 'Weekly recap'."

Development

npm install
npm run build        # bundles to dist/index.js
npx tsx test/e2e.ts  # BASE=… RF_KEY=… VIDEO=… — full round-trip test

Available Tools

6 tools
create_postA

Create and schedule a video post across one or more channels. schedule_mode 'queue' assigns each channel its next free posting slot; 'custom' schedules all targets at scheduled_at (ISO 8601). Per-channel settings are optional and inherit from title/body. YouTube settings: title, description, privacy_status (public|unlisted|private), made_for_kids, contains_synthetic_media (AI disclosure), tags (string[]), category_id, default_language (BCP-47), notify_subscribers, embeddable, license (youtube|creativeCommon), public_stats_viewable. TikTok settings: caption, privacy_level (PUBLIC_TO_EVERYONE|MUTUAL_FOLLOW_FRIENDS|FOLLOWER_OF_CREATOR|SELF_ONLY), disable_comment, disable_duet, disable_stitch, video_cover_timestamp_ms, brand_organic_toggle, brand_content_toggle, is_aigc (AI label). Constraint: brand_content_toggle cannot be combined with SELF_ONLY.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoDefault caption/description for all channels
titleYes
targetsYes
media_idYesFrom upload_video
scheduled_atNoRequired for schedule_mode 'custom'
schedule_modeYes

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It discloses scheduling behavior, per-channel inheritance, and platform-specific settings (e.g., privacy_status, made_for_kids). It could mention idempotency or failure handling, but overall provides good transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a clear first sentence stating purpose, followed by scheduling mode explanation, then per-channel settings, then platform specifics. It is somewhat long but each part adds value. Could be slightly more concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, 4 required, platform-specific settings) and no output schema, the description is thorough. It covers all key aspects: scheduling, inheritance, constraints, and channel-specific configurations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%, but the description adds significant meaning beyond the schema. It explains schedule_mode values, per-channel settings inherit from title/body, and details YouTube and TikTok-specific parameters, which are not described in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool creates and schedules a video post across one or more channels, with specific verbs and resource. It distinguishes from siblings like list_posts, get_post_metrics, etc., which are read-only or status-checking tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains both schedule modes ('queue' vs 'custom') and their behavior, and mentions a constraint (brand_content_toggle cannot combine with SELF_ONLY). However, it does not explicitly state when not to use this tool or suggest alternatives for different use cases.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_post_metricsA

Get the latest platform metrics (views, likes, comments) per channel for a published post, as of the last analytics sync.

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYes

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden and does well by noting the metrics are 'as of the last analytics sync', indicating potential staleness. It implies a read-only operation, but could further clarify permissions or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, direct sentence that conveys the tool's purpose and key behavioral nuance (analytics sync latency) without wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter read tool without output schema, the description covers the main behavior and data freshness. It does not detail the output structure, but that is partially mitigated by the simplicity of metrics.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter post_id has 0% schema description coverage, and the description adds no extra guidance beyond its type (uuid). The agent receives no hints on how to obtain the value (e.g., from list_posts) or any constraints.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves 'latest platform metrics (views, likes, comments) per channel for a published post, as of the last analytics sync'. This distinguishes it from sibling tools like get_post_status (status only) and list_channels (channel listing).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lacks explicit guidance on when to use this tool versus alternatives. It does not mention prerequisites (e.g., post must be published) or scenarios where other tools like get_post_status or list_posts would be more appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_post_statusB

Get a post with per-channel target status, scheduled/published times, remote URLs and error details.

ParametersJSON Schema
NameRequiredDescriptionDefault
post_idYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must convey behavior. It indicates a read operation and lists returned fields, but lacks info on error handling, prerequisites, or permissions. Adequate but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single concise sentence with no extraneous words; effectively front-loads the action and key return details.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple retrieval tool with one parameter, the description lists the key return fields and is self-contained. Lacks output schema but the description suffices for basic understanding of what the tool returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 0% schema description coverage, the description should compensate by explaining the post_id parameter, but it does not mention it at all. Schema only provides type and format, leaving the agent without usage guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool retrieves a post and lists specific details per channel (status, times, URLs, errors), distinguishing it from sibling tools like list_posts and get_post_metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs alternatives; no when-not-to or usage context. The description implies retrieval but fails to advise against using for metrics or listing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_channelsA

List the connected social channels (YouTube/TikTok) of the workspace, including each channel's posting schedule (weekday 0=Sunday…6=Saturday, time in the workspace timezone). Channel IDs are needed for create_post.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses the types of channels and the posting schedule format, but does not mention authentication, rate limits, or explicitly state it is a read-only operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the main purpose, and contains no unnecessary words or repetitions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description explains the return content but lacks details about the output structure (e.g., fields of each channel object). Since there is no output schema, more completeness would be beneficial, but it is adequate for a simple list tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters, so baseline is 4. The description adds value by explaining what the output includes (channel list with schedule and IDs), compensating for the lack of parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists connected social channels (YouTube/TikTok) of the workspace, including posting schedule. It provides a specific verb ('list') and resource ('channels'), and distinguishes from siblings like create_post and upload_video.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that channel IDs are needed for create_post, implying a prerequisite usage, but it does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_postsA

List posts of the workspace, newest first. Optional status filter (draft|scheduled|publishing|published|failed|canceled) matches posts with at least one target in that status.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
statusNo

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It discloses ordering and filter behavior, but does not mention pagination, rate limits, or return format. Adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler. The key information (ordering, filter) is front-loaded. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with 2 optional params, the description covers ordering and filter behavior. But without output schema, it omits return fields and pagination details, leaving some gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds meaning to the 'status' parameter by explaining 'matches posts with at least one target in that status', which goes beyond the schema's enum. However, 'limit' is not mentioned, leaving its role implied.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action 'List' and resource 'posts', specifies ordering 'newest first', and distinguishes from sibling tools like create_post or get_post_metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the optional status filter and its matching behavior, providing clear context for use. However, it does not explicitly mention when not to use this tool vs alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

upload_videoA

Upload a local video file (MP4, MOV or WebM, max 500 MB) and return its media_id for create_post. Handles the presigned upload and verification.

ParametersJSON Schema
NameRequiredDescriptionDefault
file_pathYesAbsolute path to the video file

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It discloses the presigned upload flow, verification step, and return value. It could be more specific about verification behavior, but overall adequately conveys safety profile (non-destructive data upload).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero redundancy. The first sentence front-loads purpose and constraints; the second adds process detail. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple 1-parameter tool with no output schema and no annotations, the description covers file constraints, return value, and high-level process (presigned upload, verification). It does not explain error states but is adequate for typical use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (single parameter file_path described as 'Absolute path'). The description adds no new parameter details beyond context (local file, format). Baseline 3 is appropriate for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Upload'), resource ('local video file'), constraints (MP4, MOV or WebM, max 500 MB), and output ('media_id for create_post'). It distinguishes from siblings by focusing on video upload rather than post creation or metrics.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies this tool is a prerequisite for create_post and specifies file format/size limits. However, it does not explicitly state when NOT to use it (e.g., for other media types) or provide alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.1.0
    • First observedcreate_post
    • First observedget_post_metrics
    • First observedget_post_status
    • First observedlist_channels
    • First observedlist_posts
    • First observedupload_video

TDQS

A3.9/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a distinct operation: creating posts, retrieving metrics, fetching status, listing channels, listing posts, and uploading videos. No two tools overlap in purpose.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case (e.g., create_post, list_channels, upload_video). No mixing of conventions.

Tool Count5/5

With 6 tools, the set is well-scoped for managing video posts across channels. Each tool serves a clear role without unnecessary bloat or deficiency.

Completeness3/5

The tool set covers creation, status, metrics, and listing, but lacks update or delete operations for posts. Users cannot modify or remove existing posts, which is a notable gap for full lifecycle management.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Gives Claude, Cursor, and any MCP client 15 tools to create, schedule, and publish social posts to TikTok, Instagram Reels, YouTube Shorts, X, Threads, and LinkedIn. Also handles media import by URL or base64, webhooks, and per-platform analytics from the ViralNote API.
    15
    173
    MIT