liblib-mcp-server

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 Version Docker

🎯 项目特点

  • 🚀 轻量化架构: 使用 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轻量级路由,零第三方框架依赖
MCPmark3labs/mcp-goStreamableHTTP 协议支持
前端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

方式二:源码部署

  1. 环境要求
  • Go 1.23+
  • Node.js 20+
  • Git
  1. 构建后端
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
  1. 构建前端
cd web
npm install
npm run build
cd ..
  1. 配置环境
cp config.env.example config.env
# 编辑 config.env 填入必要配置
  1. 启动服务
./bin/server

⚙️ 配置说明

环境变量配置

变量名必需默认值说明
PORT8080服务监听端口
ENVdevelopment运行环境
LOG_LEVELinfo日志级别
DB_TYPEsqlite数据库类型 (sqlite/mysql)
DB_PATH./data/liblib.dbSQLite 数据库路径
MCP_KMS_KEY-32字符加密密钥
JWT_SECRET-JWT 签名密钥
STATIC_DIR./web/dist静态文件目录
LIBLIB_API_BASEhttps://openapi.liblibai.cloudLiblib API 基础 URL

MySQL 配置(生产环境)

DB_TYPE=mysql
DB_HOST=localhost
DB_PORT=3306
DB_NAME=liblib_mcp
DB_USER=liblib
DB_PASSWORD=your_password

📖 使用指南

1. 首次设置

  1. 访问管理界面: http://localhost:8080
  2. 邮箱登录: 输入邮箱即可(首次自动创建用户)
  3. 配置 Liblib 密钥: 在"密钥管理"页面添加 AccessKey/SecretKey
  4. 添加工作流: 在"工作流管理"页面注册 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. 工作流管理

  1. 注册工作流

    • 提供工作流名称和描述
    • 输入 Liblib 工作流 UUID
    • 粘贴参数示例 JSON(用于自动解析参数结构)
  2. 自动工具生成

    • 系统自动解析参数结构
    • 生成对应的 MCP Tool
    • 支持动态参数验证
  3. 工具调用

    • 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

🤝 贡献指南

  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 许可证 - 查看 文件了解详情。

🙏 致谢

📞 支持


🏠 主页