Dropspace

io.github.JCLVSHPublished by GitHub account JCLVSHv2.54.0Updated Nov 11, 2026

Create, schedule, and publish social media launches across platforms, then read the analytics.

Overview

AI-generated overview

Dropspace lets an assistant create, schedule and publish social media launches across platforms, manage AI personas, and read post analytics.

What you can do
  • Create, update, delete, publish and retry launches, with per-platform posting status and logs
  • Generate AI content and media (image or video jobs) for a launch, and retry failed generation
  • Manage personas: create, analyze writing style, finalize or discard analysis
  • List connected social accounts, edit supported profiles, and check official-account status
  • Read analytics: per-post engagement, batch cached metrics, audience growth, usage and plan
  • Run autopilot: configure it, review, approve or reject drafts, trigger runs, and apply or dismiss performance recommendations
When to use it
Useful when you want an assistant to draft and schedule posts across several social platforms, keep a consistent brand voice through personas, or review engagement data and act on it without switching between platform dashboards.
Requirements
A Dropspace account and API key, supplied as the DROPSPACE_API_KEY environment variable or as an Authorization bearer token. Runs as a remote endpoint or locally via npx. Social accounts must be connected in Dropspace for publishing; some tools need specific scopes such as generate or read.
Before you install
The key grants publishing rights on connected social accounts: tools can publish, delete posts, and change profiles on the platform. Autopilot can draft and schedule posts autonomously, and approving drafts schedules real publishing. Boost recommendations create paused ad campaigns that spend money once activated. Instagram and TikTok posts cannot be deleted through the API.

Installation

