# SocialPoof > SocialPoof collects testimonials from real customers and shows the ones the owner approves on their site. It is a web app first (inbox, forms, walls, hosted Wall of Love page, share images, asks, import, analytics), and the day-to-day work (forms, walls, asks, approving, embeds) is also a set of tools you can call over MCP or REST. You can sign up and run it yourself, and a human can sign in to the same account at any time to see and change what you did. Agent access is on every plan, trial included. ## Connect MCP server (Streamable HTTP): https://socialpoof.io/mcp One line for Claude Code: claude mcp add --transport http socialpoof https://socialpoof.io/mcp The `signup` tool is the only one that works without a key. It returns an API key (shown once). Send the key as `Authorization: Bearer ` on every other call, or pass `api_key` as an argument. Store the key in user-local config, never in committed files. ## Tools The original 13 (unchanged inputs and outputs, with additive fields only): signup, create_project, create_wall, send_asks, import_testimonials, list_testimonials, approve_testimonial, reject_testimonial, set_excerpt, get_embed, create_webhook, get_billing_link, share_install_run Added with the web app (the same operations the app uses): - Forms: list_forms, create_form, update_form - Walls: list_walls, update_wall - Editing: edit_testimonial (author details), fix_testimonial_text (typos only), tag_testimonial, delete_testimonial, bulk_testimonials - Webhooks: list_webhooks, delete_webhook, test_webhook - One item and undo: get_testimonial, unapprove_testimonial (back to waiting) - Asks: list_asks (who was asked: answered, waiting, opted_out) Account-level actions (delete account, data export, key rotation, plan changes) are for the human, in the app. They are not tools: ask your human to do them there. ## Forms and walls A brand (project) has one or more collect FORMS (the page people answer: questions, fields, stars, text or video, look, thank-you message) and one or more WALLS (the display you embed: layout grid, carousel, single or marquee; stars on or off; which quotes). A wall shows the brand's approved quotes from every form. - create_wall also creates the brand's default form if it has none, and still returns collect_url. - wall_id keeps working everywhere it did: on send_asks, import_testimonials and list_testimonials it means the brand's default form, and /c/ opens that form. Pass form_id to name another form. - update_wall can pin quotes first, in order (items), or show only the picks (picked_only). ## How it runs 1. signup, then create_project and create_wall (min_items=3 by default). The wall returns a collect URL. 2. send_asks returns a personal link and draft text for every recipient. Email delivery is Pro only. 3. list_testimonials shows what is waiting, counted by rating. approve_testimonial or reject_testimonial. Reject reasons are never about sentiment: pii, profanity, off_topic, spam, withdrawn. 4. get_embed returns the web component, a public JSON endpoint and a React snippet, plus status_url, a read-only page for the owner. ## Plans (contract v2) `plan` in signup and get_billing_link is one of: trial, expired, starter, pro, agency. Old values: free is now trial (or expired once the 14 days are over), paid is now starter, pro or agency. `price` is "$19/month" (starter), "$39/month" (pro), "contact us" (agency) or both prices while unpaid. trial: 1 brand, unlimited forms per brand, 25 testimonials (text only), no SocialPoof-sent asks, SocialPoof mark shown starter: 1 brand, 1 form per brand, unlimited testimonials incl. video, no SocialPoof-sent asks, no mark ($19/month) pro: 5 brands, unlimited forms per brand, unlimited testimonials incl. video, SocialPoof-sent asks, no mark ($39/month) agency: unlimited brands, unlimited forms per brand, unlimited testimonials incl. video, SocialPoof-sent asks, no mark (contact us) - The trial is 14 days with no card, with 1 brand and 25 text testimonials. Starter is $19/month (1 brand, 1 form, text and video, no SocialPoof mark). Pro is $39/month (5 brands, unlimited forms, SocialPoof sends the ask emails). Agency is by conversation at /agency. When the trial ends the collect link stops collecting and the wall stays up with a "Collected with SocialPoof" link. Results carry a `notices` array on trial days 12 to 14 and after: pass the billing link to your human. - Over a plan limit (brands, forms, SocialPoof-sent asks) a tool returns `plan_required` with an `upgrade_url` field (and the same link in the hint). get_billing_link returns a signed link that opens Stripe Checkout, or the plan page if the human already pays. It is not a static payment link; ask for a fresh one if it has expired. ## Rules worth knowing - Walls are labelled "Selected by ". Public data is name, title, company, avatar, text or excerpt, video id, and, when the wall shows stars, each quote's own `rating`. Stars are on by default and the owner can switch them off per wall (update_wall, show_stars). There is never an average or a review count. Emails and consent records are never public. - Never write testimonials yourself. Import only real posts (import_testimonials needs source_url and consent_source). - Do not change what a customer wrote. fix_testimonial_text accepts only typo fixes (about 5% of the original at most, no number and no negation changed) and keeps the original words; use set_excerpt to show less. - bulk_testimonials takes explicit ids only. Do not choose what to approve by star rating: that is sentiment gating. ## Status Ask for the owner's status link with get_embed or list_testimonials (status_url). It is unguessable, read-only and rotates with the API key.