Charming

io.github.tambo-ai由 GitHub 账号 tambo-ai 发布v1.0.1更新于 Nov 2, 2026

Build personal interactive apps with real URLs and persistent storage, using any AI.

已验证Streamable HTTP可网页运行效率与工作流文件与存储开发者工具

概览

AI 生成的概览

托管型 MCP 服务器,让助手生成、托管并更新带真实网址和持久存储的个人交互式网页应用。

可以做什么
  • 创建、更新、复制、重命名和删除应用,支持内联渲染与带版本的源码读取
  • 在应用内执行只读或写入型后端操作,并上传静态资源
  • 将应用共享给协作者、查看者或终端用户,设为公开,或发布为模板
  • 搜索公开模板目录,并管理针对应用的反馈
  • 设置定时例程、管理 Webhook,并在无网络访问时读取 Charming 文档
适用场景
适合希望助手把想法变成可长期保留、可通过网址分享、并允许他人使用或复制的小型网页应用,而不是一次性代码片段。也适合需要为这类应用挂接定时任务或 Webhook 的场景。
运行要求
远程 streamable HTTP 端点 charm.ing;MCP 端点要求 OAuth(含动态客户端注册),通过一次性授权页面完成,无需粘贴 API 密钥。仅 HTTP 路径支持无令牌匿名创建。无需本地运行时或环境变量。
安装前请注意
删除应用不可恢复,并可同时清除已存储的状态;将应用设为公开后,任何匿名访客都能读写同一份共享数据,持有网址者即可覆盖或清空。Webhook 会把应用操作暴露给外部服务,并带有可轮换的密钥。Charming 通过 Composio 保管 OAuth 令牌并执行对 Gmail、Google Drive、GitHub 等服务的连接调用,数据会经过第三方。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Charming,将其添加到工作区。
  2. 连接 所需的 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.tambo-ai%2Fcharming/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。 客户端会在首次连接时完成 OAuth 登录。

{
  "mcpServers": {
    "charming": {
      "type": "http",
      "url": "https://charm.ing/mcp"
    }
  }
}

README

[Charming]

Charming MCP Server

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.

Connect

ClientEndpoint
Claude, Claude Code, Cursor, Codex, Gemini CLI, and most MCP clientshttps://charm.ing/mcp
ChatGPThttps://charm.ing/mcp/chatgpt (one-click via the Charming listing in the ChatGPT Apps directory; this paste-string is the Developer Mode fallback)

Most MCP clients can use this remote configuration:

json
{  "mcpServers": {    "charming": {      "url": "https://charm.ing/mcp",      "type": "streamableHttp"    }  }}

The MCP endpoints require a bearer token, and OAuth with Dynamic Client Registration bootstraps one automatically: clients that support it show a one-time consent screen, with no API key to paste. Anonymous creation with no token is available on the HTTP path only. Auth guide: usecharming.com/auth.md.

For per-client paste-strings and setup steps, see usecharming.com/clients.txt.

Starter Prompt

Once Charming is connected, paste this to start a build session:

Help me figure out what to build. Look at what you know about me and suggest 2-3 apps that fit, or ask me up to 3 short questions to find an idea.
Read https://usecharming.com/start.md then help me create my first app.

Tools

Charming exposes 39 tools. Connected clients discover them automatically via tools/list.

