关于 Dwz Mcp
Dwz Mcp 是通过 dwz-server API 管理短链接的 MCP 服务,为 AI 助手及其他 MCP 客户端提供创建、查询、批量操作、域名筛选和点击统计功能。
主要功能
- 01创建带自定义信息的短链接
- 02批量创建短链接
- 03搜索和筛选链接列表
- 04查看链接详情和点击统计
- 05列出域名并删除链接
适用场景
- 01缩短营销或产品链接
- 02一次创建多个短链接
- 03按域名或关键词查找链接
- 04查看短链接的点击统计
MCP 相关
通过 dwz-server API 向 MCP 客户端提供短链接管理工具,涵盖创建、查询、列表、删除、批量创建和域名列表。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
6收录的工具列表 · 更新于 3 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| original_url | string | 是 | 原始URL地址(要缩短的长链接) |
| domain | string | 是 | 短网址使用的域名(必填) |
| custom_code | string | 否 | 自定义短代码(可选,如果不提供将自动生成) |
| title | string | 是 | 短网址的标题(必填) |
| description | string | 否 | 短网址的描述信息(可选) |
| expire_at | string | 否 | 过期时间(可选,ISO 8601格式,不填表示永不过期) |
详细介绍
Mliev Short URL MCP Client
基于 MCP(Model Context Protocol)协议的短网址管理客户端,为 AI 助手提供完整的短网址生成、管理和统计功能。此 MCP 服务基于 dwz-server 项目的 API 接口实现。
🏛️ 服务架构
此 MCP 客户端基于 dwz-server 项目调用短网址服务 API。dwz-server 是一款使用 Go 语言开发的高性能短网址服务,提供完整的短网址生成、管理和统计功能。
使用 Docker 部署 dwz-server
建议使用 Docker 部署 dwz-server,作为 MCP 客户端的后端服务:
# docker-compose.yml
services:
dwz-server:
container_name: dwz-server
image: docker.cnb.cool/mliev/open/dwz-server:latest
restart: always
ports:
- "8080:8080"
volumes:
- "./config/:/app/config/"
environment:
- TZ=Asia/Shanghai
- GIN_MODE=release
启动服务:
docker-compose up -d
服务启动后,API 地址为 http://localhost:8080。请在 MCP 客户端中进行配置:
REMOTE_BASE_URL=http://localhost:8080
✨ 功能特性
- 🔗 创建短网址:支持自定义域名、短码、标题和描述
- 📋 批量操作:一次创建多个短网址,提高效率
- 🔍 搜索与筛选:支持按域名筛选和关键词搜索
- 📊 统计与分析:获取详细的点击统计信息
- 🛡️ 错误处理:全面的错误处理和重试机制
- 🔒 安全认证:基于 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": "Your short URL service address",
"REMOTE_API_KEY": "apiKey"
}
}
}
}
安装依赖
npm install
配置环境变量
复制环境变量模板并进行配置:
cp .env.example .env
编辑 .env 文件:
# Remote short URL server configuration
REMOTE_BASE_URL=https://api.example.com
REMOTE_API_KEY=your-api-key-here
# Other optional configuration
REQUEST_TIMEOUT=10000
MAX_RETRIES=3
LOG_LEVEL=info
启动服务
# Development mode
npm run dev
# Production mode
npm start
📖 MCP 工具列表
1. create_short_url
创建新的短网址
参数:
original_url(必填):原始网址domain(必填):短网址域名title(必填):网页标题custom_code(可选):自定义短码description(可选):描述信息expire_at(可选):过期时间
示例:
{
"original_url": "https://www.example.com/products",
"domain": "short.ly",
"title": "Product Page",
"description": "Our product showcase page",
"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": "product"
}
4. delete_short_url
删除短网址
参数:
id(必填):短网址 ID
示例:
{
"id": 123
}
5. batch_create_short_urls
批量创建短网址
参数:
urls(必填):网址数组(最多 50 个)domain(必填):短网址域名
示例:
{
"urls": [
"https://www.example1.com",
"https://www.example2.com"
],
"domain": "short.ly"
}
6. list_domains
获取所有可用域名的列表
参数: 无必填参数
示例:
{}
返回信息:
- 域名基本信息:ID、域名、协议
- 网站信息:网站名称、注册信息
- 配置信息:启用状态、参数透传设置
- 统计信息:总数、启用数、未启用数
🏗️ 项目结构
mliev-dwz-mcp/
├── src/
│ ├── index.js # Entry file
│ ├── config/
│ │ └── remoteConfig.js # Configuration management
│ ├── services/
│ │ ├── httpClient.js # HTTP client
│ │ └── shortLinkService.js # Short link service
│ ├── utils/
│ │ ├── validation.js # Parameter validation
│ │ └── errorHandler.js # Error handling
│ └── mcp/
│ ├── server.js # MCP server
│ └── tools/ # MCP tools
│ ├── createShortUrl.js
│ ├── getUrlInfo.js
│ ├── listShortUrls.js
│ ├── deleteShortUrl.js
│ ├── batchCreateShortUrls.js
│ └── listDomains.js
├── tests/ # Test files
├── package.json # Project configuration
├── .env.example # Environment variable template
└── README.md # Project documentation
🔧 开发指南
可用脚本
# Start development server (hot reload)
npm run dev
# Build project
npm run build
# Run production environment
npm start
# Run tests
npm test
# Code linting
npm run lint
# Auto-fix code formatting
npm run format
添加新工具
- 在
src/mcp/tools/目录中创建新的工具文件 - 实现工具对象,包含
name、description、inputSchema和handler - 在
src/mcp/server.js中注册新工具
错误处理
本项目使用统一的错误处理机制:
ErrorHandler.asyncWrapper():包装异步函数并自动处理错误CustomError:自定义错误基类ValidationError:参数验证错误NetworkError:网络请求错误
📝 API 规范
响应格式
所有 API 响应均遵循统一格式:
{
"success": true,
"message": "Operation successful",
"data": {
// Response data
},
"meta": {
"operation": "Operation name",
"timestamp": "2024-01-01T00:00:00.000Z"
}
}
错误响应
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Error description",
"details": {},
"timestamp": "2024-01-01T00:00:00.000Z"
}
}
🔐 配置说明
环境变量
| 变量名称 | 描述 | 默认值 | 必填 |
|---|---|---|---|
REMOTE_BASE_URL | 远程服务地址 | - | ✅ |
REMOTE_API_KEY | API 密钥 | - | ✅ |
API_VERSION | API 版本 | v1 | ❌ |
REQUEST_TIMEOUT | 请求超时时间(毫秒) | 10000 | ❌ |
MAX_RETRIES | 最大重试次数 | 3 | ❌ |
LOG_LEVEL | 日志级别 | info | ❌ |
域名配置
确保远程短 URL 服务中使用的域名已正确配置。
🚨 故障排查
常见问题
-
连接失败
- 检查
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 - 初始版本
- 基本短 URL 管理功能
- MCP 协议支持
- 完整的错误处理机制
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。