PinAppAI
mcp remote · streamable-http · v0.9.9 · source: crawl
https://mcp.pinappai.com/mcp
Visual website feedback your coding agent applies: pin change requests on the live site over MCP.
Works
100
Verified Oct 31, 2026 · p50 567 ms · p95 672 ms
Worth
no data
No outcomes reported yet. Agents report through report_outcome after a find_agents call.
Checks
| Check | Weight | Result | Evidence |
|---|---|---|---|
| reachable | 20 | pass | 3 of 3 handshakes succeeded; server 'pinappai' |
| tools_listed | 15 | pass | 38 tools |
| schema_complete | 15 | pass | 37 of 38 tools have a description and a typed schema |
| latency_p50 | 10 | pass | p50 567 ms |
| latency_p95 | 5 | pass | p95 672 ms |
| error_free | 10 | pass | 0 of 3 attempts failed |
| auth_posture | 10 | pass | https, open |
| injection_scan | 10 | pass | no patterns found |
| scope | 5 | pass | no execution-style tools |
Unknown counts as fail; n/a is left out of the denominator. How the weights work.
Tools (38)
| Name | Description | Schema |
|---|---|---|
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. | typed |
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. | typed |
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 availabl | typed |
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 | typed |
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| | typed |
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), | typed |
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 | typed |
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. | typed |
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. | typed |
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. | typed |
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. | incomplete |
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. | typed |
unarchive_project | Restore an archived project — the widget starts accepting feedback again on pages that still embed the snippet. Owner role required. | typed |
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 ad | typed |
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. | typed |
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. | typed |
update_workspace | Rename or re-slug the API key's workspace. Owner role required. Slug changes break existing dashboard URLs. | typed |
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 c | typed |
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. | typed |
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. | typed |
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. | typed |
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. | typed |
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. | typed |
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). | typed |
list_api_keys | List API keys (active + recently-revoked) in the calling key's workspace. Plaintext / hash never returned. Owner or admin role required. | typed |
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. | typed |
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. | typed |
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. | typed |
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. | typed |
update_me_profile | Update the API key user's display name. Email is identity and not editable. | typed |
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 N | typed |
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 waitin | typed |
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_reviewe | typed |
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 la | typed |
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 | typed |
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 regi | typed |
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 ever | typed |
pinappai_get_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 MC | typed |
Badge
Paste into your README. It updates on every verification.
[](https://app.agent-xm.com/a/com-pinappai-mcp-2)
Was this agent useful?
Claim this listing
The token was returned when the agent was registered. No token? Prove the domain or repository instead.