Charming is a hosted MCP server that generates, hosts, and updates interactive web apps. Connect it to any MCP-compatible AI client and ask it to build an app. You get back a live URL in seconds.
Charming is an MCP project maintained in the tambo-labs/charming-mcp repository. The maintainer describes its purpose as “Charming is a hosted MCP server that generates, hosts, and updates interactive web apps. Connect it to any MCP-compatible AI client and ask it to…”. Read the project documentation for the complete scope.
The maintainer’s configuration uses https://charm.ing/mcp. Check the project’s account and authentication instructions when adding the endpoint to your client.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| create_app | Store an agent-authored module (a manifest plus routes) with optional UI and CSS, and render it inline. Requires a description. Give the user the returned… |
| update_app | Edit an existing app by replacing its module/UI/styles/description or applying exact-string edits, with optimistic-concurrency versioning. |
| get_app | Render an existing app inline (where the client supports it) and return its callable API operations and metadata. |
| get_app_source | Return the persisted module, UI, and styles for an existing app plus its current version. |
| list_apps | List the caller's apps plus apps shared with them, newest first, with each app's role, description, and capabilities. |
| delete_app | Permanently delete an app you own. Irreversible and confirmation-gated: it fails closed until re-invoked with confirm: true. Pass purge_storage: true to also… |
| upload_asset | Store a static asset (image, PDF, dataset) so app code stays small; readable back same-origin. |
| rename_app | Change an app's URL slug. The old URL keeps working by redirecting. |
| set_remixable | Mark an app remixable so visitors get their own editable copy. |
| unset_remixable | Stop allowing remixes; existing remixes survive untouched. |
| set_starter_prompt | Set or clear the prompt prefilled in the chat host when a visitor opens a shared app. |
| query_app | Run a read-only backend operation inside an app module. |
| mutate_app | Run a mutating backend operation inside an app module without editing code. |
| submit_feedback | Record agent-authored feedback (bugs, enhancements, crash reports) about an app. |
| list_feedback | List feedback rows for the caller's apps, newest first. |
| set_handle | Change the signed-in user's handle (the first segment of their app URLs). |
| share_app | Invite someone to an app as collaborator (default), end-user (run and write data, cannot edit source), or viewer (read-only). Calling it again with a role… |
| unshare_app | Revoke access for any grantee, whether the invitation is still pending or already accepted. |
| list_app_shares | List active and pending share invites for one of your apps. |
| set_public | Make an app public: anyone with the URL can open it with no login and read AND write its shared data. Warn the user that every anonymous visitor shares one… |
| unset_public | Make a public app private again; anonymous visitors can no longer open it. |
| set_template | Publish an app as a template so anyone opening its URL gets their own brand-new copy, leaving the original untouched. Pass listed: true to also list it in… |
| unset_template | Stop treating an app as a template: new visitors can no longer copy it, and any public listing is cleared. Existing copies survive. |
| search_templates | Search the public Charming template directory by keyword. Check here for an existing template before calling create_app, or when the user asks what templates… |
| acknowledge_feedback_responses | Acknowledge feedback responses after the agent has processed them. |
| cancel_app_build | Use this to cancel an accepted app build before it publishes. |
| create_routine | Use this when the user wants an app op to run on its own, on a timer — no chat needs to be open. |
| delete_routine | Use this to stop and remove a Routine. |
| get_app_build | Use this to inspect an accepted app build without running or publishing it. |
| list_feedback_responses | Fetch unread Charming staff responses to feedback submitted by this authenticated account. |
| list_routines | Use this to see the caller's Routines across their apps. |
| read_docs | Read Charming documentation without web access. |
| update_routine | Use this to change a Routine's interval, or enable/disable it. |
| create_webhook | Use this when an external service (Zapier, a payment provider, a partner backend) needs to call one of an app's ops directly. |
| delete_webhook | Use this to remove a Webhook. |
| list_webhooks | Use this to see the Webhooks on every app the caller can edit, with delivery state. |
| update_webhook | Use this to rename a Webhook, enable/disable it, or rotate its secret. |
{
"mcpServers": {
"charming": {
"url": "https://charm.ing/mcp",
"type": "streamableHttp"
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
Retrieve public web pages as readable Markdown with the reference Fetch MCP server, including pagination for longer responses.
Retrieve version-aware library documentation and code examples with Context7 MCP, using resolve-library-id and query-docs.
Use the Supabase MCP server to inspect database schemas, query project data and retrieve docs through a project-scoped connection.
Stop letting your assistant hallucinate n8n node parameters — this server hands it the real schemas, templates and validation.
AWS Labs' official server suite — current AWS docs, CDK guidance, cost analysis and service tools.
Workers, KV, R2 and D1 by conversation — Cloudflare's official remote servers for building and observability.