Portal MCP (Beta)
The Portal MCP server lets any AI coding agent create Portals and embeds for you. Tell your agent what you want: it handles auth, content setup, and deployment.
Install
Installation
CursorClaude CodeCodexVS CodeGemini CLI
Click the button below to install in Cursor:
Or add it manually:
After installing, quickly restart Cursor (close & re-open) for the MCP to activate.
~/.cursor/mcp.json
{
"mcpServers": {
"portal": {
"url": "https://mcp-portal-sogv.onrender.com/mcp"
}
}
}
For other clients, add the MCP URL directly: https://mcp-portal-sogv.onrender.com/mcp
Ask Your Agent
| Type | What it tests | Prompt | |
|---|---|---|---|
| Watch | AI-narrated tour of a public site | Make a watch mode portal of stripe.com that walks viewers through the homepage | |
| Record | Record yourself giving a demo | Make a watch mode portal of my product (makeportals.com) that walks viewers through the dashboard and how portals look and let me record myself giving a demo of it | |
| Play | Sandboxed product trial with guardrails | Make a play mode portal of my product signed into a demo account with the account and logout buttons disabled and staying on the dashboard | |
| Watch | Embeddable product walkthrough | Make a watch mode portal of our landing page I can embed on our site that gives a tour and answers questions | |
| Local file | Deploy a local app as a Portal | Deploy my Vite app at ./my-project as a play mode portal with an AI assistant | |
| Extension | Chrome extension Portal on any site | Build a Chrome extension that rewrites NYT headlines into Gen Z slang, then deploy it as a play mode portal on nytimes.com |
What happens:
- Agent authenticates you (first time: Google sign-in, then cached)
- Sets up your content (website, local project, or extension)
- Generates the experience
- Shows you a draft for approval
- Deploys and returns your shareable link
Post-deploy: Add CTA buttons, get embed snippets, create attribution links, pull session replays: just ask your agent.
Pricing: View credit packs and pricing. Your agent can call buy_credits to purchase more.
How it works
What happens when you ask your coding agent to make a Portal.
“Make me a Portal for X”
Auto Sign in One-time Google sign-in via browser
What kind of content?
Websitepublic or needs login
Local projectzip + upload from disk
Chrome extmanifest.json at root
Example appbuilt-in demo
Watch or Play?
Watch mode AI leads a guided demo
Autonomous AI auto-finds buttons & scripts scenes
or
Manual Record yourself giving a demo
Play mode User explores, AI answers
Autonomous AI scrapes & blocks risky selectors
or
Manual Click selectors to block yourself
Review draft Agent shows you greeting, selectors, scenes, guardrails — you approve or edit
make_portal Deploy → shareable link (1 credit)
Post-deploy CTA button · Embed · Attribution links · Session replays
Tool Reference
The MCP server exposes 27 tools. Your agent picks the right ones automatically.
Essential Tools
| Tool | What it does |
|---|---|
portal_status |
Check if you're logged in + credit balance |
portal_login |
Sign in (first time only, ~10s) |
make_portal |
Deploy your Portal (costs 1 credit) |
get_portal |
Poll until Portal is ready |
Content Setup
| Tool | Use when |
|---|---|
save_login |
You need viewers to start already logged in |
upload_source |
Sharing a local project (zip uploaded from disk) |
create_script |
AI auto-generates the experience (Watch or Play) |
record_demo |
You want to record yourself giving a demo |
pick_selectors |
You want to manually pick what to block/hide |
Post-Deploy
| Tool | What it does |
|---|---|
configure_portal |
Add CTA buttons, set usage limits |
configure_embed |
Get <iframe> embed code |
get_portal_sessions |
View session replays + conversation logs |
list_portals |
See all your Portals |
buy_credits |
Purchase more credits |
All 27 Tools
Auth:portal_status, portal_login, portal_login_check, portal_logout
Content:save_login, upload_source, create_script, get_script, record_demo, start_recording, stop_recording, pick_selectors, pick_selectors_complete, deploy_example
Credentials:create_credential, list_credentials, delete_credential, generate_totp
Portals:make_portal, get_portal, list_portals, configure_portal, configure_embed, get_portal_sessions, get_creation_logs
Utilities:normalize_ptl, validate_ptl, get_session
Billing:buy_credits
Portal Spec (JSON)
Every Portal is a JSON document. The MCP agent builds this for you: here's the format, split by mode.
Play Mode: visitor explores, AI answers questions:
{
"entry": {
"url": "https://app.example.com/dashboard",
"state": "saved_state"
},
"experience": {
"mode": "play",
"agent": {
"enabled": true,
"interface": ["voice", "text"],
"greeting": "Welcome! Explore the dashboard.",
"knowledge": "Your product docs here."
}
},
"guardrails": {
"allowed_urls": ["app.example.com/dashboard", "app.example.com/settings"],
"disabled_elements": [
{ "selector": "#delete-account" },
{ "selector": ".danger-zone" }
],
"api_rules": {
"rate_limits": [
{ "name": "Chat API", "pattern": "/api/chat", "method": "POST", "max": 5, "windowMs": 60000 }
]
}
}
}
Play-specific fields:guardrails.allowed_urls (restricts navigation), guardrails.disabled_elements (hides UI elements), guardrails.api_rules (rate limits, blocked methods).
Watch Mode: AI leads a guided demo:
{
"entry": {
"url": "https://app.example.com/dashboard",
"state": "saved_state"
},
"experience": {
"mode": "watch",
"agent": {
"enabled": true,
"interface": ["voice", "text"],
"greeting": "Welcome! I'll walk you through the dashboard.",
"goal": "Demo the analytics dashboard and key metrics.",
"knowledge": "This app tracks website traffic.",
"cursor": { "enabled": true, "color": "#4A4A4A", "speed": 400 }
}
}
}
Watch-specific fields:goal (what the AI demonstrates), cursor (animated pointer). allowed_urls is ignored in Watch mode: the AI controls navigation.
Minimal spec (smallest valid Portal):
{
"entry": { "url": "https://example.com" },
"experience": { "mode": "play" }
}
API Keys & Limits
For CI or headless environments, generate API keys from the Developers page.
- Keys start with
ptl_ - Scoped to your account
Rate limits:
| Surface | Limit |
|---|---|
| MCP | 10 creations/hr, 30 calls/min |
| Builder | 10 creations/hr per account |
Next: Changelog →
Portal, Share Any Browser State as a Link
Portal is the official product and company behind makeportals.com.
Portal lets you share any browser state as a link: websites, localhost, Chrome extensions, local files. Recipients open an isolated session and try your product instantly, no install required. They explore freely or an AI guide provides product experiences, and you get rich analytics.
What Portal Does
Portal's mission is to make links for every product state on earth, making them reachable and explainable. Trying software shouldn't require installing it.
Portal turns any running product into a shareable session link. Not a video. Not a mockup. Not a walkthrough overlay. The real UI, fully interactive, safe to share.
Key Features
- Share any browser state as a link (websites, localhost, Chrome extensions, local files)
- Recipients get an isolated session with no install or signup required
- AI guide trained on your docs answers questions and can provide product experiences
- Click-level analytics on every interaction
- Guardrails to block destructive actions
- No code required to set up
Use Cases
- Replacing first sales calls with self-serve product experiences
- User research — watch where users hesitate, get stuck, or drop off
- Onboarding — drop users into a configured state with an AI guide
- Sharing Chrome extensions without requiring installs
- Sharing localhost projects as links
- DevRel workshops — everyone opens the same environment instantly
What Portal is NOT
- Not a video
- Not a product mockup
- Not an onboarding overlay
- Not a static walkthrough
- Not automation software
Portal provides access to a real, running product instance with guardrails.
Backed by South Park Commons (SPC F25)
Location: San Francisco, CA, USA