In SourceWeft

  1. Open Dropspace in the dashboard and add it to a workspace.
  2. Connect Authorization token credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.JCLVSH%2Fdropspace/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "dropspace": {
      "type": "http",
      "url": "https://api.dropspace.dev/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

Tools

40

list_launches

list your launches with pagination

Parameterspagepage_size

create_launch

create a new launch for publishing to social platforms

Parameterswaitmediatitlerequiredpublishplatformsmedia_modepersona_idproduct_urltrack_linksmedia_assetscustom_contentscheduled_date+8 more

get_launch

get a launch by ID with posting status per platform

Parametersidrequired

update_launch

update a launch (cannot update running/completed/partial launches)

Parametersidrequirednamemediastatusplatformsmedia_modepersona_idproduct_urlmedia_assetsscheduled_dateattribution_modeplatform_contents+4 more

delete_launch

delete a launch (cannot delete running launches)

Parametersidrequired

publish_launch

publish a launch to all configured platforms (queued async)

Parametersidrequired

retry_launch

retry failed platforms for a launch. by default every failed platform is retried; pass `subreddit` to retry ONE reddit destination (leaving its siblings — succeeded or failed — untouched), and add `account_id` when that destination belongs to a secondary connected reddit account rather than your primary.

Parametersidrequiredsubredditaccount_id

generate_content

generate AI content for a launch's platforms using Claude

Parametersidrequiredplatforms

get_launch_analytics

get publishing analytics with per-post engagement metrics (likes, views, shares, etc.). metric fields vary by platform: facebook reports reactions, likes (mirroring reactions.total), comments and shares - it has no impressions or reach, and facebook story metrics are unavailable. an instagram story reports views, reach, replies and frames only while it is live (24 hours, no backfill); under 5 viewers it returns story_insights_withheld instead of numbers

Parametersidrequired

get_batch_launch_analytics

get cached analytics for multiple launches in one request (no live refresh, max 100 IDs)

Parametersidsrequired

get_launch_status

get detailed posting status with per-platform logs

Parametersidrequired

retry_launch_content

retry AI content generation for failed platforms (requires generate scope)

Parametersidrequiredplatforms

delete_post

Delete a single published post from its platform. Only works for Twitter, Facebook, LinkedIn, Reddit, and YouTube. Instagram and TikTok do not support API deletion.

Parameterslaunch_idrequiredposting_log_idrequired

delete_all_posts

Delete all published posts for a launch from their platforms. Only deletes from Twitter, Facebook, LinkedIn, Reddit, and YouTube. Instagram and TikTok posts are skipped (require manual deletion).

Parameterslaunch_idrequired

list_personas

list your personas with pagination

Parameterspagepage_size

create_persona

create a new persona for AI content generation tone/style

Parametersnamerequired

get_persona

get a persona by ID with analysis details and writing samples

Parametersidrequired

update_persona

update a persona's name or writing samples

Parametersidrequirednamebrand_kitcustom_samplesreddit_samplestiktok_samplestwitter_samplesfacebook_sampleslinkedin_samplesinstagram_samples

delete_persona

delete a persona

Parametersidrequired

analyze_persona

trigger AI analysis of a persona's writing style (queued async)

Parametersidrequiredplatformsinclude_custom_samples

finalize_persona

commit a persona's pending analysis after review (the analyzed voice becomes usable)

Parametersidrequiredpersona_analysispersona_analysis_structured

discard_persona_analysis

discard a persona's pending analysis without committing (preserves any previously saved analysis)

Parametersidrequired

list_connections

list your connected social media accounts. each row has a "platform" and an "entity_id" (null for your primary account on that platform, set for additional accounts). to target a specific account in create_launch when you have more than one on instagram / tiktok / youtube / twitter / reddit, pass "{platform}:{entity_id}" as a user_platform_accounts key (the bare "{platform}" key targets your primary). the same entity_id is what disconnect_connection and retry_launch take as account_id

Parameterspagepage_size

update_connection_profile

edit the connected account's profile ON the platform. youtube only today: sets the channel description (max 1,000 characters; an empty string clears it) via channels.update. instagram's api can read a profile but not write it, facebook page "about" needs a permission dropspace does not hold, and tiktok / x / linkedin expose no profile write - those return an error with the reason. requires the write scope.

Parametersplatformrequireddescriptionrequired

get_dropspace_status

check which platforms have a connected dropspace official account (requires read scope)

Takes no parameters.

get_usage

get your current plan, usage limits, and billing period (requires read scope)

Takes no parameters.

get_changelog

machine-readable release history (public) - version, date, type, summary, migration notes on breaking entries. the X-Notice header's structured backstory.

Takes no parameters.

generate_media

submit an AI image or video generation job for a launch. Returns 202 with a job_id; poll get_media_job for completion. Requires generate scope. script_video requires platform=instagram|tiktok and prompt is required (not just product_description). video and script_video only support 16:9 and 9:16 aspect ratios.

Parameterstyperequiredpromptoptionsplatformrequiredlaunch_idrequireduse_product_imageproduct_descriptionreference_image_url

get_media_job

poll the status of a media generation job. Returns the result_url when complete.

Parametersjob_idrequired

get_autopilot

get autopilot status: config, queued ideas, and drafts pending review. autopilot is the autonomous content engine that drafts and schedules posts nightly (pro/premium plans).

Takes no parameters.

configure_autopilot

create or update the autopilot config. merge semantics: only the fields you send change. enabling requires at least one platform with a connected account.

Parametersmodeenabledformatsrun_hourtimezonemin_queueplatformspersona_idproduct_urlmedia_sourceposting_timesproduct_brief+3 more

list_autopilot_review

list autopilot drafts awaiting approval (review mode). each item is a draft launch - approve, reject, or edit it via update_launch first.

Parameterspagepage_size

approve_autopilot_draft

approve an autopilot draft - schedules it for publishing (a stale scheduled date rolls forward to the next posting slot).

Parameterslaunch_idrequired

reject_autopilot_draft

reject an autopilot draft - deletes it and refunds the launch slot. optional feedback teaches future runs what to avoid.

Parametersfeedbacklaunch_idrequired

run_autopilot_now

trigger a manual autopilot run immediately instead of waiting for the nightly run. steps already completed today are skipped (limited to 2 per hour).

Takes no parameters.

list_autopilot_runs

recent autopilot run history - one row per run step (refresh_insights, generate_blueprints, schedule_slots) with stats and errors.

Parameterslimit

list_recommendations

list actionable recommendations computed from your organic post performance: winners to repost, cross-post, or boost, autopilot promote signals, and underperformer pause signals. dropspace sweeps post metrics every 30 minutes and compares each post to your own per-platform baseline.

Parameterspagestatuslaunch_idpage_size

apply_recommendation

apply a recommendation's one-click action. repost_winner and cross_post create a DRAFT launch seeded with the winning content (nothing publishes until scheduled); boost_winner creates a PAUSED meta boost and requires ad_account_id (activation, and therefore spend, is a separate step); promote_winner queues the winner into autopilot; pause_underperformer adds a standing directive to the autopilot config.

Parametersad_account_idrecommendation_idrequired

dismiss_recommendation

dismiss a pending recommendation so it stops showing everywhere.

Parametersrecommendation_idrequired

get_audience

follower counts + growth for every connected instagram / youtube / tiktok / twitter account and facebook page. one entry per ACCOUNT, not per platform: "entity_id" is null for your primary account on a platform and set for each additional one, so a user with two instagram accounts returns two instagram entries. counts come from each platform's official API and are cached for 15 minutes. youtube works differently: each youtube read spends a shared daily quota, so while you keep reading a creator's audience, their youtube count is refreshed in the background about once an hour, and an on-demand read re-fetches at most every 6 hours if that refresh is delayed; if the daily quota is exhausted, a youtube read returns the most recent successful count instead of null. "current.captured_at" is always when that count was actually read from the platform, never when it was served: use it to judge freshness. "series" is the stored history; youtube history is kept for 30 days (youtube's API storage limit), so youtube growth reaches back about 30 days whatever window_days says, while other platforms keep full history. growth is measured from the OLDEST stored point inside the window, which — because history points are recorded when you read, at most one per account per day — can be much younger than window_days: read "effective_window_days" (the span the delta actually covers) and "baseline_captured_at" before comparing growth across accounts. linkedin is not covered (its API exposes no personal-profile follower count). set include_instagram_insights to add instagram growth analytics to each instagram entry: follows, unfollows, net, and reach split into followers and non-followers per pacific-time day (the last 7 days are settled: false because instagram still revises them), followers_over_time (an estimate rebuilt back from the current count), weekly velocity with a trend, non_follower_reach_share, and contact-button taps. it reads up to 31 days per call, newest first, so a long

Parameterswindow_daysinclude_instagram_insights

Version history

1
  1. v2.54.0LatestNov 11, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts

    Declare a GitHub repository with a README, or serve resource_documentation in the OAuth protected-resource metadata.

  • License10 pts

    Declare a license in the repository or the registry entry.