npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@jclvsh/dropspace

v2.2.0

Published

MCP server and CLI for the Dropspace API

Readme

@jclvsh/dropspace

MCP server and CLI for the Dropspace API. Lets AI agents (Claude Code, Cursor) and humans manage launches, personas, platform connections, API keys, and webhooks.

Installation

npm install -g @jclvsh/dropspace

This installs two binaries:

  • dropspace — CLI for terminal use
  • dropspace-mcp — MCP server for AI agents

CLI

# set your API key
export DROPSPACE_API_KEY=ds_live_...

# manage launches
dropspace launches list
dropspace launches create -t "my launch" --platforms twitter,reddit --publish
dropspace launches status <id>
dropspace launches analytics <id>

# manage personas
dropspace personas list
dropspace personas create -n "my brand voice"

# check your key
dropspace keys me

# table output
dropspace --format table launches list

# full help
dropspace --help
dropspace launches --help

CLI Commands

| Group | Commands | Count | | ----------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----- | | launches | list, create, get, update, delete, publish, retry, generate, retry-content, analytics, batch-analytics, status, delete-post, delete-posts | 14 | | personas | list, create, get, update, delete, analyze | 6 | | connections | list | 1 | | keys | me, list, create, rename, revoke | 5 | | webhooks | list, create, get, update, delete, rotate-secret, deliveries | 7 | | status | dropspace official account connections | 1 | | usage | plan, limits, and billing period | 1 |

MCP Server Configuration

Environment Variables

