Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

API Direct

REMOTE · APIDIRECT.IO

Search social media, news, forums and Google Maps: LinkedIn, X, Reddit, TikTok, YouTube.

Available components

−1 this week 85 Trust /100

Last scanned (4 hours ago)

Scores higher than 91% of remote servers

Reachable. Last reached 5 Nov 2026.

Category News and Social

Trust breakdown (7 categories)

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. How we score → Why this is hard to score →

Endpoint Security80
Transport & Reachability100
Schema Quality & AI Usability78
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 27169 tokens (~187/item across 145 items; 145 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management97
  • Stability observed for 29 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 145 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 146 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities40
  • Spec-recency check failed: implements MCP spec 2025-03-26; the latest is 2026-07-28. See how to fix → Fail
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 −1
    • Stability: pass → 0.97 functional
  • 29 Oct 26 0
    • “search_tiktok” reworded the description of “region” cosmetic

    1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.

  • 28 Oct 26 0
    • Tool “search_threads” rewrote its description, which is the text the model reads security
    • Tool “search_twitter” rewrote its description, which is the text the model reads security
    • Tool “threads_user_posts” rewrote its description, which is the text the model reads security
    • Tool “twitter_tweet_details” rewrote its description, which is the text the model reads security
  • 27 Oct 26 0
    • Tool “facebook_group_posts” rewrote its description, which is the text the model reads security
    • Tool “facebook_page_posts” rewrote its description, which is the text the model reads security
    • Tool “search_facebook_posts” rewrote its description, which is the text the model reads security
    • Tool “youtube_video_details” rewrote its description, which is the text the model reads security
  • 20 Oct 26 0
    • Tool “reddit_post_comments” rewrote its description, which is the text the model reads security
    • Tool “search_threads” rewrote its description, which is the text the model reads security
    • Tool “threads_user_posts” rewrote its description, which is the text the model reads security
    • “search_threads” added an optional parameter “pages” cosmetic
    • “threads_user_posts” added an optional parameter “pages” cosmetic
    • “reddit_post_comments” reworded the description of “pages” cosmetic
  • 19 Oct 26 0
    • Tool “search_reddit” rewrote its description, which is the text the model reads security
    • Tool “search_reddit_comments” rewrote its description, which is the text the model reads security
    • Tool “search_reddit_users” rewrote its description, which is the text the model reads security
    • Schema quality: 24018 → 26938 ▼ functional
    • New tool “reddit_post_comments” functional
    • New tool “reddit_post_crossposts” functional
    • New tool “reddit_post_details” functional
    • New tool “reddit_subreddit_details” functional
    • New tool “reddit_subreddit_posts” functional
    • New tool “reddit_subreddit_rules” functional
    • New tool “reddit_trending” functional
    • New tool “reddit_user_comments” functional
    • New tool “reddit_user_posts” functional
    • New tool “reddit_user_profile” functional
    • New tool “search_reddit_subreddits” functional
    • “search_reddit” added an optional parameter “include_nsfw” cosmetic
    • “search_reddit” added an optional parameter “subreddit” cosmetic
    • “search_reddit_comments” added an optional parameter “subreddit” cosmetic
    • “search_reddit_users” added an optional parameter “pages” cosmetic
    • “search_reddit” reworded the description of “posted_ago” cosmetic
    • “search_reddit” reworded the description of “sort_by” cosmetic
  • 14 Oct 26 0
    • Schema quality: 20999 → 24018 ▼ functional
    • New tool “search_tiktok_hashtags” functional
    • New tool “tiktok_comment_replies” functional
    • New tool “tiktok_hashtag_details” functional
    • New tool “tiktok_hashtag_videos” functional
    • New tool “tiktok_music_details” functional
    • New tool “tiktok_music_videos” functional
    • New tool “tiktok_playlist_details” functional
    • New tool “tiktok_playlist_videos” functional
    • New tool “tiktok_user_followers” functional
    • New tool “tiktok_user_following” functional
    • New tool “tiktok_user_likes” functional
    • New tool “tiktok_user_stories” functional
    • New tool “tiktok_user_videos” functional
    • New tool “tiktok_video_comments” functional
  • 13 Oct 26 +1
    • Judged manipulation: unverified → pass ▲ security
    • The server rewrote its instructions, which are the text every model session reads security
    • Schema quality: 17728 → 20999 ▼ functional
    • New tool “search_substack” functional
    • New tool “search_substack_notes” functional
    • New tool “substack_category_feed” functional
    • New tool “search_substack_publications” functional
    • New tool “search_substack_users” functional
    • New tool “substack_category_publications” functional
    • New tool “substack_note_details” functional
    • New tool “substack_post_comments” functional
    • New tool “substack_post_details” functional
    • New tool “substack_post_likes” functional
    • New tool “substack_publication_posts” functional
    • New tool “substack_publication_details” functional
    • New tool “substack_publication_recommendations” functional
    • New tool “substack_trending” functional
    • New tool “substack_user_activity” functional
    • New tool “substack_user_posts” functional
    • New tool “substack_user_profile” functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://apidirect.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=apidirect.io CN=YR2,O=Let's Encrypt,C=US 19 Oct 2026 17 Jan 2027 RSA 2048 SHA256-RSA 6f30982a9f4f60d5279f73152088cb83f5c
SANs: apidirect.io
CN=YR2,O=Let's Encrypt,C=US (CA) CN=Root YR,O=ISRG,C=US 3 Sept 2025 2 Sept 2028 RSA 2048 SHA256-RSA 4ebd24947e24d394802d84a52fd5b319
CN=Root YR,O=ISRG,C=US (CA) CN=ISRG Root X1,O=Internet Security Research Group,C=US 13 May 2026 2 Sept 2032 RSA 4096 SHA256-RSA f24b6d17f9d9ad7cb1c9fea78782699f

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of apidirect.io. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 38690 8 Verified
apidirect.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://apidirect.io/mcp Verified 200
http (plaintext) http://apidirect.io/mcp HTTPS enforced 308 https://apidirect.io/mcp
MCP tools · 145 exposed · ~25,925 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
amazon_best_sellers ~165

Get Amazon rankings for a category: Best Sellers, New Releases, Movers & Shakers, Most Wished For or Gift Ideas. Each item has rank, rank change, ASIN, title, price and rating. Up to 50 items per page; rankings cover the top 100. Billed $0.005 per request.

NameTypeReqDescription
categorystringyesCategory slug, e.g. electronics or software (see https://apidirect.io/docs/amazon-categories)
countrystring–Marketplace country code (default: "us")
pageinteger–Page number, 1 or 2 (default: 1). Each page returns up to 50 items; rankings cover the top 100.
typestring–Ranking type

No output schema declared.

No examples provided.

amazon_product_details ~103

Get an Amazon product by ASIN (from search_amazon_products). Returns pricing, buy box with seller_id, availability, condition, photos, videos, specs, feature bullets, description, per-star rating breakdown and top reviews. Billed $0.005 per request.

NameTypeReqDescription
asinstringyes10-character Amazon ASIN (e.g. B07ZPKN6YR)
countrystring–Marketplace country code (default: "us")

No output schema declared.

No examples provided.

amazon_seller_products ~129

Get the products an Amazon seller sells, by seller ID. Returns the same product objects as search_amazon_products plus the seller's total catalog size. Sort by price, reviews, newest or best sellers. About 16 results per page. Billed $0.005 per request.

NameTypeReqDescription
countrystring–Marketplace country code (default: "us")
pageinteger–Page number, 1-50 (default: 1). Each page returns ~16 results.
seller_idstringyesAmazon seller ID
sort_bystring–Sort order

No output schema declared.

No examples provided.

amazon_seller_profile ~122

Get an Amazon seller's profile by seller ID (main_buy_box.seller_id from amazon_product_details). Returns name, logo, about text, registered business name and address, average rating, total ratings, positive-feedback percentage and a feedback breakdown over 30 days, 90 days, 12 months and lifetime. Billed $0.005 per request.

NameTypeReqDescription
countrystring–Marketplace country code (default: "us")
seller_idstringyesAmazon seller ID (e.g. A2L77EE7U53NWQ)

No output schema declared.

No examples provided.

amazon_seller_reviews ~171

Get customer feedback on an Amazon seller by seller ID. Each review has author, text, star rating, date and whether the seller responded. Filter by star rating or positive/critical; page until has_next_page is false. Billed $0.005 per request.

NameTypeReqDescription
countrystring–Marketplace country code (default: "us")
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pageinteger–Page number, 1-50 (default: 1)
seller_idstringyesAmazon seller ID
star_ratingstring–Star rating filter

No output schema declared.

No examples provided.

batch_requests ~158

Run up to 100 API Direct REST requests in one call, mixing any endpoints the other tools cover (e.g. 50 twitter_user_profile and 50 instagram_user_profile lookups). Each item gives a /v1 endpoint path and that endpoint's query parameters, as documented at https://apidirect.io/docs/batch. Items run concurrently and each returns its own status and body, in input order. /v1/web/ai-mode isn't supported. Large batches can take several minutes. The batch call is free; each item is billed at its endpoint's normal rate.

NameTypeReqDescription
requestsarrayyes1-100 items to execute. Each item's params are exactly the query parameters that endpoint accepts when called directly (string or number values).

No output schema declared.

No examples provided.

bluesky_post_comments ~225

Get the replies to a Bluesky post by URL or AT URI post_id (provide exactly one). Returns every reply Bluesky serves, up to 10 levels deep, as a flat list of full posts whose in_reply_to_id points at the parent. Billed $0.003 per request.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
post_idstring–The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters).
urlstring–Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters).

