PlayHero MCP · live · read-only

Your agent writes the fix. PlayHero knows what's broken.

Connect any MCP client to your Rallycards. Your agent gets the page, the selector and a suggested fix for each finding it's cleared to read — and proposes the change for you to approve.

Read-only — no writesYou approve every agentRevoke anytime
mcp.playhero.ai/api/agent/mcp
LiveBearer · ph_agent_
ClaudeCursorAny MCP client
PlayHero°list_rallycardsget_rallycardscope · agent:rallycards:read
Page URLpage_urlper finding
Selectorselectorwhere to edit
Suggested fixsuggested_fixwhat to change
Impactpipeline_impactwhen one is recorded

Bring your own agent

Your agent can edit the page. PlayHero runs everything that tells it what to edit.

Any model can rewrite a hero. None of them has scanned your site in a browser and as a crawler, benchmarked it against a corpus, and kept the record of what you decided and whether the fix held. That's what comes through the connection.

Your agentAny MCP client

Writes the code, opens the PR, explains the change.

DetectSeven pillarsBrowser captureCrawler captureChallenge-page checkAgent readiness
PrioritizePipeline-impact sortCorpus benchmarksConfidence filterSite filter
DecideHuman approvalHeroboardDecision historyResolution Brief
VerifyScheduled monitoringRescan on fixDrift alertsOutcome on the card

In one conversation

From "what's broken?" to a fix you review.

What's broken on playhero.ai, ranked by impact?
playhero · list_rallycards { site_id: "…", limit: 3 }
What the tool returns
lowCLS breach: 0.810speed27,098
mediumKeep the CTA reachable mid-scrollaccessibility5,250
mediumKeep navigation reachable mid-scrollaccessibility5,250

Ask about your site, not about websites.

Answers come from your scans, not the model's memory of best practice.Sorted by estimated pipeline impact where one is recorded.Filter by site or confidence so the agent works on what's certain first.

The agent proposes. You decide.

Every card carries the selector and a suggested fix, so the draft lands on the right element.The connection is read-only. Nothing is applied, merged, or approved from the agent's side.The decision stays on your Heroboard, with its history.
Open that card and draft the fix as a PR for me to review.
playhero · get_rallycard { site_id: "…", id: "…" }
What the tool returns
titleCLS breach: 0.810
page_urlhttps://playhero.ai/lumen
selectormain > div > div > div
suggested_fixCLS 0.810 exceeds 0.1 threshold. Layout instability detected.
categoryspeed
severitylow
confidence0.57
pipeline_impact27098
Draft PR opened for your reviewNot merged
Every Monday, list new cards above 0.5 confidence for playhero.ai.
playhero · list_rallycards { site_id: "…", min_confidence: 0.5 }
What the tool returns
lowCLS breach: 0.810speed27,098
mediumKeep the CTA reachable mid-scrollaccessibility5,250
mediumKeep navigation reachable mid-scrollaccessibility5,250

Schedule runs in your agent. PlayHero supplies the cards.

A standing brief, without building a report.

Your agent's own scheduler asks; PlayHero's monitoring keeps the cards current.Revoke a key and that agent loses access immediately.

Where PlayHero picks up

Your agent, with and without the record.

Agent + PlayHeroYour agent alone
EvidenceA browser and crawler capture, with the DOM selectorReads the HTML and guesses what renders
PrioritySorted by estimated pipeline impact where one is recordedEvery issue looks equally urgent
BenchmarkEach finding comes from a scan scored against the PlayHero corpusGeneral best practice, no baseline
ApprovalThe agent proposes; a person approves on the HeroboardChanges ship on the agent's say-so
ProofThe next scan records whether the fix held"Looks done"

Connected in minutes

Your agent asks to join. You let it in.

01 · Copy

Copy the prompt

In Team, open Invite → Agents to get a one-time join prompt. Paste it into your agent.

Read https://playhero.ai/agent/skill.md and follow it to join Your workspace on PlayHero as "Your agent". Join code: ••••
02 · Join

Your agent asks in

It reads skill.md, calls the join endpoint, and waits. No key works until you say so.

POST /api/agent/joinstatus · pending_approval
03 · Approve

You approve it

It appears in Team → Invite → Agents. Approve it, decline it, or revoke it later.

Your agent
04 · Read

It reads your cards

Over MCP or REST, for your workspace only. Start with "what's broken?"

Bearer ph_agent_••••list_rallycards · get_rallycard

Questions

What the connection does — and doesn't.

What is the PlayHero MCP?

A read-only MCP server at mcp.playhero.ai. Its tools, list_rallycards and get_rallycard, return your findings with the page URL, selector, suggested fix, and pipeline impact, when estimated, so a coding agent can propose fixes for human review.

Can my agent change my site or approve a card?

No. The connection is read-only. Your agent can draft a change in your own code tools. Approving it on the Heroboard, and shipping it, stays with a person.

Which AI tools does it work with?

Any client that speaks MCP over HTTP with a bearer token.

How do I revoke an agent?

In Team, find the agent and choose Revoke. Its key stops working on the next call.

Can my agent scan a new URL?

Not over MCP yet. Today it reads the Rallycards from sites you already monitor. To scan a new URL, email it to agent@playhero.ai and PlayHero replies with the score, top Rallycards and a results link.

Is it the same as the REST API?

Same data, same key. GET /api/agent/rallycards and GET /api/agent/rallycards/:id return the same agent-safe cards for clients that don't speak MCP.

Bring your agent

Your agent writes it. PlayHero proves it worked.

Connect your agent →Scan a site first
Read-only · you approve every agent · revoke anytime