| Variable | Required | Description | | ------------------- | -------- | --------------------------------------------------- | | DROPSPACE_API_KEY | Yes | Your Dropspace API key | | DROPSPACE_API_URL | No | API base URL (default: https://api.dropspace.dev) |

Note: the args use -p @jclvsh/dropspace dropspace-mcp to explicitly select the MCP-server bin. The package ships two binaries (dropspace for the CLI, dropspace-mcp for the MCP server), so a bare npx @jclvsh/dropspace would launch the CLI by default.

Claude Code

Add to your .claude/settings.json:

{
	"mcpServers": {
		"dropspace": {
			"command": "npx",
			"args": ["-y", "-p", "@jclvsh/dropspace", "dropspace-mcp"],
			"env": {
				"DROPSPACE_API_KEY": "ds_live_your_key_here"
			}
		}
	}
}

Cursor

Add to your .cursor/mcp.json:

{
	"mcpServers": {
		"dropspace": {
			"command": "npx",
			"args": ["-y", "-p", "@jclvsh/dropspace", "dropspace-mcp"],
			"env": {
				"DROPSPACE_API_KEY": "ds_live_your_key_here"
			}
		}
	}
}

Available Tools

Launches

| Tool | Description | | ---------------------- | -------------------------------------------------------------- | | list_launches | List your launches with pagination | | create_launch | Create a new launch with content, media, and account selection | | get_launch | Get a launch by ID with posting status | | update_launch | Update a launch's schedule, status, content, or media | | delete_launch | Delete a launch | | publish_launch | Publish a launch to all configured platforms | | retry_launch | Retry failed platforms for a launch | | generate_content | Generate AI content and video scripts for a launch | | retry_launch_content | Retry AI content generation for failed platforms | | get_launch_analytics | Get publishing analytics with per-post engagement metrics | | get_launch_status | Get detailed posting status with per-platform logs |

create_launch Parameters

| Parameter | Type | Required | Description | | ----------------------------- | ------------------ | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | title | string | Yes | Launch title | | product_description | string | Yes | Product description | | platforms | string[] | Yes | Platforms to publish to (1-9) | | product_url | string | No | Product URL | | scheduled_date | string | No | ISO 8601 datetime (15+ min in the future) | | persona_id | string | No | Persona ID for tone/style | | dropspace_platforms | string[] | No | Platforms to post via official dropspace accounts | | media_mode | string | No | "images" or "video" | | user_platform_accounts | object | No | Map of platform key to token_id (UUID). Simple keys: twitter, reddit, instagram, tiktok. LinkedIn: linkedin:personal or linkedin:organization:<org_id>. Facebook: facebook:page:<page_id> | | platform_contents | object | No | Per-platform content (mutually exclusive with custom_content) | | custom_content | string | string[] | No | Single content for all platforms, or array of tweets for twitter thread mode (mutually exclusive with platform_contents) | | custom_content_reddit_title | string | No | Reddit title (required with custom_content + reddit) | | media | object[] | No | Inline media, URL or base64 (1-10 items, mutually exclusive with media_assets) | | media_assets | object[] | No | Pre-uploaded media references (mutually exclusive with media) | | media_attach_platforms | string[] | No | Platforms to attach media to | | generate_ai_videos | string[] | No | Auto-generate AI videos ("instagram", "tiktok") |

update_launch Parameters

| Parameter | Type | Required | Description | | ------------------------ | -------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | id | string | Yes | Launch ID | | scheduled_date | string | null | No | ISO 8601 datetime or null to clear | | status | string | No | "draft", "manual", "trigger", "scheduled", "cancelled" | | platform_contents | object | No | Per-platform content overrides | | dropspace_platforms | string[] | No | Official dropspace account platforms | | user_platform_accounts | object | No | Map of platform key to token_id (UUID). Simple keys: twitter, reddit, instagram, tiktok. LinkedIn: linkedin:personal or linkedin:organization:<org_id>. Facebook: facebook:page:<page_id> | | media | object[] | No | Inline media (URL or base64, 1-10 items) | | media_assets | object[] | No | Pre-uploaded media references | | media_attach_platforms | string[] | No | Platforms to attach media to | | media_mode | string | No | "images" or "video" |

generate_content Parameters

| Parameter | Type | Required | Description | | ------------------------ | -------- | -------- | ------------------------------------------------------------------- | | id | string | Yes | Launch ID | | platforms | string[] | No | Platforms to generate for (defaults to all) | | generate_video_scripts | string[] | No | Platforms to generate video scripts for ("instagram", "tiktok") |

Personas

| Tool | Description | | ----------------- | ------------------------------------------------ | | list_personas | List your personas | | create_persona | Create a new persona for content tone/style | | get_persona | Get a persona by ID with analysis details | | update_persona | Update a persona's name or writing samples | | delete_persona | Delete a persona | | analyze_persona | Trigger AI analysis of a persona's writing style |

analyze_persona Parameters

| Parameter | Type | Required | Description | | ------------------------ | ------------- | -------- | ------------------------------------------ | | id | string (UUID) | Yes | Persona ID | | platforms | string[] | No | Specific platforms to analyze samples from | | include_custom_samples | boolean | No | Include custom writing samples in analysis |

update_persona Parameters

| Parameter | Type | Required | Description | | ------------------- | ------ | -------- | ----------------------------------- | | id | string | Yes | Persona ID | | name | string | No | New persona name (1-100 characters) | | custom_samples | array | No | Custom writing samples (max 50) | | twitter_samples | array | No | Twitter writing samples (max 50) | | reddit_samples | array | No | Reddit writing samples (max 50) | | facebook_samples | array | No | Facebook writing samples (max 50) | | instagram_samples | array | No | Instagram writing samples (max 50) | | tiktok_samples | array | No | TikTok writing samples (max 50) | | linkedin_samples | array | No | LinkedIn writing samples (max 50) |

Connections

| Tool | Description | | ------------------ | ----------------------------------------- | | list_connections | List your connected social media accounts |

Posts

| Tool | Description | | ------------------ | ------------------------------------------------------ | | delete_post | Delete a single published post from its platform | | delete_all_posts | Delete all published posts for a launch from platforms |

API Keys

| Tool | Description | | --------------------- | -------------------------------------------------- | | get_current_api_key | Get the current API key's info (no scope required) | | list_api_keys | List your API keys (requires admin scope) | | create_api_key | Create a new API key (raw key returned once) | | rename_api_key | Rename an API key | | revoke_api_key | Permanently revoke an API key |

create_api_key Parameters

| Parameter | Type | Required | Description | | --------- | -------- | -------- | ---------------------------------------------------------------------------------------------- | | name | string | Yes | Key name (1-100 characters) | | scopes | string[] | No | Permission scopes (defaults to all): read, write, delete, publish, generate, admin |

Webhooks

| Tool | Description | | ------------------------- | ------------------------------------------------------------ | | list_webhooks | List your webhooks | | create_webhook | Create a webhook endpoint (secret returned once) | | get_webhook | Get a webhook by ID | | update_webhook | Update a webhook's URL, events, or active status | | delete_webhook | Delete a webhook | | rotate_webhook_secret | Rotate a webhook's signing secret (new secret returned once) | | list_webhook_deliveries | List delivery attempts for a webhook |

create_webhook Parameters

| Parameter | Type | Required | Description | | --------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------- | | url | string | Yes | HTTPS webhook URL | | events | string[] | Yes | Events to subscribe to: launch.completed, launch.failed, launch.partial, media.ready, persona.analyzed, post.deleted |

update_webhook Parameters

| Parameter | Type | Required | Description | | --------- | ------------- | -------- | ----------------------------- | | id | string (UUID) | Yes | Webhook ID | | url | string | No | New HTTPS webhook URL | | events | string[] | No | New events to subscribe to | | active | boolean | No | Enable or disable the webhook |

Dropspace

| Tool | Description | | ---------------------- | -------------------------------------------------------- | | get_dropspace_status | Check which platforms have a connected dropspace account |

Usage

| Tool | Description | | ----------- | ------------------------------------------------------- | | get_usage | Get your current plan, usage limits, and billing period |

API Key & Scopes

Generate an API key at www.dropspace.dev/settings under the API section.

API keys support scoped permissions:

| Scope | Access | | ---------- | --------------------------------------------------------------- | | read | List and read launches, personas, connections, dropspace status | | write | Create and update launches, personas | | delete | Delete launches, personas | | publish | Publish and retry launches | | generate | Generate AI content, retry content generation | | admin | Manage API keys and webhooks |

Recommended Scopes by Use Case

| Use Case | Recommended Scopes | | ---------------- | --------------------------------------------------------- | | AI agents / MCP | read, write, generate | | CI/CD publishing | read, publish | | Monitoring | read | | Full management | read, write, delete, publish, generate, admin |

Webhook Events

| Event | Description | | ------------------ | ------------------------------------------------------------ | | launch.completed | All platforms finished posting successfully | | launch.failed | Launch posting failed on all platforms | | launch.partial | Launch posting succeeded on some platforms, failed on others | | media.ready | Media generation job completed | | persona.analyzed | Persona AI analysis completed | | post.deleted | A published post was deleted from its platform |

Development

# Install dependencies
npm install

# Build
npm run build

# Run
DROPSPACE_API_KEY=ds_live_... npm start