No output schema declared.

No examples provided.

bluesky_post_details ~220

Get one Bluesky post by URL or AT URI post_id (provide exactly one). Returns text, author, date, engagement metrics (likes, replies, reposts, quotes, bookmarks), media, link card and quoted post. Billed $0.003 per request.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
post_idstring–The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters).
urlstring–Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters).

No output schema declared.

No examples provided.

bluesky_post_likes ~218

Get the users who liked a Bluesky post, newest first, by URL or AT URI post_id (provide exactly one). Returns each user's handle, display name, DID, bio, verification status, profile picture, join date and like time. Up to 50 per page. Billed $0.003 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned.
post_idstring–The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters).
urlstring–Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters).

No output schema declared.

No examples provided.

bluesky_post_quotes ~258

Get the posts that quote a Bluesky post, newest first, by URL or AT URI post_id (provide exactly one). Returns each quoting post's text, author, engagement metrics and media. Up to 50 per page. Billed $0.003 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 posts; you are billed per page returned.
post_idstring–The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters).
urlstring–Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters).

No output schema declared.

No examples provided.

bluesky_post_reposts ~216

Get the users who reposted a Bluesky post, newest first, by URL or AT URI post_id (provide exactly one). Returns each user's handle, display name, DID, bio, verification status, profile picture and join date. Up to 50 per page. Billed $0.003 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned.
post_idstring–The post's AT URI as returned in post_id, e.g. at://did:plc:z72i7hdynmk6r22z27h6tvur/app.bsky.feed.post/3l6oveex3ii2l (max 200 characters).
urlstring–Bluesky post URL, e.g. https://bsky.app/profile/bsky.app/post/3l6oveex3ii2l (max 500 characters).

