invoker-mcp
v0.3.2
Published
Invoker — deploy sites and apps to live URLs from Claude
Maintainers
Readme
invoker-mcp
Deploy forms and sites to live URLs directly from Claude conversations.
Install
Add to your Claude config (claude_desktop_config.json):
{
"mcpServers": {
"invoker": {
"command": "npx",
"args": ["-y", "invoker-mcp"]
}
}
}Requires Node.js 18+.
Tools
| Tool | Description | Annotations |
|------|-------------|-------------|
| login | Sign in via browser-based email verification | write, open-world |
| logout | Sign out and clear stored credentials | write |
| whoami | Show the currently authenticated user | read-only |
| gather_requirements | Get structured questions to ask before building | read-only |
| list_blocks | List composable page blocks (hero, pricing, etc.) | read-only |
| list_styles | List visual style presets (colors, fonts, spacing) | read-only |
| compose_page | Assemble a full page from blocks + style preset | read-only |
| list_templates | List available deployment templates | read-only |
| use_template | Get full HTML source of a template for customization | read-only |
| deploy | Deploy HTML to a preview URL for review | write, open-world |
| publish | Publish a preview to its live production URL | write, open-world |
| update | Update an existing deployment via preview | write, idempotent, open-world |
| teardown | Delete a deployment | destructive, open-world |
| get_status | Get deployment status, URL, and submission count | read-only, open-world |
| get_submissions | Retrieve form submissions for a deployment | read-only, open-world |
| configure_webhook | Add a webhook (generic JSON or Slack format) | write, open-world |
| list_webhooks | List webhooks for a deployment | read-only, open-world |
| delete_webhook | Remove a webhook | destructive, open-world |
How it works
- Run the
logintool to authenticate via email OTP - Ask Claude to build you a page (using blocks + styles, a template, or custom HTML)
- Claude deploys a preview for you to review before anything goes live
- You approve the preview, and Claude calls
publishto make it live - Form submissions are captured automatically and retrievable via
get_submissions
Every deployment gets a unique subdomain: your-slug.invoker.page
The preview flow
gather_requirements → build page → deploy (preview) → user reviews → publish (live)Nothing goes live without your approval. The deploy and update tools create temporary preview URLs that expire after 1 hour. Preview pages show an orange "Preview Mode" banner and have forms disabled. Once you confirm, publish promotes the preview to production.
Page composition
Invoker includes a composable block library with 16 pre-built sections and 5 style presets:
Blocks: hero (centered, split), navbar, feature grid, pricing table, testimonials, FAQ accordion, CTA banner, stats row, contact form, waitlist form, countdown timer, image gallery, team grid, footer (simple, full)
Styles: Dark Minimal, Gradient Bold, Clean Corporate, Playful, Elegant
list_styles → list_blocks → compose_page → deploy → publishClaude picks a style, selects blocks, customizes content with your input, and assembles a complete HTML page.
Examples
Example 1: Deploy a landing page with blocks
You: "Deploy a landing page for my SaaS called Beacon. Use a dark theme."
Claude will:
- Use
gather_requirementsto ask about key features, pricing, etc. (if needed) - Use
list_stylesand pick "dark-minimal" - Use
compose_pagewith hero, features, pricing, CTA, and footer blocks - Use
deployto create a preview - Share the preview URL for your review
- After approval, use
publishto go live
Result: Live page at beacon.invoker.page with a professional dark-themed landing page.
Example 2: Deploy a waitlist with a template
You: "Deploy a waitlist page for my new app called Acme. Use a dark theme with a gradient."
Claude will:
- Use
loginto authenticate (first time only) - Use
use_templateto get the waitlist template - Customize the HTML with your branding
- Use
deployto create a preview - After your review, use
publishto go live
Result: Live page at acme.invoker.page capturing email signups.
Example 3: Check submissions and set up Slack notifications
You: "How many people signed up on my Acme waitlist? Also set up a Slack webhook so I get notified of new signups."
Claude will:
- Use
get_submissionsto retrieve all form entries - Summarize the data (e.g., "47 signups so far, 12 this week")
- Use
configure_webhookwith type "slack" and your Slack webhook URL
Result: You see a summary of all signups, and future submissions are posted to your Slack channel.
Example 4: Update a deployment
You: "Update my Acme waitlist to say we're launching next month. Also show me the current status."
Claude will:
- Use
get_statusto show current deployment info and submission count - Modify the HTML copy
- Use
updateto create a preview of the changes - Share the preview for your review
- After approval, use
publishto apply the update
Result: The page at acme.invoker.page is updated with the new copy, after you've reviewed and approved.
Templates
- Waitlist / Coming Soon - Email capture with gradient background and social proof
- Contact / Lead Gen - Multi-field form with validation and success state
Use {{SUBMIT_URL}} as the form action in your HTML -- it gets replaced with the real submission endpoint at publish time.
Dashboard
Manage your deployments, view submissions, and configure webhooks at invoker.page/dashboard.
Privacy Policy
See our full privacy policy at invoker.page/privacy.
We collect your email for authentication, store HTML content you deploy, and capture form submissions (including submitter IP addresses) on your behalf. We do not sell personal information. See the privacy policy for full details.
Support
- Website: invoker.page
- Dashboard: invoker.page/dashboard
- Email: [email protected]
