Serveur MCP

Fuxux

io.github.abogitoff/fuxux

Ce que fait ce MCP

Creates, schedules, edits, deletes and lists social media posts across connected platforms.

create_post
Create post
Create a post: per-platform captions, optional prompt, optional scheduled_at (ISO, future), optional media_urls (strings). Without scheduled_at or draft, this publishes immediately to the connected social platforms. Set draft: true to save it for the user to review in Fuxux instead; nothing is published.
Destructif Accès externe
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['captions'], 'properties': {'draft': {'type': 'boolean', 'description': "Save as a draft instead of publishing or scheduling (can't be combined with scheduled_at)"}, 'prompt': {'type': 'string', 'maxLength': 500, 'description': 'Optional note on the idea behind the post (max 500 chars). Stored with the post for reference; it is not published.'}, 'targets': {'type': 'array', 'items': {'type': 'object', 'required': ['account_id', 'platform'], 'properties': {'format': {'enum': ['feed', 'story'], 'type': 'string', 'description': 'instagram and facebook only; defaults to feed'}, 'flair_id': {'type': 'string', 'description': 'reddit only: post flair id, if the subreddit requires one'}, 'platform': {'enum': ['twitter', 'instagram', 'linkedin', 'facebook', 'tiktok', 'youtube', 'bluesky', 'threads', 'pinterest', 'google-business', 'reddit', 'discord', 'kick', 'twitch'], 'type': 'string', 'description': "That account's platform; needs a caption in captions"}, 'subreddit': {'type': 'string', 'description': 'reddit only: subreddit name without r/ (required for reddit)'}, 'account_id': {'type': 'string', '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)$', 'description': 'Connected account id from list_connected_accounts'}}}, 'description': 'Which accounts to post to. Without it, each captioned platform posts to its first connected account. Required for reddit (subreddit).'}, 'captions': {'type': 'object', 'description': 'Map of platform id to caption text. Platform ids: twitter, instagram, linkedin, facebook, tiktok, youtube, bluesky, threads, pinterest, google-business, reddit, discord, kick, twitch', 'propertyNames': {'type': 'string'}, 'additionalProperties': {'type': 'string'}}, 'media_urls': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 4, 'description': 'Up to 4 public https image/video URLs to attach'}, 'scheduled_at': {'type': 'string', 'description': 'ISO datetime; if set, post is scheduled instead of published immediately'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['post'], 'properties': {'post': {'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string', 'description': 'draft | scheduled | published | failed'}, 'scheduled_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'description': 'The created post', 'additionalProperties': {}}, 'results': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['platform', 'success'], 'properties': {'error': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'success': {'type': 'boolean'}, 'platform': {'type': 'string'}, 'account_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'account_label': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'inbox_pending': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'platform_post_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'still_processing': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Per-platform outcome; present only when published immediately'}}, 'additionalProperties': {}}
delete_post
Delete post
Delete a post from Fuxux. A draft or scheduled post will then never publish. For an already-published post this removes only Fuxux's record; it does NOT delete it from the social platform. Fails while the post is publishing.
Destructif
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', '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)$', 'description': 'Post id (from list_posts or create_post)'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success'], 'properties': {'success': {'type': 'boolean'}}, 'additionalProperties': {}}
get_dashboard
Get dashboard
Summary stats, upcoming scheduled posts, and per-platform connection status.
Lecture seule
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'stats': {'anyOf': [{'type': 'object', 'properties': {'momChange': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'postsLastMonth': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'postsThisMonth': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'totalPublished': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'healthyAccounts': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'upcomingThisWeek': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'connectedAccounts': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}, 'accountsNeedingAttention': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': {}}, {'type': 'null'}]}, 'profile': {'anyOf': [{'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}, {'type': 'null'}]}, 'platforms': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Per-platform connection status and post counts'}, 'upcomingPosts': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Next posts due to publish'}, 'needsAttention': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'propertyNames': {'type': 'string'}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'Accounts that need reconnecting'}}, 'additionalProperties': {}}
get_post
Get post
Get one post with its per-platform variants. Variant ids from here are what update_post uses to edit individual captions. Also finds drafts, which list_posts (month-scoped) can miss.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', '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)$', 'description': 'Post id (from list_posts or create_post)'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['post'], 'properties': {'post': {'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string', 'description': 'draft | scheduled | publishing | published | failed'}, 'created_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'media_urls': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'raw_prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'published_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scheduled_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'post_variants': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'platform'], 'properties': {'id': {'type': 'string'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'content': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Caption for this platform/account'}, 'platform': {'type': 'string', 'description': 'Platform id, e.g. instagram, linkedin'}, 'published_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'platform_post_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'connected_account_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'One entry per platform/account'}}, 'additionalProperties': {}}}, 'additionalProperties': {}}
list_connected_accounts
List connected accounts
List social accounts connected to the Fuxux workspace. Use an account's id in create_post targets to pick which account posts when a platform has more than one.
Lecture seule
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['accounts'], 'properties': {'accounts': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'platform'], 'properties': {'id': {'type': 'string'}, 'scopes': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'connected | expired'}, 'platform': {'type': 'string'}, 'created_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'via_reminder': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'token_expires_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'platform_username': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'platform_avatar_url': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, 'workspace_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'workspace_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'is_team_workspace': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': {}}
list_posts
List posts
List posts (calendar / queue). Optional filters: month (YYYY-MM), status. Pass limit to get only what you need (e.g. limit 5 + order "newest" for the most recent posts). Page with offset while hasMore is true.
Lecture seule
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'maximum': 50, 'minimum': 1, 'description': 'Max posts to return (1-50). Defaults to 20, or the whole month when month is set'}, 'month': {'type': 'string', 'description': 'Calendar month, e.g. "2026-04"'}, 'order': {'enum': ['upcoming', 'newest', 'recently_published', 'recently_updated'], 'type': 'string', 'description': 'upcoming (default): by scheduled time, soonest first. newest: most recently created first. recently_published: latest published first. recently_updated: most recently changed first'}, 'offset': {'type': 'integer', 'maximum': 9007199254740991, 'minimum': 0, 'description': 'Skip this many posts (for paging)'}, 'status': {'enum': ['scheduled', 'published', 'draft', 'failed', 'all'], 'type': 'string', 'description': 'Filter by status; omit for no status filter'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['posts'], 'properties': {'posts': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string', 'description': 'draft | scheduled | publishing | published | failed'}, 'created_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'media_urls': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'raw_prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'published_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scheduled_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'post_variants': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'platform'], 'properties': {'id': {'type': 'string'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'content': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Caption for this platform/account'}, 'platform': {'type': 'string', 'description': 'Platform id, e.g. instagram, linkedin'}, 'published_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'platform_post_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'connected_account_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'One entry per platform/account'}}, 'additionalProperties': {}}}, 'counts': {'anyOf': [{'type': 'object', 'required': ['total', 'scheduled', 'published', 'drafts', 'failed'], 'properties': {'total': {'type': 'number'}, 'drafts': {'type': 'number'}, 'failed': {'type': 'number'}, 'published': {'type': 'number'}, 'scheduled': {'type': 'number'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'Workspace-wide totals per status'}, 'hasMore': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}, 'nextOffset': {'anyOf': [{'type': 'number'}, {'type': 'null'}]}}, 'additionalProperties': {}}
update_post
Update post
Edit a draft or scheduled post before it publishes: reschedule (scheduled posts only; scheduled_at must be in the future), change captions, or replace media. Published or publishing posts can't be edited. Provide at least one of scheduled_at, variant_updates, media_urls.
Idempotent
Schéma d’entrée
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string', '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)$', 'description': 'Post id (from list_posts or create_post)'}, 'media_urls': {'type': 'array', 'items': {'type': 'string'}, 'maxItems': 4, 'description': "Replaces the post's media (public https URLs)"}, 'scheduled_at': {'type': 'string', 'description': 'New ISO datetime in the future (scheduled posts only)'}, 'variant_updates': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'content'], 'properties': {'id': {'type': 'string', '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)$', 'description': 'Variant id from get_post'}, 'content': {'type': 'string', 'description': 'New caption for that variant'}}}, 'description': 'Caption changes, one entry per variant'}}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['success', 'id'], 'properties': {'id': {'type': 'string'}, 'post': {'anyOf': [{'type': 'object', 'required': ['id', 'status'], 'properties': {'id': {'type': 'string'}, 'status': {'type': 'string', 'description': 'draft | scheduled | publishing | published | failed'}, 'created_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'media_urls': {'anyOf': [{'type': 'array', 'items': {'type': 'string'}}, {'type': 'null'}]}, 'raw_prompt': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'published_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'scheduled_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'post_variants': {'anyOf': [{'type': 'array', 'items': {'type': 'object', 'required': ['id', 'platform'], 'properties': {'id': {'type': 'string'}, 'status': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'content': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'description': 'Caption for this platform/account'}, 'platform': {'type': 'string', 'description': 'Platform id, e.g. instagram, linkedin'}, 'published_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'error_message': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'platform_post_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'connected_account_id': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}}, 'additionalProperties': {}}}, {'type': 'null'}], 'description': 'One entry per platform/account'}}, 'additionalProperties': {}}, {'type': 'null'}], 'description': 'The post after the update'}, 'success': {'type': 'boolean'}}, 'additionalProperties': {}}
whoami
Who am I
Return the current user id and email for the Bearer token (validates authentication).
Lecture seule
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['id'], 'properties': {'id': {'type': 'string'}, 'plan': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'email': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'full_name': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'trial_end': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'created_at': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'has_api_access': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}], 'description': 'Whether this account can use API keys'}, 'subscription_status': {'anyOf': [{'type': 'string'}, {'type': 'null'}]}, 'onboarding_completed': {'anyOf': [{'type': 'boolean'}, {'type': 'null'}]}}, 'additionalProperties': {}}
Modifié
create_post
2 October 2026 02:41
Modifié
list_posts
2 October 2026 02:41
Modifié
list_connected_accounts
2 October 2026 02:41
Ajouté
delete_post
30 September 2026 02:40
Ajouté
update_post
30 September 2026 02:40
Ajouté
get_post
30 September 2026 02:40
Ajouté
create_post
30 September 2026 02:40
Ajouté
list_posts
30 September 2026 02:40
Ajouté
get_dashboard
30 September 2026 02:40
Ajouté
list_connected_accounts
30 September 2026 02:40
Ajouté
whoami
30 September 2026 02:40