mcpField
D
Dwz Mcp

Dwz Mcp

本地服务
github.com/muleiwu生产力139 周前更新

关于 Dwz Mcp

Dwz Mcp 是通过 dwz-server API 管理短链接的 MCP 服务,为 AI 助手及其他 MCP 客户端提供创建、查询、批量操作、域名筛选和点击统计功能。

主要功能

  1. 01创建带自定义信息的短链接
  2. 02批量创建短链接
  3. 03搜索和筛选链接列表
  4. 04查看链接详情和点击统计
  5. 05列出域名并删除链接

适用场景

  1. 01缩短营销或产品链接
  2. 02一次创建多个短链接
  3. 03按域名或关键词查找链接
  4. 04查看短链接的点击统计

MCP 相关

通过 dwz-server API 向 MCP 客户端提供短链接管理工具,涵盖创建、查询、列表、删除、批量创建和域名列表。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dwz": {
"command": "npx",
"args": [
"-y",
"@muleiwu/dwz-mcp"
],
"env": {
"REMOTE_BASE_URL": "<REMOTE_BASE_URL>",
"REMOTE_API_KEY": "<REMOTE_API_KEY>"
}
}
}
}
启动命令npx -y @muleiwu/dwz-mcp
需要配置的环境变量
REMOTE_BASE_URL
REMOTE_API_KEY密钥

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@muleiwu/dwz-mcp

工具

6

收录的工具列表 · 更新于 3 周前

参数类型必填说明
original_urlstring是原始URL地址(要缩短的长链接)
domainstring是短网址使用的域名(必填)
custom_codestring否自定义短代码(可选,如果不提供将自动生成)
titlestring是短网址的标题(必填)
descriptionstring否短网址的描述信息(可选)
expire_atstring否过期时间(可选,ISO 8601格式,不填表示永不过期)

详细介绍

Mliev Short URL MCP Client

基于 MCP(Model Context Protocol)协议的短网址管理客户端,为 AI 助手提供完整的短网址生成、管理和统计功能。此 MCP 服务基于 dwz-server 项目的 API 接口实现。

DWZ Short URL Server MCP server

🏛️ 服务架构

此 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(可选):页码,默认为 1
  • page_size(可选):每页条目数,默认为 10
  • domain(可选):域名筛选条件
  • 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
添加新工具
  1. 在 src/mcp/tools/ 目录中创建新的工具文件
  2. 实现工具对象,包含 name、description、inputSchema 和 handler
  3. 在 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_KEYAPI 密钥-✅
API_VERSIONAPI 版本v1❌
REQUEST_TIMEOUT请求超时时间(毫秒)10000❌
MAX_RETRIES最大重试次数3❌
LOG_LEVEL日志级别info❌
域名配置

确保远程短 URL 服务中使用的域名已正确配置。

🚨 故障排查

常见问题
  1. 连接失败

    • 检查 REMOTE_BASE_URL 和 REMOTE_API_KEY 配置
    • 确认网络连接正常
    • 验证远程服务状态
  2. 身份验证失败

    • 确认 API 密钥正确
    • 检查密钥是否具有足够的权限
  3. 参数验证失败

    • 检查参数格式是否正确
    • 确认已提供所有必填参数
日志调试

将日志级别设置为 debug,以查看详细信息:

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 文件。

🆘 支持

如果您遇到问题或有建议,请:

  1. 查看故障排查部分
  2. 搜索现有的 Issues
  3. 创建新的 Issue 描述问题

📊 版本历史

  • v1.0.0 - 初始版本
    • 基本短 URL 管理功能
    • MCP 协议支持
    • 完整的错误处理机制

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。