Negotiated 2025-11-25. The bar is 2025-06-18 or newer.
Pass
HTTPS
The endpoint URL is https.
Performance
Not measured
Fast (p50)
Median latency 473 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.
Not measured
Consistent (p95)
95th percentile 473 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.
Not measured
Reliable (uptime)
1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.
Not measured
Stable tool list
Fewer than two successful probes in 30 days, so tool-list stability is not measured.
Access
Pass
Open access
tools/list succeeded with no credential, and the record declares none.
Not measured
Standard auth
Auth is not required, so the OAuth metadata check does not apply.
Not measured
Free tier cited
No publisher quote has been checked.
Tools
Pass
Tools described
Every tool description is at least 20 characters.
Pass
Valid input schemas
Every inputSchema is a JSON Schema object.
Fail
Parameters documented
44 of 169 parameters have a description (26%). The bar is 80%.
Pass
Safety hints
Every tool sets readOnlyHint or destructiveHint.
Publisher
Pass
Verified namespace
Listed in the Official MCP Registry.
Pass
Website matches publisher
The website host matches the reverse-domain namespace.
Fail
Source repo linked
No repository URL is on file.
Not measured
Repo owner matches
This namespace is not an io.github login, so the owner comparison does not apply.
Pass
Recently updated
Updated 2026-09-22T19:23:34.964174Z, within 180 days.
Not measured
Open-source licence
No GitHub repository to ask about a licence.
Start using SocialFaktory: Social Media MCP Server
Connect to this server
Choose your client, copy the configuration, then enable the server in your client’s MCP settings.
Run this command in your terminal, then restart Claude Code.
Claude Code
claude mcp add --transport http socialfaktory-social-media-mcp-server https://www.socialfaktory.com/mcp
Capabilities
Tools 21
check_reference
Ask whether a video link can be used as the source of a swap, and if so record it on the account and start fetching that third-party video from its host. Safe to call again while the fetch is running: it reports progress rather than fetching twice.
Discovered complete_upload
Tell the service the bytes are in place and start the ingest. Safe to call again: the ticket is claimed once, so a repeat reports progress rather than ingesting twice.
Discovered create_generation
Run a video generation, spending credits already in the account. Quote it first with quote_generation and run only once the user agrees to the quote: the token monthly credit cap is the only other guard on the spend.
Discovered create_posts
Compose one post per channel from the same media. Drafts by default, which stay inside the service and run no checks; send them one at a time with send_post so a refusal names the channel it belongs to. status "scheduled" instead checks every target first, creates nothing if one fails, then hands the posts to the publisher in the background for the social accounts the user connected: they come back queued, and list_posts shows each one turn scheduled, then published.
Discovered create_upload
Open a ticket for a file from the user machine, content the service has not seen. Send the bytes in one raw HTTPS PUT to the returned url with exactly the returned headers, then call complete_upload. Limits: 2 GB, 30 minutes, 4096 px a side, 50 megapixels. An editor asset, the default purpose, needs its kind. Purpose video_reference stores a trend remake's source video: pass the ready ticket's video_reference.source_url to create_generation. Purpose actor turns a portrait photo of the user, or of someone who agreed to be cast, into an actor: it needs a name, takes jpg, png, webp or gif up to 10 MB and 4096 px a side, and the ready ticket carries actor.id for create_generation.
Discovered delete_post
Delete a post from the account. A scheduled one is withdrawn from the live social channel first, inside this call. A post already published stays online on its channel: only the record here goes. Rescheduling is a delete followed by create_posts.
Discovered generate_text
Write post variants for a brand from a brief, a link, a finished generation or a media item. Spends the user credits: 3 are reserved up front against the token monthly credit cap, and the write settles at what it used, which can land a little over the cap.
Discovered get_channel_requirements
Ask the connected social account what it accepts right now: its limits, the TikTok privacy levels the creator allows, and the Pinterest boards a pin can go to.
Discovered get_generation
Read one generation: where it is, the finished video, and the editor asset it produced. While it runs, stage is its current step, waiting_on names what holds it up and deadline_at is when it would be failed for that. A run waiting on the user will not move until the person acts, so ask them rather than poll.
Discovered get_text_generation
Read one text generation and the variants it wrote.
Discovered get_upload
Read an upload ticket. Poll it every 2 seconds, backing off to 5, for up to 16 minutes: the ingest gives up at 15, so the ticket always reaches ready or failed inside that window. A ready video ticket carries the editor asset id and its thumbnail_url, which a Pinterest pin needs. A ready actor ticket carries the actor id and its portrait_url.
Discovered get_wallet
Read the credit balance of the account the token belongs to, and its auto top-up settings (read-only: they change only in the Billing page).
Discovered list_actors
List the actors this account can cast: its own and the ready-made cast, by name, 25 a page. Pass an id as actor_id or actor_ids to quote_generation and create_generation.
Discovered list_brands
List the brands this token may act for. A pinned token sees only the brand it is pinned to.
Discovered list_channels
List a brand connected social channels with the caption and media limits each one enforces.
Discovered list_formats
List the video formats a generation can be built from, and the render styles they can be drawn in.
Discovered list_generations
List the generations this token may see, newest first.
Discovered list_media
Browse the finished exports in a brand media library, by folder or by name.
Discovered list_posts
List posts with their scheduled time, the link they were released at, and their metrics. A post just sent stays queued until the publisher takes it, then turns scheduled. A release link and metrics appear once the channel reports back, which takes a few minutes.
Discovered quote_generation
Show how many credits a generation would use before it starts, so the user can agree to it. `total` is what starts it, and the only figure taken then: for an animated story that waits for approval, that is the storyboard alone. `expected` is what the finished video is likely to cost in all, the rest of it taken when the user approves the storyboard, and is null when `total` already covers the whole job. Inputs it would refuse to run come back as a refusal instead.
Discovered send_post
Send one draft to the social account the user connected for its channel, at its scheduled time or straight away. The channel checks run inside this call, so a refusal comes back here with its code. The post then returns queued and the publisher takes it from there: poll list_posts to see it turn scheduled and then published.