[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-stacklok--toolhive":3,"tool-stacklok--toolhive":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",150037,2,"2026-04-10T23:33:47",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":76,"owner_email":77,"owner_twitter":78,"owner_website":79,"owner_url":80,"languages":81,"stars":102,"forks":103,"last_commit_at":104,"license":105,"difficulty_score":10,"env_os":106,"env_gpu":107,"env_ram":107,"env_deps":108,"category_tags":114,"github_topics":115,"view_count":32,"oss_zip_url":76,"oss_zip_packed_at":76,"status":17,"created_at":127,"updated_at":128,"faqs":129,"releases":159},6527,"stacklok\u002Ftoolhive","toolhive","ToolHive is an enterprise-grade platform for running and managing Model Context Protocol (MCP) servers.","ToolHive 是一款专为企业打造的平台，旨在简化模型上下文协议（MCP）服务器的运行与管理。在 AI 应用开发中，安全地部署和集成各类 MCP 服务往往面临配置复杂、权限管控难等挑战，ToolHive 通过提供开箱即用的解决方案，让用户能够随时随地安全、即时地启动任何 MCP 服务器。\n\n该平台特别适合开发者、运维工程师及企业技术团队使用。无论是本地开发调试，还是生产环境的大规模部署，ToolHive 都能通过桌面应用、命令行工具或 Kubernetes 算子灵活适配。其核心亮点在于“默认安全”的设计理念：所有服务器均运行在隔离容器中，仅授予必要权限，且敏感信息加密管理，杜绝明文泄露风险。此外，ToolHive 内置网关、注册表服务器、运行时引擎和管理门户四大模块，支持自动对接 GitHub Copilot、Cursor、VS Code 等主流开发工具，并可通过统一接口集中管控身份认证、访问策略及审计日志。借助其模块化架构，团队不仅能快速构建受信任的服务器目录，还能优化工作流以减少令牌消耗，真正实现高效、可控的 AI 工具链集成。","\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs\u002Fimages\u002Ftoolhive-byline-white.svg\">\n  \u003Cimg src=\"docs\u002Fimages\u002Ftoolhive-byline-black.svg\" alt=\"ToolHive logo\" width=\"500\"\u002F>\n\u003C\u002Fpicture>\n\n\u003Cbr>\n\n[![Release][release-img]][release] [![Build status][ci-img]][ci]\n[![Coverage Status][coveralls-img]][coveralls]\n[![License: Apache 2.0][license-img]][license]\n[![Star on GitHub][stars-img]][stars] [![Discord][discord-img]][discord]\n\n# ToolHive - simplify and secure MCP servers\n\n**Run any Model Context Protocol (MCP) server: securely, instantly, anywhere.**\n\nToolHive includes everything you need to use MCP servers in production. Rather than build or combine components yourself, use ToolHive's Registry Server, Runtime, Gateway, and Portal to get up and running quickly and safely.\n\nToolHive keeps you in control of your MCP estate. Integrate with popular clients in seconds and deploy pre-vetted MCP servers in locked-down containers with a single click or command. ToolHive is available as a desktop app, web app, CLI, and Kubernetes operator.\n\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs\u002Fimages\u002Ftoolhive-diagram-dark.svg\">\n  \u003Cimg src=\"docs\u002Fimages\u002Ftoolhive-diagram-light.svg\" alt=\"ToolHive diagram\" width=\"800\" style=\"padding: 20px 0\" \u002F>\n\u003C\u002Fpicture>\n\n---\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n## Why ToolHive?\n\n- **Instant deployment:** Start any MCP server with one click or command, using Docker or Kubernetes.\n- **Secure by default:** Every server runs in an isolated container with only the permissions it needs. Secrets are managed securely, never in plaintext.\n- **Works everywhere:** Use the UI and CLI for local development, or the Kubernetes Operator for production and scale.\n- **Seamless integration:** ToolHive auto-configures popular clients like GitHub Copilot, Cursor, VS Code Server, and more.\n\n\u003Cbr>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\" align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs\u002Fimages\u002Ftoolhive-sources-dark.svg\">\n    \u003Cimg src=\"docs\u002Fimages\u002Ftoolhive-sources-light.svg\" alt=\"ToolHive sources diagram\" width=\"400px\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Quick links\n\n- 📥 [Downloads](https:\u002F\u002Fstacklok.com\u002Fdownload\u002F)\n- 📚 [Documentation](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002F)\n- 🚀 Quickstart guides:\n  - [Desktop app](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-ui\u002Fquickstart)\n  - [CLI](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-cli\u002Fquickstart)\n  - [Kubernetes Operator](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-k8s\u002Fquickstart)\n- 💬 [Discord](https:\u002F\u002Fdiscord.gg\u002Fstacklok)\n- 🤝 [Contributing](#contributing)\n- \u003Cimg src=\"docs\u002Fimages\u002Fstacklok-favicon.svg\" width=\"20\" height=\"20\" style=\"vertical-align: middle\" \u002F> [Stacklok Enterprise](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fenterprise)\n\n---\n\n## Core capabilities\n\n**ToolHive architecture: Gateway, Registry Server, Runtime, and Portal**\n\nToolHive is built on a [modular architecture](.\u002Fdocs\u002Farch\u002FREADME.md) to streamline secure MCP server management and integration. Here's how the main components work.\n\n### 🔌 Gateway\n\nDefine dedicated endpoints from which your teams can securely and efficiently access tools.\n\n- Orchestrate multiple tools into a virtual MCP with a deterministic workflow engine\n- Define access policies and network endpoints\n- Centralize control of security policy, authentication, authorization, auditing, etc.\n- Integrate with your IdP for SSO (OIDC\u002FOAuth compatible)\n- Customize and filter tools and descriptions to improve performance and reduce token usage\n- Connect with local clients like Claude Desktop, Cursor, VS Code, and VS Code Server\n\n### 📦 [Registry Server](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-registry-server)\n\nCurate a catalog of trusted servers your teams can quickly discover and deploy.\n\n- Integrate with the official MCP registry\n- Add custom MCP servers\n- Group servers based on role or use case\n- Manage your registry with an API-driven interface (or embed in existing workflows for seamless integration and governance)\n- Verify provenance and sign servers with built-in security controls\n- Preset configurations and permissions for a frictionless user experience\n\n### ⚙️ Runtime\n\nDeploy, run, and manage MCP servers locally or in a Kubernetes cluster with security guardrails.\n\n- Deploy MCP servers in the cloud via Kubernetes for enterprise scalability\n- Run MCP servers locally via Docker or Podman\n- Proxy remote MCP servers securely for unified management\n- Kubernetes Operator for fleet and resource management\n- Leverage OpenTelemetry and Prometheus for monitoring and audit logging\n\n### 💻 Portal\n\nSimplify MCP adoption for developers and knowledge workers across your enterprise\n\n- Cross-platform [desktop app](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-studio) and browser-based [cloud UI](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-cloud-ui)\n- Make it easy for admins to curate MCP servers and tools\n- Automate server discovery\n- Install MCP servers with a single click\n- Compatible with hundreds of AI clients\n\n### How it works together\n\n1. **Admins** curate and organize MCP servers in the **Registry**, configuring access and policies.\n2. **Users** discover and request MCP servers from the **Portal**, and ToolHive orchestrates installation and access.\n3. **Runtime** securely deploys and manages MCP servers across local and cloud environments, integrating seamlessly with existing SDLC workflows, exporting analytics, and enforcing fine-grained access control.\n4. **Gateway** handles all inbound traffic, secures context and credentials, optimizes tool selection, and applies organizational policies.\n\n---\n\n## Flexible deployment\n\n### Desktop experience\n\nIndividual developers can get started in minutes with the desktop UI or CLI, then apply the same concepts in enterprise environments.\n\n**Key features:**\n\n- Run any MCP server from a container image, or build one dynamically from common package managers\n- Manage encrypted secrets and control network isolation with simple, local tooling\n- Test and validate MCP servers using built-in tools like the official MCP Inspector\n- Optimize token usage and tool execution with the MCP Optimizer\n\n**Get started with the UI:** [Quickstart](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-ui\u002Fquickstart), [How-to guides](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-ui\u002F)  \n**Get started with the CLI:** [Quickstart](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-cli\u002Fquickstart), [How-to guides](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-cli\u002F), [Command reference](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Freference\u002Fcli\u002Fthv)\n\n[**MCP guides**](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-mcp): learn how to run common MCP servers with ToolHive\n\n### Kubernetes Operator\n\nTeams and organizations manage MCP servers and registries centrally using familiar Kubernetes workflows.\n\n**Key features:**\n\n- Custom Resource Definitions for MCP servers, registries, and other ToolHive components\n- Secure execution with container-based isolation and multi-namespace support\n- Automated service creation and discovery, with ingress integration for secure access\n- Enterprise-grade security and observability: OIDC\u002FOAuth SSO, secure token exchange, audit logging, OpenTelemetry, and Prometheus metrics\n- Hybrid registry server: curate from upstream registries, dynamically register local MCP servers, or proxy trusted remote services\n\n**Get started:** [Quickstart](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-k8s\u002Fquickstart), [How-to guides](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-k8s\u002F), [CRD reference](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Freference\u002Fcrd-spec), [Example manifests](.\u002Fexamples\u002Foperator\u002F)\n\n### Hybrid\n\nToolHive's complete solution for teams and enterprises supports MCP servers across all environments: on developer machines, inside your Kubernetes clusters, or hosted externally by trusted SaaS providers.\n\nEnd users access approved MCP servers through a secure, browser-based cloud UI. Developers can also connect using the ToolHive CLI or desktop UI for advanced integration and testing workflows.\n\nEnterprise teams can also leverage ToolHive to integrate MCP servers into custom internal tools, agentic workflows, or chat-based interfaces, using the same runtime and access controls.\n\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs\u002Fimages\u002Ftoolhive-platform-dark.svg\">\n  \u003Cimg src=\"docs\u002Fimages\u002Ftoolhive-platform-light.svg\" alt=\"ToolHive platform diagram\" width=\"800\" style=\"padding: 20px 0\" \u002F>\n\u003C\u002Fpicture>\n\n---\n\n## Contributing\n\nWe welcome contributions and feedback from the community!\n\n- 🐛 [Report issues](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fissues)\n- 💬 [Join our Discord](https:\u002F\u002Fdiscord.gg\u002Fstacklok)\n\nIf you have ideas, suggestions, or want to get involved, check out our contributing guide or open an issue. Join us in making ToolHive even better!\n\n\u003Ctable>\u003Ctr>\u003Ctd>\n\nContribute to the CLI, API, and Kubernetes Operator (this repo):\n\n- 🤝 [Contributing guide](.\u002FCONTRIBUTING.md)\n- 📖 [Developer guides](.\u002Fdocs\u002FREADME.md)\n- 📐 [Architecture documentation](.\u002Fdocs\u002Farch\u002FREADME.md)\n\nContribute to the UI, registry, and docs:\n\n- 💻 [Desktop UI repository](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-studio)\n- ☁️ [Cloud UI repository](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-cloud-ui)\n- 📦 [ToolHive registry server repository](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-registry-server)\n- 🛠️ [ToolHive's built-in registry](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-catalog)\n- 📚 [Documentation repository](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fdocs-website)\n\n\u003C\u002Ftd>\n\u003Ctd>\n\n\u003Cpicture>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fstacklok_toolhive_readme_ee97b15aa880.png\" alt=\"ToolHive mascot\" width=\"250\" align=\"middle\"\u002F>\n\u003C\u002Fpicture>\n\n\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\n\n---\n\n## License\n\nThis project is licensed under the [Apache 2.0 License](.\u002FLICENSE).\n\n\u003C!-- Badge links -->\n\u003C!-- prettier-ignore-start -->\n[release-img]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fstacklok\u002Ftoolhive?style=flat&label=Latest%20version\n[release]: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Freleases\u002Flatest\n[ci-img]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fstacklok\u002Ftoolhive\u002Frun-on-main.yml?style=flat&logo=github&label=Build\n[ci]: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Factions\u002Fworkflows\u002Frun-on-main.yml\n[coveralls-img]: https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fstacklok\u002Ftoolhive\u002Fbadge.svg?branch=main\n[coveralls]: https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fstacklok\u002Ftoolhive?branch=main\n[license-img]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-Apache2.0-blue.svg?style=flat\n[license]: https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0\n[stars-img]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fstacklok\u002Ftoolhive.svg?style=flat&logo=github&label=Stars\n[stars]: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\n[discord-img]: https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1184987096302239844?style=flat&logo=discord&logoColor=white&label=Discord\n[discord]: https:\u002F\u002Fdiscord.gg\u002Fstacklok\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- markdownlint-disable-file first-line-heading no-inline-html no-emphasis-as-heading -->\n","\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs\u002Fimages\u002Ftoolhive-byline-white.svg\">\n  \u003Cimg src=\"docs\u002Fimages\u002Ftoolhive-byline-black.svg\" alt=\"ToolHive logo\" width=\"500\"\u002F>\n\u003C\u002Fpicture>\n\n\u003Cbr>\n\n[![发布][release-img]][release] [![构建状态][ci-img]][ci]\n[![覆盖率状态][coveralls-img]][coveralls]\n[![许可证：Apache 2.0][license-img]][license]\n[![GitHub 星标][stars-img]][stars] [![Discord][discord-img]][discord]\n\n# ToolHive - 简化并保护 MCP 服务器\n\n**运行任何模型上下文协议 (MCP) 服务器：安全、即时、随处可用。**\n\nToolHive 包含了在生产环境中使用 MCP 服务器所需的一切。您无需自行构建或组合各个组件，只需使用 ToolHive 的注册服务器、运行时、网关和门户，即可快速且安全地启动并运行。\n\nToolHive 让您完全掌控自己的 MCP 基础设施。几秒钟内即可与主流客户端集成，并通过单击或一条命令将经过预先审核的 MCP 服务器部署到受严格限制的容器中。ToolHive 提供桌面应用、Web 应用、CLI 和 Kubernetes Operator 等多种形式。\n\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs\u002Fimages\u002Ftoolhive-diagram-dark.svg\">\n  \u003Cimg src=\"docs\u002Fimages\u002Ftoolhive-diagram-light.svg\" alt=\"ToolHive 流程图\" width=\"800\" style=\"padding: 20px 0\" \u002F>\n\u003C\u002Fpicture>\n\n---\n\n\u003Ctable>\n\u003Ctr>\n\u003Ctd width=\"50%\">\n\n## 为什么选择 ToolHive？\n\n- **即时部署：** 使用 Docker 或 Kubernetes，只需单击或输入命令即可启动任何 MCP 服务器。\n- **默认安全：** 每个服务器都在隔离的容器中运行，仅拥有其所需的权限。机密信息得到安全管理，绝不会以明文形式存储。\n- **随处可用：** 可以使用 UI 和 CLI 进行本地开发，也可以使用 Kubernetes Operator 在生产环境中进行扩展。\n- **无缝集成：** ToolHive 可自动配置 GitHub Copilot、Cursor、VS Code Server 等流行客户端。\n\n\u003Cbr>\n\u003C\u002Ftd>\n\u003Ctd width=\"50%\" align=\"center\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs\u002Fimages\u002Ftoolhive-sources-dark.svg\">\n    \u003Cimg src=\"docs\u002Fimages\u002Ftoolhive-sources-light.svg\" alt=\"ToolHive 源代码架构图\" width=\"400px\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## 快速链接\n\n- 📥 [下载](https:\u002F\u002Fstacklok.com\u002Fdownload\u002F)\n- 📚 [文档](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002F)\n- 🚀 快速入门指南：\n  - [桌面应用](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-ui\u002Fquickstart)\n  - [CLI](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-cli\u002Fquickstart)\n  - [Kubernetes Operator](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-k8s\u002Fquickstart)\n- 💬 [Discord](https:\u002F\u002Fdiscord.gg\u002Fstacklok)\n- 🤝 [贡献](#contributing)\n- \u003Cimg src=\"docs\u002Fimages\u002Fstacklok-favicon.svg\" width=\"20\" height=\"20\" style=\"vertical-align: middle\" \u002F> [Stacklok Enterprise](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fenterprise)\n\n---\n\n## 核心功能\n\n**ToolHive 架构：网关、注册服务器、运行时和门户**\n\nToolHive 基于 [模块化架构](.\u002Fdocs\u002Farch\u002FREADME.md)，旨在简化安全的 MCP 服务器管理和集成。以下是主要组件的工作方式。\n\n### 🔌 网关\n\n定义专用端点，使您的团队能够安全高效地访问工具。\n\n- 使用确定性工作流引擎将多个工具编排成一个虚拟的 MCP\n- 定义访问策略和网络端点\n- 集中控制安全策略、身份验证、授权、审计等\n- 与您的 IdP 集成以实现 SSO（兼容 OIDC\u002FOAuth）\n- 自定义和过滤工具及描述，以提高性能并减少令牌使用\n- 与本地客户端如 Claude Desktop、Cursor、VS Code 和 VS Code Server 等连接\n\n### 📦 [注册服务器](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-registry-server)\n\n整理一个可信服务器目录，让您的团队可以快速发现并部署。\n\n- 与官方 MCP 注册表集成\n- 添加自定义 MCP 服务器\n- 根据角色或使用场景对服务器进行分组\n- 使用基于 API 的界面管理您的注册表（或嵌入现有工作流程中，实现无缝集成和治理）\n- 利用内置的安全控制验证来源并签署服务器\n- 提供预设配置和权限，以提供流畅的用户体验\n\n### ⚙️ 运行时\n\n在本地或 Kubernetes 集群中部署、运行并管理 MCP 服务器，同时设置安全防护措施。\n\n- 通过 Kubernetes 将 MCP 服务器部署到云端，实现企业级扩展\n- 使用 Docker 或 Podman 在本地运行 MCP 服务器\n- 安全代理远程 MCP 服务器，实现统一管理\n- 使用 Kubernetes Operator 进行集群和资源管理\n- 利用 OpenTelemetry 和 Prometheus 进行监控和审计日志记录\n\n### 💻 门户\n\n简化整个企业范围内开发者和知识工作者对 MCP 的采用。\n\n- 跨平台的 [桌面应用](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-studio) 和基于浏览器的 [云 UI](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-cloud-ui)\n- 方便管理员策划 MCP 服务器和工具\n- 自动发现服务器\n- 一键安装 MCP 服务器\n- 兼容数百种 AI 客户端\n\n### 工作原理\n\n1. **管理员**在 **注册服务器** 中策划和组织 MCP 服务器，并配置访问权限和策略。\n2. **用户**从 **门户** 中发现并请求 MCP 服务器，ToolHive 会协调安装和访问。\n3. **运行时** 在本地和云端环境中安全地部署和管理 MCP 服务器，与现有的 SDLC 工作流无缝集成，导出分析数据，并实施细粒度的访问控制。\n4. **网关** 处理所有入站流量，保护上下文和凭据，优化工具选择，并应用组织策略。\n\n---\n\n## 灵活的部署方式\n\n### 桌面体验\n\n个人开发者可以在几分钟内通过桌面 UI 或 CLI 开始使用，随后可将相同的概念应用于企业环境。\n\n**关键特性：**\n\n- 可以从容器镜像运行任何 MCP 服务器，也可通过常见的包管理器动态构建\n- 使用简单的本地工具管理加密的机密信息并控制网络隔离\n- 使用内置工具（如官方 MCP 检查器）测试和验证 MCP 服务器\n- 使用 MCP 优化器优化令牌使用和工具执行\n\n**通过 UI 入门：** [快速入门](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-ui\u002Fquickstart)、[操作指南](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-ui\u002F)  \n**通过 CLI 入门：** [快速入门](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-cli\u002Fquickstart)、[操作指南](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-cli\u002F)、[命令参考](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Freference\u002Fcli\u002Fthv)\n\n[**MCP 指南**](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-mcp)：了解如何使用 ToolHive 运行常见的 MCP 服务器\n\n### Kubernetes 运算符\n\n团队和组织使用熟悉的 Kubernetes 工作流集中管理 MCP 服务器和注册表。\n\n**关键特性：**\n\n- 针对 MCP 服务器、注册表及其他 ToolHive 组件的自定义资源定义\n- 基于容器的隔离与多命名空间支持，实现安全执行\n- 自动化服务创建与发现，并集成入口网关以提供安全访问\n- 企业级安全与可观测性：OIDC\u002FOAuth 单点登录、安全令牌交换、审计日志、OpenTelemetry 和 Prometheus 指标\n- 混合注册表服务器：可从上游注册表中精选内容、动态注册本地 MCP 服务器，或代理受信任的远程服务\n\n**开始使用：** [快速入门](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-k8s\u002Fquickstart)、[操作指南](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Fguides-k8s\u002F)、[CRD 参考](https:\u002F\u002Fdocs.stacklok.com\u002Ftoolhive\u002Freference\u002Fcrd-spec)、[示例清单](.\u002Fexamples\u002Foperator\u002F)\n\n### 混合模式\n\nToolHive 为团队和企业提供完整的解决方案，支持在所有环境中运行 MCP 服务器：开发者机器上、您的 Kubernetes 集群内，或由受信任的 SaaS 提供商外部托管。\n\n终端用户可通过安全的基于浏览器的云 UI 访问经批准的 MCP 服务器。开发者还可以使用 ToolHive CLI 或桌面 UI 进行高级集成与测试工作流。\n\n企业团队还可利用 ToolHive 将 MCP 服务器集成到自定义内部工具、代理式工作流或基于聊天的界面中，同时使用相同的运行时和访问控制机制。\n\n\u003Cpicture>\n  \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs\u002Fimages\u002Ftoolhive-platform-dark.svg\">\n  \u003Cimg src=\"docs\u002Fimages\u002Ftoolhive-platform-light.svg\" alt=\"ToolHive 平台示意图\" width=\"800\" style=\"padding: 20px 0\" \u002F>\n\u003C\u002Fpicture>\n\n---\n\n## 贡献\n\n我们欢迎社区的贡献和反馈！\n\n- 🐛 [报告问题](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fissues)\n- 💬 [加入我们的 Discord](https:\u002F\u002Fdiscord.gg\u002Fstacklok)\n\n如果您有想法、建议，或希望参与其中，请查看我们的贡献指南或提交一个问题。让我们一起让 ToolHive 更加完善！\n\n\u003Ctable>\u003Ctr>\u003Ctd>\n\n为 CLI、API 和 Kubernetes 运算符（本仓库）做出贡献：\n\n- 🤝 [贡献指南](.\u002FCONTRIBUTING.md)\n- 📖 [开发者指南](.\u002Fdocs\u002FREADME.md)\n- 📐 [架构文档](.\u002Fdocs\u002Farch\u002FREADME.md)\n\n为 UI、注册表和文档做出贡献：\n\n- 💻 [桌面 UI 仓库](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-studio)\n- ☁️ [云 UI 仓库](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-cloud-ui)\n- 📦 [ToolHive 注册表服务器仓库](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-registry-server)\n- 🛠️ [ToolHive 内置注册表](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive-catalog)\n- 📚 [文档仓库](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Fdocs-website)\n\n\u003C\u002Ftd>\n\u003Ctd>\n\n\u003Cpicture>\n  \u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fstacklok_toolhive_readme_ee97b15aa880.png\" alt=\"ToolHive 吉祥物\" width=\"250\" align=\"middle\"\u002F>\n\u003C\u002Fpicture>\n\n\u003C\u002Ftd>\u003C\u002Ftr>\u003C\u002Ftable>\n\n---\n\n## 许可证\n\n本项目采用 [Apache 2.0 许可证](.\u002FLICENSE)。\n\n\u003C!-- 徽章链接 -->\n\u003C!-- prettier-ignore-start -->\n[release-img]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fstacklok\u002Ftoolhive?style=flat&label=最新版本\n[release]: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Freleases\u002Flatest\n[ci-img]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fstacklok\u002Ftoolhive\u002Frun-on-main.yml?style=flat&logo=github&label=构建\n[ci]: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Factions\u002Fworkflows\u002Frun-on-main.yml\n[coveralls-img]: https:\u002F\u002Fcoveralls.io\u002Frepos\u002Fgithub\u002Fstacklok\u002Ftoolhive\u002Fbadge.svg?branch=main\n[coveralls]: https:\u002F\u002Fcoveralls.io\u002Fgithub\u002Fstacklok\u002Ftoolhive?branch=main\n[license-img]: https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F许可证-Apache2.0-blue.svg?style=flat\n[license]: https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0\n[stars-img]: https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fstacklok\u002Ftoolhive.svg?style=flat&logo=github&label=星标\n[stars]: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\n[discord-img]: https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1184987096302239844?style=flat&logo=discord&logoColor=white&label=Discord\n[discord]: https:\u002F\u002Fdiscord.gg\u002Fstacklok\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- markdownlint-disable-file first-line-heading no-inline-html no-emphasis-as-heading -->","# ToolHive 快速上手指南\n\nToolHive 是一个用于简化和安全化模型上下文协议（MCP）服务器管理的开源工具。它支持通过 Docker、Kubernetes 或本地桌面应用快速部署 MCP 服务器，并提供安全的隔离环境、密钥管理及客户端集成能力。\n\n## 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**：Linux、macOS 或 Windows（推荐使用 WSL2）。\n*   **容器运行时**：已安装并运行 **Docker** 或 **Podman**。\n    *   确保当前用户有权限执行 docker 命令（通常需加入 `docker` 用户组）。\n*   **Kubernetes（可选）**：若需在集群中部署，需拥有访问权限的 K8s 集群及 `kubectl` 工具。\n*   **客户端工具（可选）**：如 VS Code、Cursor 或 GitHub Copilot，用于连接 MCP 服务。\n\n> **注意**：目前官方未提供特定的中国镜像源加速方案。如遇网络问题，建议配置通用的 Docker 镜像加速器或代理。\n\n## 安装步骤\n\nToolHive 提供多种安装方式，最推荐使用的是 **CLI（命令行工具）** 或 **桌面应用**。\n\n### 方式一：安装 CLI（推荐）\n\n使用以下命令一键安装最新版本的 ToolHive CLI：\n\n```bash\ncurl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002Fstacklok\u002Ftoolhive\u002Fmain\u002Finstall.sh | sh\n```\n\n安装完成后，验证版本：\n\n```bash\nthv --version\n```\n\n### 方式二：使用桌面应用\n\n1.  访问 [Stacklok 下载页面](https:\u002F\u002Fstacklok.com\u002Fdownload\u002F) 或 [GitHub Releases](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Freleases)。\n2.  根据您的操作系统下载对应的安装包（.dmg, .exe, 或 AppImage）。\n3.  安装并启动 **ToolHive Studio**。\n\n### 方式三：Kubernetes Operator（生产环境）\n\n若需在 K8s 集群中部署，请使用 Helm 或 manifests 安装：\n\n```bash\nkubectl apply -f https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Freleases\u002Flatest\u002Fdownload\u002Ftoolhive-operator.yaml\n```\n\n## 基本使用\n\n以下示例展示如何使用 CLI 快速启动一个 MCP 服务器并将其连接到本地客户端。\n\n### 1. 运行 MCP 服务器\n\n使用 `thv run` 命令即可从容器镜像启动任意 MCP 服务器。以下以启动一个文件系统 MCP 服务器为例：\n\n```bash\nthv run filesystem --name my-fs-server -v $(pwd):\u002Fdata:ro\n```\n\n*   `filesystem`: MCP 服务器名称（ToolHive 会自动拉取对应镜像）。\n*   `--name`: 指定服务器实例名称。\n*   `-v`: 挂载本地目录到容器中（只读模式），供 MCP 访问。\n\n### 2. 查看运行状态\n\n检查正在运行的 MCP 服务器列表：\n\n```bash\nthv list\n```\n\n### 3. 连接到 AI 客户端\n\nToolHive 会自动配置连接信息。您可以直接将生成的配置添加到您的 AI 编辑器（如 Cursor 或 VS Code）中。\n\n获取连接配置命令：\n\n```bash\nthv proxy my-fs-server\n```\n\n或者在桌面应用中，点击服务器旁边的 **\"Connect\"** 按钮，ToolHive 会自动检测并配置支持的客户端（如 Claude Desktop, Cursor 等）。\n\n### 4. 停止服务器\n\n完成任务后，停止并清理容器：\n\n```bash\nthv stop my-fs-server\n```\n\n---\n\n**下一步**：\n*   探索更多预置的 MCP 服务器：`thv registry list`\n*   查看完整命令参考：`thv --help`\n*   访问官方文档获取更多高级配置指南。","某金融科技公司的大模型团队正试图将内部开发的“合规审查”和“实时风控”两个 MCP 服务器集成到开发者的 Cursor 和 VS Code 环境中，以辅助代码审计。\n\n### 没有 toolhive 时\n- **部署繁琐且不一致**：每位开发者需手动配置 Docker 容器、网络端口及环境变量，本地环境差异导致“在我机器上能跑”的频发问题。\n- **安全隐患突出**：敏感的客户数据凭证（Secrets）常以明文形式硬编码在配置文件或脚本中，缺乏统一的权限隔离机制。\n- **集成成本高昂**：每次新增工具都需要逐个修改客户端配置，无法自动对接 GitHub Copilot 或 Claude Desktop，调试耗时费力。\n- **治理缺失**：缺乏中央目录来验证工具来源，团队成员可能误用未经安全审核的第三方 MCP 服务。\n\n### 使用 toolhive 后\n- **一键即时部署**：开发人员只需通过 CLI 或桌面端点击一下，toolhive 即可在隔离容器中自动拉起经过预审的 MCP 服务器，屏蔽底层基础设施差异。\n- **默认安全加固**：toolhive 强制每个服务器运行在最小权限的沙箱中，并通过加密方式统一管理密钥，彻底杜绝明文泄露风险。\n- **无缝客户端对接**：toolhive 自动完成与 Cursor、VS Code 等主流编辑器的配置对接，开发者无需关心后端细节，打开编辑器即可调用新工具。\n- **集中化治理**：利用 Registry Server 构建受信任的工具目录，确保团队仅能发现和部署经过来源验证的合规服务。\n\ntoolhive 将原本需要数小时的安全部署与集成工作缩短至分钟级，让企业能在零信任架构下高效释放大模型的工具调用能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fstacklok_toolhive_ee97b15a.png","stacklok","Stacklok","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fstacklok_f99bb659.png","Open Source AI Innovation, Grounded in Trust.",null,"hello@stacklok.com","StackLokHQ","https:\u002F\u002Fstacklok.com","https:\u002F\u002Fgithub.com\u002Fstacklok",[82,86,89,92,95,99],{"name":83,"color":84,"percentage":85},"Go","#00ADD8",99.7,{"name":87,"color":84,"percentage":88},"Go Template",0.1,{"name":90,"color":91,"percentage":88},"Shell","#89e051",{"name":93,"color":94,"percentage":88},"Python","#3572A5",{"name":96,"color":97,"percentage":98},"Batchfile","#C1F12E",0,{"name":100,"color":101,"percentage":98},"Dockerfile","#384d54",1709,208,"2026-04-10T23:13:31","Apache-2.0","Linux, macOS, Windows","未说明",{"notes":109,"python":107,"dependencies":110},"ToolHive 是一个用于管理和运行 MCP（Model Context Protocol）服务器的平台，支持桌面应用、CLI 和 Kubernetes Operator 多种部署方式。核心运行依赖容器运行时（Docker 或 Podman）或 Kubernetes 集群，而非传统的 Python 深度学习库。它通过隔离容器运行 MCP 服务器以保障安全，并支持集成 GitHub Copilot、Cursor、VS Code 等客户端。具体系统资源需求取决于所运行的具体 MCP 服务器类型。",[111,112,113],"Docker","Podman","Kubernetes",[15,14,13],[116,117,118,119,120,121,122,123,124,125,126],"ai","aicodeassistant","mcp","ai-security","mcp-security","mcp-servers","mcp-tools","security","golang","kubernetes","model-context-protocol","2026-03-27T02:49:30.150509","2026-04-11T15:12:02.894244",[130,135,140,145,150,155],{"id":131,"question_zh":132,"answer_zh":133,"source_url":134},29521,"在 EKS 集群上使用 ToolHive Operator 启动 MKP Server 时遇到 'target port not set for HTTP transport' 错误怎么办？","该问题通常与传输配置或版本兼容性有关。建议检查以下事项：\n1. 参考官方示例配置，确保包含了必要的 `nodeselector` 和 `toleration` 设置（见 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Ftree\u002Fmain\u002Fexamples\u002Foperator\u002Fmcp-servers）。\n2. 确认 MCP Server 本身支持的传输协议（如 SSE 或 stdio），某些服务器可能不支持 Streamable-HTTP。\n3. 如果使用的是较旧版本（如 v0.1.0），请尝试升级到最新版本，因为近期发布已修复了目标端口未找到的相关问题并增加了对 StreamableHTTP 的支持。\n4. 若问题依旧，请为具体错误单独提交一个新的 Issue 以便追踪。","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fissues\u002F902",{"id":136,"question_zh":137,"answer_zh":138,"source_url":139},29522,"如何在 OpenShift 上部署 ToolHive Operator 及相关的 MCP Servers？","在 OpenShift 上部署时，主要问题是默认的 MCP Server 部署中硬编码了用户 ID 和组 ID 为 1000，这在 OpenShift 的安全上下文约束（SCC）下通常不被允许。\n解决方案：\n1. 需要修改 Helm Chart 或部署清单，移除或动态调整 `securityContext` 中的 `runAsUser` 和 `runAsGroup` 设置，以适配 OpenShift 的动态用户分配机制。\n2. 关注相关 PR（如 #1253）及提交记录（如 ed017de），其中包含了针对此问题的修复代码和配置调整示例。\n3. 确保使用的 Helm Chart 版本（如 0.2.6+）和 Operator 版本（如 0.2.8+）已包含上述修复。","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fissues\u002F1063",{"id":141,"question_zh":142,"answer_zh":143,"source_url":144},29523,"未配置探针（probes）却收到 'Health check failed' 错误，且 Pod 不断重启，如何排查？","即使未显式配置探针，ToolHive 代理（proxy-runner）也会尝试对 MCP Server 进行健康检查。如果失败，会导致代理关闭并触发 Pod 重启。\n排查步骤：\n1. 检查 MCP Server 容器本身的日志，而不仅仅是代理容器的日志。代理日志显示“等待状态集就绪”并不代表 Server 内部已成功启动。\n2. 确认 MCP Server 是否支持配置的传输协议（例如，某些服务器仅支持 SSE 或 stdio，不支持 Streamable-HTTP）。\n3. 尝试显式指定 `transport=sse` 并观察日志中是否有具体的启动错误（如缺少配置参数）。\n4. 注意日志中是否有类似 Pydantic 的弃用警告，虽然通常不致命，但可能暗示环境兼容性问题。","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fissues\u002F1125",{"id":146,"question_zh":147,"answer_zh":148,"source_url":149},29524,"明明在 MCPServer YAML 中定义了 targetPort，为什么仍报错 'target port not set for HTTP transport'？","此错误在早期版本（如 v0.1.1）中较为常见，通常由以下原因引起：\n1. **传输协议不匹配**：MCP Server 镜像内部实际运行的端口或协议与 YAML 中定义的 `transport` 类型不一致。例如，Server 可能只监听 stdio，但配置了 SSE。\n2. **版本缺陷**：该问题在后续版本中已通过修复目标端口查找逻辑和增加 StreamableHTTP 支持得到解决。\n解决方案：\n- 升级 ToolHive Operator 和相关 CRD 到最新版本。\n- 检查 MCP Server 容器内部的启动日志，确认其实际监听的端口（如日志显示 `Listening on port 8000`）是否与 `targetPort` 一致。\n- 如果使用的是自定义镜像，确保其入口点正确解析了传输参数。","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fissues\u002F924",{"id":151,"question_zh":152,"answer_zh":153,"source_url":154},29525,"更新 Helm Chart 和 CRD 后，出现 'invalid RunConfig: target port is required for transport type streamable-http' 错误如何解决？","这是因为在新版本（如 Helm Chart 0.3.2 和 CRD 0.0.47）中，对于 `streamable-http` 传输类型，强制要求显式指定 `targetPort`。\n解决方法：\n1. 编辑你的 `MCPServer` 资源定义（YAML 文件）。\n2. 在 `spec` 部分明确添加 `targetPort` 字段，并将其值设置为 MCP Server 容器实际监听的端口号（通常是 8080 或 8000，具体取决于镜像）。\n   ```yaml\n   spec:\n     transport: streamable-http\n     targetPort: 8080  # 确保此端口与容器内服务一致\n     # ... 其他配置\n   ```\n3. 重新应用配置。如果不确定端口号，请查阅该 MCP Server 镜像的文档或其启动日志。","https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fissues\u002F2450",{"id":156,"question_zh":157,"answer_zh":158,"source_url":144},29526,"如何判断 MCP Server 启动失败是由于配置缺失还是 ToolHive 本身的问题？","关键在于区分代理日志（proxy-runner logs）和服务器日志（MCP Server logs）：\n1. **查看代理日志**：通常会显示 `Waiting for statefulset to be ready` 或 `Health check failed`，这仅表明代理无法连接到服务器，不一定是服务器崩溃。\n2. **查看服务器日志**：直接获取 MCP Server 容器的日志（例如通过 `kubectl logs \u003Cpod-name> -c mcp`）。\n   - 如果服务器日志显示启动成功并监听某端口（如 `Listening on port 8000`），则可能是 ToolHive 的健康检查路径或端口配置错误。\n   - 如果服务器日志显示报错退出（如缺少环境变量、参数错误），则是配置缺失问题。\n3. **验证传输协议**：确认 YAML 中指定的 `transport`（sse, stdio, streamable-http）是否被该特定 MCP Server 镜像支持。",[160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255],{"id":161,"version":162,"summary_zh":163,"released_at":164},205981,"v0.18.0","\u003C!-- 发布触发者: jerm-dro -->\n\n## 变更内容\n* @jerm-dro 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4692 中添加了按用户划分的速率限制类型及限流器支持。\n* @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4673 中通过 httptrace 将 MCP 会话路由至原始后端 Pod。\n* @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4613 中修复了 vMCP BackendClient 中健康检查关闭时的身份验证失败问题。\n* @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4669 中为 ValidatingCache 添加了 LRU 容量，移除了哨兵模式，并增加了存储更新功能。\n* @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4730 中回滚了“为 ValidatingCache 添加 LRU 容量，移除哨兵模式，并增加存储更新”的更改。\n* @gkatz2 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4108 中使透明代理的健康检查参数可配置。\n* @aponcedeleonch 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4733 中在发生错误时返回注册表类型，以提供准确的用户提示信息。\n* @ChrisJBurns 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4705 中从 MCPRegistry CRD 中移除了已弃用的旧版类型字段。\n* @jerm-dro 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4723 中用跨代理路由测试替换了不稳定且易出错的代理重启测试。\n* 重构：根据 Go 的命名规范，将 McpPort 重命名为 MCPPort，由 @mvanhorn 完成，详见 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4589。\n* @aponcedeleonch 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4734 中将 CheckCreateServer 策略检查提前到镜像下载之前执行。\n* @gkatz2 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4454 中实现了透明代理中的 HTTP 重定向跟随功能。\n* @jerm-dro 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4718 中将按用户的身份信息注入速率限制中间件。\n* @stacklokbot 发布了 v0.18.0 版本，详情见 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4735。\n\n## 新贡献者\n* @mvanhorn 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4589 中完成了首次贡献。\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.17.0...v0.18.0","2026-04-10T16:30:00",{"id":166,"version":167,"summary_zh":168,"released_at":169},205982,"v0.17.0","# 🚀 ToolHive v0.17.0 发行说明\n\n**发布日期：** 2026年4月9日  \n**完整变更日志：** [v0.16.0...v0.17.0](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.16.0...v0.17.0)\n\n## 破坏性变更\n\n### CRD 阶段值标准化（`Running` → `Ready`）\n\n**所有工作负载 CRD 现在都使用 `Ready` 作为健康阶段值。** 之前，MCPServer、EmbeddingServer 和 MCPRegistry 报告 `Running`，而 MCPRemoteProxy、VirtualMCPServer 和 MCPGroup 则使用 `Ready`。这一不一致性现已解决。\n\n**迁移指南：**\n- 更新任何检查 `.status.phase == \"Running\"` 的脚本、监控告警或工具，改为检查 `\"Ready\"`。\n\n**PR：** [#4689](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4689)\n\n### MCPRegistry CRD v2 配置格式\n\n**MCPRegistry CRD 规范已重构，以与注册表服务器 v2 配置格式保持一致。** 之前的扁平化 `registries[]` 结构及其内联源配置已被独立的顶级 `sources[]` 和 `registries[]` 字段所取代。\n\n**迁移指南：**\n- 将 MCPRegistry 清单重写为使用 v2 的 `sources[]` \u002F `registries[]` 分离格式，而非扁平化的 `registries[]` 结构。\n- 基于 PVC 的注册表源已被完全移除。\n- 自动注入默认 Kubernetes 源的功能已被移除——您必须显式声明所有源，包括 Kubernetes 发现源。\n- 请参阅 `cmd\u002Fthv-operator\u002FREGISTRY.md` 和 `examples\u002Foperator\u002Fmcp-registries\u002F` 目录中的更新示例。\n- 提供了一个新的 `configYAML` 逃逸通道（见下文），作为对类型化字段的替代方案。\n\n**PR：** [#4653](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4653)\n\n### MCPRegistry 状态简化\n\n**MCPRegistryStatus 已被扁平化**，从三阶段模型（SyncStatus + APIStatus + DeriveOverallPhase）转变为标准的 Kubernetes 工作负载模式：`Phase` + `Ready` 条件 + `ReadyReplicas` + `URL`。\n\n**迁移指南：**\n- 如果您曾读取 `.status.syncStatus` 或 `.status.apiStatus`，请切换到 `.status.phase` 和 `.status.conditions`（类型为 `Ready`）。\n- `kubectl wait --for=condition=Ready` 现在可一致地用于 MCPRegistry，与 MCPServer 及其他工作负载保持一致。\n\n**PR：** [#4643](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4643)\n\n---\n\n## 弃用内容\n\n### MCPRegistry 类型化规范字段（请改用 `configYAML`）\n\n以下 MCPRegistry 规范字段已被**弃用**，并将在未来的版本中移除。用户应迁移到新的 `configYAML` 透传路径，该路径可让您完全控制注册表服务器的 `config.yaml`，而无需由 operator 解析或转换。\n\n| 弃用字段 | 替代方案 |\n|---|---|\n| `spec.sources[]` | 将源配置直接放入 `spec.configYAML` |\n| `spec.registries[]` | 将注册表视图配置直接放入 `spec.configYAML` |\n| `spec.databaseConfig` | 将数据库配置放入 `spec.configYAML`，并使用 `spec.pgpassSecretRef` 引用 pgpass 密钥 |\n| `spec.authConfig` | 将认证配置放入 `spec.config","2026-04-09T20:07:22",{"id":171,"version":172,"summary_zh":173,"released_at":174},205983,"v0.16.0","\u003C!-- 发布触发者：reyortiz3 -->\r\n# v0.16.0 - CRD API 稳定化、令牌桶限流、MCPServerEntry 以及 Redis 高可用会话改进\r\n\r\n本次发布继续推进 Operator API 的稳定化进程——在晋升至 v1beta1 之前，进一步强化 CRD 字段类型、合并语义及条件命名——同时首次引入限流功能和 MCPServerEntry，作为零基础设施的远程服务器引用。基于 Redis 的会话存储现支持跨 Pod 恢复，并在高可用部署中实现了过期一致性。在 CLI 方面，卷挂载路径现在会在调用时进行验证，代理日志流也已完全结构化为 JSON 格式。\r\n\r\n## **⚠️ 破坏性变更**\r\n\r\n请在升级前仔细阅读以下内容：\r\n\r\n- **`MCPOIDCConfig` 条件类型重命名** —— `MCPOIDCConfig` 上的状态条件类型已由 `Ready` 重命名为 `Valid`，以与其他三个配置 CRD 保持一致。`kubectl get` 的打印列标签也相应更新为 `Valid`。任何通过条件名称监控该状态的自动化流程、告警或脚本都需要进行更新。\r\n- **CRD 整数字段改为 `int32`** —— 之前被定义为 Go `int`（OpenAPI `int64`）的八个 CRD 字段，现已明确改为 `int32`。基于旧模式生成的强类型 Kubernetes 客户端必须重新生成。YAML 值不受影响。\r\n- **CRD 切片字段添加 `+listType` 注解** —— 所有 CRD 切片字段现在都带有 `x-kubernetes-list-type` 注解，从而启用正确的服务器端应用（SSA）合并语义。使用 SSA 的 GitOps 工具（如 Flux 和 Argo CD）将在准入阶段强制执行列表键的唯一性——包含重复键值的清单文件将被拒绝。\r\n- **Helm：`operator.env` 类型由 map 改为 list** —— 之前的 Helm 值 `operator.env` 被错误地默认设置为 `{}`。现在其类型已更改为 `[]`（`{name, value}` 对象列表）。使用 map 语法自定义该值的用户，在升级前需进行相应更新。\r\n- **代理启动日志现为结构化 JSON** —— 代理此前在启动时仅输出纯文本一行信息，现在则会输出与所有其他代理输出一致的结构化 JSON 日志条目。匹配旧版纯文本消息的日志解析器需要进行更新。\r\n\r\n\u003Cdetails>\r\n\u003Csummary>更多信息\u003C\u002Fsummary>\r\n\r\n### 1. `MCPOIDCConfig` 条件类型重命名：`Ready` → `Valid`\r\n\r\n**破坏性变更 —— Operator 用户**\r\n\r\n配置 CRD 的作用在于验证配置的正确性，而非运行就绪状态，因此 `Valid` 是语义上更为恰当的条件类型。`MCPOIDCConfig` 此前使用 `Ready`，这与其它 CRD 如 `MCPExternalAuthConfig`、`MCPTelemetryConfig` 和 `MCPToolConfig` 不一致，后三者已采用 `Valid`。此次不仅更新了条件类型，还同步修改了 `kubectl get` 的打印列标签。\r\n\r\n### 迁移\r\n\r\n请在您的 GitOps 配置、告警或脚本中搜索对 `MCPOIDCConfig` 上 `Ready` 条件的所有引用：\r\n\r\n```bash\r\ngrep -r '\"Ready\"' --include=\"*.yaml\" | grep -i oidc\r\n```\r\n\r\n将所有出现的 `Ready` 替换为 `Valid`，针对任何 `MCPOIDC","2026-04-08T17:53:23",{"id":176,"version":177,"summary_zh":178,"released_at":179},205984,"v0.15.0","# 🚀 **Toolhive v0.15.0 已上线！**\n\n本次发布对 OIDC\u002F身份验证配置、策略执行、机密管理以及可观测性进行了重大改进，同时也包含一些重要的破坏性变更和弃用内容，请在升级前予以关注。\n\n**⚠️ 破坏性变更**\n\n请在升级前仔细阅读以下内容：\n\n- **已移除的 CRD 字段** — 多个已弃用的字段已从 `MCPServer` 和 `MCPRemoteProxy` 中移除。使用 `spec.port`、`spec.targetPort`、内联 `spec.tools`、明文 `clientSecret` 或 `thvCABundlePath` 的清单将无法通过验证。有关字段逐项替换的详细信息，请参阅 [[迁移指南](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4467)](https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4467)。\n- **`referencingServers` → `referencingWorkloads`** — `MCPOIDCConfig`、`MCPToolConfig`、`MCPExternalAuthConfig` 和 `MCPTelemetryConfig` 资源的状态字段现为结构化的 `{kind, name}` 数组，而非简单的字符串列表。任何读取 `.status.referencingServers` 的脚本或工具都需要进行更新。\n- **扩展 Cedar 策略执行** — Cedar 现已覆盖优化器元工具（`find_tool`、`call_tool`）以及上游 IDP 的令牌声明。启用 Cedar 的部署应审查其策略集，因为此前未受检查的操作现在可能会被拒绝。\n\n\u003Cdetails>\n\u003Csummary> 更多信息 \u003C\u002Fsummary>\n\n## 1. 已移除的废弃 CRD 字段\n\n**破坏性变更 — 运维人员**\n\n`MCPServer` 和 `MCPRemoteProxy` CRD 中的六个已弃用字段已被移除。这些字段在 `v1alpha1` 版本中出于向后兼容性而保留，但现已删除，以消除 API 模糊性和安全风险（即 etcd\u002F审计日志中可见的明文 `clientSecret`）。\n\n现有清单若使用上述任一字段，在升级后将无法通过验证。请在升级前按照以下字段映射进行调整。\n\n### 迁移\n\n| 已移除字段 | 替代方案 | 资源 |\n|---|---|---|\n| `spec.port` | `spec.proxyPort` | MCPServer、MCPRemoteProxy |\n| `spec.targetPort` | `spec.mcpPort` | MCPServer |\n| `spec.tools`（内联 ToolsFilter） | `spec.toolConfigRef` → MCPToolConfig | MCPServer |\n| `spec.oidcConfig.inline.clientSecret` | `spec.oidcConfig.inline.clientSecretRef`（Secret 引用） | MCPServer、MCPRemoteProxy、VirtualMCPServer |\n| `spec.oidcConfig.inline.thvCABundlePath` | `spec.oidcConfig.inline.caBundleRef`（ConfigMap 引用） | MCPServer、MCPRemoteProxy、VirtualMCPServer |\n\n### 端口字段\n\n清单中直接重命名即可：\n\n```yaml\n# 之前\nspec:\n  port: 9090\n  targetPort: 3000\n\n# 之后\nspec:\n  proxyPort: 9090\n  mcpPort: 3000\n```\n\n### 工具过滤器\n\n创建一个独立的 MCPToolConfig 资源，并通过 `spec.toolConfigRef.name` 引用它。\n\n### 客户端秘密\n\n将明文值移至 Kubernetes Secret 中，并使用包含 `name` 和 `key` 字段的 `clientSecretRef`。\n\n### CA 证书路径\n\n将 CA 证书存储在 ConfigMap 中，并使用包含 `name` 和 `ke` 的 `caBundleRef.configMapRef`。","2026-04-03T16:33:16",{"id":181,"version":182,"summary_zh":183,"released_at":184},205985,"v0.14.1","\u003C!-- 发布触发者: amirejaz -->\n\n## 变更内容\n* @amirejaz 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4229 中添加了具有系统密钥隔离的范围和用户凭据提供者。\n* @gkatz2 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4326 中实现了对 OTel 跟踪和指标全局配置的尊重。\n* @gkatz2 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4428 中保留了令牌刷新请求中的作用域。\n* @gkatz2 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4426 中为过期会话返回 JSON-RPC 错误。\n* @gkatz2 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4431 中将 PID 0 视为已死亡，用于 Supervisor 活性检查。\n* @jhrozek 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4391 中添加了 upstream_inject 策略的 CRD 类型及转换器。\n* @stacklokbot 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4446 中发布了 v0.14.1 版本。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.14.0...v0.14.1","2026-03-30T15:07:47",{"id":186,"version":187,"summary_zh":188,"released_at":189},205986,"v0.14.0","\u003C!-- 发布触发者: JAORMX -->\n\n## 变更内容\n* @jhrozek 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4383 中将嵌入式认证服务器集成到 VirtualMCPServer 转换器及部署中。\n* @jhrozek 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4390 中实现了 upstream_inject 策略和 SubjectProviderName。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4415 中将 github\u002Fcodeql-action 的摘要更新至 c10b806。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4414 中将 codecov\u002Fcodecov-action 的摘要更新至 75cd116。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4412 中将 anthropics\u002Fclaude-code-action 的摘要更新至 88c168b。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4411 中将 anthropics\u002Fclaude-code-base-action 固定为 e8132bc 版本。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4417 中更新了 Kubernetes 依赖项。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4419 中将模块 golang.ngrok.com\u002Fngrok\u002Fv2 更新至 v2.1.2。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4418 中将模块 github.com\u002Fzalando\u002Fgo-keyring 更新至 v0.2.8。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4416 中更新了 aws-sdk-go-v2 单体仓库。\n* @jerm-dro 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4424 中改进了代码评审辅助技能，以提供更清晰的评审。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4420 中将 sigstore\u002Fcosign-installer 动作更新至 v4.1.1。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4421 中将 stacklok\u002Freleaseo 动作更新至 v0.0.4。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4422 中将模块 github.com\u002Fpelletier\u002Fgo-toml\u002Fv2 更新至 v2.3.0。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4423 中将模块 github.com\u002Fstacklok\u002Ftoolhive-catalog 更新至 v0.20260330.0。\n* @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4403 中实现会话创建时将后端特定的会话 ID 持久化到传输元数据中。\n* @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4430 中将 OCI 技能安装引用的默认标签设置为 :latest。\n* @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4439 中将模块 github.com\u002Fstacklok\u002Ftoolhive-core 更新至 v0.0.13。\n* @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4443 中取消隐藏技能 CLI 命令，并更新 toolhive-cli-user 技能。\n* fix(mcp): @peppescg 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4444 中禁用嵌入式 MCP 服务器处理程序中的交互式 OAuth。\n* @stacklokbot 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4445 中发布了 v0.14.0。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.13.1...v0.14.0","2026-03-30T12:53:06",{"id":191,"version":192,"summary_zh":193,"released_at":194},205987,"v0.13.1","\u003C!-- 发布触发者: jerm-dro -->\n\n## 变更内容\n* 由 @danbarr 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4397 中更新了 README 中的图表和链接。\n* 由 @danbarr 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4398 中为 PR 大小标签器工作流添加了编辑触发器。\n* 由 @reyortiz3 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4399 中修复了 macOS 符号链接测试失败问题，并升级了 phonenumbers 依赖。\n* 由 @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4387 中将 Redis 会话存储配置注入到 vMCP ConfigMap 中。\n* 由 @peppescg 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4393 中修复：使实验性 MCP 服务器初始化对 thv serve 不再是致命错误。\n* 由 @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4388 中添加了水平扩展操作符行为的测试。\n* 由 @gkatz2 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4401 中增加了对进程操作中无效 PID 的防护。\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4366 中实现：当身份验证关闭时，OAuth 发现接口返回 JSON 404 错误。\n* 由 @jerm-dro 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4396 中新增功能：为嵌入式认证服务器添加 authorizationEndpointBaseUrl 覆盖配置。\n* 由 @jhrozek 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4406 中支持基于路径的 RFC 8414 签发者发现 URL。\n* 由 @tgrunnagle 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4395 中默认阻止出口代理中的 Docker 网关地址。\n* 由 @stacklokbot 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4409 中发布了 v0.13.1 版本。\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.13.0...v0.13.1","2026-03-27T18:26:40",{"id":196,"version":197,"summary_zh":198,"released_at":199},205988,"v0.13.0","\u003C!-- 发布触发者：eleftherias -->\n\n## 变更内容\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4328 中处理 thv HTTP 服务器的关闭超时问题\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4334 中通过 vMCP 中继保持提示消息结构\n* 由 @gkatz2 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4325 中保护 PID 重置，防止被其他进程替换\n* 由 @aponcedeleonch 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4340 中向 pkg\u002Fconfig 添加 RegisterProviderFactory 扩展点\n* 由 @jhrozek 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4286 中添加 AuthServerConfigRef CRD 字段、配置模型以及 JwksAllowPrivateIP\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4333 中修复 CI 上不稳定的 TestWorkflowEngine_ParallelExecution 测试\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4332 中提升 CI 环境下端到端测试的可调试性\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4331 中增加生命周期端到端测试的超时时间并添加调试日志\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4344 中将会话管理端到端测试的超时时间延长至 3 分钟\n* 由 @jhrozek 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4348 中添加 RegisterHandlers，并在 vMCP mux 上连接嵌入式 AS 路由\n* 由 @jhrozek 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4322 中为 MCPServer、MCPRemoteProxy 和代理运行程序启用多上游功能\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4336 中通过 vMCP 中继保留内容级别的注解\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4335 中修复资源中继，使其能够保留文本与二进制对象的区别\n* 由 @jerm-dro 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4356 中为代码评审辅助技能添加会话规划和评论约束机制\n* 由 @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4347 中从 ScalingConfig 中移除 SessionCacheSize\n* 修复：当上游注册表不可用时，返回 503 错误而非 500 错误，由 @peppescg 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4352 中完成\n* 由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4329 中将模块 github.com\u002Fstacklok\u002Ftoolhive-catalog 更新至 v0.20260325.0\n* 由 @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4337 中将 TTL 刷新逻辑移至 LocalStorage.Load，并移除 Session.Touch() 方法\n* 修复 (CI)：在进行覆盖率测试前清除完整构建缓存，以避免 NumStmt 不匹配的问题，由 @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4362 中完成\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4345 中修复并发 SetSecret 调用时相互覆盖的问题\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4342 中将运行时配置存储注入到 WorkloadFromContainerInfo 中\n* 由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4338 中将 Git 解析器接入技能安装流程\n* 由 @saschabuehrle 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4313 中扩展启发式消息中的模板表达式\n* 由 @lorr1 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4304 中将运行时配置覆盖与默认值合并\n* 添加 upstream_inje","2026-03-26T15:24:53",{"id":201,"version":202,"summary_zh":203,"released_at":204},205989,"v0.12.5","\u003C!-- 发布触发者: aponcedeleonch -->\n\n## 变更内容\n* 修复 MCPRegistry operator，使其在 spec 发生变化时更新部署，由 @rdimitrov 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4237 中完成。\n* 将模块 github.com\u002Fstacklok\u002Ftoolhive-catalog 更新至 v0.20260319.0，由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4230 中完成。\n* 为 serve 模式配置非交互式注册表认证，由 @ChrisJBurns 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4111 中完成。\n* 修复发布工作流：支持 cosign-installer 升级及重新运行，由 @amirejaz 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4244 中完成。\n* 为注册表认证端点添加 Swagger 注解，由 @ChrisJBurns 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4243 中完成。\n* 移除孤立的注册表 API Helm 模板，由 @ChrisJBurns 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4246 中完成。\n* 使用 (sessionID, providerName) 对 authserver 的上游令牌存储进行加密，由 @jhrozek 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4198 中完成。\n* refactor(vmcp)：将优化器和复合工具装饰功能提取到会话工厂中，由 @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4231 中完成。\n* feat(session)：实现 Redis 存储后端（RC-6），由 @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4233 中完成。\n* 支持在聚合配置中覆盖工具注解，由 @jerm-dro 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4285 中完成。\n* 向 RunConfig 添加 BackendReplicas 和 SessionCacheSize 字段，由 @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4239 中完成。\n* 修复缓存令牌恢复时缺少资源参数的问题，由 @rodrigo1208 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4292 中完成。\n* 修复 inspector URL 对代理 stdio 服务器使用错误传输协议的问题，由 @danbarr 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4300 中完成。\n* Enterprise 快速链接，由 @aaortiz 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4303 中完成。\n* 为 OIDCConfigRef 和 AuthzConfigRef 联合类型添加 CEL 验证，由 @ChrisJBurns 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4299 中完成。\n* 将 actions\u002Fcache 的摘要更新至 6682284，由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4305 中完成。\n* 添加代码审查辅助技能，并扩展 vMCP 反模式，由 @jerm-dro 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4302 中完成。\n* chore：将漏洞扫描工具从 Trivy 迁移到 Grype，由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4288 中完成。\n* 添加基础 Webhook 包（动态 Webhook 中间件第一阶段），由 @Sanskarzz 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3840 中完成。\n* feat(proxyrunner)：实现对 SIGTERM 信号感知的优雅关闭（RC-14），由 @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4241 中完成。\n* 在安装过程中从注册表解析纯技能名称，由 @JAORMX 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4200 中完成。\n* 将 github\u002Fcodeql-action 的摘要更新至 3869755，由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4308 中完成。\n* feat(session)：添加 NewManagerWithRedis 构造函数（RC-7），由 @yrobla 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4236 中完成。\n* 将 codecov\u002Fcodecov-action 的摘要更新至 1af5884，由 @renovate[bot] 在 https:\u002F\u002Fgithub.com\u002Fstacklok\u002F 中完成。","2026-03-24T09:26:55",{"id":206,"version":207,"summary_zh":208,"released_at":209},205990,"v0.12.4","## 更改记录\n* 81f9d84a2f07bc277eca92e0ae03f423ab54c71f：在 GetAdaptedTools 中保留工具注释和输出模式 (#4238) (@JAORMX)\n* 3ae086f7ff7266e7f91667b3bbd5949ee2dffa1c：发布 v0.12.4 (#4240) (@stacklokbot)\n\n","2026-03-19T17:35:06",{"id":211,"version":212,"summary_zh":213,"released_at":214},205991,"v0.12.3","\u003C!-- Release-Triggered-By: aponcedeleonch -->\n\n## What's Changed\n* Switch to upstream MCP registry format and add skills provider methods by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4171\n* Remove non-spec progress\u002Fupdate method from MCP parser by @majiayu000 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4188\n* Add E2E tests for skills overwrite protection and CLI by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4010\n* Update github.com\u002Ftailscale\u002Fhujson digest to ecc657c by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4175\n* Update kubernetes dependencies by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4183\n* fix(vmcp): exempt SSE connections from WriteTimeout to prevent drops by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4167\n* Default skills to the \"default\" group on install by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4201\n* feat(vmcp): add support for ResourceLink content type by @Sanskarzz in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4023\n* Validate RuntimeConfig fields at all entry points by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4196\n* Add vMCP anti-pattern review skill by @jerm-dro in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4172\n* test(vmcp): remove redundant write timeout integration test by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4197\n* Bring composite tools into session abstraction by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4165\n* Bump google.golang.org\u002Fgrpc from 1.79.1 to 1.79.3 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4223\n* Update module github.com\u002Fgoogle\u002Fgo-containerregistry to v0.21.3 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4232\n* Release v0.12.3 by @stacklokbot in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4234\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.12.2...v0.12.3","2026-03-19T14:19:04",{"id":216,"version":217,"summary_zh":218,"released_at":219},205992,"v0.12.2","\u003C!-- Release-Triggered-By: amirejaz -->\n\n## What's Changed\n* Update module github.com\u002Fstacklok\u002Ftoolhive-catalog to v0.20260313.0 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4130\n* Remove NewManagerWithRegistry in favor of NewManager by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4132\n* Add swagger dependency parsing for external types by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4125\n* Add registry login & logout CLI commands by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4121\n* Pin dependencies by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4148\n* Update actions\u002Fsetup-go digest to 4b73464 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4155\n* Update module golang.org\u002Fx\u002Foauth2 to v0.36.0 - autoclosed by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4162\n* Update module github.com\u002Fgo-git\u002Fgo-git\u002Fv5 to v5.17.0 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4160\n* Update security scanning and signing actions by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4163\n* Update ghcr.io\u002Fstacklok\u002Fthv-registry-api Docker tag to v0.6.3 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3811\n* Update module github.com\u002Folekukonko\u002Ftablewriter to v1.1.4 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4159\n* Update anthropics\u002Fclaude-code-action digest to cd77b50 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4156\n* Update module toolhive-catalog to v0.20260316.0 by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4164\n* Remove session v1 and SessionManagementV2 feature flag by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4128\n* Update module golang.org\u002Fx\u002Fcrypto to v0.49.0 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4161\n* Update golang.org\u002Fx\u002Fexp\u002Fjsonrpc2 digest to 7ab1446 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4158\n* Preserve query params in remote MCP server URLs by @theJC in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4154\n* fix(vmcp): \u002Fstatus uses live health monitor state by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4135\n* Add notifications\u002Felicitation\u002Fcomplete to MCP parser by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4157\n* Update ghcr.io\u002Fmodelcontextprotocol\u002Finspector Docker tag to v0.21.1 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3663\n* Add integration tests for upstream token refresh by @jhrozek in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4133\n* Bump toolhive-core to v0.0.12 and fix fragile test assertions by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4166\n* MCPRemoteProxy: Add remaining configuration validations by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4037\n* Ignore GO-2026-4514 in govulncheck to unblock CI by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4181\n* Update ghcr.io\u002Fstacklok\u002Fthv-registry-api Docker tag to v0.6.4 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4182\n* Update dependency golang to v1.26.1 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4179\n* Consolidate and streamline Claude Code configuration by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4189\n* Update module github.com\u002Fshirou\u002Fgopsutil\u002Fv4 to v4.26.2 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4187\n* Update anchore\u002Fsbom-action action to v0.23.1 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4185\n* Update module github.com\u002Falicebob\u002Fminiredis\u002Fv2 to v2.37.0 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4186\n* Update dependency helm\u002Fhelm to v3.20.1 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4180\n* Update module github.com\u002Fstacklok\u002Ftoolhive-catalog to v0.20260317.0 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4176\n* Update module modernc.org\u002Fsqlite to v1.46.2 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4184\n* Update github\u002Fcodeql-action digest to b1bff81 - autoclosed by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4177\n* Add Skills API client for registry extension by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4173\n* Add permissionMode to code-writing agents by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4174\n* Update aws-sdk-go-v2 monorepo by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4178\n* Set AuthStyle to InParams for public PKCE OAuth clients by @gkatz2 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4150\n* Release v0.12.2 by @stacklokbot in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4193\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.12.1...v0.12.2","2026-03-17T12:50:17",{"id":221,"version":222,"summary_zh":223,"released_at":224},205993,"v0.12.1","\u003C!-- Release-Triggered-By: JAORMX -->\n\n## What's Changed\n* Inject tool annotations into context during list filtering by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4129\n* Release v0.12.1 by @stacklokbot in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4131\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.12.0...v0.12.1","2026-03-13T11:52:59",{"id":226,"version":227,"summary_zh":228,"released_at":229},205994,"v0.12.0","\u003C!-- Release-Triggered-By: JAORMX -->\n\n## What's Changed\n* Add TLS support for Redis connections by @aron-muon in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4068\n* Remove discovery cache to fix flaky vMCP tests by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4110\n* Make the token refresh code reusable for vMCP and testable by @jhrozek in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4117\n* Update module github.com\u002Fstacklok\u002Ftoolhive-catalog to v0.20260306.0 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3943\n* fix(vmcp): apply outgoing auth credentials during health checks (#4101) by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4118\n* Enable session management v2 by default by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4091\n* Release v0.12.0 by @stacklokbot in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4127\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.11.3...v0.12.0","2026-03-13T10:02:29",{"id":231,"version":232,"summary_zh":233,"released_at":234},205995,"v0.11.3","\u003C!-- Release-Triggered-By: aponcedeleonch -->\n\n## What's Changed\n* Add multi-backend optimizer acceptance test by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4049\n* Add optimizer+circuit breaker acceptance test for vMCP by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4052\n* Return RFC 6750 compliant JSON error responses from auth middleware by @amirejaz in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4057\n* Add remaining Claude Code subagent definitions by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4060\n* changes from review by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4028\n* Automate HMAC secret management by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4008\n* Fix CI build failures on main by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4071\n* Fix SSE\u002FJSON race condition in session capability injection by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4075\n* Add optimizer composite tool E2E test with fake embedding server by @jerm-dro in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4059\n* Strengthen session hijacking prevention types and tests by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4067\n* fix: refresh upstream tokens transparently instead of forcing re-auth by @aron-muon in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4036\n* Rebalance E2E test CI matrix from 4 to 8 buckets by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4074\n* Fix SSE endpoint rewrite E2E tests using nonexistent flags by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4080\n* Use go-containerregistry for OCI tag validation by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4017\n* Handle mid-session backend crashes gracefully by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4053\n* Fix validateOCITag to accept full OCI references by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4088\n* Elevate session management V2 tests to e2e by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4069\n* Remove @eleftherias from codeowners by @eleftherias in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4089\n* Fix deterministic E2E proxy SSE endpoint rewrite tests by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4093\n* Preserve tool annotations and output schema through vmcp by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4090\n* Hide already registered clients in `thv client setup` by @carlos-gn in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3889\n* Add distributable skills directory and CI pipeline by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4070\n* Fix Content-Length mismatch in authz response filter with remote proxies by @jhrozek in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4092\n* Add gitresolver package for git:\u002F\u002F skill references by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4051\n* Fix flaky TestMemoryStorage_CleanupLoop timing test by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4098\n* Speed up CI unit tests by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4081\n* Update MCP protocol expert agent for 2025-11-25 spec by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4099\n* Fix flaky api-workloads E2E test timeout by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4106\n* Fix flaky E2E lifecycle tests: tool discovery race by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4107\n* Add tool annotation context for Cedar\u002FHTTP authz by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4102\n* Speed up CI and fix flaky E2E tests by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4104\n* Remove unused per-session channels from StreamableSession by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4076\n* Add OAuth\u002FOIDC authentication for remote MCP server registries by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3908\n* Re-panic http.ErrAbortHandler in recovery middleware by @gkatz2 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4065\n* Fix Session Leak in Transparent Proxy by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4079\n* Make proxy response timeout configurable by @gkatz2 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4063\n* Clean up client filtering after PR #3889 by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4095\n* Bump Kubernetes e2e test tool versions and add Renovate managers by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4105\n* Add ClusterIP service with SessionAffinity for MCP server backend by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3992\n* Address review feedback for MCP backend session affinity by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4116\n* Add annotation cache for tools\u002Flist to tools\u002Fcall flow by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4114\n* Split vmcp auth\u002Fauthz middleware for annotation flow by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4115\n* Release v0.11.3 by @stacklokbot in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4119\n\n\n**Full Changel","2026-03-12T14:21:44",{"id":236,"version":237,"summary_zh":238,"released_at":239},205996,"v0.11.2","\u003C!-- Release-Triggered-By: aponcedeleonch -->\n\n## What's Changed\n* Clean up stale release branch before Create Release PR retry by @amirejaz in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4035\n* Enrich optimizer tool descriptions for better LLM usage by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4031\n* fix: oauth issues and add tokenResponseMapping for non-standard providers by @aron-muon in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4009\n* Auto-chunk TEI embedding requests to respect server batch size limit by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4029\n* Harden CI workflows against prompt injection and supply chain attacks by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4034\n* Bump Go to 1.26.0 by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4040\n* Rename optimizer examples for clarity by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4038\n* Support proxy_port from registry for remote servers by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4039\n* Move shared git package from operator to pkg\u002Fgit by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4045\n* Fix resource leak in session storage cleanup by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4014\n* Release v0.11.2 by @stacklokbot in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4058\n\n## New Contributors\n* @aron-muon made their first contribution in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4009\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.11.1...v0.11.2","2026-03-09T18:25:40",{"id":241,"version":242,"summary_zh":243,"released_at":244},205997,"v0.11.1","\u003C!-- Release-Triggered-By: amirejaz -->\n\n## What's Changed\n* Add E2E tests for Skills API endpoints by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3997\n* Add atomic writes and file locking for secrets file by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3998\n* Integrate skills with groups system by @reyortiz3 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3980\n* Add group support to skills API by @reyortiz3 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4000\n* Fix MCP server tests and remove macos-latest from unit test matrix by @reyortiz3 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4002\n* Add actionable logging when secrets file decryption fails by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3999\n* Fix ReferencingServers not set on config CR status by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4003\n* Increase file lock timeout to fix flaky CI test by @reyortiz3 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4004\n* Initialize controller-runtime logger in operator by @jhrozek in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3982\n* Use slog instead of zap in operator by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4007\n* pin Trivy version to avoid broken v0.69.1 install in CI by @amirejaz in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4020\n* Free port holder before spawning remote workload restart by @amirejaz in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4011\n* Document namespace consistency requirement for CRD chart by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4022\n* Remove invalid 'apply' RBAC verb from operator roles by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4001\n* MCPRemoteProxy: Surface validation errors via Events and Status Conditions by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4024\n* Optimizer nits: reduce event noise, improve docs, add advanced example by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4013\n* Implement HMAC-SHA256 token binding for session security by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3964\n* Replace external mcp-spec dependency in remote e2e tests with local mock by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4027\n* Fix infinite reconciliation caused by PodTemplateSpec JSON comparison by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4012\n* Replace ToolMatch with mcp.Tool in optimizer pipeline by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4016\n* Resolve locally-built artifacts during skill install by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4018\n* fix(deps): bump toolhive-core to v0.0.10 by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4025\n* Add PR template and Claude Code rule for PR creation by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4032\n* Release v0.11.1 by @stacklokbot in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F4033\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.11.0...v0.11.1","2026-03-06T13:08:07",{"id":246,"version":247,"summary_zh":248,"released_at":249},205998,"v0.11.0","\u003C!-- Release-Triggered-By: amirejaz -->\n\n## What's Changed\n* Prepare optimizer for production by refactoring and renaming by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3909\n* Handle embedded ResourceContents in vmcp bridge by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3953\n* Release proxy mutex before draining connections in Stop() by @gkatz2 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3970\n* Implement skills REST handlers with `project_root` by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3911\n* Add SessionManager behind sessionManagementV2 flag (Phase 2) by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3906\n* Fix proxy shutdown follow-ups from #3970 by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3972\n* Remove Score field from optimizer tool responses by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3971\n* Fix flaky TestRunConfigBuilder_WithRegistryProxyPort in CI by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3973\n* Refactor session timeouts and add V2 feature warnings by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3974\n* Add unit tests for MCPRegistryReconciler by @reyortiz3 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3968\n* Update golang.org\u002Fx\u002Fexp\u002Fjsonrpc2 digest to 3dfff04 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3890\n* Add debug logging to optimizer by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3976\n* Add Redis Sentinel storage documentation for auth server by @tgrunnagle in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3824\n* Add telemetry instrumentation for optimizer by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3978\n* Add Skills HTTP client implementing SkillService interface by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3977\n* Respect INSECURE_DISABLE_URL_VALIDATION in upstream auth HTTP client by @jhrozek in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3981\n* Implement skill list and info CLI commands with shared helpers by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3987\n* Fix flaky TestServer_HealthMonitoring_Enabled and related tests by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3990\n* Fix flaky MCPRemoteProxy integration test by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3993\n* Suppress update message if is trigger by desktop by @samuv in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3885\n* Surface reconciliation errors in MCPServer status by @jhrozek in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3983\n* Return 401 with WWW-Authenticate for expired upstream tokens by @jhrozek in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3984\n* Fix nil pointer panic in resolveTransportType for protocol scheme images by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3944\n* Fix remote workload restart port bind error when unauthenticated by @amirejaz in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3975\n* Enable sticky sessions on operator-created Services by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3986\n* Implement skill install and uninstall CLI commands by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3988\n* Make SessionAffinity configurable via CRD field by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3994\n* Release v0.11.0 by @stacklokbot in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3996\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.10.2...v0.11.0","2026-03-04T16:04:41",{"id":251,"version":252,"summary_zh":253,"released_at":254},205999,"v0.10.2","\u003C!-- Release-Triggered-By: ChrisJBurns -->\n\n## What's Changed\n* Fix GoReleaser CLI docs tarball upload path by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3966\n* Release v0.10.2 by @stacklokbot in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3967\n\n\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fcompare\u002Fv0.10.1...v0.10.2","2026-03-02T20:12:15",{"id":256,"version":257,"summary_zh":258,"released_at":259},206000,"v0.10.1","\u003C!-- Release-Triggered-By: aponcedeleonch -->\n\n## What's Changed\n* Migrate pkg\u002Fvmcp from logger shim to slog by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3883\n* Fix slog key names, remove secret logging, and clean up messages (follow up to 3864) by @jhrozek in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3887\n* Add EmbeddingServerRef to VirtualMCPServer for optimizer integration by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3839\n* Migrate cmd\u002F and test\u002Fe2e\u002F to slog, remove pkg\u002Flogger shim by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3888\n* Add per-skill concurrency protection to install\u002Funinstall by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3851\n* Implement OCI Build and Push for skill service by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3894\n* Relocate monitor and errors to runtime package by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3843\n* Add operator controller and runner integration for Redis storage by @tgrunnagle in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3823\n* Add real TEI embedding client for semantic tool discovery by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3844\n* Add Session and SessionFactory interfaces for vMCP (Phase 1) by @yrobla in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3882\n* Update .gitignore to include vmcp directory by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3904\n* Add configurable search parameters to optimizer by @aponcedeleonch in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3896\n* Rename toolhive-registry to toolhive-catalog by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3907\n* Add OCI pull-based install flow for skills by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3898\n* Add Flatpak install method to desktop CLI validation by @kantord in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3895\n* Update module github.com\u002Fmodelcontextprotocol\u002Fregistry to v1.4.1 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3755\n* Update module modernc.org\u002Fsqlite to v1.46.1 - autoclosed by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3857\n* Move permissions and registry packages from toolhive to toolhive-core by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3912\n* Update module github.com\u002Faws\u002Faws-sdk-go-v2\u002Fconfig to v1.32.9 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3856\n* Update helm\u002Fkind-action action to v1.14.0 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3849\n* Log when authz response filter skips on auth failure by @reyortiz3 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3921\n* Remove embedded registry.json in favour of toolhive-catalog Go package by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3926\n* Inject W3C Trace Context into vMCP backend HTTP requests by @ChrisJBurns in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3814\n* Remove \u002Fverifier in favour of one coming from toolhive-core by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3929\n* Resolve temp dir to real path in skills and installer unit tests by @reyortiz3 in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3928\n* Update aquasecurity\u002Ftrivy-action action to v0.34.1 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3927\n* Update module github.com\u002Fgoogle\u002Fgo-containerregistry to v0.21.0 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3910\n* Update anthropics\u002Fclaude-code-action digest to edd85d6 - autoclosed by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3903\n* Update goreleaser\u002Fgoreleaser-action action to v7 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3931\n* Update module github.com\u002Fpressly\u002Fgoose\u002Fv3 to v3.27.0 - autoclosed by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3934\n* Update module github.com\u002Fstacklok\u002Ftoolhive-catalog to v0.20260223.0 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3935\n* Update aws-sdk-go-v2 monorepo by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3938\n* Update anthropics\u002Fclaude-code-action digest to 35a9e02 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3941\n* Update module github.com\u002Fgoogle\u002Fgo-containerregistry to v0.21.1 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3947\n* Bump github.com\u002Fcloudflare\u002Fcircl from 1.6.1 to 1.6.3 by @dependabot[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3956\n* Make MCPServer controller hands-off on replicas by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3955\n* Fix flaky DAG executor timing and AcceptHeaderValidation tests by @JAORMX in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3954\n* Update module github.com\u002Fgo-git\u002Fgo-billy\u002Fv5 to v5.8.0 by @renovate[bot] in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3951\n* Improve Renovate dependency update configuration by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F3939\n* Reflect the changes in the verifier by @rdimitrov in https:\u002F\u002Fgithub.com\u002Fstacklok\u002Ftoolhive\u002Fpull\u002F39","2026-03-02T18:13:37"]