DWZ Short URL MCP Server
Enables AI assistants to create, manage, and analyze short URLs through complete URL shortening functionality. Supports batch operations, custom domains, click statistics, and comprehensive link management.
README
Mliev 短网址 MCP 客户端
基于 MCP(Model Context Protocol)协议的短网址管理客户端,为 AI 助手提供完整的短网址生成、管理和统计功能。
✨ 功能特性
- 🔗 短网址创建: 支持自定义域名、短代码、标题和描述
- 📋 批量操作: 一次性创建多个短网址,提高效率
- 🔍 搜索筛选: 支持域名筛选和关键词搜索
- 📊 统计分析: 获取详细的点击统计信息
- 🛡️ 错误处理: 完善的错误处理和重试机制
- 🔒 安全认证: 基于 Bearer Token 的 API 认证
🚀 快速开始
环境要求
- Node.js >= 18.0.0
- npm 或 yarn
直接使用MCP
{
"mcpServers": {
"dwz-mcp": {
"name": "dwz-mcp",
"type": "stdio",
"isActive": true,
"registryUrl": "",
"command": "npx",
"args": [
"-y",
"@muleiwu/dwz-mcp"
],
"env": {
"REMOTE_BASE_URL": "您的短网址服务地址",
"REMOTE_API_KEY": "apiKey"
}
}
}
}
安装依赖
npm install
配置环境变量
复制环境变量模板并配置:
cp .env.example .env
编辑 .env 文件:
# 远程短网址服务器配置
REMOTE_BASE_URL=https://api.example.com
REMOTE_API_KEY=your-api-key-here
# 其他可选配置
REQUEST_TIMEOUT=10000
MAX_RETRIES=3
LOG_LEVEL=info
启动服务
# 开发模式
npm run dev
# 生产模式
npm start
📖 MCP 工具列表
1. create_short_url
创建新的短网址
参数:
original_url(必填): 原始URL地址domain(必填): 短网址域名title(必填): 网页标题custom_code(可选): 自定义短代码description(可选): 描述信息expire_at(可选): 过期时间
示例:
{
"original_url": "https://www.example.com/products",
"domain": "short.ly",
"title": "产品页面",
"description": "我们的产品展示页面",
"custom_code": "products"
}
2. get_url_info
获取短网址详细信息
参数:
id(必填): 短网址ID
示例:
{
"id": 123
}
3. list_short_urls
列出短网址,支持分页和搜索
参数:
page(可选): 页码,默认1page_size(可选): 每页数量,默认10domain(可选): 域名筛选keyword(可选): 搜索关键词
示例:
{
"page": 1,
"page_size": 20,
"domain": "short.ly",
"keyword": "产品"
}
4. delete_short_url
删除短网址
参数:
id(必填): 短网址ID
示例:
{
"id": 123
}
5. batch_create_short_urls
批量创建短网址
参数:
urls(必填): URL数组(最多50个)domain(必填): 短网址域名
示例:
{
"urls": [
"https://www.example1.com",
"https://www.example2.com"
],
"domain": "short.ly"
}
6. list_domains
获取所有可用域名列表
参数: 无需参数
示例:
{}
返回信息:
- 域名基本信息:ID、域名、协议
- 网站信息:网站名称、备案信息
- 配置信息:是否激活、参数透传设置
- 统计信息:总数、激活数量、未激活数量
🏗️ 项目结构
mliev-dwz-mcp/
├── src/
│ ├── index.js # 入口文件
│ ├── config/
│ │ └── remoteConfig.js # 配置管理
│ ├── services/
│ │ ├── httpClient.js # HTTP客户端
│ │ └── shortLinkService.js # 短链接服务
│ ├── utils/
│ │ ├── validation.js # 参数验证
│ │ └── errorHandler.js # 错误处理
│ └── mcp/
│ ├── server.js # MCP服务器
│ └── tools/ # MCP工具
│ ├── createShortUrl.js
│ ├── getUrlInfo.js
│ ├── listShortUrls.js
│ ├── deleteShortUrl.js
│ ├── batchCreateShortUrls.js
│ └── listDomains.js
├── tests/ # 测试文件
├── package.json # 项目配置
├── .env.example # 环境变量模板
└── README.md # 项目说明
🔧 开发指南
可用脚本
# 启动开发服务器(热重载)
npm run dev
# 构建项目
npm run build
# 运行生产环境
npm start
# 运行测试
npm test
# 代码检查
npm run lint
# 自动修复代码格式
npm run format
添加新工具
- 在
src/mcp/tools/目录下创建新工具文件 - 实现工具对象,包含
name、description、inputSchema和handler - 在
src/mcp/server.js中注册新工具
错误处理
项目使用统一的错误处理机制:
ErrorHandler.asyncWrapper(): 包装异步函数,自动处理错误CustomError: 自定义错误基类ValidationError: 参数验证错误NetworkError: 网络请求错误
📝 API 规范
响应格式
所有API响应都遵循统一格式:
{
"success": true,
"message": "操作成功",
"data": {
// 响应数据
},
"meta": {
"operation": "操作名称",
"timestamp": "2024-01-01T00:00:00.000Z"
}
}
错误响应
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "错误描述",
"details": {},
"timestamp": "2024-01-01T00:00:00.000Z"
}
}
🔐 配置说明
环境变量
| 变量名 | 说明 | 默认值 | 必填 |
|---|---|---|---|
REMOTE_BASE_URL |
远程服务器地址 | - | ✅ |
REMOTE_API_KEY |
API密钥 | - | ✅ |
API_VERSION |
API版本 | v1 | ❌ |
REQUEST_TIMEOUT |
请求超时时间(ms) | 10000 | ❌ |
MAX_RETRIES |
最大重试次数 | 3 | ❌ |
LOG_LEVEL |
日志级别 | info | ❌ |
域名配置
确保使用的域名在远程短网址服务中已正确配置。
🚨 故障排除
常见问题
-
连接失败
- 检查
REMOTE_BASE_URL和REMOTE_API_KEY配置 - 确认网络连接正常
- 验证远程服务状态
- 检查
-
认证失败
- 确认 API 密钥正确
- 检查密钥是否有足够权限
-
参数验证失败
- 检查参数格式是否正确
- 确认必填参数都已提供
日志调试
设置日志级别为 debug 查看详细信息:
LOG_LEVEL=debug npm start
🤝 贡献指南
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
📄 许可证
本项目基于 MIT 许可证开源 - 查看 LICENSE 文件了解详情。
🆘 支持
如果遇到问题或有建议,请:
📊 版本历史
- v1.0.0 - 初始版本
- 基本的短网址管理功能
- MCP 协议支持
- 完整的错误处理机制
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。