{"serverId":"mcp-registry/com.pinappai/mcp","tools":[{"name":"update_me_profile","fixed":{"name":"update_me_profile","description":"Update the API key user's display name. Email is identity and not editable.","inputSchema":{"type":"object","required":["name"],"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"description":"The new display name."}},"additionalProperties":false},"annotations":{"idempotentHint":true,"readOnlyHint":false,"destructiveHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"update_project","fixed":{"name":"update_project","description":"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.","inputSchema":{"type":"object","required":["project"],"properties":{"name":{"type":"string","maxLength":120,"minLength":1,"description":"New display name for the project."},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9-]*$","maxLength":64,"minLength":2,"description":"New slug (renames the project; widget snippets keep working since they reference api_key, not slug)."},"project":{"type":"string","minLength":1,"description":"Current project slug (the lookup key)."},"owner_email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","maxLength":254,"description":"Reassign project ownership to a different email (for display only — does not change permissions)."},"preview_origin":{"anyOf":[{"type":"string","format":"uri","maxLength":255},{"type":"null"}],"description":"Optional branch/preview deploy origin. review.pinappai.com/p/<slug>~preview/ serves it so reviewers can check APPLIED changes before they ship — records still write against primary_origin. Set this after publishing an apply round to a preview deploy; null (or an empty string) clears it."},"primary_origin":{"anyOf":[{"type":"string","format":"uri","maxLength":255},{"type":"null"}],"description":"Canonical site origin powering the no-install review link (review.pinappai.com/p/<slug>/). Any URL is normalized down to its origin. null (or an empty string) clears it and disables the link."},"allowed_origins":{"type":"array","items":{"type":"string","maxLength":255,"minLength":1},"maxItems":20,"description":"REPLACES the existing list. Pass an empty array [] to clear all allowed origins."},"allow_anonymous_reviewers":{"type":"boolean","description":"When true, any verified email on a CORS-allowed origin can submit feedback. When false, the email must be on the workspace or project_reviewers list."}},"additionalProperties":false},"annotations":{"idempotentHint":true,"readOnlyHint":false,"destructiveHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":599,"tokensAfter":599}],"toolsChanged":2,"tokensSaved":0,"todo":[],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}