Openhandle
Read public Instagram, TikTok, X, and Reddit profiles, posts, comments, and metrics through MCP.
Что умеет
- Find Test Data: Find stable synthetic inputs by platform, resource, operation, literal traits, expected status, error code, or text. This discovery call is unmetered.
- Get Test Data: Get one synthetic catalog entry by its stable catalog ID. This discovery call is unmetered.
- Instagram Comment Likers List: List comment likers from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null mea
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Read public Instagram, TikTok, X, and Reddit profiles, posts, comments, and metrics through MCP.
Connect agents with OAuth or an API key. Applications can also use the REST API. Choose live data or cached responses for creator analytics, influencer vetting, and social listening. Missing metrics remain null.
Pricing is prepaid and based on usage, with no subscription. Start with 100 real requests once, without a payment card, plus unlimited synthetic test requests. Live requests cost $0.0025 for the first 100,000 each month, then $0.002. Balance top-ups start at $10. Cached responses cost less; 30-day cache hits are free.
Как подключить
Как подключить Openhandle к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://openhandle--openhandle.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить Openhandle к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://openhandle--openhandle.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить Openhandle к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://openhandle--openhandle.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (60)
Технические названия из tools/list. Нужны только разработчикам.
| find_test_data | Find stable synthetic inputs by platform, resource, operation, literal traits, expected status, error code, or text. This discovery call is unmetered. |
| get_test_data | Get one synthetic catalog entry by its stable catalog ID. This discovery call is unmetered. |
| instagram_comment_likers_list | List comment likers from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.comment.likers.list for compatible synthetic input. |
| instagram_get_hashtag | Return one public hashtag by its native identifier. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.hashtag.get for compatible synthetic input. |
| instagram_get_location | Return one public location by its native identifier. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.location.get for compatible synthetic input. |
| instagram_get_music | Return one public music by its native identifier. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.music.get for compatible synthetic input. |
| instagram_get_post | Get a post by a canonical platform identifier. URLs must be converted before calling a data endpoint. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.post.get for compatible synthetic input. |
| instagram_get_profile | Return one public profile. Use @username or a platform ID as the identifier. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.get for compatible synthetic input. |
| instagram_highlight_get | Get a highlight from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.highlight.get for compatible synthetic input. |
| instagram_list_comment_replies | Return a stable page of replies for one comment. Use find_test_data to discover compatible post and comment IDs. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.comment.replies.list for compatible synthetic input. |
| instagram_list_followers | Return a cursor-paginated collection of Instagram profiles. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.followers.list for compatible synthetic input. |
| instagram_list_following | Return a cursor-paginated collection of Instagram profiles. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.following.list for compatible synthetic input. |
| instagram_list_hashtag_posts | Return a cursor-paginated collection of public posts. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.hashtag.posts.list for compatible synthetic input. |
| instagram_list_hashtag_reels | Return a cursor-paginated collection of Instagram reels for a hashtag. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.hashtag.reels.list for compatible synthetic input. |
| instagram_list_location_posts | Return a cursor-paginated collection of public posts. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.location.posts.list for compatible synthetic input. |
| instagram_list_post_comments | List post comments by a canonical platform identifier. URLs must be converted before calling a data endpoint. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.post.comments.list for compatible synthetic input. |
| instagram_list_post_likers | Return public profiles that liked an Instagram post. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.post.likers.list for compatible synthetic input. |
| instagram_list_post_tagged_users | Return public profiles tagged in an Instagram post. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.post.tagged.users.list for compatible synthetic input. |
| instagram_list_profile_pinned_posts | Return a cursor-paginated Instagram profile collection. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.pinned.posts.list for compatible synthetic input. |
| instagram_list_profile_posts | Return a stable page of posts for one public profile. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.posts.list for compatible synthetic input. |
| instagram_list_profile_reels | Return a cursor-paginated Instagram profile collection. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.reels.list for compatible synthetic input. |
| instagram_list_profile_reposts | Return a cursor-paginated Instagram profile collection. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.reposts.list for compatible synthetic input. |
| instagram_list_profile_tagged_posts | Return a cursor-paginated Instagram profile collection. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.tagged.posts.list for compatible synthetic input. |
| instagram_list_profile_videos | Return a cursor-paginated Instagram profile collection. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.videos.list for compatible synthetic input. |
| instagram_list_suggested | Return the current collection of Instagram profiles. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.suggested.list for compatible synthetic input. |
| instagram_music_stream_list | List music stream pages from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.music.stream.list for compatible synthetic input. |
| instagram_post_clip_metadata_get | Get clip metadata from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.post.clip.metadata.get for compatible synthetic input. |
| instagram_post_comment_metadata_get | Get comment metadata from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.post.comment.metadata.get for compatible synthetic input. |
| instagram_post_comment_moderation_get | Check comment moderation from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.post.comment.moderation.get for compatible synthetic input. |
| instagram_post_insights_get | Get post insights from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.post.insights.get for compatible synthetic input. |
| instagram_post_oembed_get | Get post oEmbed data from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.post.oembed.get for compatible synthetic input. |
| instagram_post_template_get | Get post template from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.post.template.get for compatible synthetic input. |
| instagram_profile_about_get | Get profile about information from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.about.get for compatible synthetic input. |
| instagram_profile_business_recommendations_list | List business recommendations from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.business.recommendations.list for compatible synthetic input. |
| instagram_profile_highlights_list | List profile highlights from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.highlights.list for compatible synthetic input. |
| instagram_profile_stories_list | List profile stories from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.stories.list for compatible synthetic input. |
| instagram_search_hashtags | Search public Instagram hashtags with cursor pagination. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.search.hashtags.list for compatible synthetic input. |
| instagram_search_music | Search public Instagram music with cursor pagination. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.search.music.list for compatible synthetic input. |
| instagram_search_places | Search public Instagram places with cursor pagination. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.search.places.list for compatible synthetic input. |
| instagram_search_profile_followers | Search within a public profile's followers collection. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.followers.search for compatible synthetic input. |
| instagram_search_profile_following | Search within a public profile's following collection. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.profile.following.search for compatible synthetic input. |
| instagram_search_profiles | Search public Instagram profiles with cursor pagination. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.search.profiles.list for compatible synthetic input. |
| instagram_search_reels | Search public Instagram reels with cursor pagination. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.search.reels.list for compatible synthetic input. |
| instagram_search_top_list | Search all Instagram results from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.search.top.list for compatible synthetic input. |
| instagram_story_get | Get a story from public Instagram data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=instagram.story.get for compatible synthetic input. |
| reddit_domain_posts_list | List domain posts from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.domain.posts.list for compatible synthetic input. |
| reddit_post_comments_list | List post comments from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.post.comments.list for compatible synthetic input. |
| reddit_post_duplicates_list | List duplicate posts from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.post.duplicates.list for compatible synthetic input. |
| reddit_post_get | Get a post from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.post.get for compatible synthetic input. |
| reddit_profile_comments_list | List profile comments from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.profile.comments.list for compatible synthetic input. |
| reddit_profile_get | Return one public Reddit profile. Use @username or a t2_ profile ID. An ID resolves only after the profile was read by username once. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.profile.get for compatible synthetic input. |
| reddit_profile_moderated_list | List moderated subreddits from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.profile.moderated.list for compatible synthetic input. |
| reddit_profile_posts_list | List profile posts from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.profile.posts.list for compatible synthetic input. |
| reddit_profile_trophies_list | List profile trophies from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.profile.trophies.list for compatible synthetic input. |
| reddit_search_posts_list | Search posts from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.search.posts.list for compatible synthetic input. |
| reddit_search_profiles_list | Search profiles from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.search.profiles.list for compatible synthetic input. |
| reddit_search_subreddits_list | Search subreddits from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.search.subreddits.list for compatible synthetic input. |
| reddit_subreddit_get | Get a subreddit from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.subreddit.get for compatible synthetic input. |
| reddit_subreddit_posts_list | List subreddit posts from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.subreddit.posts.list for compatible synthetic input. |
| reddit_subreddit_rules_list | List subreddit rules from public Reddit data. The API key selects Test or Live. Test calls record a $0.000 actual charge and return the live-equivalent price. null means unavailable, not zero. Use find_test_data with operation=reddit.subreddit.rules.list for compatible synthetic input. |