SpeedContent Social

Generate platform-native social posts that are humanized, AI-detection scored and illustrated.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
86%
Naming quality
92%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,359Tokens (tool definitions)
~2.1 KBTypical response size
Moderate attention impact (1.06% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "speedcontent-social": {
      "url": "https://generatecontentwithaiservice-g5zrtckfda-ue.a.run.app/mcp"
    }
  }
}

Remote endpoints

https://generatecontentwithaiservice-g5zrtckfda-ue.a.run.app/mcpstreamable-http
https://speedcontent.online/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡generate_social_post(topic, platform, tone, language, quantity, ...)

Write a social media post from scratch for a given platform and topic. Use this when you do not already have a draft — for example to produce several variations at once, or for platforms whose conventions you are unsure of. If you have already written the post yourself, prefer score_text and humanize_text, which check and fix your own wording instead of replacing it. Returns a job id immediately — poll it with check_social_job, which usually completes in 20-90 seconds. Costs credits.

Input Schema

{
  "type": "object",
  "properties": {
    "topic": {
      "type": "string",
      "minLength": 3,
      "description": "What the post should be about."
    },
    "platform": {
      "type": "string",
      "enum": [
        "facebook",
        "instagram",
        "linkedin",
        "pinterest",
        "tiktok",
        "twitter",
        "youtube"
      ],
      "description": "Target platform. Each has its own style guide and default length."
    },
    "tone": {
      "type": "string",
      "enum": [
        "casual",
        "educational",
        "friendly",
        "humorous",
        "inspirational",
        "professional"
      ],
      "description": "Defaults to friendly."
    },
    "language": {
      "type": "string",
      "description": "Output language by name. Defaults to English."
    },
    "quantity": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "description": "How many distinct variations to generate. Defaults to 1."
    },
    "word_count": {
      "type": "integer",
      "minimum": 10,
      "maximum": 500,
      "description": "Target length per post. Omit to use the platform default (LinkedIn 100, YouTube 150, Facebook/Pinterest 75, Instagram/TikTok 50, X 40)."
    },
    "generate_image": {
      "type": "boolean",
      "description": "Generate a matching image for the post. Defaults to false over MCP; pass true to request one. Adds 10 credits per post."
    },
    "humanize": {
      "type": "boolean",
      "description": "Rewrite the post to read as human-authored. Omit for automatic: the draft is scored first and humanized only if it reads as machine-written. Skipping it keeps the exact wording and saves credits, since a well-written post often already passes."
    },
    "preserve": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Exact lines that must appear verbatim in the finished post — a closing question, a call to action, a tagline. The humanizer rewrites sentences, so anything whose exact wording matters belongs here rather than only in the topic."
    },
    "emoji": {
      "type": "boolean",
      "description": "Add emoji to the post. Omit for automatic: off on LinkedIn and YouTube, on elsewhere. Set false for a clean post on any platform."
    },
    "detect_ai": {
      "type": "boolean",
      "description": "Score 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_name": {
      "type": "string",
      "description": "Brand to mention where it reads naturally."
    },
    "brand_description": {
      "type": "string",
      "description": "What the business does."
    },
    "brand_tone": {
      "type": "string",
      "description": "Voice guidance, e.g. 'Direct, no jargon'."
    },
    "brand_audience": {
      "type": "string",
      "description": "Who the post should speak to."
    },
    "brand_keywords": {
      "type": "string",
      "description": "Comma-separated terms to work in."
    }
  },
  "required": [
    "topic",
    "platform"
  ],
  "additionalProperties": false
}
🟢score_text(text)

Check how machine-written a piece of text reads, using an external AI detector. Returns a score from 0 to 65 where 0 reads as human and anything above 30 is likely to be flagged. Use this on text you have already written to find out whether it will pass before it is published — it is a measurement you cannot make yourself. Costs 8 credits per call.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 10,
      "description": "The text to score. At least 10 characters."
    }
  },
  "required": [
    "text"
  ],
  "additionalProperties": false
}
⚪humanize_text(text, preserve, brand_terms, score_after)

Rewrite text so it no longer reads as machine-written, using an external humanizing service. Use this on your own writing when score_text says it would be flagged. Brand names, domains and any lines listed in `preserve` are restored verbatim afterwards, because the humanizer rewrites whole sentences and splits names. Costs 1 credit per 20 words.

Input Schema

{
  "type": "object",
  "properties": {
    "text": {
      "type": "string",
      "minLength": 10,
      "description": "The text to rewrite. At least 10 characters."
    },
    "preserve": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Exact lines that must survive verbatim — a tagline, a call to action, a closing question."
    },
    "brand_terms": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Names that must not be altered, e.g. a product name the humanizer would otherwise split into two words."
    },
    "score_after": {
      "type": "boolean",
      "description": "Score the rewritten text and return it. Adds 8 credits. Defaults to false."
    }
  },
  "required": [
    "text"
  ],
  "additionalProperties": false
}
🟢check_social_job(job_id)

Look up a social post generation job by id. Returns the finished posts once the job completes, or its current progress while it runs. Costs nothing.

Input Schema

{
  "type": "object",
  "properties": {
    "job_id": {
      "type": "string",
      "description": "The job id returned by generate_social_post."
    }
  },
  "required": [
    "job_id"
  ],
  "additionalProperties": false
}
🟢list_social_platforms

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

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded5 tools
verifiedversion not recorded3 tools