PinAppAI

PinAppAI превращает визуальные пины на сайте в задачи, которые выполняет кодинг-агент

От сообщества: Добавлен пользователем или импортирован; проверьте владельца перед подключениемРаботаетБез входаГлобальныйБесплатноМожет изменять данные

Что умеет

  • Читать очередь открытых запросов на изменение и их детали
  • Получать сводку и анализ паттернов по отзывам проекта
  • Управлять проектами и рабочими пространствами
  • Приглашать участников команды и рецензентов
  • Просматривать журнал аудита и управлять API-ключами

Какие данные видит

Просмотр списка инструментов доступен без ключа, выполнение требует API-ключа рабочего пространства с правами его участников.

Нужен ли аккаунт

Не нужен: сервер работает без входа

MCP-сервер закрывает цикл от визуального отзыва до правки кода: рецензенты кликают элементы на живом сайте и оставляют пины с локатором элемента, URL, устройством и скриншотом, а ассистент читает эти запросы на изменение, применяет их в коде и закрывает. 38 инструментов покрывают всю работу: очередь запросов, анализ паттернов, проекты, участников команды, аудит и API-ключи.

Как подключить

Как подключить PinAppAI к Claude

Адрес сервера, который нужно вставить в настройках Claude:

https://mcp--pinappai.run.tools

  1. Откройте Claude (сайт claude.ai или приложение для компьютера).
  2. Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
  3. Нажмите Добавить пользовательский коннектор (Add custom connector).
  4. Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
  5. В чате нажмите + → Коннекторы и включите новый коннектор.

Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.

Авторизация

После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.

Как подключить PinAppAI к ChatGPT

Адрес сервера, который нужно вставить в настройках ChatGPT:

https://mcp--pinappai.run.tools

  1. Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
  2. Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
  3. Откройте Настройки → Коннекторы и нажмите Создать (Create).
  4. Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
  5. В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
  6. В новом чате откройте + → Приложения/Коннекторы и включите коннектор.

Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.

Авторизация

При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.

Как подключить PinAppAI к Cursor

Адрес сервера, который нужно вставить в настройках Cursor:

https://mcp--pinappai.run.tools

Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.

Вручную:

  1. В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
  2. Вставьте JSON, скопированный ниже, в открывшийся файл ~/.cursor/mcp.json (для одного проекта: .cursor/mcp.json в корне проекта).
  3. Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.

Авторизация

Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.

Список инструментов сервера (38)

Технические названия из tools/list. Нужны только разработчикам.

