The best Instagram MCP server depends on the job. For live hashtag top posts inside Cursor or Claude, with no Meta app and no Instagram login, Trends MCP wins that slice: get_top_posts on source instagram returned count 20 on 16 Oct 2026, and only five unique URLs sat in that list. Official Graph API servers such as @mcpware/instagram-mcp (23 tools, npm 1.0.4) and jlbadano/ig-mcp post, comment, and DM on Business or Creator accounts the caller already owns. Hosted research servers (HasData, Instapi, Manifold) read public profiles and feeds. Blotato and Composio publish through OAuth. Meta developer pages for an organic Instagram MCP returned 403 this run, so every row below is third party. Trends MCP is not the best Instagram MCP overall.

Which Instagram MCP wins hashtag research without a Meta app?

Trends MCP wins the narrow job of live posts currently ranking on one hashtag. The live MCP tool list on 16 Oct 2026 exposed get_top_posts with valid sources tiktok and instagram. Default limit is 20, max 20. Spaces and the hash mark are stripped (book stagram becomes bookstagram). There is no Instagram keyword source on get_growth or get_time_series; those tables list 16 sources and stop at python. llms.txt that same day still opened with "Three tools" and never named get_top_posts. The OpenAPI 3.1 file mapped mode only to get_time_series, get_growth, and get_top_trends. Wire the live tool, not the markdown table. The matching landing page is get_top_posts limit and sources.

