60fps MCP: iOS interaction library
Search 2,000+ real iOS app interactions in plain language, read the motion anatomy behind each one (trigger, timing, easing, spring) and get starter SwiftUI…
Что умеет
- 60fps Search Shots: Semantic search over the 60fps library of mobile interaction reference clips. Start here when you have the interaction in words; to explore from a shot you already have, use 60fps_
- 60fps List Filters: List the filters the library uses, each with its category (Patterns, Elements, Effects, Gestures, Product) and how many shots carry it. Use it to get exact slugs for the `filters`
- 60fps Get Shot: Fetch the full detail for one shot by its slug: app, platform, URLs, keyframe images (frames sampled from the video at 1s intervals), and the complete AI description (summary, detailed
Какие данные видит
Нужен ли аккаунт
Не нужен: сервер работает без входа
Search 2,000+ real iOS app interactions in plain language, read the motion anatomy behind each one (trigger, timing, easing, spring) and get starter SwiftUI tuned to the real timing.
Как подключить
Как подключить 60fps MCP: iOS interaction library к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://mcp-60fps.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить 60fps MCP: iOS interaction library к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://mcp-60fps.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 откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить 60fps MCP: iOS interaction library к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://mcp-60fps.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (6)
Технические названия из tools/list. Нужны только разработчикам.
| 60fps_search_shots | Semantic search over the 60fps library of mobile interaction reference clips. Start here when you have the interaction in words; to explore from a shot you already have, use 60fps_get_related_shots instead. Returns the best-matching shots (title, app, one-line summary, motion behavior, filters, intensity, mood, and video/poster/page URLs). Use natural language, e.g. 'springy bottom sheet for checkout' or 'calm premium onboarding'. Optionally narrow by filter slugs, app (slug or name), or platform. Filters are exact and results must have ALL of them, so an unknown slug returns nothing: leave `filters` empty unless you took the slugs from a result's `filters`. An `app` that is not in the library is ignored and flagged in `notice`. Read-only; results capped at 20. `total` is how many shots were searched, not a match count: results are the closest by meaning, so always judge them on their own merits rather than assuming a high count means a good match. DO NOT CALL for: Android, Material Design, Flutter or web, since this library is iOS only and will still return iOS shots; generating or critiquing a design (icons, colour palettes, logos, brand), since this searches recordings of shipped apps and cannot design anything; or performance, profiling and frame-rate debugging, which share the name 60fps and nothing else. For any of those, answer directly and do not call this tool. |
| 60fps_list_filters | List the filters the library uses, each with its category (Patterns, Elements, Effects, Gestures, Product) and how many shots carry it. Use it to get exact slugs for the `filters` argument of 60fps_search_shots, or to see what kinds of interaction the library covers. It is a catalogue, not a search: to find shots, use 60fps_search_shots. Free, with no daily limit. |
| 60fps_get_shot | Fetch the full detail for one shot by its slug: app, platform, URLs, keyframe images (frames sampled from the video at 1s intervals), and the complete AI description (summary, detailed description, interaction pattern, gesture/trigger, motion behavior, UI elements, visual style, product context, intensity, mood, search keywords, assigned filters). Use it to judge whether a shot fits or to describe it to the user. It does not include the motion breakdown (states, timing, easing, why it works): get that from 60fps_get_motion_breakdown, and SwiftUI from 60fps_get_motion_code. Get slugs from 60fps_search_shots or 60fps_get_related_shots; an unknown slug returns the closest matches. |
| 60fps_get_related_shots | Find shots most similar to a given shot (nearest neighbours by embedding). Use it when you already have a shot and want 'more like this' or variations; to start from words, use 60fps_search_shots. Returns the same compact rows as 60fps_search_shots, excluding the source shot. An unknown slug returns the closest matches. |
| 60fps_get_motion_breakdown | Get the structured motion anatomy of a shot: the gesture/trigger that starts it, the motion behaviors involved, the start → transition → end states plus why it works, and keyframe images (frames sampled from the video at 1s intervals) to line up with each state. Use this after picking a shot, to understand or recreate how it moves; to judge what a shot is, 60fps_get_shot is enough. Counts toward a daily limit shared with 60fps_get_motion_code, so call it for shots you will actually use. An unknown slug returns the closest matches. |
| 60fps_get_motion_code | Get starter SwiftUI code to recreate a shot's motion, tuned by its motion_params (timing/easing/springiness/stagger become real SwiftUI Animation values). Returns the matching pattern recipe(s) for the shot's motion behaviors. Pair with 60fps_get_motion_breakdown (the start/transition/end states) and the keyframe images (the look). Recreate the MOTION, write your own original content, never the app's copy, brand, or assets. Use it last, when the user wants to build the motion; it counts toward the same daily limit as 60fps_get_motion_breakdown. When `generated` is present it is a complete, compile-checked file: SHOW IT TO THE USER IN FULL in a swift code block. Summarising it instead of printing it is not what was asked for. |