📦 Unla v0.9.1
Turn your MCP Servers and APIs into MCP endpoints — effortlessly, without modifying the original code.
✨ 特性
- Gateway 视图模式持久化至本地存储
- 添加 Gateway 服务基础 URL 配置
- 新增内部网络白名单功能,默认阻止工具访问并支持配置允许的目标
- 添加完整的 Prometheus 指标支持(MCP API 请求指标、状态码、工具执行时间等)
- 增强追踪捕获能力,支持无限长度选项和完整响应追踪
- 集成 Sprig 模板函数库,扩展模板能力
- OAuth2 授权码流程新增 PKCE 支持,提升安全性
- 加强 JWT 服务初始化和错误处理
- 改进 auth code grant,增加过期检查和特定错误提示
- 新增繁体中文文档和 README 徽章
🐞 修复
- 修复工具端点渲染中的路径参数转义,防止路径遍历攻击
- 修复工具执行失败时的响应错误
- 升级 crypto 依赖至 v0.43.0
- 升级 quic-go 依赖至 v0.54.1
🧹 重构
- 使用 Redis Streams 替代 Pub/Sub,实现更可靠的多实例信号传递
- 统一对齐环境变量前缀
- 优化追踪 ID 打印输出
🧪 测试
- 新增单元测试,提升代码覆盖率
- 增强 safeGet、logger 和追踪功能的测试覆盖
- 增加 JWT 密钥长度并添加 AuthConfig 测试
🔧 其他
- 更新 GitHub Actions 工作流配置
- 升级项目依赖至最新次要版本
- 添加缺失的配置和环境变量
- 优化 .dockerignore 配置
- 默认禁用 metrics,按需启用
📘 文档:https://docs.unla.amoylab.com/
🐙 源码:https://github.com/amoylab/unla
🐳 Docker 镜像:ghcr.io/amoylab/unla/allinone:latest
💬 加入我们的 Discord 社区参与讨论:https://discord.gg/udf69cT9TY
🔗 扫描下方二维码加入社区微信群,备注:unla

感谢所有参与和关注该项目的开发者与用户 💖
✨ Features
- Persist gateway view mode to local storage
- Add gateway service base URL configuration
- Add internal network allowlist enforcement to block tool access by default and permit configured targets
- Add comprehensive Prometheus metrics support (MCP API request metrics, status codes, tool execution timing, etc.)
- Enhance trace capture with unlimited length option and full response tracing
- Integrate Sprig template function library for extended template capabilities
- Add PKCE support to OAuth2 authorization code flow for enhanced security
- Strengthen JWT service initialization and error handling
- Improve auth code grant with expiry checks and specific error messages
- Add Traditional Chinese documentation and README badge
🐞 Fixes
- Escape path parameters in tool endpoint rendering to prevent path traversal attacks
- Fix response error when tool execution fails
- Update crypto to v0.43.0
- Update quic-go to v0.54.1
🧹 Refactor
- Use Redis Streams instead of Pub/Sub for reliable multi-instance signal delivery
- Align environment variable prefixes
- Improve trace ID printing output
🧪 Tests
- Add unit tests to improve code coverage
- Enhance test coverage for safeGet, logger, and tracing functionality
- Increase JWT secret length and add AuthConfig tests
🔧 Miscellaneous
- Update GitHub Actions workflow for tests
- Upgrade dependencies to latest minor versions
- Add missing configurations and environment variables
- Optimize .dockerignore configuration
- Disable metrics by default, enable on demand
📘 Docs: https://docs.unla.amoylab.com/
🐙 Source: https://github.com/amoylab/unla
🐳 Docker Image: ghcr.io/amoylab/unla/allinone:latest
💬 Join our Discord community: https://discord.gg/udf69cT9TY
🔗 Scan to join WeChat group, note: unla

Thanks to all contributors and early users! 💖
What's Changed
- docs: add Traditional Chinese documentation and README badge by @appleboy in #259
- feat: improve auth code grant with expiry checks and specific errors by @appleboy in #258
- refactor: use context.Background() in store method tests by @appleboy in #260
- chore: upgrade gin-gonic/gin from v1.10.1 to v1.11.0 by @appleboy in #261
- feat: strengthen JWT service initialization and error handling by @appleboy in #262
- feat: add PKCE support to OAuth2 authorization code flow by @appleboy in #266
- feat: add tool meta by @qiankunli in #269
- fix: fix new CVEs in quic-go and crypto by @kx-byte in #287
- Feat/add mcp gateway metrics by @kx-byte in #289
New Contributors
Full Changelog: v0.9.0...v0.9.1