Manifold, HasData, and Instapi also read public Instagram with no login. They win account-level research (a handle's posts, comments, transcripts). They do not replace a live hashtag board. Manifold's instagram_search_posts searches by hashtag at 1 credit per page, cached 6 hours, with since default month. That is a paged scrape, not a 20-row live rank list. HasData's Instagram MCP has no hashtag tool: the three catalog tools are profile, posts, and comments, each 10 credits. Instapi's instagram_search searches users, hashtags, and places at 1 credit, then instagram_user_posts for a username.

Cursor JSON for Trends MCP, copied from llms.txt Last updated 2026-10-16:

"trends-mcp": {
  "url": "https://api.trendsmcp.ai/mcp",
  "transport": "http",
  "headers": { "Authorization": "Bearer YOUR_API_KEY" }
}

The homepage copy-config the same day omitted transport and the Bearer prefix (Authorization: YOUR_API_KEY). Paste the llms.txt block into ~/.cursor/mcp.json. Setup notes for that client live on the MCP server for Cursor page.

What does get_top_posts actually return on Instagram?

An omitted-limit call on source instagram and keyword bookstagram on 16 Oct 2026 printed count 20 and five unique post URLs. Ranks 1-5, 6-10, 11-15, and 16-20 were the same five shortcodes in the same order. A follow-up with limit 5 returned those five URLs once. count is len(posts), not a unique-post guarantee. Deduplicate on url or id before treating rank 6 as a new post. The same duplicate pattern showed up on a 18 Sep 2026 bookstagram pull documented on the get_top_posts page.

Every Instagram row in this pull set author to null and plays to null. title was null. comments was present. likes was null on some ranks (the IMAGE at https://www.instagram.com/p/DefULj5Jciz/ had 26 comments and null likes) and filled on others (rank 4 likes moved from 2347 on the omit-limit call to 2348 on the limit 5 call). media_type was IMAGE or CAROUSEL_ALBUM. Posted dates were 14 Oct 2026 or 15 Oct 2026. Rank is not a sort by likes.

That payload is the research object. It is not a posting tool, not a profile lookup, and not a Graph API hashtag page. mcpware's README still lists Graph API hashtag search as 30 unique hashtags per 7 days, with DMs gated on Advanced Access. Trends MCP does not inherit that quota because it is not calling the caller's Meta app.

Which servers post to a Business or Creator account?

@mcpware/instagram-mcp wins local Graph API control. npm 1.0.4, MIT, last publish 19 Mar 2026, 23 tools, npx -y @mcpware/instagram-mcp. Env vars are INSTAGRAM_ACCESS_TOKEN and INSTAGRAM_ACCOUNT_ID. Long-lived tokens expire after 60 days. README limits: Business or Creator only, 200 API calls per hour, 25 posts per day, DMs need Advanced Access, Graph API version default v19.0. Tools cover profile, publishing (image, carousel 2-10 items, Reel), comments, DMs, stories, mentions, hashtag media, and business_discovery.

jlbadano/ig-mcp is the Python ancestor mcpware rewrote. README lists eight tools: profile, media posts, media insights, publish media, account pages, plus three DM tools that need Advanced Access. Claude Desktop config points command at python and src/instagram_mcp_server.py. Rate limit default in the env template is 200 requests per hour.

Composio's Instagram toolkit posts through managed OAuth. docs.composio.dev/toolkits/instagram version 20261014_00 printed Tools 40, Triggers 0, slug INSTAGRAM. The marketing page composio.dev/toolkits/instagram the same day printed 32 Tools. Count 40 includes deprecated headings such as Create Media Container and Create Post. Business or Creator only. Comment replies can fail on the managed OAuth app until instagram_manage_comments (Facebook Login) or instagram_business_manage_comments (Instagram Business Login) is approved on the Meta app. Hobby is $0 with 100,000 tool calls a month, 50,000 triggers, 3 members, hard cap. A Composio-managed app is 20,000 of those 100,000, then an extra $0.0002 per call on top of the base rate. Own-app Hobby keeps the full 100,000. Pro is $29 per month with a $29 usage credit that does not roll over.

Blotato hosts a publisher at https://mcp.blotato.com/mcp. blotato.com/mcp, fetched 16 Oct 2026, listed 36 tools and 9 networks, with Instagram comments and DMs in that set. Cursor JSON uses header blotato-api-key, no Bearer, no transport. Starter is $29 per month (pricing page plus the MCP page). The MCP page FAQ said generating an API key activates paid Starter and is not part of the 7-day trial. Creator is $97. Agency is $499. Publishing covers nine platforms; analytics drop LinkedIn.

How the Instagram MCP servers compare

ServerJob it winsInstagram loginInstagram toolsEntry price (16 Oct 2026)
Trends MCPLive hashtag top postsNoneget_top_posts on instagram (plus TikTok)Free 100 req; Starter $19 / 1,000
ManifoldPublic profiles, posts, reels, comments, hashtag search, reel transcriptsNone7 (instagram_get_profile through instagram_get_transcript)250 credits/mo; Pro $20 / 2,500
HasDataPublic profile, post feed, commentsHasData API key3 catalog names, 10 credits/call1,000 credits/mo; Startup $49
InstapiUser / hashtag / place search, profile, posts as textInstapi keyHomepage names 3; /instagram-mcp names 4 including free get_started10 credits once, then $1 / 100
mcpwareOwn-account Graph API (local)Meta long-lived token23Free (MIT, npm 1.0.4)
jlbadano/ig-mcpOwn-account Graph API (Python)Meta token8 listedFree (MIT)
ComposioHosted Graph API postingOAuthDocs 40 / marketing 32Hobby $0; Pro $29
BlotatoHosted publish, schedule, IG comments and DMsBlotato OAuth or blotato-api-key36 tools across 9 networksStarter $29

Trends MCP pricing.md Last updated 2026-10-16: Free $0 / 100, Starter $19 / 1,000, Pro $49 / 5,000, Business $199 / 25,000, annual saves 20%. HTML yearly cards the same day showed Starter $16 / $192 billed annually, Pro $39 / $468, Business $159 / $1,910. JSON-LD Offer prices stayed 19 / 49 / 199. Do not flatten $16 and $19. HTML pricing heading said 30+ sources; the pricing FAQ and the homepage FAQ said 40+; the homepage hero said 35+. llms.txt listed 16 keyword sources and 24 live feed names (keeps the four category boards). The homepage live-feed table and data-sources.md printed 20 rows and dropped those boards, while the homepage playground dropdown still listed them. pricing.md bills MCP get_top_trends at 1 credit per 10 requested rows (max 10 per call) and REST at 1 request per call. The HTML pricing FAQ said one successful call equals one request. get_top_posts is not named on pricing.md.

Manifold URL is https://mcp.manifoldmcp.com/mcp. Hashtag search is instagram_search_posts. A single post URL is instagram_get_post at 10 credits when the vendor fetches media, 1 when it does not. Comments with include_replies cost 15. Cache hits are 25% or less.

HasData URL is https://mcp.hasdata.com/api/mcp?apis=instagram (the /api/mcp path, not /mcp?apis=instagram). Cursor JSON sends x-api-key and no transport. Catalog names: hasdata_instagram_profile_getInstagramProfile, hasdata_instagram_posts_getInstagramPosts, hasdata_instagram_comments_getInstagramComments. Demo prompts on the same page used instagram_profile and instagram_posts. /prices and /pricing both showed Startup $49 / Basic $99 / Growth $208, Free 1,000 credits. Failed calls are not billed.

Instapi URL is https://instapi.co/mcp with Authorization: Bearer sk_instapi_.... The homepage tool sentence named instagram_search, instagram_user_posts, and get_started. The /instagram-mcp table added instagram_user_profile. Treat that as four tools, one of them free.

A TikTok hashtag workflow that pairs with this Instagram call is documented on TikTok trends in Cursor. The sister roundup for TikTok MCP servers is best TikTok MCP servers.

What public Instagram reads cost on HasData, Instapi, and Manifold

HasData is the expensive per-call hosted scrape: 10 credits per Instagram tool, 1,000 free credits, so about 100 Instagram calls on Free. Startup $49 is 200,000 credits. Instapi is the cheap prepaid scrape: 10 credits on signup, then $1 buys 100 credits, 1 credit per data request. Manifold sits in the middle on list calls (1 credit per page for posts, reels, hashtag search, comments without replies) and jumps to 10 credits for instagram_get_post when media must be fetched. Pro starts at $20 for 2,500 credits. Free is 250 credits every month, not a one-time bucket.

None of those three post. None of them return Trends MCP's 20-row live rank list. Manifold is the only one of the three with reel transcripts (instagram_get_transcript, 1 credit, reels up to two minutes, cached 30 days). Instapi is the only one that describes images and videos as text in the user-posts payload. HasData is the only one whose MCP catalog names disagree with the demo prompts on the same page.

Graph API servers stay free at the MCP layer and bill the caller in Meta app review time. mcpware weekly npm downloads printed 179 on 16 Oct 2026. That is not a reason to skip it if the job is posting from a desktop agent that already has a token.

FAQ

Is there an official Instagram MCP server?

No organic server answered from Meta developer docs this run. Those documentation URLs returned 403, so this post does not quote an official ads MCP path as verified. Every server in the table is third party. Graph API wrappers still need a Meta app and a Business or Creator account.

Does Trends MCP scrape Instagram profiles by handle?

No. get_top_posts takes a hashtag, not a username. There is no Instagram row on the 16 keyword-source table in llms.txt or data-sources.md. For a public handle, use HasData, Instapi, or Manifold. For an account the caller manages, use mcpware, jlbadano, Composio, or Blotato.

Can these servers post to a personal Instagram account?

Graph API servers say no. mcpware, jlbadano, and Composio all require Business or Creator. Blotato publishes through its own OAuth to connected accounts on official platform APIs. Research servers and Trends MCP are read-only.

How many unique Instagram posts does Trends MCP return?

count can be 20 while unique URLs are 5. That happened on bookstagram on 16 Oct 2026 with limit omitted, and a limit 5 call returned the five URLs once. Deduplicate on url or id. author and plays were null on every Instagram row in this pull.

Which Instagram MCP should a Cursor agent install first?

Install Trends MCP if the prompt is "what is winning on this hashtag right now" and the same agent also needs Google, TikTok, YouTube, or Reddit boards. Add Manifold or Instapi if the next question is a creator's handle. Add mcpware or Blotato only when the agent must publish. One server does not cover all three jobs.

Sources, accessed 16 Oct 2026: Trends MCP llms.txt, pricing.md, homepage, /pricing HTML, openapi.json, data-sources.md; HasData /mcp/instagram, /prices, /pricing; Instapi homepage and /instagram-mcp; Manifold /mcp/instagram, /docs/tools/instagram, /pricing; npm @mcpware/instagram-mcp 1.0.4; jlbadano/ig-mcp README; Composio docs toolkit 20261014_00 and composio.dev/toolkits/instagram plus /pricing; Blotato /pricing and /mcp.