PinAppAI

com.pinappai由 pinappai.com 发布官方发布者v0.9.9更新于 Oct 24, 2026

Visual website feedback your coding agent applies: pin change requests on the live site over MCP.

已验证Streamable HTTP可网页运行效率与工作流开发者工具商业与电商

概览

AI 生成的概览

让助手读取和管理 PinAppAI 的网站视觉反馈——项目、变更请求、评审人和迭代——并应用已批准的修改。

可以做什么
将助手连接到 PinAppAI 工作区中的网站视觉反馈。它可以列出项目和变更请求,返回变更请求的完整详情(含建议的文字替换),并以内联图片形式返回截图,还能按选择器、页面、评审人或关键词对反馈分组。此外可管理项目、工作区、成员、评审人和 API 密钥,并支持应用流程:记录迭代并将变更请求转入评审状态。
适用场景
适用于团队通过 PinAppAI 在线上或预览站点收集视觉反馈,并希望由编码助手分拣变更请求、汇总评审进度、在留有审计记录的前提下应用已批准的文字修改。
运行要求
以远程端点或本地 npm 包(stdio)方式运行。需要 PinAppAI 工作区 API 密钥:CI 或无头环境通过 PINAPPAI_API_KEY 提供,交互式环境使用登录命令;远程调用使用 Authorization bearer 请求头。部分操作需要编辑者、管理员或所有者角色,审计日志需要 Business 套餐。
安装前请注意
API 密钥可访问整个工作区及其反馈数据。许多工具会修改或删除数据:创建、更新和归档项目,邀请和移除成员与评审人,吊销 API 密钥,以及删除工作区(有 7 天宽限期)。重置工具会永久删除评审数据且无法恢复。应用变更请求会写入迭代记录并改变评审状态。截图和评审人数据会发送给助手。

安装

在 SourceWeft 中

  1. 打开 控制台中的 PinAppAI,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.pinappai%2Fmcp/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "pinappai": {
      "type": "http",
      "url": "https://mcp.pinappai.com/mcp"
    }
  }
}

工具

38

list_projects

List 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_summary

Cheap 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.

输入参数project必填

list_change_requests

List 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.

输入参数limitsincecursorincludeproject必填page_urlreviewer

get_change_request

Full 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.

输入参数id必填project必填include_image

analyze_patterns

Server-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.

输入参数includeproject必填group_byai_clustersai_model_preference

get_screenshot

Return 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.

输入参数id必填project必填

get_project

Get a single project by slug — name, allowed_origins, archive state, and the embeddable widget api_key. Scoped to the API key's workspace.

输入参数project必填

create_project

Create 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.

输入参数name必填slug必填allowed_origins

update_project

Update 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.

输入参数nameslugproject必填owner_emailpreview_originprimary_originallowed_originsallow_anonymous_reviewers

archive_project

Soft-archive a project — the widget stops accepting new feedback but the project + history is preserved. Reversible via unarchive_project. Owner role required.

输入参数project必填

unarchive_project

Restore an archived project — the widget starts accepting feedback again on pages that still embed the snippet. Owner role required.

输入参数project必填

list_workspaces

List 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_workspace

Create 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.

输入参数name必填slug必填

get_workspace

Get the API key's workspace details (slug, name, plan, tier) plus the user's role in that workspace. Useful as a permissions probe.

无需输入参数。

update_workspace

Rename or re-slug the API key's workspace. Owner role required. Slug changes break existing dashboard URLs.

输入参数nameslug

delete_workspace

Schedule 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_members

List 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_member

Invite a user to the API key's workspace as admin / editor / viewer (default editor). Admin role required to call. Sends a welcome email.

输入参数nameroleemail必填

update_member_role

Change 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.

输入参数role必填user_id必填

remove_member

Remove 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.

输入参数user_id必填

list_reviewers

List external reviewers on a project (people invited via invite_reviewer). Workspace members are implicitly authorized and not listed here. Status: pending / verified / revoked.

输入参数project必填

invite_reviewer

Invite 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.

输入参数nameemail必填project必填

revoke_reviewer

Revoke an external reviewer's access. First call soft-revokes (status=revoked, audit trail preserved); second call hard-deletes (status=removed). Editor role required.

输入参数project必填reviewer_id必填

list_audit_events

Read 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).

输入参数tofromactorlimitactionoffset

list_api_keys

List API keys (active + recently-revoked) in the calling key's workspace. Plaintext / hash never returned. Owner or admin role required.

无需输入参数。

get_api_key

Get 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.

输入参数id必填

revoke_api_key

Soft-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.

输入参数id必填

restore_api_key

Restore 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.

输入参数id必填

get_me

Whoami 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_profile

Update the API key user's display name. Email is identity and not editable.

输入参数name必填

export_my_data

GDPR 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_coverage

Read 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.

输入参数project必填iteration_id必填

pinappai_list_iterations

Paginated 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.

输入参数limitproject必填before_seq

pinappai_list_apply_inbox

v3 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.

输入参数limitproject必填

pinappai_apply_change_requests

v3 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.

输入参数applies必填project必填bundle_summary

pinappai_reset_review_data

Permanently 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.

输入参数confirm必填project必填

pinappai_register_change_items

Register 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.

输入参数items必填project必填page_path

pinappai_get_workflow

Get PinAppAI workflow

Return 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…

输入参数name必填

版本历史

1
  1. v0.9.9最新Sep 16, 2026

评分

已满足适用检查项的 75%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分

    请声明包含 README 的 GitHub 仓库,或在 OAuth 受保护资源元数据中提供 resource_documentation。

  • 许可证10 分

    请在仓库或注册中心条目中声明许可证。