No output schema declared.

No examples provided.

bluesky_user_followers ~173

Get a Bluesky user's followers, newest first, by handle, DID or profile URL (provide exactly one of username or url). Returns handle, display name, DID, bio, verification status, profile picture and join date. Up to 50 per page. Billed $0.003 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned.
urlstring–Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters).
usernamestring–Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters).

No output schema declared.

No examples provided.

bluesky_user_following ~175

Get the accounts a Bluesky user follows, newest first, by handle, DID or profile URL (provide exactly one of username or url). Returns handle, display name, DID, bio, verification status, profile picture and join date. Up to 50 per page. Billed $0.003 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 accounts; you are billed per page returned.
urlstring–Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters).
usernamestring–Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters).

No output schema declared.

No examples provided.

bluesky_user_likes ~221

Get the posts a Bluesky user liked, newest first, by handle, DID or profile URL (provide exactly one of username or url). Returns each full post plus liked_at, when the user liked it. Up to 50 per page. Billed $0.003 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 posts; you are billed per page returned.
urlstring–Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters).
usernamestring–Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters).

No output schema declared.

No examples provided.

bluesky_user_posts ~244

Get a Bluesky user's feed by handle, DID or profile URL (provide exactly one of username or url): their posts, replies and reposts, pinned post first then newest first, each flagged is_reply, is_repost and is_pinned. Returns post text, engagement metrics, media, link cards and quoted posts. Up to 50 posts per page. Billed $0.003 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 50 posts; you are billed per page returned.
urlstring–Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters).
usernamestring–Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters).

