WW-AI-Lab/liblib-mcp-server
3.3
If you are the rightful owner of liblib-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Liblib MCP Server is a lightweight MCP Server developed based on `mark3labs/mcp-go`, designed to dynamically publish ComfyUI workflows from the Liblib platform as MCP Tools, supporting multi-tenant management.
Liblib MCP Server
基于
mark3labs/mcp-go
开发的轻量级 MCP Server,将 Liblib 平台的 ComfyUI 工作流动态发布为 MCP Tools,支持多租户管理。
🎯 项目特点
- 🚀 轻量化架构: 使用 Go 标准库
http.ServeMux
,最小依赖设计 - 🔌 统一服务器: 单端口提供 MCP 服务 + 管理 API + 静态文件服务
- 👥 多租户支持: 一用户一密钥一Token的简化设计,安全隔离
- 🎨 现代化 UI: React + TypeScript + Tailwind CSS 构建的管理界面
- 🔒 安全加密: AES-256-GCM 加密存储 API 密钥,Bearer Token 认证
- 🐳 容器化部署: 多阶段 Docker 构建,生产就绪
🏗️ 架构设计
┌─────────────┐ StreamableHTTP ┌────────────────────────────┐
│ MCP Client │◄─────────────────┤ │
└─────────────┘ │ │
│ 统一 HTTP 服务器 │
┌─────────────┐ HTTP/JSON │ (Go http.ServeMux) │
│ 管理 UI │◄─────────────────┤ │
└─────────────┘ │ /mcp/ │ /api/v1/ │ / │
└────────┼──────────┼────────┘
│ │ │
MCP 服务 管理API 静态文件
┌──────────────────────────────┐
│ 数据层 │
│ SQLite/MySQL + GORM │
└──────────────────────────────┘
🛠️ 技术栈
层级 | 技术选型 | 说明 |
---|---|---|
后端 | Go 1.23+ + 标准库 http.ServeMux | 轻量级路由,零第三方框架依赖 |
MCP | mark3labs/mcp-go | StreamableHTTP 协议支持 |
前端 | React 18 + TypeScript + Vite | 现代化构建工具链 |
样式 | Tailwind CSS 4.x | 实用优先的 CSS 框架 |
数据库 | SQLite (开发) / MySQL (生产) | GORM ORM 支持 |
部署 | Docker + Multi-stage Build | 单镜像包含前后端 |
📦 核心依赖
// 仅保留必需依赖,确保轻量化
require (
github.com/mark3labs/mcp-go v0.33.0 // MCP 协议
github.com/rs/zerolog v1.34.0 // 结构化日志
gorm.io/gorm v1.30.0 // 数据库 ORM
gorm.io/driver/sqlite v1.6.0 // SQLite 驱动
gorm.io/driver/mysql v1.6.0 // MySQL 驱动
)
🚀 快速开始
方式一:Docker 部署(推荐)
# 拉取最新镜像(支持 x86_64 和 ARM64)
docker pull ccr.ccs.tencentyun.com/yfgaia/liblib-mcp-server:latest
# 快速启动
docker run -d \
-p 8080:8080 \
-v $(pwd)/data:/app/data \
-v $(pwd)/logs:/app/logs \
--name liblib-mcp-server \
ccr.ccs.tencentyun.com/yfgaia/liblib-mcp-server:latest
# 使用 Docker Compose(推荐)
docker-compose -f docker-compose.prod.yml up -d
方式二:源码部署
- 环境要求
- Go 1.23+
- Node.js 20+
- Git
- 构建后端
git clone https://github.com/WW-AI-Lab/liblib-mcp-server.git
cd liblib-mcp-server
go mod download
go build -o bin/server ./cmd/server
- 构建前端
cd web
npm install
npm run build
cd ..
- 配置环境
cp config.env.example config.env
# 编辑 config.env 填入必要配置
- 启动服务
./bin/server
⚙️ 配置说明
环境变量配置
变量名 | 必需 | 默认值 | 说明 |
---|---|---|---|
PORT | 否 | 8080 | 服务监听端口 |
ENV | 否 | development | 运行环境 |
LOG_LEVEL | 否 | info | 日志级别 |
DB_TYPE | 否 | sqlite | 数据库类型 (sqlite /mysql ) |
DB_PATH | 否 | ./data/liblib.db | SQLite 数据库路径 |
MCP_KMS_KEY | 是 | - | 32字符加密密钥 |
JWT_SECRET | 是 | - | JWT 签名密钥 |
STATIC_DIR | 否 | ./web/dist | 静态文件目录 |
LIBLIB_API_BASE | 否 | https://openapi.liblibai.cloud | Liblib API 基础 URL |
MySQL 配置(生产环境)
DB_TYPE=mysql
DB_HOST=localhost
DB_PORT=3306
DB_NAME=liblib_mcp
DB_USER=liblib
DB_PASSWORD=your_password
📖 使用指南
1. 首次设置
- 访问管理界面: http://localhost:8080
- 邮箱登录: 输入邮箱即可(首次自动创建用户)
- 配置 Liblib 密钥: 在"密钥管理"页面添加 AccessKey/SecretKey
- 添加工作流: 在"工作流管理"页面注册 ComfyUI 工作流
2. MCP Client 连接
Cursor/其他 MCP Client 配置
在 MCP 设置中添加:
{
"liblib": {
"command": "npx",
"args": [
"@modelcontextprotocol/server-everything"
],
"env": {
"MCP_SERVER_URL": "http://localhost:8080/mcp",
"MCP_AUTH_TOKEN": "your-bearer-token-here"
}
}
}
使用 mcp_test_client
# 测试 MCP 连接
go run mcp_test_client.go -endpoint="http://localhost:8080/mcp" -token="your-bearer-token"
3. 工作流管理
-
注册工作流:
- 提供工作流名称和描述
- 输入 Liblib 工作流 UUID
- 粘贴参数示例 JSON(用于自动解析参数结构)
-
自动工具生成:
- 系统自动解析参数结构
- 生成对应的 MCP Tool
- 支持动态参数验证
-
工具调用:
- MCP Client 自动发现工具
- 调用时自动使用用户的 Liblib 密钥
- 异步执行,支持状态查询
🔧 API 文档
认证 API
# 用户登录
POST /api/v1/auth/login
Content-Type: application/json
{"email": "user@example.com"}
# 返回: {"token": "jwt_token", "user": {...}}
密钥管理 API
# 添加密钥
POST /api/v1/credentials
Authorization: Bearer <jwt_token>
Content-Type: application/json
{
"name": "生产环境",
"access_key": "your_access_key",
"secret_key": "your_secret_key"
}
# 获取密钥列表
GET /api/v1/credentials
Authorization: Bearer <jwt_token>
工作流管理 API
# 注册工作流
POST /api/v1/workflows
Authorization: Bearer <jwt_token>
Content-Type: application/json
{
"name": "图像生成",
"workflow_uuid": "workflow-uuid-here",
"description": "生成高质量图像",
"params_json": "{\"prompt\": \"示例提示词\"}"
}
# 获取工作流列表
GET /api/v1/workflows
Authorization: Bearer <jwt_token>
🛡️ 安全性
数据加密
- 密钥加密: 使用 AES-256-GCM 加密存储 Liblib API 密钥
- 传输加密: 支持 HTTPS 部署
- Token 安全: JWT Token 签名验证
多租户隔离
- 数据隔离: 每个用户只能访问自己的资源
- 工具隔离: MCP 工具基于 Bearer Token 过滤
- API 隔离: 接口级别的权限控制
📊 监控运维
健康检查
curl http://localhost:8080/health
# 返回: OK (200)
日志查看
# Docker 容器日志
docker logs liblib-mcp
# 本地部署日志
tail -f logs/backend.log
🧪 测试
单元测试
go test ./...
前端测试
cd web
npm test
MCP 集成测试
./scripts/test_mcp_basic.sh
🤝 贡献指南
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature
) - 提交更改 (
git commit -m 'Add some AmazingFeature'
) - 推送到分支 (
git push origin feature/AmazingFeature
) - 开启 Pull Request
开发规范
- 遵循
- 使用标准库优先,最小化依赖
- 保持单端口统一服务架构
- 添加充分的单元测试
📄 许可证
本项目采用 MIT 许可证 - 查看 文件了解详情。
🙏 致谢
- mark3labs/mcp-go - 优秀的 MCP Go 实现
- Liblib AI - ComfyUI 工作流平台
- GORM - Go ORM 库
📞 支持
- 🐛 问题反馈: GitHub Issues
- 💬 讨论交流: GitHub Discussions
- 📧 商务合作:
🏠 主页 • • •