list_projectsList PinAppAI projects this API key can access. Returns one entry per project in the key's workspace, with slug, name, derived domain, and created_at. Call this first to see what projects are available before drilling into specific ones.
get_review_summaryCheap one-call summary of change-request state for a project. Returns totals + by-page + by-reviewer breakdowns + oldest/newest unresolved timestamps. Call this BEFORE drilling into individual CRs to frame the work.
list_change_requestsList change requests for a project with filters + cursor pagination. Defaults to include=['change_requested'] (highest-signal subset). Returns digest fields per row (including element_kind=text|mixed|field|null and suggested_text — a literal text replacement on text/field picks); no inline images at this tier (token-cheap by design). Use get_change_request for full detail + screenshots.
get_change_requestFull detail for one change request. Returns the CR (including element_kind=text|mixed|field|null and suggested_text — a literal text-replacement the reviewer typed when picking a text/field element), plus related[] (other CRs on the same selector + same page) so you can detect patterns from a single fetch. Set include_image=true to embed the screenshot inline as an MCP image content block. When suggested_text is non-null on a text/field pick, paste it verbatim — do not interpret or rewrite. When element_kind=mixed, the element contains more than text (icons/images/structure) — rely on the comment + screenshot, not just the visible text.
analyze_patternsServer-side deterministic groupings (by selector / page / reviewer / keyword) plus heuristic suggested_clusters of change requests. Set ai_clusters="auto" (default) to also request semantic clustering via the host's MCP sampling capability — returns ai_clustering_hint for the host AI to apply inline if sampling is unsupported. Use this BEFORE drilling into individual CRs to find patterns across the dataset.
get_screenshotReturn the screenshot for a change request as an inline MCP image content block. Use when you want vision context without the full JSON envelope from get_change_request.
get_projectGet a single project by slug — name, allowed_origins, archive state, and the embeddable widget api_key. Scoped to the API key's workspace.
create_projectCreate a new PinAppAI project inside the API key's workspace. Returns the project plus its widget api_key for embedding. Requires editor role on the workspace.
update_projectUpdate editable fields on a project — slug, name, owner_email, allowed_origins, allow_anonymous_reviewers, primary_origin (review link), preview_origin (preview review link). Requires editor role.
archive_projectSoft-archive a project — the widget stops accepting new feedback but the project + history is preserved. Reversible via unarchive_project. Owner role required.
unarchive_projectRestore an archived project — the widget starts accepting feedback again on pages that still embed the snippet. Owner role required.
list_workspacesList all workspaces the API key's user is a member of, with role per workspace. The api-key remains bound to its original workspace — to operate on another, mint a new key for that workspace in the admin UI.
create_workspaceCreate a new workspace owned by the API key's user. Free/Pro plans cap at 1 workspace; Team/Business unlimited. To use the new workspace from MCP, mint a fresh key for it in the admin UI.
get_workspaceGet the API key's workspace details (slug, name, plan, tier) plus the user's role in that workspace. Useful as a permissions probe.
update_workspaceRename or re-slug the API key's workspace. Owner role required. Slug changes break existing dashboard URLs.
delete_workspaceSchedule the API key's workspace for permanent deletion (7-day grace window). Reversible only via the email magic-link sent to the owner. Subsequent MCP calls with this key will fail not_found until cancelled.
list_membersList members of the API key's workspace with their roles, sorted owner → admin → editor → viewer. The user_id field is the lookup key for update_member_role and remove_member.
invite_memberInvite a user to the API key's workspace as admin / editor / viewer (default editor). Admin role required to call. Sends a welcome email.
update_member_roleChange a workspace member's role. Caller must outrank both the current role and the new role; promoting to owner requires owner role. Last-owner demotion is rejected with last_owner.
remove_memberRemove a member from the API key's workspace. Self-removal works for any role; cross-removal requires admin+ and outranking the target. Last-owner removal returns last_owner.
list_reviewersList external reviewers on a project (people invited via invite_reviewer). Workspace members are implicitly authorized and not listed here. Status: pending / verified / revoked.
invite_reviewerInvite an external reviewer to a project. They'll get a welcome email; status starts pending and flips to verified when they OTP through the widget. Editor role required.
revoke_reviewerRevoke an external reviewer's access. First call soft-revokes (status=revoked, audit trail preserved); second call hard-deletes (status=removed). Editor role required.
list_audit_eventsRead audit log entries for the API key's workspace. Owner role + Business tier required. Returns newest-first; supports filters action / actor (email substring) / from / to (Unix ms).
list_api_keysList API keys (active + recently-revoked) in the calling key's workspace. Plaintext / hash never returned. Owner or admin role required.
get_api_keyGet a single API key's metadata by id (no plaintext / hash). Owner or admin role required. Wrong-role and nonexistent-id both surface as not_found.
revoke_api_keySoft-revoke an API key (reversible via restore_api_key for 7 days). Owner or admin role required. Refuses to revoke the calling key with cannot_revoke_self.
restore_api_keyRestore a soft-revoked API key (within 7 days of revocation). Owner or admin role required. Returns restore_window_expired if the row was never revoked or was revoked > 7 days ago.
get_meWhoami probe — returns the user behind the API key, the workspace it's bound to, the user's role in that workspace, and the API key's metadata. Run this first to establish context.
update_me_profileUpdate the API key user's display name. Email is identity and not editable.
export_my_dataGDPR Art. 15 right-of-access export — every row PinAppAI holds about the API key's user. Sensitive columns (password hash, OAuth tokens) are server-side redacted. Personal data of OTHER reviewers is NOT included.
pinappai_get_iteration_coverageRead coverage metrics for an iteration: items_decided / manifest_size + items_undecided + per-reviewer decided_count + disagreement_count. Useful for the AI to summarize "you have N items still waiting on M reviewers" and identify CRs needing admin attention. Read-only.
pinappai_list_iterationsPaginated history of iterations for a project, newest first. Each entry includes seq_no, opened_at, applied_at (NULL while open), bundle_summary, and the frozen manifest_cr_ids_json + manifest_reviewer_ids_json. Pair with pinappai_get_iteration_coverage to summarize outcomes per iteration.
pinappai_list_apply_inboxv3 Apply-inbox listing. Returns every change request in an Apply-eligible inbox substate (inbox_new / inbox_rejected / inbox_change_requested) with the prior cr_marked_applied event payload AND the latest reviewer/admin decision payload inlined per row. Used by /pinappai:apply to drive substate-specific edits (new = standard apply; rejected = revert via swap; change_requested = apply with new wording) in one round-trip.
pinappai_apply_change_requestsv3 atomic apply primitive. Takes a list of {cr_id, before_text, after_text} after the AI has edited source for each. Creates one iteration record (audit trail visible in the Project history page) and transitions every eligible CR from inbox_* state to 'in_review' atomically. Per-CR errors (CR not in eligible state, e.g. someone deferred it mid-session) are returned in the response without failing the whole batch. Editor role required.
pinappai_reset_review_dataPermanently deletes a project's review data: all change requests (+ their event history), iterations, reviewer decisions, ALL freeform pins/comments with their screenshots, and the /changes/-page registration tables. NOT recoverable — no grace window. Requires admin role. Ask the user for explicit confirmation before calling, and prefer the /pinappai:reset-project prompt, which also offers to clean up the repo's static /changes/ page and .pinappai/last-applied.json.
pinappai_register_change_itemsRegister the items of a freshly written /changes/ review page with the server — REQUIRED after generating or regenerating the page, or the in-page review chip and decision bars have no data. Pass every [data-pp-item] in document order with the same attribute values you put in the markup. This replaces the removed client-side self-registration: the page itself can no longer register anything. Editor role required.
pinappai_get_workflowReturn the full procedure for a PinAppAI guided workflow, rendered exactly as the /pinappai:<name> prompt delivers it. Call this when the user asks for one of these and this client does not surface MCP prompts. Follow the returned text verbatim and do not improvise a workflow from its name or description. Available workflows: analyze Read-only pattern analysis of change requests apply v3 PinAppAI Apply — drain the project Inbox by editing source for every Apply-eligible change… audit-review Pull recent audit-log events for the workspace and summarize unusual activity auth-help Walk through PinAppAI MCP authentication — recommend the browser-flow login first, fall back… embed-widget Embed the PinAppAI widget snippet into an EXISTING project's site, then bootstrap the… generate-changes-page Generate a temporary /changes/ review page for a multi-page rewrite remove Remove ALL PinAppAI integration from this repository (widget script, /changes/ pages, optional… reset-project Reset a project's review data to zero — permanently delete its change requests, iterations,… setup-project Walk the user through creating a new PinAppAI project from scratch — pick or create a… summarize Generate a PR description / changelog / customer email from completed work, referencing the…