Skip to main content
Glama
seotrader

SpeedContent Social MCP

by seotrader

SpeedContent Social MCP

Give an AI agent the ability to write social media posts that don't read like AI wrote them.

An MCP server for the SpeedContent Social Post API. Agents can draft posts for seven platforms; each one is written to that platform's conventions, rewritten to read as human-authored, scored against AI detection, and optionally illustrated.

Listed in the official MCP Registry as io.github.seotrader/speedcontent-social.

Why this and not a plain model call

Any model can write a LinkedIn post. The difference is what happens after:

Step

What it does

Generate

Written against the platform's own style guide, not one prompt reskinned

Humanize

Rewritten so it doesn't read as machine-written

Detect

Scored 0–65 by an AI detector; 0 reads as human

Emoji

Platform-aware; suppressed on LinkedIn and YouTube

Re-humanize

Automatic retry if the score comes back too high

Image

Optional, generated to match the post

The scoring pass is the point. The agent is told how human the copy reads before anything is published.

Related MCP server: Publora MVP MCP Server

Setup

This is a remote server — there is nothing to install. Get an API key at app.speedcontent.online/APIKeys (free credits on signup, no card), then point your client at the URL.

Claude Code

claude mcp add --transport http speedcontent-social \
  https://speedcontent.online/mcp \
  --header "X-API-Key: sc_your_key_here"

Claude Desktop, Cursor, and other clients

{
  "mcpServers": {
    "speedcontent-social": {
      "url": "https://speedcontent.online/mcp",
      "headers": {
        "X-API-Key": "sc_your_key_here"
      }
    }
  }
}

Authorization: Bearer sc_... works too, for clients that prefer it.

Tools

generate_social_post

Starts a job and returns its id. Generation takes 20–90 seconds; collect the result with check_social_job. Costs credits.

Parameter

Default

Notes

topic

—

Required. What the post is about.

platform

—

Required. facebook, instagram, twitter, linkedin, pinterest, youtube, tiktok.

tone

friendly

professional, casual, friendly, humorous, inspirational, educational.

language

English

Any language name.

quantity

1

Up to 10 variations.

word_count

per platform

10–500. LinkedIn 100, YouTube 150, Facebook/Pinterest 75, Instagram/TikTok 50, X 40.

generate_image

true

Adds 10 credits per post.

detect_ai

automatic

Adds 8 credits per post. Automatic means 150+ words only — short posts score unreliably.

brand_name, brand_description, brand_tone, brand_audience, brand_keywords

—

Optional brand voice.

check_social_job

Returns the finished posts, or current progress while the job runs. Free.

list_social_platforms

Platforms with default lengths and emoji policy. Free, no network call.

Credits

Per post: 20 base (up to 200 words), +1 per 10 words beyond 200, +10 for an image, +8 for AI detection. Multiplied by quantity. Refunded in full if generation fails.

A 100-word LinkedIn post with an image costs 30 credits.

What's in this repo

The live server runs inside the SpeedContent API service. This repo holds the registry manifest and a standalone stdio implementation.

Path

What it is

server.json

The MCP Registry manifest, pointing at the hosted endpoint

src/index.ts

A standalone stdio server, for clients that can't do remote HTTP

PUBLISHING.md

How this gets published and listed

The stdio build is not on npm and isn't needed for normal use. It exists as a fallback for older MCP clients that only support subprocess transport:

npm install && npm run build
SPEEDCONTENT_API_KEY=sc_... node dist/index.js

Reselling

Volume and white-label pricing is per post rather than per seat, and your users don't need SpeedContent accounts of their own. Get in touch.

Licence

MIT

Available Tools

3 tools
check_social_jobCheck a social post jobAInspect

Look up a social post generation job by id. Use this only when generate_social_post timed out and returned a job id — it does not start new work and costs nothing.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYesThe job id returned by a previous call.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It usefully discloses that the call is non-mutating ('does not start new work') and free of cost, but says nothing about what a returned job looks like, possible job states, or behavior when the id is unknown or the job failed.

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 short sentences, front-loaded with the action and followed by the key usage constraint. Every clause earns its place with no redundancy.

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 lookup with no output schema or annotations, the description covers what it is, when to call it, and its cost/side-effect profile. The only gap is guidance on interpreting or polling the returned job status.

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 description coverage is 100% and the single job_id parameter is already documented in the schema, so the description adds only the reinforcing phrase 'by id'. Baseline 3 is appropriate when the schema does the parameter work.

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?

States a specific verb (look up) and resource (a social post generation job) with the lookup key (id), which is unambiguous. It is clearly distinguished from the sibling generate_social_post, which it explicitly references.

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

Usage Guidelines5/5

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

Gives an explicit when-to-use condition: 'only when generate_social_post timed out and returned a job id.' It also clarifies when-not by noting it does not start new work, so the agent knows not to use it for initiation.

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

generate_social_postGenerate a social media postAInspect

Write a social media post for a given platform and topic. The post is written to that platform's conventions, rewritten to read as human-authored, optionally scored against AI detection, and optionally illustrated with a generated image. Blocks until generation finishes, typically 20-90 seconds. Costs credits.