ToolWhat it does
create_appStore 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 token-free shareUrl, never the machine-only url.
update_appEdit an existing app by replacing its module/UI/styles/description or applying exact-string edits, with optimistic-concurrency versioning.
get_appRender an existing app inline (where the client supports it) and return its callable API operations and metadata.
get_app_sourceReturn the persisted module, UI, and styles for an existing app plus its current version.
list_appsList the caller's apps plus apps shared with them, newest first, with each app's role, description, and capabilities.
delete_appPermanently delete an app you own. Irreversible and confirmation-gated: it fails closed until re-invoked with confirm: true. Pass purge_storage: true to also wipe stored state.
upload_assetStore a static asset (image, PDF, dataset) so app code stays small; readable back same-origin.
rename_appChange an app's URL slug. The old URL keeps working by redirecting.
set_remixableMark an app remixable so visitors get their own editable copy.
unset_remixableStop allowing remixes; existing remixes survive untouched.
set_starter_promptSet or clear the prompt prefilled in the chat host when a visitor opens a shared app.
query_appRun a read-only backend operation inside an app module.
mutate_appRun a mutating backend operation inside an app module without editing code.
submit_feedbackRecord agent-authored feedback (bugs, enhancements, crash reports) about an app.
list_feedbackList feedback rows for the caller's apps, newest first.
set_handleChange the signed-in user's handle (the first segment of their app URLs).
share_appInvite 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 changes their role in place.
unshare_appRevoke access for any grantee, whether the invitation is still pending or already accepted.
list_app_sharesList active and pending share invites for one of your apps.
set_publicMake 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 data pool, so anyone with the URL can overwrite or wipe it.
unset_publicMake a public app private again; anonymous visitors can no longer open it.
set_templatePublish 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 the public directory. Omitting listed leaves the current listing state alone. The app must be claimed first.
unset_templateStop treating an app as a template: new visitors can no longer copy it, and any public listing is cleared. Existing copies survive.
search_templatesSearch the public Charming template directory by keyword. Check here for an existing template before calling create_app, or when the user asks what templates exist. Each hit carries a copyUrl a visitor can open to mint their own independent copy with no login.
acknowledge_feedback_responsesAcknowledge feedback responses after the agent has processed them.
cancel_app_buildUse this to cancel an accepted app build before it publishes.
create_routineUse this when the user wants an app op to run on its own, on a timer — no chat needs to be open.
delete_routineUse this to stop and remove a Routine.
get_app_buildUse this to inspect an accepted app build without running or publishing it.
list_feedback_responsesFetch unread Charming staff responses to feedback submitted by this authenticated account.
list_routinesUse this to see the caller's Routines across their apps.
read_docsRead Charming documentation without web access.
update_routineUse this to change a Routine's interval, or enable/disable it.
create_webhookUse this when an external service (Zapier, a payment provider, a partner backend) needs to call one of an app's ops directly.
delete_webhookUse this to remove a Webhook.
list_webhooksUse this to see the Webhooks on every app the caller can edit, with delivery state.
update_webhookUse this to rename a Webhook, enable/disable it, or rotate its secret.
copy_appUse this to make the signed-in user a private copy of an existing app in one call, without reading or re-sending its source.
resolve_handoffResolve a Charming handoff reference into diagnostic data about a problem in one of the caller's apps.

Use with a coding agent

Working in Codex, Claude Code, Cursor, or another AI coding agent? Install the optional Charming authoring skill from skills.sh with npx skills add tambo-labs/charming-mcp. This installs authoring guidance; it does not connect the MCP server.

It teaches the agent Charming's build contract and workflow. The skill itself is SKILL.md; AGENTS.md has connect and authoring instructions for any AI coding agent. Codex users can instead install the bundled Charming Codex plugin.

Cursor

Cursor reads project rules from .cursor/rules/. Drop .cursor/rules/charming.mdc into your project (or copy its body into a legacy root .cursorrules) and Cursor's agent will reach for Charming (real URL, storage, and inline rendering) whenever you ask for an app you want to keep. The rule points at the served docs; it does not duplicate the contract.

Distribution

This repository is the canonical source for every public Charming integration package. Platform-neutral artifacts are hand-edited; platform adapters are generated from them, so a fact lives in exactly one file.

KindArtifact
Platform-neutral (edit these)canonical/facts.json, SKILL.md, AGENTS.md, .cursor/rules/charming.mdc, charming-icon.png
Adapter (generated)plugins/cursor/charming, plugins/claude-code/charming, plugins/codex/charming, plugins/agent-plugins/charming (a portable Agent Plugins v1.0.0 package), gemini-extension.json, GEMINI.md, the three marketplace catalogs
bash
npm ci                                   # install ajv, the schema validatornode scripts/build-packages.mjs          # regenerate every adapternode scripts/build-packages.mjs --check  # fail on drift (runs in CI)

The adapters are not published yet; publishing each one is tracked separately. See DISTRIBUTION.md for the layout, the drift checks, and how the Charming monorepo proposes changes here.

Documentation

Built with Composio

[Built with Composio]

Charming uses Composio to connect apps with external services such as Gmail, Google Drive, and GitHub. Composio holds each OAuth token and runs each connector call; Charming decides whether a call may run and whose connection serves it.

Publisher

Published by Tambo.

来源:README.md,提交 536de3f

工具

0
该服务器需要登录,因此 SourceWeft 无法在没有账号的情况下读取其工具,也未收录。已连接账号所能看到的内容可能因账号及其权限而异。

版本历史

1
  1. v1.0.1最新Sep 16, 2026

评分

已满足适用检查项的 85%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分