liblib-mcp-server

liblib-mcp-server is a lightweight server built with Go that supports microservices architecture. It is designed for high performance and efficiency, enabling developers to quickly build applications. It provides a RESTful API for easy integration with other services.

GitHub Stars

4

User Rating

Not Rated

Favorites

0

Views

19

Forks

0

Issues

0

README
Liblib MCP Server

基于 mark3labs/mcp-go 开发的轻量级 MCP Server,将 Liblib 平台的 ComfyUI 工作流动态发布为 MCP Tools,支持多租户管理。

Go Version
Docker
License

🎯 项目特点
  • 🚀 轻量化架构: 使用 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
方式二:源码部署
  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
⚙️ 配置说明
环境变量配置
变量名 必需 默认值 说明
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. 首次设置
  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 许可证 - 查看 LICENSE 文件了解详情。

🙏 致谢
📞 支持