
Instadram MCP server
Which MCP servers are Instadram's own, from the official registry and from asking its own domain, whether they answer, and what they offer. A program checked each of these, nobody copied them from a product page.
read 2026-10-21
- Registry nameme.instadram/instadramverified in the MCP registry
The registry name sits under instadram.me. The registry only lets a publisher use that namespace after proving control of the domain through DNS or HTTP.
- Stateanswerschecked 2026-10-21
- Tools48
- Server calls itselfinstadram
- Server version1.0.0
- Protocol version2025-06-18
On 2026-10-21 the server answered initialize and tools/list without a sign-in. First answer in 176 ms.
- Whether its tools do the product's job has not been judged yet.
Once connected
- Keep approval on for remove_from_collection, send_feedback: they delete, send or pay without saying so.
- add_bottle_from_photo, add_bottle, update_bottle, remove_bottle, wishlist_add change data without a sign-in: anyone with the address can call them.
- Parameters are untyped or undescribed in 18 of 48 tools: check arguments before calling.
Said by rules from the measurements above. The likely first call is a model's pick from the tool list; read its description before relying on it.
- INITE MCP score64 of 100answers 100 · definitions 94 · context 73 · connects 100 · lowered by the warning signs below
- Answered100% of days14 of 14 daily checks
- Median first answer167 ms
- Space in an agent's context≈ 8,193 tokensthe definitions of all its tools (48), which an agent carries on every turn
- Tool definitionsA · 94 of 100
- Typed results0 of 48 toolsdeclared outputSchema: results come typed, read once
- Parameters without a description: in 18 of 48
What an agent can do with it
- not sure · scan a bottle to add it to your shelf
- cannot · log tasting notes for each bottle you pour
- not sure · keep a wishlist separate from owned bottles
Each of the product's use cases, put to Jev against this server's tool list: can an agent do it with these tools?
Worth a look
- Tools that delete, send or pay, marked as not destructive: remove_from_collection, send_feedback
- Tools that change data, on a server that answers without a sign-in: add_bottle_from_photo, add_bottle, update_bottle, remove_bottle, wishlist_add
A program checks the server once a day: initialize and tools/list, no model. Tokens are the definitions' length at about four characters a token. The grade averages six checks of every tool's name, description, schema and annotations; it says how well the tools are described, not whether they work. The score weighs what was measured and nothing else: answering (25%), doing the product's job (25%), definitions (20%), context (10%), use (10%) and how readily a client connects (10%). A part that was not measured is left out, and a hidden instruction caps the score at 40. The state of vendors' MCP servers: method and numbers →
whoamiReturn the signed-in user's public profile (uid, username, display name) plus pro (paid or gifted Instadram Pro). Uses the Bearer token uid only. Available to free users.
list_my_bottlesList bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scoped to the token uid — a userId argument is ignored.
get_my_bottleGet one bottle from the signed-in user's collection by id. 404 if missing or not theirs.
get_shelf_valueValue of the signed-in user's active shelf (opened + unopened) in USD, the same number as the app's Stats. paid: purchase price, or MSRP when no price was entered (msrpCount says how many used MSRP). msrp: every bottle at MSRP…
search_catalogSearch the public bottle catalog (expressions and distilleries). Does not return other users' collections.
get_expressionGet one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}.
list_my_activityList the signed-in user's own pours/activity. Never returns other users' activity.
list_my_collectionsList the signed-in user's shelf groups / collections.
search_usersSearch public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL. Never email or billing fields.
get_userGet one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing.
list_user_bottlesList bottles on another user's public shelf. Requires username or userId. Same status/query/paging as list_my_bottles. 404 if the user is missing; empty list if they have no bottles.
get_user_bottleGet one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing.
list_user_activityList another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity.
list_user_collectionsList another user's public shelf groups. Requires username or userId.
fetch_bottle_reviewsAI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleName, or bottleId (own collection), or username/userId + bottleId to resolve the…
lookup_bottleAdd-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, tasting_notes, etc.), success, confidence. Does not write a bottle or set…
get_feedThe Home feed as the app shows it: recent pours, adds and ratings from everyone (scope global, the app default) or only people you follow plus you (scope following). Blocked and hidden accounts are removed.
explore_catalogThe Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed.
discover_usersDiscover people like the app's People list: everyone (empty query) or a name/handle match, ranked like the app, with badge and whether you follow them. Use follow_user to follow.
search_cocktailsCocktails to make with a bottle, like the app's recipe rail on a bottle page. Pass the bottle's name (plus spiritType, category, proof when known). Results note how many of the main liquors you already own. For browsing all drinks use…
explore_recipesThe Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor.
check_usernameCheck whether an @handle is valid and free before set_username (same rules and messages as Edit Profile).
export_shelfExport your whole collection as CSV (Pro, like Profile → Export Collection): the same columns and values as the app's file. Returns filename and csv text.
add_bottle_from_photoAdd a bottle from a photo, like Add Bottle → photo in the app: the preview identifies it; after the user agrees, AI art is made from the photo (1K) and the bottle is added with it. Free: 5 AI art a day; Pro: unlimited. Two steps: repeat…
regenerate_artMake new AI art for one of your bottles from its stored photo (or a new photo), like Think harder → Only regenerate the art. Uses 1 AI art credit (free 5/day, Pro unlimited). Two steps.
reidentify_bottleThink harder about one of your bottles: identify it again from its photo and research fresh reviews. Reviews are saved when found; pass update_identity to also replace the name, distillery and proof. Two steps.
search_public_bottlesSearch bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the app. Paged with nextCursor/hasMore/total.
add_bottleAdd a bottle to your shelf, wishlist or Tried list (same as the app's Add Bottle form). Free accounts can hold 25 unopened/opened bottles; Pro is unlimited. Two steps: the first call only previews and returns confirm_token; show the…
update_bottleEdit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token…
set_bottle_statusMove a bottle between unopened, opened, finished, wishlist and tried. Moving into unopened/opened re-checks the free 25-bottle limit. Two steps: the first call only previews and returns confirm_token; show the preview to the user and…
rate_bottleRate one of your bottles 0-5 in steps of 0.25 (0 clears). Posts a 'rated' update like the app. Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only…
remove_bottlePermanently delete one of your bottles. Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only after they agree.
wishlist_addPut a bottle on your wishlist: a new one (expression_path or name), or move an existing bottle_id there. Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with…
wishlist_removeDelete a bottle from your wishlist. Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only after they agree.
log_pourLog that you're drinking one of your bottles (posts to your followers' feed, like the app's Pour). Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only…
create_collectionCreate one of your collections. Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only after they agree.
rename_collectionRename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only after they agree.
delete_collectionDelete one of your collections. Its bottles stay on your shelf. Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only after they agree.
add_to_collectionAdd one of your bottles to one of your collections. Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only after they agree.
remove_from_collectionTake one of your bottles out of one of your collections (the bottle stays on your shelf). Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only after…
delete_my_activityDelete one of your own feed posts (id from list_my_activity). The bottle stays on your shelf. Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only…
follow_userFollow someone (username or userId from search_users). Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only after they agree.
unfollow_userStop following someone. Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only after they agree.
block_userBlock someone: hides their posts and profile from your feed, Explore and Discover (doesn't unfollow, like the app). Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with…
unblock_all_usersUnblock every user you've blocked (same as Profile → Unblock All Users). Two steps: the first call only previews and returns confirm_token; show the preview to the user and repeat the call with confirm_token only after they agree.
update_profileEdit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty string clears an optional field. Photos and handle aren't changed here (see…
set_usernameChange your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call only previews and returns confirm_token; show the preview to the user and…
send_feedbackSend a bug report, feature idea or other feedback to the Instadram team as you (same as Profile → Send Feedback). 10–5000 characters. Two steps: the first call only previews and returns confirm_token; show the preview to the user and…
How to connect
Add the server to your MCP client config. Claude Desktop, Cursor and most other clients read this shape:
{
"mcpServers": {
"instadram": {
"type": "http",
"url": "https://api.instadram.me/mcp"
}
}
}Add it
Claude Code, in a terminal
claude mcp add --transport http instadram https://api.instadram.me/mcpclaude.ai, ChatGPT and other clients: add https://api.instadram.me/mcp as a custom connector in the settings.
Each line is something a program found when it went looking: the registry entry, the server's own answer, a spec that parses. A missing line means we did not find it, not that it does not exist.
Before we count this visit
Analytics and ad measurement tell us which pages and which of our ads do their job: Google Analytics and Google Ads, the Meta pixel, Yandex Metrica, and one first-party id of our own. Nothing is stored until you answer, and declining changes nothing about the site.