No output schema declared.

No examples provided.

bluesky_user_profile ~134

Get a Bluesky user's profile by handle, DID or profile URL (provide exactly one of username or url). Returns display name, bio, follower, following and post counts, verification status, profile picture, banner, join date and the pinned post's ID. Billed $0.003 per request.

NameTypeReqDescription
urlstring–Bluesky profile URL, e.g. https://bsky.app/profile/bsky.app (max 500 characters).
usernamestring–Bluesky handle, e.g. bsky.app, with or without leading @, or the account's DID (max 100 characters).

No output schema declared.

No examples provided.

facebook_group_details ~63

Get a Facebook group by URL. Returns name, group ID, description, privacy setting, member count, location and cover photo. Pass the group ID to facebook_group_posts. Billed $0.008 per request.

NameTypeReqDescription
urlstringyesFacebook group URL

No output schema declared.

No examples provided.

facebook_group_posts ~171

Get posts from a public Facebook group by numeric group ID (from facebook_group_details). Returns post text, author details, engagement metrics, media and Facebook's AI content label (ai_label). Sort by newest or relevance. Billed $0.008 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
group_idstringyesFacebook group ID (numeric)
pagesinteger–Number of pages to fetch (1-15, default 1). Billed per page.
sort_bystring–Sort order: most_recent or relevance (default: most_recent)

No output schema declared.

No examples provided.

facebook_page_details ~87

Get a Facebook page by URL. Returns name, page_id, follower and like counts, categories, contact info, rating and verification status, plus the delegate_page_id and reels_page_id that facebook_page_videos and facebook_page_reels need. Billed $0.008 per request.