ParametersJSON Schema
NameRequiredDescriptionDefault
toneNoDefaults to friendly.
topicYesWhat the post should be about.
languageNoOutput language by name. Defaults to English.
platformYesTarget platform. Each has its own style guide and default length.
quantityNoHow many distinct variations to generate. Defaults to 1.
detect_aiNoScore the post against AI detection and retry if it reads as machine-written. Adds 8 credits per post. Omit for automatic: runs only at 150+ words, because short posts score unreliably.
brand_nameNoBrand to mention where it reads naturally.
brand_toneNoVoice guidance, e.g. 'Direct, no jargon'.
word_countNoTarget length per post. Omit to use the platform default (LinkedIn 100, YouTube 150, Facebook/Pinterest 75, Instagram/TikTok 50, X 40).
brand_audienceNoWho the post should speak to.
brand_keywordsNoComma-separated terms to work in.
generate_imageNoGenerate a matching image. Defaults to true. Adds 10 credits per post.
brand_descriptionNoWhat the business does.

TDQS

A3.7/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 and does a good job: it discloses blocking behavior with a concrete latency range (20-90s), that credits are consumed, and the non-obvious side effect that output is rewritten to read as human-authored. It does not cover auth requirements or error behavior, keeping it short of a 5.

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?

Four tight sentences with zero filler, front-loading what the tool does before the behavioral facts (blocking time, cost). Efficient, though the final 'Costs credits' sentence is terse enough that it could carry more cost detail.

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 13-parameter generation tool with no output schema and no annotations, the description covers the essentials an agent needs: latency, blocking semantics, credit cost, and the multi-step pipeline. The main gap is that it never indicates what is returned (single post vs. quantity variations with scores/images), which an agent might want given no output schema.

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 description coverage is 100%, so the schema already documents all 13 parameters, including defaults and platform word counts. The description adds no parameter-level detail beyond the summary sentence, so the baseline 3 is appropriate.

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

Purpose4/5

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

States a specific verb and resource (write a social media post) scoped to a platform and topic, and enumerates the pipeline steps (platform conventions, human-rewrite, AI detection, image). It is distinguishable from check_social_job and list_social_platforms by name and intent, though it never explicitly names those siblings.

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 implies usage (generate a post for a platform/topic) and adds two useful operating facts — it blocks until completion and costs credits. However, it never states when to prefer this tool over check_social_job or how it relates to an async job flow, so the routing guidance is only implied.

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

list_social_platformsList supported platformsAInspect

List the platforms generate_social_post supports, with each one's default post length and emoji policy. Costs nothing and makes no network call.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

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 the full burden and does disclose meaningful behavior: zero cost, no network call (i.e., a safe, side-effect-free read), and the shape of what is returned. It stops short of stating read-only guarantees formally or whether results are cached/static, but for a trivial list tool this is solid disclosure.

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 short sentences, front-loaded with what is listed and followed by the cost/network guarantee. Every clause carries information; no filler.

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?

There is no output schema, so the description must characterize the return value, and it does by naming the platform list plus per-platform length and emoji policy. A simple enumeration tool is adequately covered, though the exact response format (array vs object, field names) is left unspecified.

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 tool takes zero parameters, so the baseline of 4 applies; there is nothing for the description to clarify beyond confirming no arguments are needed. The description adds the useful detail that the listed items carry attributes (length, emoji policy) rather than being bare names.

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?

States a specific verb (list) and resource (platforms) and explicitly ties the resource to the sibling generate_social_post, so the agent can distinguish it from check_social_job. It also names the returned fields (default post length, emoji policy), removing ambiguity about what 'platform' data means.

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 implies the natural use case (discover what generate_social_post supports before calling it) and notes it is free and offline, but never states an explicit when-to-use or when-not-to-use rule relative to check_social_job. Usage is inferable rather than spelled out.

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. 3 tool updatesv0.1.0
    • First observedcheck_social_job
    • First observedgenerate_social_post
    • First observedlist_social_platforms

TDQS

A4.1/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a clearly distinct purpose: generate_social_post creates work, check_social_job only polls an existing job by id, and list_social_platforms only reads metadata. The descriptions even spell out when to use check_social_job (only after a timeout) versus generate_social_post, so there is no realistic misselection.

Naming Consistency5/5

All three tools follow the same verb_noun snake_case pattern: generate_social_post, check_social_job, list_social_platforms. The verb (generate/check/list) also maps cleanly onto each tool's action, reinforcing the pattern.

Tool Count4/5

Three tools is on the low end but well-matched to a narrow single-purpose service: one action tool, one status poller, one discovery tool. Nothing feels redundant or padded, though the surface is thin enough that a couple more operations could reasonably exist.

Completeness4/5

The core lifecycle for generating a social post is covered: discover platforms, generate, and recover from timeouts via job lookup. Minor gaps remain — there is no way to cancel or list jobs, or to fetch/reuse a completed post outside the timeout path — but agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to schedule and publish social media posts to platforms like Instagram, TikTok, YouTube, LinkedIn, Facebook, X, Threads, and Pinterest using natural language.
    33
    586 npm
    4
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to manage social media publishing across platforms like LinkedIn, Twitter, Facebook, Instagram, Threads, and Bluesky.
    7
    29 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Gives AI agents the ability to schedule and publish social media posts to Instagram, TikTok, YouTube, X, LinkedIn, Facebook, Pinterest, Threads, and Bluesky. Create, schedule, and bulk-plan posts with per-platform captions, then check per-platform results and retry failures.
    12
    MIT