Skip to main content
Glama

DWZ Short URL MCP Server

by muleiwu
README.md7.21 kB
# Mliev 短网址 MCP 客户端 基于 MCP(Model Context Protocol)协议的短网址管理客户端,为 AI 助手提供完整的短网址生成、管理和统计功能。 ## ✨ 功能特性 - 🔗 **短网址创建**: 支持自定义域名、短代码、标题和描述 - 📋 **批量操作**: 一次性创建多个短网址,提高效率 - 🔍 **搜索筛选**: 支持域名筛选和关键词搜索 - 📊 **统计分析**: 获取详细的点击统计信息 - 🛡️ **错误处理**: 完善的错误处理和重试机制 - 🔒 **安全认证**: 基于 Bearer Token 的 API 认证 ## 🚀 快速开始 ### 环境要求 - Node.js >= 18.0.0 - npm 或 yarn ### 直接使用MCP ```json { "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" } } } } ``` ### 安装依赖 ```bash npm install ``` ### 配置环境变量 复制环境变量模板并配置: ```bash cp .env.example .env ``` 编辑 `.env` 文件: ```bash # 远程短网址服务器配置 REMOTE_BASE_URL=https://api.example.com REMOTE_API_KEY=your-api-key-here # 其他可选配置 REQUEST_TIMEOUT=10000 MAX_RETRIES=3 LOG_LEVEL=info ``` ### 启动服务 ```bash # 开发模式 npm run dev # 生产模式 npm start ``` ## 📖 MCP 工具列表 ### 1. create_short_url 创建新的短网址 **参数:** - `original_url` (必填): 原始URL地址 - `domain` (必填): 短网址域名 - `title` (必填): 网页标题 - `custom_code` (可选): 自定义短代码 - `description` (可选): 描述信息 - `expire_at` (可选): 过期时间 **示例:** ```json { "original_url": "https://www.example.com/products", "domain": "short.ly", "title": "产品页面", "description": "我们的产品展示页面", "custom_code": "products" } ``` ### 2. get_url_info 获取短网址详细信息 **参数:** - `id` (必填): 短网址ID **示例:** ```json { "id": 123 } ``` ### 3. list_short_urls 列出短网址,支持分页和搜索 **参数:** - `page` (可选): 页码,默认1 - `page_size` (可选): 每页数量,默认10 - `domain` (可选): 域名筛选 - `keyword` (可选): 搜索关键词 **示例:** ```json { "page": 1, "page_size": 20, "domain": "short.ly", "keyword": "产品" } ``` ### 4. delete_short_url 删除短网址 **参数:** - `id` (必填): 短网址ID **示例:** ```json { "id": 123 } ``` ### 5. batch_create_short_urls 批量创建短网址 **参数:** - `urls` (必填): URL数组(最多50个) - `domain` (必填): 短网址域名 **示例:** ```json { "urls": [ "https://www.example1.com", "https://www.example2.com" ], "domain": "short.ly" } ``` ### 6. list_domains 获取所有可用域名列表 **参数:** 无需参数 **示例:** ```json {} ``` **返回信息:** - 域名基本信息: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 # 项目说明 ``` ## 🔧 开发指南 ### 可用脚本 ```bash # 启动开发服务器(热重载) npm run dev # 构建项目 npm run build # 运行生产环境 npm start # 运行测试 npm test # 代码检查 npm run lint # 自动修复代码格式 npm run format ``` ### 添加新工具 1. 在 `src/mcp/tools/` 目录下创建新工具文件 2. 实现工具对象,包含 `name`、`description`、`inputSchema` 和 `handler` 3. 在 `src/mcp/server.js` 中注册新工具 ### 错误处理 项目使用统一的错误处理机制: - `ErrorHandler.asyncWrapper()`: 包装异步函数,自动处理错误 - `CustomError`: 自定义错误基类 - `ValidationError`: 参数验证错误 - `NetworkError`: 网络请求错误 ## 📝 API 规范 ### 响应格式 所有API响应都遵循统一格式: ```json { "success": true, "message": "操作成功", "data": { // 响应数据 }, "meta": { "operation": "操作名称", "timestamp": "2024-01-01T00:00:00.000Z" } } ``` ### 错误响应 ```json { "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 | ❌ | ### 域名配置 确保使用的域名在远程短网址服务中已正确配置。 ## 🚨 故障排除 ### 常见问题 1. **连接失败** - 检查 `REMOTE_BASE_URL` 和 `REMOTE_API_KEY` 配置 - 确认网络连接正常 - 验证远程服务状态 2. **认证失败** - 确认 API 密钥正确 - 检查密钥是否有足够权限 3. **参数验证失败** - 检查参数格式是否正确 - 确认必填参数都已提供 ### 日志调试 设置日志级别为 debug 查看详细信息: ```bash LOG_LEVEL=debug npm start ``` ## 🤝 贡献指南 1. Fork 项目 2. 创建特性分支 (`git checkout -b feature/AmazingFeature`) 3. 提交更改 (`git commit -m 'Add some AmazingFeature'`) 4. 推送到分支 (`git push origin feature/AmazingFeature`) 5. 开启 Pull Request ## 📄 许可证 本项目基于 MIT 许可证开源 - 查看 [LICENSE](LICENSE) 文件了解详情。 ## 🆘 支持 如果遇到问题或有建议,请: 1. 查看 [故障排除](#故障排除) 部分 2. 搜索现有的 [Issues](https://github.com/mliev/mliev-dwz-mcp/issues) 3. 创建新的 Issue 描述问题 ## 📊 版本历史 - **v1.0.0** - 初始版本 - 基本的短网址管理功能 - MCP 协议支持 - 完整的错误处理机制

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/muleiwu/dwz-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server