NameTypeReqDescription
urlstringyesFacebook page URL (e.g. https://www.facebook.com/facebook)

No output schema declared.

No examples provided.

facebook_page_photos ~80

Get photos from a Facebook page by numeric page ID (from facebook_page_details). Returns photo IDs and image URLs. Billed $0.008 per page.

NameTypeReqDescription
page_idstringyesFacebook page ID (numeric)
pagesinteger–Number of pages to fetch (1-15, default 1). Billed per page.

No output schema declared.

No examples provided.

facebook_page_posts ~188

Get posts from a Facebook page by numeric page ID (from facebook_page_details). Returns post text, engagement metrics, reaction breakdown, media and Facebook's AI content label (ai_label). Optionally limit to a date range. Billed $0.008 per page.

NameTypeReqDescription
end_datestring–Only posts up to this date (YYYY-MM-DD)
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
page_idstringyesFacebook page ID (numeric)
pagesinteger–Number of pages to fetch (1-15, default 1). Billed per page.
start_datestring–Only posts from this date onward (YYYY-MM-DD)

No output schema declared.

No examples provided.

facebook_page_reels ~137

Get reels from a Facebook page by its reels_page_id (from facebook_page_details). Returns reel metadata and engagement metrics. Billed $0.008 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch (1-10, default 1). Billed per page.
reels_page_idstringyesReels page ID (from page details endpoint)

No output schema declared.

No examples provided.

facebook_page_reviews ~133

Get reviews of a Facebook page by numeric page ID (from facebook_page_details). Returns review text, recommendation status and author info. Billed $0.008 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
page_idstringyesFacebook page ID (numeric)
pagesinteger–Number of pages to fetch (1-15, default 1). Billed per page.

No output schema declared.

No examples provided.

facebook_page_videos ~136

Get videos from a Facebook page by its delegate_page_id (from facebook_page_details). Returns video metadata and play counts. Billed $0.008 per page.

NameTypeReqDescription
delegate_page_idstringyesDelegate page ID (from page details endpoint)
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch (1-15, default 1). Billed per page.

No output schema declared.

No examples provided.

facebook_post_comments ~174

Get the comments on a Facebook post by post ID (pfbid or numeric, from facebook_page_posts, facebook_group_posts or search_facebook_posts). Returns each comment's text, author details, reaction and reply counts, date and any attachment. Billed $0.008 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch (1-20, default 1). Billed per page.
post_idstringyesFacebook post ID (pfbid or numeric, from facebook_page_posts, facebook_group_posts, or search_facebook_posts)

No output schema declared.

No examples provided.

get_skill ~147

Get one skill's step-by-step playbook with your inputs filled in: the ordered tool calls and filters that produce its outcome, for you to run. Pass the skill_id from list_skills, or the skill name the user gave (close matches resolve). Omit inputs and the playbook lists what to ask the user for. Free.

NameTypeReqDescription
inputsobject–The skill's inputs as key/value pairs, e.g. {"competitor": "Notion"}. Optional — omit and the playbook will tell you what to ask the user for.
skill_idstringyesThe skill id from list_skills, e.g. "competitor-conquest-radar".

No output schema declared.

No examples provided.

get_youtube_comments ~144

Get the comments on a YouTube video by URL or video ID. Returns each comment's text, author, like and reply counts, date, link and up to 5 preview replies. Sort by newest or relevance. Up to about 100 comments per page. Billed $0.005 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to ~100 comments.
sort_bystring–Sort order: most_recent (newest first) or relevance (default: relevance)
urlstringyesYouTube video URL or 11-character video ID

No output schema declared.

No examples provided.

google_ai_mode ~146

Ask Google AI Mode a prompt and get its structured answer (reply_parts: paragraphs, headings, lists, images) with reference_links citations. Pass session_token from a previous response to ask a follow-up in the same conversation. Answers can take over a minute. Use search_web for plain search results. Billed $0.005 per request.

NameTypeReqDescription
countrystring–2-letter country code (default: "us")
languagestring–2-letter language code (default: "en")
promptstringyesThe AI Mode prompt (max 12000 characters)
session_tokenstring–Token from a prior response to continue the conversation

No output schema declared.

No examples provided.

instagram_comment_replies ~249

Get the replies to one Instagram comment, by post URL or shortcode (provide exactly one) plus the comment_id from instagram_post_comments. Returns each reply's text, author details (including whether Instagram labels the commenter AI-generated), like count, date, link and parent comment. Returns an empty list when there are no replies. Billed $0.006 per page.

NameTypeReqDescription
codestring–The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters)
comment_idstringyesThe comment's numeric ID, from instagram_post_comments (comment_id)
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-10 (default: 1)
urlstring–Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters)

No output schema declared.

No examples provided.

instagram_hashtag_posts ~218

Get Instagram posts and reels for a hashtag. Returns the same post objects as search_instagram plus the hashtag's total post count (top tab only). sort_by picks the tab: top (default), recent or reels. Up to about 30 new posts per page. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
hashtagstringyesHashtag, with or without the leading # (max 100 characters), e.g. summer
pagesinteger–Number of pages to fetch, 1-10 (default: 1). Each page adds up to about 30 posts (repeats across pages are removed)
sort_bystring–Hashtag tab: top (default), recent (newest first), or reels (Reels only)

