关于 esyURL
esyURL 是供 AI Agent 创建和管理短链接及二维码的托管 MCP 服务。它支持修改链接目标、访客路由以及点击和扫码统计,并允许 Agent 自行注册。
主要功能
- 01创建和管理短链接
- 02生成样式化二维码
- 03编辑目标地址和路由规则
- 04查看点击与扫码统计
- 05将链接整理到分组
- 06使用自定义域名
适用场景
- 01为印刷材料创建二维码
- 02按设备或国家重定向访客
- 03查看链接和二维码的访问情况
- 04为营销活动整理链接
MCP 相关
在 `https://esyurl.fyi/mcp` 提供无状态 Streamable HTTP MCP 服务。客户端使用 Bearer 令牌进行身份验证,Agent 可自行注册获取令牌。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://esyurl.fyi/mcpclaude mcp add --transport http esyurl https://esyurl.fyi/mcp{"mcpServers":{"esyurl":{"type":"http","url":"https://esyurl.fyi/mcp"}}}在 Cursor 中打开{"servers":{"esyurl":{"type":"http","url":"https://esyurl.fyi/mcp"}}}在 VS Code 中打开{"mcpServers":{"esyurl":{"type":"http","url":"https://esyurl.fyi/mcp"}}}{"mcpServers":{"esyurl":{"serverUrl":"https://esyurl.fyi/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
https://esyurl.fyi/mcp需要授权工具
21| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| name | string | 否 | 人工可读的标签,最多 200 个字符 |
| page | object | 否 | 链接页面(个人简介链接):此短 URL 不会重定向,而是显示一个页面,包含标题、可选头像和简介、按钮列表以及一行社交图标,并由主题设置样式。规则仍优先应用:匹配的规则会执行重定向。结构:{title(≤80),bio?(≤300),avatar? {data: "data:image/png;base64,..."} 或 {imageId} 以保留当前头像,items: [{type: "link", label, url} | {type: "link", label, linkId}(你的另一个链接:打开其短 URL) | {type: "header", text} | {type: "text", text}], socials?: [{platform, url}], theme?, language?, noindex?, footer?}。项目还支持 id?(稳定标识;点击次数按此统计;省略时自动生成,编辑时请保留)、enabled?(默认 true)、when?(重定向规则语法中的条件:仅向匹配的访问者显示该项目,例如 {"field":"os","op":"eq","value":"ios"});链接项目还支持 highlight?(强调色)和 thumbnail?(图片)。最多 50 个项目和 8 张图片。socials 平台:instagram、tiktok、youtube、x、facebook、linkedin、github、threads、bluesky、mastodon、whatsapp、telegram、spotify、twitch、discord、pinterest、snapchat、substack、email、website(email 使用 mailto:)。theme:{preset?(light|dark|midnight|sunset|forest|pastel|mono,默认 light),background? {type: "solid", color} | {type: "gradient", from, to, angle?} | {type: "image", image: {data}, dim? 0-0.8}, text?(十六进制颜色),font?(system|rounded|serif|mono|condensed),button? {shape?(square|rounded|pill),fill?(solid|outline|soft|shadow),color?, text?}, avatarShape?(circle|rounded|square),align?(center|left)}。低对比度颜色会以 `warnings` 返回,但仍会保存。自行注册的租户页面会带有小型 "Made with esyURL · Report" 页脚;footer: false 会针对每个页面移除此页脚,需支付一次性 x402 费用(参见 payment)。 |
| slug | string | 否 | 自定义 slug,格式 ^[a-zA-Z0-9_-]{3,64}$;省略时随机生成 |
| tags | array | 否 | 自由格式标签,最多 20 个;使用 list_short_links tag 进行筛选 |
| rules | array | 否 | 重定向规则,每次访问时按顺序评估;首个启用且其 "when" 匹配的规则会将访问者发送到其 targetUrl,否则使用链接的 targetUrl。条件可以是测试 {field, op, value},也可以是组合 {all: [...]}, {any: [...]}, {not: {...}}。字段及其运算符:os (ios|android|windows|macos|linux|chromeos|other)、device (mobile|tablet|desktop|bot)、browser (safari|chrome|firefox|edge|samsung|opera|in_app|other)、source (qr|direct|bot):eq、neq、in、not_in。language(Accept-Language 主标签;"pt" 也匹配 "pt-BR"):eq、neq、in、not_in、exists。country(ISO 3166-1 alpha-2,例如 "GB";每次访问均由边缘节点进行地理定位):eq、neq、in、not_in。未知或缺失的值不满足 eq/in,但满足 neq/not_in。referrer(主机名,例如 instagram.com)和 query(需要 "key",即参数名称):eq、neq、in、not_in、contains、starts_with、ends_with、exists。time(ISO 时间戳):before、after。weekday(sun..sat,UTC):eq、neq、in、not_in。hour(0-23 UTC):eq、neq、in、not_in、gte、lte。in/not_in 接受数组。文本比较不区分大小写。每条链接最多 20 条规则,每条规则最多 20 个条件。应用商店分流示例:[{"name":"iOS","when":{"field":"os","op":"eq","value":"ios"},"targetUrl":"https://apps.apple.com/app/id123"},{"name":"Android","when":{"field":"os","op":"eq","value":"android"},"targetUrl":"https://play.google.com/store/apps/details?id=com.example"}] |
| payment | any | 否 | 仅当页面尚未由自行注册的租户支付费用时,才可设置 footer: false:工具首先会返回错误,其 structuredContent 是 x402 PaymentRequired;请使用 _meta["x402/payment"] 中签名后的 PaymentPayload 重试,或者在此处提供(对象或 base64;适用于客户端无法设置 _meta 的情况)。 |
| qrStyle | object | 否 | 此链接 QR 图片的默认外观(免费):颜色、模块和角标形状,以及可选图片。样式化的二维码需使用浅色背景上的深色,并满足至少 3:1 的对比度。更新时会整体替换样式。 |
| qrStyle.dark | string | 否 | 十六进制颜色,例如 #000000(# 可省略) |
| qrStyle.image | object | 否 | 二维码中的图片。mode "logo":置于中央(纠错级别变为 H;大小为图片边长占二维码边长的比例,范围 0.1-0.3,默认 0.22)。mode "halftone":在二维码后方以圆点绘制照片。data 是 data URL(data:image/png;base64,...;支持 png、jpeg、webp 或 gif,最大 2 MB)。若要在更改其他字段时保留当前图片,请传入 imageId 而非 data。 |
| qrStyle.image.data | string | 否 | 新图片,以 data URL 格式提供 |
| qrStyle.image.mode | enum | 是 | logo | halftone |
| qrStyle.image.size | number | 否 | |
| qrStyle.image.imageId | string | 否 | 保留此链接已有的图片(其 qrStyle.image.imageId) |
| qrStyle.light | string | 否 | 十六进制颜色,例如 #000000(# 可省略) |
| qrStyle.margin | integer | 否 | 静区宽度,以模块计,范围 0-16 |
| qrStyle.eyeBall | enum | 否 | 角标中心square | rounded | circle |
| qrStyle.modules | enum | 否 | 数据模块形状(默认正方形)square | rounded | dot | row | column |
| qrStyle.eyeColor | string | 否 | 角标颜色;默认为深色 |
| qrStyle.eyeFrame | enum | 否 | 三个角标的外环square | rounded | circle |
| qrStyle.errorCorrectionLevel | enum | 否 | QR 纠错级别:L 7%、M 15%(默认)、Q 25%、H 30%L | M | Q | H |
| groupIds | array | 否 | 此链接所属组的 ID(来自 create_group/list_groups),最多 20 个 |
| metadata | object | 否 | 最多可包含 20 组字符串键值对,供你自行记录 |
| targetUrl | string | 否 | 访客将被重定向到的绝对 http(s) URL(与 page 互斥) |
详细介绍
esyURL MCP 服务
一个托管的 MCP 服务,让 AI Agent 使用 esyURL 创建和管理短链接与二维码:缩短 URL、生成样式各异的二维码、更改印刷或分享出去的链接的指向、按设备或国家路由访客,以及查看点击和扫描统计。Agent 可以自行注册;无需人工账号。
- 端点:
https://esyurl.fyi/mcp(Streamable HTTP,无状态) - 身份验证:
Authorization: Bearer esy_...
无需安装或运行任何东西:本仓库介绍的是托管服务。该服务本身不是开源的。
获取 API 密钥
没有密钥的 Agent 可以按照 esyurl.fyi/auth.md 自行创建账号并获取密钥:
BASE=https://esyurl.fyi
REG=$(curl -s $BASE/agent/identity -H 'content-type: application/json' -d '{"type":"anonymous"}')
KEY=$(curl -s $BASE/oauth2/token \
--data-urlencode grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer \
--data-urlencode assertion=$(echo "$REG" | jq -r .identity_assertion) | jq -r .access_token)
echo $KEY
自行注册的账号可创建 100 个链接;人工通过电子邮件认领账号后,可创建 1000 个链接。
连接
Claude Code:
claude mcp add --transport http esyurl https://esyurl.fyi/mcp \
--header "Authorization: Bearer esy_..."
Cursor、VS Code 和其他客户端(.mcp.json 样式):
{
"mcpServers": {
"esyurl": {
"type": "http",
"url": "https://esyurl.fyi/mcp",
"headers": { "Authorization": "Bearer esy_..." }
}
}
}
工具
| 工具 | 功能 |
|---|---|
create_short_link | 缩短 URL,可选自定义别名、二维码样式和重定向规则 |
list_short_links | 列出你的链接,可按标签或分组筛选 |
get_short_link | 获取单个链接及其分组和生命周期访问次数 |
update_short_link | 更改链接指向、二维码样式或规则,也可暂停链接;短 URL 和已印刷的二维码仍可使用 |
delete_short_link | 删除链接 |
test_redirect_rules | 检查访客会被导向哪个目标(例如,将 iPhone 用户导向 App Store,将 Android 用户导向 Google Play) |
get_short_link_visits | 按天统计访问量,并区分二维码扫描、直接点击和机器人 |
render_qr_code | 为链接(会统计扫描次数)或任意文本生成 PNG 二维码;可设置模块形状、角标、颜色、徽标或照片 |
create_group、list_groups、get_group、update_group、delete_group | 将链接整理到分组中 |
add_links_to_group、remove_link_from_group | 管理分组成员 |
get_group_visits | 查看分组的合并访问量 |
get_custom_domain、set_custom_domain、remove_custom_domain | 在你自己的域名上创建短链接 |
定价
链接、二维码和统计数据均免费。自行注册的账号添加每个新自定义域名时需支付一次费用,以 USDC 通过 x402 支付;set_custom_domain 会先返回付款要求。
更多信息
- esyurl.fyi/llms.txt:面向 Agent 的 API
- esyurl.fyi/openapi.json:REST API
- esyurl/skills:同一套内容,以 Agent 技能形式提供
(
npx skills add esyurl/skills)
许可证
MIT,适用于本仓库的内容。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。