Reference
MCP tools reference
All 25 tools the FavStash MCP endpoint exposes to your AI — grouped by stash, scheduling, and analytics.
The hosted MCP endpoint exposes 25 tools, all owner-scoped to the token holder. Your AI discovers them automatically via tools/list — this page is the human-readable map.
Setup instructions live in AI Connect. Tool calls require a paid plan (Doom Scroller or Creator Pro — an optional 3-day free trial is available once per account). Per-plan caps apply; limit rejections carry a
LIMIT_REACHED_*code plus anupgradeUrl, andget_entitlementsreports your caps and live usage.
Stash tools#
| Tool | What it does | Key params |
|---|---|---|
save_url | Save a URL to your stash; enrichment (title, transcript, summary, indexing) runs async — poll get_item for status | url (required), collectionId, userNote |
search_items | Semantic search across your saves — understands meaning, @handles, and platform words in the query | query (required), sourcePlatform, collectionId, dateFrom/dateTo, tagIds, limit (max 10) |
list_recent_items | Pure time-ordered listing, newest first — cheaper than search when there's no semantic intent | since, until, collectionId, limit (max 100) |
get_item | Fetch one save by id, including transcript and long text (truncated to 2,000 chars unless asked) | id (required), includeFullText, textLimit (max 50,000) |
list_collections | List your collections with names, descriptions, colors, and icons | limit |
list_tags | List your tags — call before passing tagIds to search_items | limit |
get_stash_stats | Counts grouped by platform, enrichment status, source type, and collection — "how many reels did I save this week?" without fetching content | since, until, collectionId |
Scheduling tools#
| Tool | What it does | Key params |
|---|---|---|
get_entitlements | Report the current plan and live usage/caps before batch work | — |
list_channels | List connected channels with connection ids and status (including reconnect-needed flags) | — |
tiktok_creator_info | Read live TikTok Direct Post capabilities and privacy choices before scheduling | connectionId (required) |
schedule_post | Schedule, draft, or immediately publish a post to one or more channels; media must be public HTTPS URLs | connectionIds (required), content, media[], exactly one of publishAt / postNow / draft, per-platform settings |
get_scheduled_post | Fetch one post — state, published URL, or error detail; poll after postNow | id (required) |
list_scheduled_posts | List posts in a publish-time range, filterable by state or channel | from, to, state, connectionId, limit (max 500) |
update_scheduled_post | Edit a queued or draft post's content, media, settings, or publish time | id (required), publishAt, content, media[], settings |
cancel_scheduled_post | Cancel a queued or draft post (published posts can't be cancelled) | id (required) |
upload_media_from_url | Import media from any public URL into FavStash's post storage and get back a platform-safe CDN URL (max 200MB; JPEG/PNG/WebP/MP4/MOV) | url (required) |
instagram_audio_search | Search Instagram audio for the dormant Facebook-login flow; unavailable in the standalone launch path | connectionId, search query |
instagram_content_publishing_limit | Check Instagram's current publishing quota for a connection | connectionId (required) |
Analytics tools#
| Tool | What it does | Key params |
|---|---|---|
get_channel_analytics | Account-level metrics for one channel over a lookback window — quick numbers per platform | connectionId (required), days (default 30, max 90) |
get_post_analytics | Per-post performance for one published FavStash post — views, likes, reach/saves (IG), shares | postId (required) |
get_instagram_media_analytics | Analyze owned Instagram Reels/posts, including media not published through FavStash; target one media or compare recent content | connectionId (required), mediaId, days, mediaLimit |
get_instagram_comments | Read owned-media comments for feedback and sentiment analysis; never replies, moderates, or sends DMs | connectionId (required), postId or mediaId, days, mediaLimit, commentLimit |
instagram_analytics_report | Full IG report: daily reach series, period totals, follower + engaged-audience demographics, recent published media with per-media insights | connectionId (required), days, limit, includePostAnalytics |
youtube_analytics_report | Full YouTube report: chart-ready daily metrics (views, watch time, avg view %, subs gained/lost), retention curves for recent FavStash-published videos | connectionId (required), days, limit, includePostAnalytics |
tiktok_analytics_report | Full TikTok report: current counters (followers, likes, videos) plus aggregates across the 20 most recent videos and per-video stats | connectionId (required), days, limit, includePostAnalytics |
Conventions#
- Timestamps are UTC ISO 8601 everywhere (
2026-07-10T18:30:00Z). - Post states:
QUEUE,PROCESSING,PUBLISHED,ERROR,CANCELLED,DRAFT. - Owner enforcement is server-side — tools never accept a user id in their arguments; identity comes from your token, full stop.
- Long text is truncated by default to keep responses token-friendly; every item advertises which text fields it carries (
availableTextFields) so agents know when a full-text re-fetch is worth it.