No output schema declared.

No examples provided.

instagram_highlight_stories ~141

Get the stories saved in one Instagram highlight, by highlight ID (from instagram_user_highlights) or highlight URL. Returns the highlight's title and cover plus each story's media URLs, post time, link stickers, mentions, tagged users, location, audio and AI detection method. Media URLs expire after about 6-24 hours. Billed $0.006 per request.

NameTypeReqDescription
highlight_idstringyesHighlight ID, e.g. 17987606483520330 (also accepts highlight:17987606483520330), or a highlight URL like https://www.instagram.com/stories/highlights/17987606483520330/

No output schema declared.

No examples provided.

instagram_post_comments ~266

Get the comments on an Instagram post or reel by URL or shortcode (provide exactly one). Returns each comment's text, author details (including whether Instagram labels the commenter AI-generated), like and reply counts, date and link. Sort by popular (includes pinned) or recent. Up to 15 comments per page. Use instagram_comment_replies for a comment's replies. Billed $0.006 per page.

NameTypeReqDescription
codestring–The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters)
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 15 comments
sort_bystring–Sort order: popular (default, includes pinned comments) or recent
urlstring–Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters)

No output schema declared.

No examples provided.

instagram_post_details ~196

Get one Instagram post, reel or IGTV video by URL or shortcode (provide exactly one). Returns caption, like, comment, share and view counts, media URLs, carousel slides, audio track, tagged users, location, author details and Instagram's AI label. Billed $0.006 per request.

NameTypeReqDescription
codestring–The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters)
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
urlstring–Instagram post, reel, or story URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters)

No output schema declared.

No examples provided.

instagram_post_likes ~146

Get the users who liked an Instagram post or reel, by URL or shortcode (provide exactly one). Returns username, full name, user ID, verification and privacy status and profile picture for every liker Instagram exposes (typically several hundred), plus the total like count, in one request. Billed $0.006 per request.

NameTypeReqDescription
codestring–The post's shortcode, e.g. CxYQJO8xuC6, or numeric media ID (max 50 characters)
urlstring–Instagram post or reel URL, e.g. https://www.instagram.com/p/CxYQJO8xuC6/ (max 500 characters)

No output schema declared.

No examples provided.

instagram_user_followers ~216

Get an Instagram user's followers by username or profile URL (provide exactly one). Returns username, full name, user ID, verification and privacy status and profile picture, 50 per page. Verified accounts return only their first ~50 followers, and pages beyond that are not billed. Pass query to search the followers instead (up to 50 matches, billed as one page). Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-40 (default: 1). Each page returns up to 50 followers; verified accounts return the first page only
querystring–Optional keyword to search this user's followers by username or name (max 100 characters). Returns up to 50 matches in a single request; pages is ignored
urlstring–Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)
usernamestring–Instagram username, with or without leading @ (max 100 characters)

No output schema declared.

No examples provided.

instagram_user_following ~195

Get the accounts an Instagram user follows, by username or profile URL (provide exactly one). Returns username, full name, user ID, verification and privacy status and profile picture, 50 per page. Pass query to search the list instead (up to 50 matches, billed as one page). Billed $0.006 per page.

NameTypeReqDescription
pagesinteger–Number of pages to fetch, 1-40 (default: 1). Each page returns up to 50 accounts
querystring–Optional keyword to search the accounts this user follows by username or name (max 100 characters). Returns up to 50 matches in a single request; pages is ignored
urlstring–Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)
usernamestring–Instagram username, with or without leading @ (max 100 characters)

No output schema declared.

No examples provided.

instagram_user_highlights ~116

List an Instagram user's story highlights by username or profile URL (provide exactly one). Returns each highlight's ID, title, story count, cover image, created and updated dates and link. Pass a highlight ID to instagram_highlight_stories for its stories. Billed $0.006 per request.

