Persona. The Universal Form

Across our lifetime, we fill out hundreds of forms. We put in the same names, the same health history, we name our parents, where we went to school, we put in our address, and we do it all over again and again: at the doctor, when renting a home, when applying for government services or a job, at the bank...

What if we only had to maintain one form instead, one that those institutions could request access to?

A place where we know exactly who is asking for our information, and we keep track of what has been shared throughout our lifetime.

What it does

Persona keeps one profile of the facts you normally retype: legal name, date of birth, address, contact details, insurance, employer and income, health history, etc. You fill out that profile once, and maintain only when you have a life update. When an institution needs your information, it sends a request that names who is asking, why, and which fields it wants. You open that request through your agent or directly through the website, choose what to release, and approve it. Persona then sends only the approved fields to that one institution and shows you a transfer record: how many fields went out, and whether the destination confirmed it received them. Institutions never see your full profile, only the necessary fields.

When an active permission still matches the institution, purpose, and requested information, Persona can complete the request without asking you to approve the same disclosure again. Anything new, sensitive, or out of date waits for you. Persona tracks when you last confirmed each fact and flags anything that may be out of date before you send it.

Why WebMCP fits

Completing forms includes repeatable steps and decisions that only a person should make. WebMCP lets the agent find requests, read what each institution needs, open a request, check its status, start an approved transfer, and confirm what the destination received. The person still controls corrections, temporary answers, outdated information, and consent. WebMCP tools receive metadata such as field names and request status. The approved personal information moves directly from Persona to the intended destination through a separate browser channel.

How I built it

Persona is a Next.js and React app written in TypeScript. Locally, one server process serves two web addresses, for the demo, I used: localhost for Persona and 127.0.0.1 for the destination page. Browsers treat those as separate origins, which is what lets the demo show information crossing between these servers.

The agent talks to Persona through WebMCP. The top Persona page registers seven tools with document.modelContext.registerTool. Each tool returns metadata only: field names, counts, request state, transfer state, and destination confirmation state. No tool takes in or hands back a raw profile value.

Approved values move on a separate path. After you approve a request, Persona creates a one-use authorization bound to your browser session, the request version, the recipient, the destination origin, the frame instance, the exact field list, and an expiration time. Persona checks every one of those before it sends the approved values to the destination iframe with postMessage. The destination counts the fields it accepted and reports that count back on its own.

Challenges I ran into

The hardest part was keeping the real person's information away from the AI agent. The agent can read a lot of what the page produces: status messages, error text, the web address, the text a screen reader would read out. A real value like a date of birth could slip into any of those by accident. I built one checked path for all of those places that shows field names and counts instead of values, and I wrote tests that fail if a real value ever shows up where the agent can see it.

Another challenge was deciding which jobs the agent is allowed to do. Give it too little and the person still approves every field by hand. Give it too much and it can send something the person wanted to hold back or edit first. I set clear boundaries for the agent and kept the review step in Persona short, so the person sees what would be shared and can change it before anything moves.

Accomplishments that I'm proud of

I'm a self-taught builder. Thanks to the tools I have access to now, an idea I have carried for so many years can finally be real. A tool like Persona could have an incredible impact on everyone's life.

What I learned

Simple ideas with clear boundaries beat a fancy UI. This first version is not the prettiest, but it shows the core product and the idea behind it.

What's next for Persona

Holding a person's personally identifiable information comes with great power and responsibility. I want to put my effort into making Persona a secure platform, with thoughtful guardrails in place, so that information is not leaked or accessed by bad actors or future AI agents. This next version of Persona will need to meet the rules institutions already follow, like HIPAA, and others. This means that in the future, for Persona to work, it also has to meet the rules institutions already follow, like HIPAA, the U.S. law that governs how health information is stored and shared.

Built With

Share this project:

Updates

Submission history