Server definition
- Hash
- sha256:832f01774d4044141fa2c0b009ab0bf40c064bd9b69ebbcac543db6b2e9ddf07
- What it is
- What a remote MCP server returned when asked what it offers: 19 tools
The blob, as servednamed by its sha256
{
"instructions": "SocialHive Posting: draft, schedule and publish social posts across connected channels, generate brand-voice copy and images, read analytics, and propose automation workflows. Always call list_channels first and use real channel ids. Scheduling times are ISO 8601. Posts may land in pending_approval when the workspace requires approval. propose_workflow saves a DRAFT that a human must activate in Workflow Studio; it never runs on its own. AI tools are metered in workspace credits.",
"tools": [
{
"description": "Rewrite existing copy for another platform's length, tone and conventions. Metered.",
"inputSchema": {
"properties": {
"platform": {
"enum": [
"linkedin",
"x",
"bluesky",
"mastodon",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"pinterest",
"gbp"
],
"type": "string"
},
"text": {
"maxLength": 8000,
"minLength": 1,
"type": "string"
}
},
"required": [
"text",
"platform"
],
"type": "object"
},
"name": "adapt_post",
"outputSchema": {
"description": "Adapted post copy keyed by channel platform",
"properties": {
"adaptations": {
"type": "object"
}
},
"required": [
"adaptations"
],
"type": "object"
}
},
{
"description": "Save a long-form article or blog post (e.g. generated by ChatGPT, Claude, or an LLM) into the workspace article library. Quota: maximum 10 articles per month via MCP. Can be linked into syndication workflows or published to CMS targets.",
"inputSchema": {
"properties": {
"body": {
"description": "Full Markdown body of the article",
"minLength": 1,
"type": "string"
},
"seoTitle": {
"description": "Optional SEO title",
"maxLength": 150,
"type": "string"
},
"status": {
"default": "ready",
"description": "Article status: ready (default), drafting, outline, or published",
"enum": [
"outline",
"drafting",
"ready",
"published"
],
"type": "string"
},
"summary": {
"description": "Brief synopsis, excerpt, or meta description for SEO and social snippets",
"maxLength": 2000,
"type": "string"
},
"title": {
"description": "Article headline or title",
"maxLength": 200,
"minLength": 1,
"type": "string"
}
},
"required": [
"title",
"body",
"status"
],
"type": "object"
},
"name": "create_article",
"outputSchema": {
"description": "Created article details",
"properties": {
"id": {
"description": "Article ID",
"type": "string"
},
"monthlyRemaining": {
"description": "Remaining articles allowed via MCP this month (out of 10)",
"type": "number"
},
"reviewUrl": {
"description": "URL to view or edit the article in SocialHive",
"type": "string"
},
"status": {
"type": "string"
},
"title": {
"description": "Article title",
"type": "string"
},
"words": {
"description": "Word count",
"type": "number"
}
},
"required": [
"id",
"title",
"status",
"words"
],
"type": "object"
}
},
{
"description": "Create and optionally publish a post for LinkedIn, X, Instagram, Facebook, YouTube, TikTok, etc. Supports post copy text, image attachments (Base64 data or URLs), and video. When publishNow is true, the post is published immediately to the social accounts (available to admin-approved users). Without publishNow or scheduledAt, it is saved as a draft.",
"inputSchema": {
"properties": {
"body": {
"description": "Post copy text (optional if media attachments are provided)",
"maxLength": 20000,
"type": "string"
},
"channelIds": {
"description": "Destination channel UUIDs or platform names (e.g. ['linkedin', 'instagram', 'facebook'])",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"type": "array"
},
"mediaData": {
"description": "Array of Base64 image/video data strings or data URIs to directly upload to storage and attach to this post",
"items": {
"type": "string"
},
"maxItems": 10,
"type": "array"
},
"mediaIds": {
"description": "Array of media asset UUIDs returned by upload_media, import_media, or list_media",
"items": {
"type": "string"
},
"maxItems": 10,
"type": "array"
},
"mediaUrls": {
"description": "Array of image or video URLs to automatically import to storage and attach to this post",
"items": {
"format": "uri",
"type": "string"
},
"maxItems": 10,
"type": "array"
},
"overrides": {
"additionalProperties": {
"maxLength": 20000,
"type": "string"
},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"publishNow": {
"description": "If true, queues the post for immediate publication to destination channels now instead of saving as draft (requires admin-approved MCP publishing access)",
"type": "boolean"
},
"scheduledAt": {
"description": "ISO 8601 UTC timestamp to schedule the post (e.g. '2026-09-21T11:00:00Z'). Without this or publishNow, saves as a draft.",
"type": "string"
},
"tags": {
"items": {
"maxLength": 40,
"type": "string"
},
"maxItems": 20,
"type": "array"
},
"thread": {
"items": {
"maxLength": 20000,
"type": "string"
},
"maxItems": 50,
"type": "array"
},
"title": {
"maxLength": 200,
"type": "string"
}
},
"required": [
"channelIds"
],
"type": "object"
},
"name": "create_post",
"outputSchema": {
"description": "Created post draft or queue entry",
"properties": {
"channels": {
"items": {
"type": "string"
},
"type": "array"
},
"id": {
"description": "Post ID",
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"id",
"status"
],
"type": "object"
}
},
{
"description": "Generate an image into the media library and return its asset id (attach with create_post.mediaIds). quality 'free' uses the free provider; 'hq' costs credits.",
"inputSchema": {
"properties": {
"alt": {
"maxLength": 300,
"type": "string"
},
"aspectRatio": {
"enum": [
"1:1",
"4:5",
"16:9",
"9:16"
],
"type": "string"
},
"prompt": {
"maxLength": 2000,
"minLength": 3,
"type": "string"
},
"quality": {
"enum": [
"free",
"fast",
"hq"
],
"type": "string"
}
},
"required": [
"prompt"
],
"type": "object"
},
"name": "generate_image",
"outputSchema": {
"description": "Generated image media details",
"properties": {
"mediaId": {
"type": "string"
},
"url": {
"description": "Public URL of generated image",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
},
{
"description": "Write social copy in the workspace brand voice. Returns one or more variants. Metered (free daily allowance, then 1 credit).",
"inputSchema": {
"properties": {
"format": {
"enum": [
"single",
"thread"
],
"type": "string"
},
"language": {
"maxLength": 40,
"type": "string"
},
"platforms": {
"items": {
"enum": [
"linkedin",
"x",
"bluesky",
"mastodon",
"instagram",
"facebook",
"threads",
"tiktok",
"youtube",
"pinterest",
"gbp"
],
"type": "string"
},
"maxItems": 6,
"minItems": 1,
"type": "array"
},
"topic": {
"maxLength": 2000,
"minLength": 1,
"type": "string"
},
"variants": {
"maximum": 3,
"minimum": 1,
"type": "integer"
}
},
"required": [
"topic"
],
"type": "object"
},
"name": "generate_text",
"outputSchema": {
"description": "Generated post copy and metadata",
"properties": {
"model": {
"type": "string"
},
"text": {
"description": "Generated copy",
"type": "string"
},
"tokens": {
"type": "number"
}
},
"required": [
"text"
],
"type": "object"
}
},
{
"description": "Workspace performance for the last N days: impressions, engagements, posts, follower change, top posts and recommended posting slots.",
"inputSchema": {
"properties": {
"days": {
"maximum": 365,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "get_analytics",
"outputSchema": {
"description": "Aggregated performance summary and recommended posting slots",
"properties": {
"recommendedSlots": {
"items": {
"type": "object"
},
"type": "array"
},
"summary": {
"type": "object"
},
"timezone": {
"type": "string"
},
"topPosts": {
"items": {
"type": "object"
},
"type": "array"
}
},
"required": [
"timezone",
"summary",
"topPosts"
],
"type": "object"
}
},
{
"description": "Get full details and Markdown body of an article in the workspace library by its ID.",
"inputSchema": {
"properties": {
"articleId": {
"description": "Article UUID",
"type": "string"
}
},
"required": [
"articleId"
],
"type": "object"
},
"name": "get_article",
"outputSchema": {
"description": "Full article details with Markdown body",
"properties": {
"body": {
"type": "string"
},
"createdAt": {
"type": "string"
},
"id": {
"type": "string"
},
"reviewUrl": {
"type": "string"
},
"seoTitle": {
"nullable": true,
"type": "string"
},
"status": {
"type": "string"
},
"summary": {
"nullable": true,
"type": "string"
},
"title": {
"type": "string"
},
"updatedAt": {
"type": "string"
},
"words": {
"type": "number"
}
},
"required": [
"id",
"title",
"body",
"status",
"words"
],
"type": "object"
}
},
{
"description": "Get all connected social media accounts (LinkedIn, X, YouTube, Instagram, Facebook, TikTok, Threads) for the workspace with account IDs, platforms, connection status, and automationEnabled status.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_connected_social_accounts",
"outputSchema": {
"description": "Output payload for get_connected_social_accounts",
"properties": {
"result": {
"description": "Structured output from tool execution",
"type": "object"
}
},
"type": "object"
}
},
{
"description": "Get one post with its body, per-channel variants, status and metrics.",
"inputSchema": {
"properties": {
"postId": {
"type": "string"
}
},
"required": [
"postId"
],
"type": "object"
},
"name": "get_post",
"outputSchema": {
"description": "Full post details with variants and metrics",
"properties": {
"body": {
"type": "string"
},
"id": {
"type": "string"
},
"metrics": {
"nullable": true,
"type": "object"
},
"publishedAt": {
"nullable": true,
"type": "string"
},
"scheduledAt": {
"nullable": true,
"type": "string"
},
"status": {
"type": "string"
},
"title": {
"type": "string"
},
"variants": {
"items": {
"type": "object"
},
"type": "array"
}
},
"required": [
"id",
"body",
"status",
"variants"
],
"type": "object"
}
},
{
"description": "List long-form articles in the workspace library with their id, title, status, word count, summary, and last updated time.",
"inputSchema": {
"properties": {
"limit": {
"default": 20,
"description": "Max number of articles to return (default 20)",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"status": {
"description": "Filter by article status",
"enum": [
"outline",
"drafting",
"ready",
"published"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_articles",
"outputSchema": {
"description": "List of articles in the workspace library",
"items": {
"properties": {
"createdAt": {
"type": "string"
},
"id": {
"description": "Article ID",
"type": "string"
},
"status": {
"description": "Status (outline, drafting, ready, published)",
"type": "string"
},
"summary": {
"description": "Summary or brief",
"nullable": true,
"type": "string"
},
"title": {
"description": "Article title",
"type": "string"
},
"updatedAt": {
"type": "string"
},
"url": {
"type": "string"
},
"words": {
"description": "Word count",
"type": "number"
}
},
"required": [
"id",
"title",
"status",
"words"
],
"type": "object"
},
"type": "array"
}
},
{
"description": "List the social accounts connected to this workspace with their ids, platform, handle, health, and automationEnabled status. Use channel ids when creating posts.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_channels",
"outputSchema": {
"description": "Array of connected channels with status, platform, and follower counts",
"items": {
"properties": {
"displayName": {
"description": "Display name",
"type": "string"
},
"followers": {
"description": "Follower count",
"type": "number"
},
"handle": {
"description": "Account handle",
"type": "string"
},
"id": {
"description": "Channel ID",
"type": "string"
},
"kind": {
"description": "Channel kind",
"type": "string"
},
"platform": {
"description": "Platform name (linkedin, x, instagram, etc.)",
"type": "string"
},
"status": {
"description": "Status (active, disconnected, error)",
"type": "string"
}
},
"required": [
"id",
"platform",
"status"
],
"type": "object"
},
"type": "array"
}
},
{
"description": "List or search media assets (images, videos) in the workspace media library. Returns asset ids to attach with create_post.mediaIds.",
"inputSchema": {
"properties": {
"kind": {
"enum": [
"image",
"video",
"document"
],
"type": "string"
},
"limit": {
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"q": {
"maxLength": 100,
"type": "string"
}
},
"type": "object"
},
"name": "list_media",
"outputSchema": {
"description": "List of workspace media assets",
"properties": {
"assets": {
"items": {
"properties": {
"alt": {
"type": "string"
},
"durationSec": {
"type": "number"
},
"height": {
"type": "number"
},
"id": {
"type": "string"
},
"kind": {
"type": "string"
},
"label": {
"type": "string"
},
"url": {
"type": "string"
},
"width": {
"type": "number"
}
},
"required": [
"id",
"kind",
"url"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"assets"
],
"type": "object"
}
},
{
"description": "Catalog of workflow node types (triggers, sources, AI, control, destinations) with their config schemas. Read before calling propose_workflow.",
"inputSchema": {
"properties": {
"group": {
"enum": [
"trigger",
"source",
"ai",
"control",
"dest"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_node_types",
"outputSchema": {
"description": "Available workflow node types",
"items": {
"properties": {
"category": {
"type": "string"
},
"id": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"id",
"title",
"category"
],
"type": "object"
},
"type": "array"
}
},
{
"description": "List posts in the workspace, newest first. Filter by status (draft, pending_approval, scheduled, published, failed) or free text.",
"inputSchema": {
"properties": {
"limit": {
"maximum": 50,
"minimum": 1,
"type": "integer"
},
"q": {
"maxLength": 120,
"type": "string"
},
"status": {
"enum": [
"draft",
"pending_approval",
"requires_edits",
"scheduled",
"publishing",
"published",
"failed"
],
"type": "string"
}
},
"type": "object"
},
"name": "list_posts",
"outputSchema": {
"description": "List of posts matching filter criteria",
"items": {
"properties": {
"channels": {
"items": {
"type": "string"
},
"type": "array"
},
"excerpt": {
"type": "string"
},
"id": {
"description": "Post ID",
"type": "string"
},
"publishedAt": {
"nullable": true,
"type": "string"
},
"scheduledAt": {
"nullable": true,
"type": "string"
},
"status": {
"description": "Status",
"type": "string"
},
"title": {
"description": "Post title",
"type": "string"
}
},
"required": [
"id",
"status",
"channels"
],
"type": "object"
},
"type": "array"
}
},
{
"description": "List content data sources (RSS feeds, sitemaps, web pages, documents) with counts of unused items.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_sources",
"outputSchema": {
"description": "Connected content ingestion sources",
"items": {
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"type": {
"type": "string"
},
"unusedItems": {
"type": "number"
}
},
"required": [
"id",
"type"
],
"type": "object"
},
"type": "array"
}
},
{
"description": "List automation workflows with status and last run.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "list_workflows",
"outputSchema": {
"description": "Automation workflows in the workspace",
"items": {
"properties": {
"active": {
"type": "boolean"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"runsCount": {
"type": "number"
}
},
"required": [
"id",
"name",
"active"
],
"type": "object"
},
"type": "array"
}
},
{
"description": "Propose an automation workflow as a graph (nodes + edges). The graph is validated and saved as a DRAFT version that a human must review and activate in Workflow Studio; it never runs on its own. Call list_node_types first for valid node types and config schemas.",
"inputSchema": {
"properties": {
"description": {
"default": "",
"maxLength": 500,
"type": "string"
},
"graph": {
"additionalProperties": false,
"properties": {
"config": {
"additionalProperties": {},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"edges": {
"items": {
"additionalProperties": false,
"properties": {
"id": {
"maxLength": 80,
"minLength": 1,
"type": "string"
},
"label": {
"maxLength": 40,
"type": "string"
},
"source": {
"minLength": 1,
"type": "string"
},
"sourceHandle": {
"type": [
"string",
"null"
]
},
"target": {
"minLength": 1,
"type": "string"
},
"targetHandle": {
"type": [
"string",
"null"
]
}
},
"required": [
"id",
"source",
"target"
],
"type": "object"
},
"maxItems": 120,
"type": "array"
},
"nodes": {
"items": {
"additionalProperties": false,
"properties": {
"config": {
"additionalProperties": {},
"default": {},
"propertyNames": {
"type": "string"
},
"type": "object"
},
"id": {
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"label": {
"maxLength": 80,
"type": "string"
},
"position": {
"additionalProperties": false,
"properties": {
"x": {
"type": "number"
},
"y": {
"type": "number"
}
},
"required": [
"x",
"y"
],
"type": "object"
},
"type": {
"minLength": 1,
"type": "string"
}
},
"required": [
"id",
"type",
"position",
"config"
],
"type": "object"
},
"maxItems": 60,
"type": "array"
}
},
"required": [
"nodes",
"edges"
],
"type": "object"
},
"name": {
"maxLength": 120,
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"description",
"graph"
],
"type": "object"
},
"name": "propose_workflow",
"outputSchema": {
"description": "Created draft workflow",
"properties": {
"id": {
"description": "Workflow ID",
"type": "string"
},
"name": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"id",
"name"
],
"type": "object"
}
},
{
"description": "Schedule an existing draft (or move a scheduled post) to an ISO 8601 time. Approval policy still applies.",
"inputSchema": {
"properties": {
"postId": {
"description": "Post UUID",
"type": "string"
},
"scheduledAt": {
"description": "ISO 8601 UTC datetime string",
"type": "string"
}
},
"required": [
"postId",
"scheduledAt"
],
"type": "object"
},
"name": "schedule_post",
"outputSchema": {
"description": "Confirmed schedule details",
"properties": {
"id": {
"description": "Post ID",
"type": "string"
},
"scheduledAt": {
"description": "Scheduled ISO timestamp",
"type": "string"
},
"status": {
"type": "string"
}
},
"required": [
"id",
"scheduledAt",
"status"
],
"type": "object"
}
},
{
"description": "Fetch recent items from one data source (title, url, excerpt). Use them as raw material for posts.",
"inputSchema": {
"properties": {
"limit": {
"maximum": 20,
"minimum": 1,
"type": "integer"
},
"q": {
"maxLength": 120,
"type": "string"
},
"sourceId": {
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
"type": "string"
},
"unusedOnly": {
"type": "boolean"
}
},
"required": [
"sourceId"
],
"type": "object"
},
"name": "search_source_items",
"outputSchema": {
"description": "Matching ingested source items",
"items": {
"properties": {
"id": {
"type": "string"
},
"publishedAt": {
"nullable": true,
"type": "string"
},
"title": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"id",
"title"
],
"type": "object"
},
"type": "array"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:832f01774d4044141fa2c0b009ab0bf40c064bd9b69ebbcac543db6b2e9ddf07 | sha256sum