NameTypeReqDescription
urlstring–Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)
usernamestring–Instagram username, with or without leading @ (max 100 characters)

No output schema declared.

No examples provided.

instagram_user_posts ~202

Get an Instagram user's recent posts and reels (their feed) by username or profile URL (provide exactly one). Returns captions, engagement metrics (likes, comments, shares, views), author metadata, hashtags, mentions and Instagram's AI label. Up to 12 posts per page. Billed $0.006 per page.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pagesinteger–Number of pages to fetch, 1-20 (default: 1). Each page returns up to 12 posts
urlstring–Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)
usernamestring–Instagram username, with or without leading @ (max 100 characters)

No output schema declared.

No examples provided.

instagram_user_profile ~125

Get an Instagram user's full profile by username or profile URL (provide exactly one). Returns biography, follower, following and media counts, category, external link, verification status and date, the country the account is based in, join date, the number of former usernames and whether Instagram labels the account AI-generated. Billed $0.006 per request.

NameTypeReqDescription
urlstring–Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)
usernamestring–Instagram username, with or without leading @ (max 100 characters)

No output schema declared.

No examples provided.

instagram_user_stories ~146

Get an Instagram user's active stories (last 24 hours) by username or profile URL (provide exactly one). Returns each story's media URLs, post and expiry times, link stickers, mentions, tagged users, location, audio and AI detection method. Media URLs expire after about 6-24 hours. Returns an empty list when there are no active stories. Use instagram_user_highlights for saved stories. Billed $0.006 per request.

NameTypeReqDescription
urlstring–Instagram profile URL, e.g. https://instagram.com/natgeo (max 500 characters)
usernamestring–Instagram username, with or without leading @ (max 100 characters)

No output schema declared.

No examples provided.

linkedin_company_details ~74

Get a LinkedIn company page by URL. Returns name, description, employee count, industry, headquarters and locations, specialities, website and similar companies. Use search_linkedin_companies to find a company by name. Billed $0.006 per request.

NameTypeReqDescription
urlstringyesLinkedIn company page URL

No output schema declared.

No examples provided.

linkedin_company_posts ~146

Get recent posts from a LinkedIn company page by URL. Returns post text, author info, images, videos and engagement metrics (likes, comments, shares, reactions). 10 posts per page. Billed $0.006 per request.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pageinteger–Page number, 1-50 (default: 1). 10 posts per page
urlstringyesLinkedIn company page URL

No output schema declared.

No examples provided.

linkedin_job_details ~90

Get one LinkedIn job listing by URL or numeric job ID. Returns title, company, location, posting date, job type, experience level, workplace type, industry, salary, benefits and full description. Billed $0.002 per request.

