关于 opn-mcp
opn-mcp 将 opn.onl 的短链接管理能力提供给 MCP 客户端,面向需要通过自然语言处理链接和分析数据的用户。它可连接托管服务,也可指向自托管实例。
主要功能
- 01创建和批量创建短链接
- 02编辑、复制与删除链接
- 03查看链接和账户分析
- 04生成带品牌样式的二维码
- 05管理标签、文件夹与 UTM 参数
适用场景
- 01批量缩短营销活动链接
- 02查看链接点击来源与设备
- 03为品牌活动生成二维码
MCP 相关
该 MCP 服务向客户端公开 opn.onl 的链接管理、分析、二维码和 URL 辅助工具。通过 API 密钥连接托管服务或配置的自托管实例。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
24收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| url | string | 是 | 要缩短的目标 URL |
| alias | string | 否 | 自定义别名/slug(可选)。先使用 check_alias_available 以避免冲突。 |
| notes | string | 否 | 链接的私密备注(可选) |
| title | string | 否 | 链接的私密标题(可选) |
| tag_ids | array | 否 | 要附加到链接的标签 id(可选) |
| password | string | 否 | 为链接设置密码保护(可选) |
| folder_id | integer | 否 | 将链接放入此文件夹 id(可选) |
| starts_at | string | 否 | 链接失效前的 ISO-8601 时间戳(可选) |
| expires_at | string | 否 | 链接停止工作后的 ISO-8601 时间戳(可选) |
| max_clicks | integer | 否 | 达到此点击次数后停用链接(可选) |
| burn_after_reading | boolean | 否 | 一次性链接:首次成功访问后销毁(可选) |
| safe_link_interstitial | boolean | 否 | 重定向前显示安全提示页(可选) |
详细介绍
opn-mcp
一个适用于 opn.onl 的 MCP 服务。opn.onl 是一款开源、可自托管的 URL 缩短工具。它让 AI 助手(Claude Desktop、Cursor 等)能够通过自然语言缩短链接、查看分析数据、生成二维码和管理链接。
既可使用托管服务,也可连接自己的自托管实例。
设置
1. 获取 API 密钥
在你的 opn.onl 实例中,前往 设置 → API 密钥,创建密钥并复制(密钥以 opn_ 开头,且仅显示一次)。
2. 将服务添加到 MCP 客户端
Claude Desktop — 编辑 claude_desktop_config.json(macOS 上的 ~/Library/Application Support/Claude/,Windows 上的 %APPDATA%\Claude\):
{
"mcpServers": {
"opn": {
"command": "npx",
"args": ["-y", "opn-mcp"],
"env": {
"OPN_API_KEY": "opn_your_key_here"
}
}
}
}
重启客户端即可。默认情况下,它会连接托管 API(https://l.opn.onl)。
想从源代码运行?将
args替换为 GitHub 构建版本,配置不变:"args": ["-y", "github:ysalitrynskyi/opn-mcp"](安装时会进行构建)。
自托管实例
将 OPN_BASE_URL 指向你自己的实例 API 主机:
{
"mcpServers": {
"opn": {
"command": "npx",
"args": ["-y", "opn-mcp"],
"env": {
"OPN_API_KEY": "opn_your_key_here",
"OPN_BASE_URL": "https://l.your-domain.com"
}
}
}
}
配置
| 环境变量 | 必需 | 默认值 | 描述 |
|---|---|---|---|
OPN_API_KEY | ✅ | — | 你的 API 密钥(opn_…),可在“设置 → API 密钥”中获取 |
OPN_BASE_URL | — | https://l.opn.onl | API 基础 URL — 自托管实例请设置此项 |
工具
链接
| 工具 | 描述 |
|---|---|
shorten_url | 创建短链接 — 可选别名、标题、备注、定时设置(starts_at/expires_at)、max_clicks、密码、阅后即焚、文件夹和标签 |
shorten_urls_bulk | 一次缩短多个 URL,可选择放入文件夹 |
list_links | 列出你的链接(限制数量、偏移量、搜索、文件夹或标签筛选) |
update_link | 更新目标地址、标题、备注、定时设置、点击次数上限、文件夹或保护设置;使用 remove_* 标记清除字段 |
delete_link | 删除链接 |
clone_link | 使用新的短代码复制链接 |
toggle_link_pin | 置顶或取消置顶链接 |
check_alias_available | 使用自定义别名前,检查该别名是否可用 |
分析
| 工具 | 描述 |
|---|---|
get_link_stats | 单个链接的分析数据(点击量、独立访客、地理位置、城市、设备、浏览器、操作系统、引荐来源);可选 days 时间范围 |
get_dashboard_stats | 你的所有链接的账户级分析数据 |
二维码和 URL 辅助工具
| 工具 | 描述 |
|---|---|
get_qr_code | 获取链接的二维码图片 — 可选品牌颜色、中心 Logo、PNG/SVG |
check_url_health | 缩短前检查目标 URL 是否可访问 |
build_utm_url | 为 URL 添加 UTM 活动参数 |
preview_url_metadata | 获取 URL 的 Open Graph 元数据(标题、描述、图片) |
标签和文件夹
| 工具 | 描述 |
|---|---|
list_tags / create_tag | 列出或创建标签 |
add_tags_to_link / remove_tags_from_link | 为链接添加或移除标签 |
list_folders / create_folder | 列出或创建文件夹 |
move_links_to_folder | 将链接移至文件夹 |
示例提示词
- “缩短 https://example.com/very/long/url,并将其命名为 launch-2026”
- “将这五个 URL 缩短,并放入一个名为 Q3 Campaign 的新文件夹”
- “链接 42 在过去 30 天内获得了多少次点击?这些点击来自哪些国家?”
- “为链接 42 生成带品牌标识的 SVG 二维码”
- “将我最近 10 个链接标记为 'newsletter',并显示我的仪表板统计数据”
- “为 https://example.com 创建 UTM 链接 — 来源为 newsletter,媒介为 email”
开发
npm install
npm run build # tsc → dist/
npm test # vitest
OPN_API_KEY=opn_… npm run dev # run from source (stdio)
发布
这三个注册表都由 ysalitrynskyi(npm 用户、GitHub 用户和
io.github.ysalitrynskyi MCP 注册表命名空间)所有,因此必须使用该账号登录后才能发布。
- 在三个位置更新版本号,并确保它们一致:
package.json、server.json(顶层以及packages[0].version) 和src/server.ts中的SERVER_VERSION。 - 合并变更:提交到
main并推送。CI(.github/workflows/ci.yml)会运行build+test,但不会发布。 - 发布到 npm(使用 npm 用户
ysalitrynskyi):npm login npm publish # prepublishOnly runs the build - 发布到 MCP 注册表(使用 GitHub 用户
ysalitrynskyi):mcp-publisher validate # optional, offline check mcp-publisher login github # interactive browser OAuth mcp-publisher publish
Smithery(smithery.yaml)和 Glama
(glama.json)会自动跟踪 npm/注册表发布,无需单独操作。
许可证
MIT © ysalitrynskyi。属于 opn.onl 项目。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。