# app.sprkly/sprkly (remote · sprkly.app)

Schedule, publish and track social posts across TikTok, Instagram, Threads and YouTube Shorts.

- Trust score: 94/100 (high trust)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-09-20

## Components

- remote · `sprkly.app`: 94/100 (this document), [markdown](https://verifymcp.io/servers/app-sprkly-sprkly/api-mcp.md), [page](https://verifymcp.io/servers/app-sprkly-sprkly/api-mcp)

## Channel facts

- Endpoint: `https://sprkly.app/api/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-09-20.

- **Endpoint Security**: 94/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 80/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 3137 tokens (~174/item across 18 items; 18 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 100/100
  - No destabilizing schema changes in the last 30 days.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - All 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.
  - An AI judge read all 19 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the app.sprkly/sprkly MCP server?

app.sprkly/sprkly is a hosted endpoint at https://sprkly.app/api/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http app-sprkly-sprkly 'https://sprkly.app/api/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "app-sprkly-sprkly": {
      "url": "https://sprkly.app/api/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "app-sprkly-sprkly": {
      "type": "http",
      "url": "https://sprkly.app/api/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.app-sprkly-sprkly]
url = "https://sprkly.app/api/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "app-sprkly-sprkly": {
      "type": "remote",
      "url": "https://sprkly.app/api/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add app-sprkly-sprkly --url 'https://sprkly.app/api/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  app-sprkly-sprkly:
    url: "https://sprkly.app/api/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "app-sprkly-sprkly": {
      "Transport": "http",
      "Url": "https://sprkly.app/api/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add app-sprkly-sprkly -t streamable-http -u 'https://sprkly.app/api/mcp'
```

### Other

```json
{
  "mcpServers": {
    "app-sprkly-sprkly": {
      "type": "http",
      "url": "https://sprkly.app/api/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-09-20 (score 94, 0)

- [security] Stability: 0.97 → pass

### 2026-09-19 (score 94, +1)

No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-17 (score 93, +1)

No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-15 (score 92, +1)

No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-13 (score 91, +1)

No change was recorded against any check on this day. Stability & Change Management went from 73 to 77. That category is still filling its 30-day observation window: 22 days of observed history at the previous scan, 23 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-11 (score 90, +1)

No change was recorded against any check on this day. Stability & Change Management went from 67 to 70. That category is still filling its 30-day observation window: 20 days of observed history at the previous scan, 21 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-09 (score 89, +1)

No change was recorded against any check on this day. Stability & Change Management went from 60 to 63. That category is still filling its 30-day observation window: 18 days of observed history at the previous scan, 19 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-07 (score 88, +1)

No change was recorded against any check on this day. Stability & Change Management went from 53 to 57. That category is still filling its 30-day observation window: 16 days of observed history at the previous scan, 17 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (18)

### `sprkly_add_media_from_url` (~134 tokens)

Add media from a URL

Download an image or video from a public link into sprkly and get a media_id back, for reuse across several posts. You usually do NOT need this: sprkly_schedule_post accepts a link directly in media_urls and pulls it into storage itself whenever the target platform requires that. Reach for this tool only when the user wants one media_id to attach to more than one post. Google Drive and Dropbox share links are converted automatically; the file must be shared publicly. Limit 50 MB.

Input parameters:

- `url` (string, required): Direct https link to the image or video file. Must be publicly reachable.

### `sprkly_delete_scheduled_post` (~73 tokens)

Delete a scheduled post

Remove a post from the queue. This is a soft delete. The user can restore it from the Deleted tab for 30 days. Posts that have already published cannot be deleted this way. Always confirm with the user before calling.

Input parameters:

- `post_id` (string, required): The scheduled post id to delete.

### `sprkly_draft_post` (~146 tokens)

Draft a post

Compose a caption from a content hint and save it as a draft in sprkly, shaped to the tightest caption limit among the target platforms. Returns a draft id; the draft appears under /drafts for the user to review.

Input parameters:

- `content_hint` (string, required): What the post should be about: a topic, phrase, or key message.
- `name` (string): Optional label for the draft.
- `platforms` (array): Intended platforms, used to pick the caption length ceiling.
- `profile_ids` (array): Optional accounts to pre-select on the draft. From sprkly_list_profiles.
- `tone` (string): Voice for the draft.

### `sprkly_export_automation_template` (~87 tokens)

Export an auto reply template

Download one Instagram auto reply as a shareable template. The file holds the trigger, the keyword and the message, and never a post id, a profile id or any account details, so it is safe to send to someone else. An auto reply that is still a draft has nothing published to export.

Input parameters:

- `automation_id` (string, required): The automation id to export.

### `sprkly_get_account_summary` (~41 tokens)

Get account summary

Plan tier, trial state, connected account count, scheduled post counts by status, and the next three upcoming posts. Never returns tokens or secrets.

### `sprkly_get_analytics` (~235 tokens)

Get post performance

How the user's published posts actually performed: total views and engagement, week-on-week / month-on-month / year-on-year change, their best posting hour, weekday and content category, and the top posts behind those numbers. Every recommendation carries a `samples` count — say how thin the evidence is rather than presenting a one-post pattern as a finding. Every period-on-period percentage carries the post counts and raw totals it came from: quote those, because a big percentage off a tiny base is not a big change. `topPosts` is grouped by platform and ranked only inside each group; `relativeToPlatformBest` compares a post with others on its OWN platform and never across platforms, so use the absolute `value` and its `metric` label to weigh one platform against another. Instagram contributes likes and comments only, and Threads and Facebook produce no metrics at all, so read `coverage` before comparing platforms.

Input parameters:

- `days` (integer): How many days back to analyse. Default 30.
- `profile_ids` (array): Limit to these accounts. Omit for every account this connection can see.

### `sprkly_get_billing_summary` (~43 tokens)

Get billing summary

Subscription status, current plan, period end, purchased handles and the last few billing events. No payment method details; the Stripe customer id is truncated.

### `sprkly_get_post_approval_status` (~44 tokens)

Get approval status

Whether a post is awaiting human review, approved or rejected, including reviewer notes and timestamps.

Input parameters:

- `post_id` (string, required): The scheduled post id.

### `sprkly_get_post_status` (~100 tokens)

Get post status

Full detail for one post: status, targets, scheduled and published times, permalink, and the failure reason if it did not publish. Media comes back as mediaIds in slide order, not as links. Ids and profile ids are plumbing: talk to the user about accounts by handle and about posts by their caption, and do not read ids out unless they ask for one.

Input parameters:

- `post_id` (string, required): The scheduled post id.

### `sprkly_get_tiktok_posting_options` (~112 tokens)

Get TikTok posting options

This creator's allowed TikTok privacy levels and interaction settings, fetched live from TikTok. You usually do NOT need this before scheduling: sprkly_schedule_post checks privacyLevel against this same list itself and, when it is wrong, returns the levels that would work. Call this only when the user asks what their options are, or you want to offer them a choice.

Input parameters:

- `profile_id` (string, required): The TikTok profile id to query, from sprkly_list_profiles.

### `sprkly_import_automation_template` (~161 tokens)

Import an auto reply template

Read an auto reply template, and optionally set it up. With no profile_id NOTHING is written: the template is checked and handed back, which is the safe first call. With a profile_id the automation is created, and it goes live when the trigger can be satisfied. A keyword or every-comment trigger needs post_id as well; without one it saves as a draft that sends nothing until a post is chosen.

Input parameters:

- `post_id` (string): The published post to watch. Needed for a keyword or every-comment trigger.
- `profile_id` (string): The Instagram account to set it up on. Leave this out to only check the template.
- `template` (object, required): The template, as an object or as the file text.

### `sprkly_list_connected_social_accounts` (~65 tokens)

List connected accounts

Every ACTIVE social account linked to this sprkly account: platform, handle, follower count, and whether it needs reconnecting. Disconnected/inactive accounts are never listed, so any profileId returned here is a valid posting target. Never returns access tokens.

### `sprkly_list_profiles` (~36 tokens)

List posting targets

The profile ids needed to target a post, with each one's platform and handle. Call this before sprkly_schedule_post.

### `sprkly_list_scheduled_posts` (~80 tokens)

List scheduled posts

The post queue, newest first, with a caption preview, targets, status and failure reason. Supports a status filter and cursor pagination.

Input parameters:

- `cursor` (string): Pagination cursor. Pass the nextCursor value from a previous response.
- `limit` (integer): Maximum posts to return.
- `status` (string): Filter by status.

### `sprkly_request_post_approval` (~86 tokens)

Request human approval

Submit a draft post for human review. Moves the post to pending_approval and returns an approval id to poll with sprkly_get_post_approval_status. Use this when the user wants a person to sign off before anything publishes.

Input parameters:

- `note` (string): Optional context for the reviewer.
- `post_id` (string, required): The draft post id to submit.

### `sprkly_schedule_post` (~817 tokens)

Schedule a post

Queue a post for publishing, in ONE call. Attach media by passing the user's link straight to media_urls: sprkly downloads it into storage itself for the platforms that need that, so no upload tool has to run first. Runs the same quota, duplicate-content and platform pre-flight checks as the sprkly app. Instagram and TikTok require media at submission time; YouTube and TikTok require a title, and TikTok also requires platform_meta.tiktok.privacyLevel — just send the level the user asked for and this tool names the allowed values if it is not one of them. It reads the real bytes of the media and the response says what will actually publish on each platform (a Reel, a 3-slide carousel, a photo set, a Page feed video) plus anything worth passing on: relay that to the user. Confirm the date, time and target accounts with the user first. If a target platform has more than one connected account and profile_ids is not given, the tool returns needsAccountChoice with the options instead of scheduling — put that choice to the user, then re-call.

Input parameters:

- `all_accounts` (boolean): Explicitly post to EVERY connected account on every listed platform, skipping the needsAccountChoice question. Only pass true when the user has said they want all accounts.
- `caption` (string): Post caption, max 2200 characters.
- `category` (string): Optional content category, e.g. "fitness".
- `media_id` (string): Id of a single media file already uploaded to sprkly. Shorthand for a one-item media_ids.
- `media_ids` (array): Ids of media files already uploaded to sprkly, in slide order. Array order is the published order. Use these when the user already has media in sprkly, or when one file is going on several posts; for…
- `media_urls` (array): Publicly reachable image or video URLs to attach, in slide order. Pass links through for ANY platform. Instagram and Threads fetch them directly; for TikTok, YouTube and Facebook sprkly downloads the…
- `platform_meta` (object): Platform-specific publishing options, keyed by platform.
- `platforms` (array): Platforms to publish to. A platform with exactly one connected account is targeted directly; one with several makes the tool answer needsAccountChoice so the user can pick.
- `profile_ids` (array): Specific accounts to publish to, from sprkly_list_profiles. When given, this list IS the target set — platforms are not fanned out.
- `scheduled_time` (string): ISO 8601 timestamp to publish at. Must be in the future. If omitted the post goes out on the next publisher run, about a minute from now — there is no smart slot-picking, so pass an explicit time unl…
- `title` (string): Post title. Required for YouTube (max 100 characters) and TikTok (max 150 characters).

### `sprkly_update_scheduled_post` (~170 tokens)

Reschedule or edit a post

Change the caption, publish time, target accounts or attached media on a post that has not published yet. Only posts with status "scheduled" can be edited.

Input parameters:

- `caption` (string): Replacement caption, max 2200 characters.
- `media_id` (string): Replacement sprkly media file id. Shorthand for a one-item media_ids.
- `media_ids` (array): Replacement media, in slide order. Replaces the whole set, it does not append — pass every slide you want the post to keep.
- `post_id` (string, required): The scheduled post id.
- `profile_ids` (array): Replacement target accounts. Platforms are re-derived from them.
- `scheduled_time` (string): New ISO 8601 publish time. Must be in the future.

### `sprkly_validate_post_policy` (~163 tokens)

Validate against platform rules

Check a caption against each target platform's posting rules before scheduling: caption length, media requirements, hashtag ceilings, whether links are clickable, required YouTube titles, and PII or prohibited-content warnings. Pure analysis. Writes nothing.

Input parameters:

- `caption` (string, required): The caption to check.
- `hashtags` (array): Hashtags posted alongside the caption, if they are not already in it.
- `mediaUrlsCount` (integer): How many images or videos will be attached. Instagram and TikTok require at least one.
- `platformMeta` (object): Platform-specific publishing options, keyed by platform.
- `platforms` (array, required): Target platforms to check against.
- `title` (string): Post title. Required for YouTube, max 100 characters.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/app-sprkly-sprkly/api-mcp#diagnostics

## Score history

- 2026-09-20: 94
- 2026-09-19: 94
- 2026-09-18: 93
- 2026-09-17: 93
- 2026-09-16: 92
- 2026-09-15: 92
- 2026-09-14: 91
- 2026-09-13: 91
- 2026-09-12: 90
- 2026-09-11: 90
- 2026-09-10: 89
- 2026-09-09: 89
- 2026-09-08: 88
- 2026-09-07: 88
- 2026-09-06: 87
- 2026-09-05: 87
- 2026-09-04: 87
- 2026-09-03: 86
- 2026-09-02: 86
- 2026-09-01: 84
- 2026-08-31: 83
- 2026-08-30: 83
- 2026-08-29: 82
- 2026-08-28: 82
- 2026-08-27: 81
- 2026-08-26: 81
- 2026-08-25: 81
- 2026-08-24: 80
- 2026-08-23: 80
- 2026-08-22: 79

## Common questions

### What is the app.sprkly/sprkly MCP server?

app.sprkly/sprkly is an MCP server listed in the public MCP registry as app.sprkly/sprkly. Schedule, publish and track social posts across TikTok, Instagram, Threads and YouTube Shorts. This page covers its hosted endpoint (https://sprkly.app/api/mcp).

### Is the app.sprkly/sprkly MCP server safe to use?

app.sprkly/sprkly scores 94 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the app.sprkly/sprkly MCP server expose?

app.sprkly/sprkly exposes 18 tools: sprkly_add_media_from_url, sprkly_delete_scheduled_post, sprkly_draft_post, sprkly_export_automation_template, sprkly_get_account_summary, and 13 more. Their descriptions and schemas cost roughly 2,593 tokens of context every time the server is loaded.

### Does the app.sprkly/sprkly MCP server require authentication?

Yes. app.sprkly/sprkly asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

### Is the app.sprkly/sprkly MCP server still maintained?

app.sprkly/sprkly is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://sprkly.app/api/mcp
- Repository: https://github.com/YOUR_GH_USERNAME/sprkly-mcp
- Website: https://sprkly.app/
- Changelog RSS feed: https://verifymcp.io/servers/app-sprkly-sprkly/api-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/app-sprkly-sprkly/api-mcp.json
- HTML version of this page: https://verifymcp.io/servers/app-sprkly-sprkly/api-mcp