NameTypeReqDescription
urlstringyesLinkedIn job URL (e.g. https://linkedin.com/jobs/view/1234567890) or numeric job ID

No output schema declared.

No examples provided.

linkedin_person_details ~114

Get a LinkedIn person's profile by profile URL, public slug or member URN. Returns name, headline, about, location, follower and connection counts, open-to-work status, and the experience, education, skills, certifications, languages, honors, publications, volunteering and projects sections. Use linkedin_person_posts for their posts. Billed $0.006 per request.

NameTypeReqDescription
urlstringyesLinkedIn profile URL, public slug (e.g. reidhoffman), or member URN (ACoAA...)

No output schema declared.

No examples provided.

linkedin_person_posts ~194

Get the recent posts a LinkedIn person authored, by profile URL or public slug. Returns post text, engagement metrics (likes, comments, shares, reactions), author info, images, videos and articles. 20 posts per page, up to about 600 posts. Use search_linkedin with author to filter a person's posts by keyword. Billed $0.006 per request.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
pageinteger–Page number, 1-30 (default: 1). 20 posts per page — up to ~600 of the person's most recent posts.
urlstringyesLinkedIn profile URL or public slug (e.g. williamhgates)

No output schema declared.

No examples provided.

linkedin_post_details ~108

Get one LinkedIn post by URL. Returns full post text, author details, images, embedded links and engagement metrics with reaction breakdowns. Billed $0.002 per request.

NameTypeReqDescription
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
urlstringyesLinkedIn post URL

No output schema declared.

No examples provided.

list_skills ~132

List API Direct's ready-made skills: playbooks that chain the data tools, with filters such as author_title, mentions_company and AI sentiment, to reach a business outcome (lead generation, competitor and brand monitoring, recruiting, due diligence, deal sourcing, market research). Returns each skill's id, name, category, summary and inputs. Use it when a request matches one of those goals, then run the chosen skill with get_skill. Free.

NameTypeReqDescription
categorystring–Optional: filter to a category substring, e.g. "sales", "recruiting", "investing", "crisis".

No output schema declared.

No examples provided.

place_details ~143

Get a Google Maps place by place_id (from search_places). Returns name, address, phone, website, rating, review counts per star, opening hours, sample photos, coordinates, plus codes, menu link, owner info, and the emails, phones and social profiles found on the place's website. Billed $0.003 per request.

NameTypeReqDescription
countrystring–2-letter country code (default: "us")
languagestring–2-letter language code (default: "en")
place_idstringyesGoogle place_id (e.g. ChIJifIePKtZwokRVZ-UdRGkZzs)

No output schema declared.

No examples provided.

place_photos ~149

Get photos and videos of a Google Maps place by place_id (from search_places). Returns standard and large URLs, coordinates and capture time; photos and videos come mixed, so filter on the type field. Up to 10 items per page. Billed $0.01 per page.

NameTypeReqDescription
countrystring–2-letter country code (default: "us")
languagestring–2-letter language code (default: "en")
pagesinteger–Number of pages to fetch, 1-10 (default: 1). Each page returns up to 10 items and is billed as one request.
place_idstringyesGoogle place_id

No output schema declared.

No examples provided.

place_reviews ~250

Get reviews of a Google Maps place by place_id (from search_places). Each review has rating, text, author, timestamps, photos and any owner response. language returns only reviews originally written in that language; each sort_by order surfaces a different set, so combine them for more coverage. Up to 10 reviews per page. Billed $0.01 per page.

NameTypeReqDescription
countrystring–2-letter country code (default: "us")
get_sentimentboolean–Add AI sentiment analysis (Plutchik emotions, dominant_emotion, intensity, and positive/negative/neutral polarity) to each result. Adds a small surcharge per page, or per request on single-request en…
languagestring–2-letter language code (default: "en"). Filters reviews to those originally written in this language.
pagesinteger–Number of pages, 1-10 (default: 1). Each page returns up to 10 reviews and is billed as one request.
place_idstringyesGoogle place_id
sort_bystring–Sort order
translate_reviewsboolean–Translate the returned reviews into the requested language

No output schema declared.

No examples provided.

Install

How do I install the API Direct MCP server?

API Direct is a hosted endpoint at https://apidirect.io/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.

remote · apidirect.io

# add to Claude Code
claude mcp add --transport http io-apidirect-api-direct 'https://apidirect.io/mcp'
Common questions

What is the API Direct MCP server?

API Direct is an MCP server listed in the public MCP registry as io.apidirect/api-direct. Search social media, news, forums and Google Maps: LinkedIn, X, Reddit, TikTok, YouTube. This page covers its hosted endpoint (https://apidirect.io/mcp).

Is the API Direct MCP server safe to use?

API Direct scores 85 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 API Direct MCP server expose?

API Direct exposes 145 tools: list_skills, get_skill, search_linkedin, linkedin_person_details, linkedin_person_posts, and 140 more. Their descriptions and schemas cost roughly 25,925 tokens of context every time the server is loaded.

Does the API Direct MCP server require authentication?

No. We connected to API Direct without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the API Direct MCP server still maintained?

API Direct is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.