PromptUI
Build a working web app from a prompt, then deploy it to a live URL.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"promptui": {
"url": "https://www.promptui.co/api/mcp"
}
}
}Remote endpoints
https://www.promptui.co/api/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢echo(message)
Echo back the input (for testing MCP integration)
Input Schema
{
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "Message to echo"
}
},
"required": [
"message"
],
"additionalProperties": false
}🟢web_scout(goal, urls, maxPages)
Research the live web: search for information, read documentation, fetch API references, or verify library usage. Returns structured findings as markdown.
Input Schema
{
"type": "object",
"properties": {
"goal": {
"type": "string",
"description": "What to research or look up on the web"
},
"urls": {
"type": "array",
"description": "Specific URLs to visit (optional — if omitted, will search the web)"
},
"maxPages": {
"type": "number",
"description": "Max pages to fetch content from",
"default": 5
}
},
"required": [
"goal"
],
"additionalProperties": false
}🟢shadcn_ui(component)
Get production-quality shadcn/ui component code pre-adapted for the Sandpack preview environment. Available components: accordion, dropdown_menu, dialog, sheet, tooltip, progress, separator, scroll_area, skeleton, alert. Returns ready-to-use JS code with correct imports. Use this instead of building complex UI primitives from scratch.
Input Schema
{
"type": "object",
"properties": {
"component": {
"type": "string",
"description": "Component name to fetch. One of: accordion, dropdown_menu, dialog, sheet, tooltip, progress, separator, scroll_area, skeleton, alert"
}
},
"required": [
"component"
],
"additionalProperties": false
}🟢build_app(prompt, mode, framework, _confirmed)
Build a working web app from a prompt with PromptUI. Starts an asynchronous build (costs credits from the authenticated account) and returns a buildId — poll get_build_status for progress and the preview link.
Input Schema
{
"type": "object",
"properties": {
"prompt": {
"type": "string",
"description": "What to build, in plain language"
},
"mode": {
"type": "string",
"description": "Build mode: 'quality' (default) or 'fast'",
"default": "quality"
},
"framework": {
"type": "string",
"description": "Output framework: 'react-spa' (default) or 'nextjs-app'",
"default": "react-spa"
},
"_confirmed": {
"type": "boolean",
"description": "Set to true only after the user has explicitly approved this exact write or credit-spending action.",
"default": false
}
},
"required": [
"prompt"
],
"additionalProperties": false
}🟢get_build_status(buildId)
Check the status of a PromptUI build started with build_app. Returns building / needs_clarification / completed (with a shareable previewUrl) / failed.
Input Schema
{
"type": "object",
"properties": {
"buildId": {
"type": "string",
"description": "The buildId returned by build_app"
}
},
"required": [
"buildId"
],
"additionalProperties": false
}🟡deploy_app(buildId, _confirmed)
Deploy a completed PromptUI build to a live URL. The first deploy of each app is charged; redeploying that same app is free.
Input Schema
{
"type": "object",
"properties": {
"buildId": {
"type": "string",
"description": "The buildId of a completed build"
},
"_confirmed": {
"type": "boolean",
"description": "Set to true only after the user has explicitly approved this exact write or credit-spending action.",
"default": false
}
},
"required": [
"buildId"
],
"additionalProperties": false
}🟢list_builds(limit)
List the authenticated user's recent PromptUI builds with their statuses.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "number",
"description": "Maximum builds to return (default 10, max 50)",
"default": 10
}
},
"additionalProperties": false
}🟢gtm_list_content(status, channel, campaignId, limit)
List GTM queue items for the authenticated PromptUI user.
Input Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"description": "Optional status filter: draft|in_review|approved|vetoed|scheduled|published|archived"
},
"channel": {
"type": "string",
"description": "Optional channel filter: x|linkedin|facebook|instagram|youtube|email|web"
},
"campaignId": {
"type": "string",
"description": "Optional campaign id filter"
},
"limit": {
"type": "number",
"description": "Maximum number of items (default 20, max 100)",
"default": 20
}
},
"additionalProperties": false
}🟢gtm_get_analytics
Read current PromptUI GTM channel analytics and workspace-scoped verified commerce outcomes. Attribution is reported separately from causality; unavailable spend/cost coverage stays explicit.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}🟡gtm_publish_content(contentId, platform, pageId, igUserId, _confirmed)
Publish one GTM content item to a connected social platform.
Input Schema
{
"type": "object",
"properties": {
"contentId": {
"type": "string",
"description": "GTM content id to publish"
},
"platform": {
"type": "string",
"description": "Optional platform override: x|linkedin|facebook|instagram|tiktok"
},
"pageId": {
"type": "string",
"description": "Optional LinkedIn/Facebook page target id"
},
"igUserId": {
"type": "string",
"description": "Optional Instagram user id target"
},
"_confirmed": {
"type": "boolean",
"description": "Set to true only after the user has explicitly approved this exact write or credit-spending action.",
"default": false
}
},
"required": [
"contentId"
],
"additionalProperties": false
}⚪gtm_generate_content(channel, deliverableType, contentClass, count, appSource, ...)
Generate and persist a new GTM content draft for the authenticated user.
Input Schema
{
"type": "object",
"properties": {
"channel": {
"type": "string",
"description": "Delivery channel. One of: x|linkedin|facebook|instagram|youtube|email|web",
"default": "x"
},
"deliverableType": {
"type": "string",
"description": "Deliverable type. One of: post|thread|launch_pack|bio|promo_campaign|educational_series|landing_copy|visual_brief|seo_blog_post|seo_landing_page|llms_txt",
"default": "post"
},
"contentClass": {
"type": "string",
"description": "Content class. One of: product_led|brand_led|domain_led|offer_led",
"default": "product_led"
},
"count": {
"type": "number",
"description": "Number of variants to generate (1-20)",
"default": 1
},
"appSource": {
"type": "string",
"description": "promptui | custom session id",
"default": "promptui"
},
"campaignId": {
"type": "string",
"description": "Optional campaign id"
},
"language": {
"type": "string",
"description": "Optional language"
},
"operatorPrompt": {
"type": "string",
"description": "Optional operator instruction for the generator"
},
"_confirmed": {
"type": "boolean",
"description": "Set to true only after the user has explicitly approved this exact write or credit-spending action.",
"default": false
}
},
"additionalProperties": false
}Community
Evidence