{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_gskyatqh9ca4","handle":"instadram","url":"https://wellknown.network/agents/instadram","links":{"self":"https://wellknown.network/agents/instadram/record.json","html":"https://wellknown.network/agents/instadram","markdown":"https://wellknown.network/agents/instadram/record.md","api":"https://wellknown.network/api/v1/agents/instadram","status":"https://wellknown.network/api/v1/agents/instadram/status","claim":"https://wellknown.network/agents/instadram/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/instadram/claim.json","badge":"https://wellknown.network/agents/instadram/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/instadram/history","tools":"https://wellknown.network/api/v1/agents/instadram/tools"},"ard":{"identifier":"urn:air:api.instadram.me:server:instadram","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"Instadram","summary":"Whisky & bourbon collection in AI: search the catalog, read and manage your shelf (OAuth).","description":"Whisky & bourbon collection in AI: search the catalog, read and manage your shelf (OAuth).","publisher":{"name":"me.instadram","url":null},"homepage":"https://instadram.me/mcp","repository":null,"version":"1.0.0","license":null,"protocols":["mcp"],"tags":[],"pricing":null,"endpoints":[{"url":"https://api.instadram.me/mcp","type":"mcp_streamable_http","auth":null,"probeable":true}],"skills":null,"tools":null,"extra":{"updatedAt":"2026-10-15T02:53:48.145324Z","publishedAt":"2026-10-15T02:53:48.145324Z","registryName":"me.instadram/instadram"},"attribution":{"kind":"mcp_registry","name":"mcp_registry","summary":"mcp_registry","version":"mcp_registry","description":"mcp_registry","homepageUrl":"mcp_registry","publisherName":"mcp_registry"}},"derived":{"capabilities":[{"slug":"content.social","name":"Social Media","confidence":1,"provenance":"derived"},{"slug":"commerce.ecommerce","name":"E-commerce Operations","confidence":1,"provenance":"derived"},{"slug":"security.identity","name":"Identity & Access","confidence":0.903,"provenance":"derived"}],"categories":["commerce","content","security"],"language":"en"},"observed":{"status":"live","statusReason":"Responded 5h ago.","lastOkAt":"2026-10-24T22:25:00.207Z","lastProbedAt":"2026-10-24T22:25:00.207Z","statusComputedAt":"2026-10-24T22:27:53.871Z","reliability30d":{"probes":27,"successRate":1,"p50Ms":161,"basis":"service","measures":{"availability":"availability","latency":"response time","tools":"tool surface observed","summary":"Checks reached the service itself."},"checks":{"total":27,"ok":27,"authBoundaryOk":0,"serviceOk":27,"note":"Counted from the observation rows for the window, checks of the server only (HTTP, A2A card, MCP initialize). ok = authBoundaryOk + serviceOk. `probes` is the sum of daily rollups and includes registry checks, so it can differ from `total`."}},"latestObservations":[{"at":"2026-10-24T22:25:00.207Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":189,"error":null,"detail":{"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"toolCount":48,"toolsHash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","serverName":"instadram","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T15:24:37.478Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":169,"error":null,"detail":{"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"toolCount":48,"toolsHash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","serverName":"instadram","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T08:28:20.471Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":147,"error":null,"detail":{"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"toolCount":48,"toolsHash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","serverName":"instadram","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-24T02:23:06.492Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":174,"error":null,"detail":{"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"toolCount":48,"toolsHash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","serverName":"instadram","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T20:25:59.408Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":140,"error":null,"detail":{"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"toolCount":48,"toolsHash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","serverName":"instadram","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T14:28:28.760Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":170,"error":null,"detail":{"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"toolCount":48,"toolsHash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","serverName":"instadram","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T07:28:33.761Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":172,"error":null,"detail":{"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"toolCount":48,"toolsHash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","serverName":"instadram","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-23T01:30:29.282Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":156,"error":null,"detail":{"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"toolCount":48,"toolsHash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","serverName":"instadram","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T19:30:46.959Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":176,"error":null,"detail":{"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"toolCount":48,"toolsHash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","serverName":"instadram","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}},{"at":"2026-10-22T12:30:44.053Z","kind":"mcp_initialize","ok":true,"httpStatus":200,"latencyMs":146,"error":null,"detail":{"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"toolCount":48,"toolsHash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","serverName":"instadram","capabilities":["tools"],"serverVersion":"1.0.0","protocolVersion":"2025-06-18"}}],"tools":[{"name":"whoami","description":"Return 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 f"},{"name":"list_my_bottles","description":"List bottles in the signed-in user's collection. Filters: status (unopened|opened|consumed|excluded|wishlist|active|tried) and optional text query. Always scope"},{"name":"get_my_bottle","description":"Get one bottle from the signed-in user's collection by id. 404 if missing or not theirs."},{"name":"get_shelf_value","description":"Value 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 enter"},{"name":"search_catalog","description":"Search the public bottle catalog (expressions and distilleries). Does not return other users' collections."},{"name":"get_expression","description":"Get one public catalog expression by id, or by path distilleries/{id}/brands/{id}/expressions/{id}."},{"name":"list_my_activity","description":"List the signed-in user's own pours/activity. Never returns other users' activity."},{"name":"list_my_collections","description":"List the signed-in user's shelf groups / collections."},{"name":"search_users","description":"Search public Instadram profiles by exact username (usernames/{handle} or users.username) then displayName prefix. Returns uid, username, displayName, photoURL."},{"name":"get_user","description":"Get one public profile by username or userId. Resolves handles via usernames/{handle}. Public fields only — no email, stripeCustomerId, or billing."},{"name":"list_user_bottles","description":"List 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"},{"name":"get_user_bottle","description":"Get one bottle from another user's public collection. Requires username or userId plus bottleId. 404 if the user or bottle is missing."},{"name":"list_user_activity","description":"List another user's pours/activity (authenticated feed read). Requires username or userId. Newest first. Same paging caps as list_my_activity."},{"name":"list_user_collections","description":"List another user's public shelf groups. Requires username or userId."},{"name":"fetch_bottle_reviews","description":"AI community-review research for a bottle (fetchBottleReviews). Not a user tasting-note form. iOS may have this flagged off; the tool still works. Pass bottleNa"},{"name":"lookup_bottle","description":"Add-bottle AI identify (analyzeBourbonImage). Photo (imageData) or text (query). Returns distillery, location, spirit.brand + expressions (name, proof, msrp, ta"},{"name":"get_feed","description":"The 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 follow"},{"name":"explore_catalog","description":"The Explore tab's bottle deck: recent public shelf bottles with photos from other collectors, one per expression, blocked and hidden accounts removed."},{"name":"discover_users","description":"Discover 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 foll"},{"name":"search_cocktails","description":"Cocktails 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"},{"name":"explore_recipes","description":"The Explore recipe feed: every drink, ordered by how few bottles you'd need to buy from your own shelf, then popularity. Paged with nextCursor."},{"name":"check_username","description":"Check whether an @handle is valid and free before set_username (same rules and messages as Edit Profile)."},{"name":"export_shelf","description":"Export 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."},{"name":"add_bottle_from_photo","description":"Add 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 bott"},{"name":"regenerate_art","description":"Make 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, P"},{"name":"reidentify_bottle","description":"Think 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 "},{"name":"search_public_bottles","description":"Search bottles like the app's Search tab: other collectors' shelf bottles (with owner username and display name) plus public catalog bottles, ranked like the ap"},{"name":"add_bottle","description":"Add 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"},{"name":"update_bottle","description":"Edit your bottle: notes, price, store, custom name/distillery/proof, batch, barrel details, favorite. Two steps: the first call only previews and returns confir"},{"name":"set_bottle_status","description":"Move 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 "},{"name":"rate_bottle","description":"Rate 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"},{"name":"remove_bottle","description":"Permanently 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"},{"name":"wishlist_add","description":"Put 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 con"},{"name":"wishlist_remove","description":"Delete 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 con"},{"name":"log_pour","description":"Log 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_t"},{"name":"create_collection","description":"Create 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"},{"name":"rename_collection","description":"Rename one of your collections (and optionally change its description). Two steps: the first call only previews and returns confirm_token; show the preview to t"},{"name":"delete_collection","description":"Delete 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 "},{"name":"add_to_collection","description":"Add 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 t"},{"name":"remove_from_collection","description":"Take 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; sho"},{"name":"delete_my_activity","description":"Delete 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;"},{"name":"follow_user","description":"Follow 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 repea"},{"name":"unfollow_user","description":"Stop 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 o"},{"name":"block_user","description":"Block 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 "},{"name":"unblock_all_users","description":"Unblock 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 "},{"name":"update_profile","description":"Edit your profile like Edit Profile in the app: displayName, bio, location, website, instagram, twitter, facebook, tiktok. Only fields you pass change; an empty"},{"name":"set_username","description":"Change your @handle (3–20 characters: lowercase letters, numbers, underscore). Your old handle is released. Use check_username first. Two steps: the first call "},{"name":"send_feedback","description":"Send 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 "}],"package":null,"toolSurface":{"id":"ts_pmpjmfkea9e6","endpointId":"ep_s8t6xdmu6jtu","hash":"9cca746a8fe2271ac5a9f4a2b7782a2d4eb8dc0aa8630cb20258c579b602adfd","toolCount":48,"serverName":"instadram","serverVersion":"1.0.0","protocolVersion":"2025-06-18","firstSeenAt":"2026-10-18T23:31:08.167Z","lastSeenAt":"2026-10-24T22:25:00.218Z","observations":22,"toolNames":["whoami","list_my_bottles","get_my_bottle","get_shelf_value","search_catalog","get_expression","list_my_activity","list_my_collections","search_users","get_user","list_user_bottles","get_user_bottle","list_user_activity","list_user_collections","fetch_bottle_reviews","lookup_bottle","get_feed","explore_catalog","discover_users","search_cocktails","explore_recipes","check_username","export_shelf","add_bottle_from_photo","regenerate_art","reidentify_bottle","search_public_bottles","add_bottle","update_bottle","set_bottle_status","rate_bottle","remove_bottle","wishlist_add","wishlist_remove","log_pour","create_collection","rename_collection","delete_collection","add_to_collection","remove_from_collection","delete_my_activity","follow_user","unfollow_user","block_user","unblock_all_users","update_profile","set_username","send_feedback"],"distinctSurfaces":2},"endpointFacts":[{"id":"ep_s8t6xdmu6jtu","url":"https://api.instadram.me/mcp","type":"mcp_streamable_http","factsCheckedAt":"2026-10-20T23:24:51.167Z","auth":{"observedAt":"2026-10-20T23:24:51.461Z","authRequired":false,"scheme":null,"resourceMetadata":{"url":"https://api.instadram.me/.well-known/oauth-protected-resource/mcp","resource":"https://api.instadram.me/mcp","authorizationServers":["https://api.instadram.me"],"scopesSupported":["instadram.read","ai.use","shelf.write","collections.write","social.write","profile.write"]},"authorizationServer":{"url":"https://api.instadram.me/.well-known/oauth-authorization-server","issuer":"https://api.instadram.me","grantTypesSupported":["authorization_code","refresh_token"],"codeChallengeMethodsSupported":["S256"],"tokenEndpointAuthMethodsSupported":["none"],"dynamicClientRegistration":true,"dpopSigningAlgValuesSupported":[],"clientIdMetadataDocumentSupported":true},"conformance":{"dpop":false,"rfc8414":true,"rfc9728":true,"pkceS256":true,"clientIdMetadataDocument":true,"dynamicClientRegistration":true}},"tls":{"observedAt":"2026-10-20T23:24:51.478Z","protocol":"TLSv1.3","chainValid":true,"chainError":null,"hostMatches":true,"subject":"api.instadram.me","issuer":{"commonName":"WR3","organization":"Google Trust Services"},"validFrom":"2026-10-14T17:16:56.000Z","validTo":"2027-01-12T18:16:12.000Z","daysToExpiry":79,"sanCount":1,"fingerprint256":"C4:E7:72:49:8F:68:FC:FF:AE:F0:1E:62:6F:6F:A2:17:CC:88:78:C7:F9:73:B9:2F:EC:F0:9C:EC:CF:B9:43:CE"}}]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"mcp_registry","key":"me.instadram/instadram","url":"https://registry.modelcontextprotocol.io/v0/servers/me.instadram%2Finstadram","firstSeenAt":"2026-10-17T14:17:47.603Z","fetchedAt":"2026-10-24T12:19:15.286Z","normalizedAt":"2026-10-24T12:19:15.286Z"}]},"firstSeenAt":"2026-10-17T14:17:47.603Z","updatedAt":"2026-10-24T22:29:01.962Z"}