accueil / serveurs / Finance & Paiement / app.sprkly/sprkly
app.sprkly/sprkly
serveur MCP (Model Context Protocol) · sprkly-mcp 1.0.0
Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur.
Est-ce que app.sprkly/sprkly est sûr ?
Au dernier audit MCP Hub, le serveur MCP « app.sprkly/sprkly » est classé « Non encore testé ». Référencé dans l'annuaire. Seul le pentest comportemental fait foi, et il n'a pas encore été exécuté sur ce serveur. Le verdict est réévalué en continu ; consultez la fiche pour l'état à jour.
Méthode : MCP Hub analyse la description de chaque outil (couche 1) et, pour le verdict fort, exécute le serveur dans une micro-VM isolée avec leurres et réseau bloqué (couche 2). On publie des noms et des compteurs, jamais le contenu brut renvoyé par un outil.
Les 19 outils
- sprkly_add_media_from_url≈ 228 tokens
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.
Paramètres, retour & exemple (1)
Paramètresurl· string · requis
Direct https link to the image or video file. Must be publicly reachable.
Exemple d'appel{"name": "sprkly_add_media_from_url", "arguments": {"url": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_delete_scheduled_post≈ 155 tokens
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.
Paramètres, retour & exemple (1)
Paramètrespost_id· string · requis
The scheduled post id to delete.
Exemple d'appel{"name": "sprkly_delete_scheduled_post", "arguments": {"post_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_draft_post≈ 300 tokens
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.
Paramètres, retour & exemple (5)
Paramètresname· string · optionnel
Optional label for the draft.tone· string · optionnel · casual | professional | promotional
Voice for the draft.platforms· array · optionnel
Intended platforms, used to pick the caption length ceiling.profile_ids· array · optionnel
Optional accounts to pre-select on the draft. From sprkly_list_profiles.content_hint· string · requis
What the post should be about: a topic, phrase, or key message.
Exemple d'appel{"name": "sprkly_draft_post", "arguments": {"content_hint": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_export_automation_template≈ 173 tokens
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. (coming soon, pending Meta review)
Paramètres, retour & exemple (1)
Paramètresautomation_id· string · requis
The automation id to export.
Exemple d'appel{"name": "sprkly_export_automation_template", "arguments": {"automation_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_get_account_summary≈ 92 tokens
Plan tier, trial state, connected account count, scheduled post counts by status, and the next three upcoming posts. Never returns tokens or secrets.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "sprkly_get_account_summary", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_get_analytics≈ 416 tokens
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 reach, saves, shares and views only for accounts connected or reconnected with the insights permission, and likes and comments only for the rest. Threads and Facebook produce no metrics at all. Read `coverage` before comparing platforms, and never rank platforms on a metric one of them lacks.
Paramètres, retour & exemple (2)
Paramètresdays· integer · optionnel
How many days back to analyse. Default 30. Free plans read at most 30 days; paid plans read up to 730.profile_ids· array · optionnel
Limit to these accounts. Omit for every account this connection can see.
Exemple d'appel{"name": "sprkly_get_analytics", "arguments": {"days": 1, "profile_ids": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_get_billing_summary≈ 95 tokens
Subscription status, current plan, period end, purchased handles and the last few billing events. No payment method details; the Stripe customer id is truncated.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "sprkly_get_billing_summary", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_get_post_approval_status≈ 133 tokens
Whether a post is awaiting the owner's approval, approved or rejected, with the reviewer's notes, who asked, and timestamps. A rejected post is a draft again: fix it, then request approval again.
Paramètres, retour & exemple (1)
Paramètrespost_id· string · requis
The scheduled post id.
Exemple d'appel{"name": "sprkly_get_post_approval_status", "arguments": {"post_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_get_post_status≈ 167 tokens
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.
Paramètres, retour & exemple (1)
Paramètrespost_id· string · requis
The scheduled post id.
Exemple d'appel{"name": "sprkly_get_post_status", "arguments": {"post_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_get_tiktok_posting_options≈ 190 tokens
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.
Paramètres, retour & exemple (1)
Paramètresprofile_id· string · requis
The TikTok profile id to query, from sprkly_list_profiles.
Exemple d'appel{"name": "sprkly_get_tiktok_posting_options", "arguments": {"profile_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_import_automation_template≈ 342 tokens
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 trigger that watches one post (a keyword on a post, or every comment on a post) needs post_id as well. Without one it saves as a draft that sends nothing until a post is chosen. A keyword on any post and a Profile DM need no post_id. A template that DMs every commenter on the whole account is turned off and is refused. (coming soon, pending Meta review)
Paramètres, retour & exemple (3)
Paramètrespost_id· string · optionnel
The published post to watch. Only for a trigger that watches one post. Leave it out for a keyword on any post or a Profile DM.template· object · requis
The template, as an object or as the file text.profile_id· string · optionnel
The Instagram account to set it up on. Leave this out to only check the template.
Exemple d'appel{"name": "sprkly_import_automation_template", "arguments": {"template": {}}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_list_connected_social_accounts≈ 125 tokens
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.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "sprkly_list_connected_social_accounts", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_list_profiles≈ 83 tokens
The profile ids needed to target a post, with each one's platform and handle. Call this before sprkly_schedule_post.
Paramètres, retour & exemple (0)
Exemple d'appel{"name": "sprkly_list_profiles", "arguments": {}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_list_scheduled_posts≈ 187 tokens
The post queue, newest first, with a caption preview, targets, status and failure reason. Supports a status filter and cursor pagination.
Paramètres, retour & exemple (3)
Paramètreslimit· integer · optionnel
Maximum posts to return.cursor· string · optionnel
Pagination cursor. Pass the nextCursor value from a previous response.status· string · optionnel · draft | pending_approval | scheduled | posted | failed
Filter by status.
Exemple d'appel{"name": "sprkly_list_scheduled_posts", "arguments": {"limit": 1, "cursor": "texte", "status": "draft"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_request_post_approval≈ 274 tokens
Hold a draft or scheduled post for the owner's approval. Moves it to pending_approval, where it never publishes on its own, emails the owner an Approve link, and returns an approval id to poll with sprkly_get_post_approval_status. Asking again for a post that is already waiting returns the same request. Approved posts go back to scheduled (a post past its time goes out in about 2 minutes); rejected posts become drafts with the owner's notes. To hold a NEW post, pass requires_approval to sprkly_schedule_post instead. Power plan only: other plans get upgrade_required.
Paramètres, retour & exemple (2)
Paramètresnote· string · optionnel
Optional note to the owner, shown in the approval email.post_id· string · requis
The draft or scheduled post id to hold for approval.
Exemple d'appel{"name": "sprkly_request_post_approval", "arguments": {"post_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_schedule_post≈ 1739 tokens
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.
Paramètres, retour & exemple (13)
Paramètrestitle· string · optionnel
Post title. Required for YouTube (max 100 characters) and TikTok (max 150 characters).caption· string · optionnel
Post caption, max 2200 characters.category· string · optionnel
Optional content category, e.g. "fitness".media_id· string · optionnel
Id of a single media file already uploaded to sprkly. Shorthand for a one-item media_ids.media_ids· array · optionnel
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 a link the user just gave you, media_urls is fewer steps. Every photo in a set must be the SAME shape or the call is refused: export them all at 1080x1920 (9:16), 1080x1440 (3:4), 1080x1350 (4:5) or 1080x1080 (1:1). Instagram takes at most 10 slides; TikTok photo sets take up to 35.platforms· array · optionnel
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.media_urls· array · optionnel
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 file into its own storage while scheduling, so a link works there too and any problem with it is reported now, in this call. Google Drive and Dropbox share links are converted automatically. JPEG, PNG, WebP, GIF, MP4, MOV and WebM only: AVIF and HEIC (the iPhone camera default) are refused with re-export instructions, because sprkly cannot convert them. Each file must be publicly reachable and under 50 MB.profile_ids· array · optionnel
Specific accounts to publish to, from sprkly_list_profiles. When given, this list IS the target set — platforms are not fanned out.all_accounts· boolean · optionnel
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.approval_note· string · optionnel
Optional note to the owner, shown in the approval email. Only used with requires_approval.platform_meta· object · optionnel
Platform-specific publishing options, keyed by platform.scheduled_time· string · optionnel
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 unless the user wants it published immediately. sprkly_get_analytics can suggest one.requires_approval· boolean · optionnel
Hold the post until the owner approves it. It is saved as pending_approval and never publishes on its own; the owner gets an email with an Approve link and can also approve or reject in the sprkly calendar. Poll sprkly_get_post_approval_status for the answer. Power plan only: other plans get upgrade_required.
Exemple d'appel{"name": "sprkly_schedule_post", "arguments": {"title": "texte", "caption": "texte", "category": "texte", "media_id": "texte", "media_ids": [], "platforms": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_update_scheduled_post≈ 368 tokens
Change the caption, publish time, target accounts or attached media on a post that has not published yet. Posts with status "scheduled", "pending_approval" or "draft" can be edited, and the status never changes here: editing a post that waits for approval does not approve it, and a rejected post stays a draft until you request approval again. A post waiting for approval can only target one account.
Paramètres, retour & exemple (6)
Paramètrescaption· string · optionnel
Replacement caption, max 2200 characters.post_id· string · requis
The scheduled post id.media_id· string · optionnel
Replacement sprkly media file id. Shorthand for a one-item media_ids.media_ids· array · optionnel
Replacement media, in slide order. Replaces the whole set, it does not append — pass every slide you want the post to keep.profile_ids· array · optionnel
Replacement target accounts. Platforms are re-derived from them.scheduled_time· string · optionnel
New ISO 8601 publish time. Must be in the future.
Exemple d'appel{"name": "sprkly_update_scheduled_post", "arguments": {"post_id": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_upload_media≈ 579 tokens
Upload files the user has on their machine (slides, photos, a short video) into sprkly and get a media_id for each. LINK MODE is the way to send a file from disk. Send files, one entry per file with its filename, sha256 and size_bytes. You get back one uploadUrl per file. PUT the bytes to it: curl -sS -X PUT --data-binary @01.jpg "<uploadUrl>". Each PUT answers JSON with mediaId. Links last 15 minutes. Up to 50 MB per file and 35 files per call. The bytes never pass through you, so a whole carousel costs a few hundred tokens. INLINE MODE is for tiny files only (a few KB): data_base64 plus filename, 25 MB at most. base64 costs about one token per character, so never inline a real slide. When files is sent, data_base64 and filename are ignored. For a public link use media_urls on sprkly_schedule_post instead. The same bytes sent twice return the same media_id.
Paramètres, retour & exemple (4)
Paramètresfiles· array · optionnel
LINK MODE. One entry per file, in slide order. Get the values in Bash: sha256sum 01.jpg (first 64 characters) and stat -c %s 01.jpg. 1 to 35 entries.filename· string · optionnel
INLINE MODE. The file name, for example 01.jpg. Used in the response and in error messages. The bytes decide the real type. Ignored when files is sent.data_base64· string · optionnel
INLINE MODE, tiny files only. The file contents, base64 encoded. Standard or URL-safe alphabet, with or without a data: prefix. Ignored when files is sent.content_type· string · optionnel
INLINE MODE. Optional MIME hint such as image/jpeg. sprkly sniffs the bytes and that wins.
Exemple d'appel{"name": "sprkly_upload_media", "arguments": {"files": [], "filename": "texte", "data_base64": "texte", "content_type": "texte"}}Exemple de retour{"content": [{"type": "text", "text": "…"}]} - sprkly_validate_post_policy≈ 332 tokens
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.
Paramètres, retour & exemple (6)
Paramètrestitle· string · optionnel
Post title. Required for YouTube, max 100 characters.caption· string · requis
The caption to check.hashtags· array · optionnel
Hashtags posted alongside the caption, if they are not already in it.platforms· array · requis
Target platforms to check against.platformMeta· object · optionnel
Platform-specific publishing options, keyed by platform.mediaUrlsCount· integer · optionnel
How many images or videos will be attached. Instagram and TikTok require at least one.
Exemple d'appel{"name": "sprkly_validate_post_policy", "arguments": {"caption": "texte", "platforms": []}}Exemple de retour{"content": [{"type": "text", "text": "…"}]}
C'est votre serveur ?
Revendiquez-le sur l'espace créateur (preuve GitHub, domaine ou npm) pour afficher le badge « propriétaire vérifié » et lancer un pentest comportemental à la demande afin d'obtenir le badge « Vérifié ».