栖息地
这是一组协作组件,它们共同使本地和网络上的MCP服务器易于管理、开发、使用和迁移。
MCP栖息地:组件架构
概述
MCP Habitat为跨本地和云环境管理模型上下文协议(MCP)服务器提供了一个全面的架构。本文档概述了关键组件及其相互作用。
核心组件
1.MCP注册表
作为MCP服务器本身实现的中央发现服务。
- 目的:服务发现、身份验证和编排
- 实施:具有注册表特定扩展的MCP服务器
- 职责:
- 维护可用MCP服务器的注册表 - 处理服务发现请求 - 管理身份验证和授权 - 将客户端请求路由到适当的MCP服务器
2.MCP服务器架构(三层)
每个MCP服务器由三个不同的层组成:
2.1通用MCP核心
- 目的:处理MCP协议和会话管理
- 实施:所有MCP服务器使用的共享库
- 职责:
- 上下文窗口管理 - 会话状态跟踪 - 消息处理和路由 - 令牌计数和限制 - MCP协议实现
2.2元数据服务
- 目的:定义服务器功能和集成细节
- 实施:MCP服务器的配置层
- 职责:
- 定义可用命令和语法 - 提供服务模式 - 管理版本信息 - 办理注册登记 - 文档功能
2.3服务适配器
- 目的:连接到底层服务(Jira、GitHub等)
- 实施:独立微服务
- 职责:
- 与外部API的接口 - 在MCP协议和特定于服务的API之间进行转换 - 处理服务身份验证 - 管理数据转换 - 提供独立的API访问
3.人居CLI
用于管理整个生态系统的命令行界面。
- 目的:统一管理界面
- 实施:带有栖息地、注册表和服务器子命令的CLI工具
- 职责:
- 管理整个栖息地生命周期 - 配置和控制注册表 - 添加/删除/更新单个MCP服务器 - 监控系统健康状况 - 提供新服务
交互
注册流程
- MCP服务器启动
- 元数据服务连接到注册表
- 服务器对其功能进行身份验证和注册
- 注册表将服务器添加到可用服务中
- 注册表执行健康检查以确保可用性
发现流程
- 客户端使用MCP协议连接到注册表
- 客户端请求特定类型的可用服务
- 注册表对客户端进行身份验证并检查权限
- 注册表返回具有连接详细信息的匹配服务列表
- 客户端直接连接到相关的MCP服务器
服务交互流程
- 客户端与MCP服务器建立对话
- 客户端发送MCP格式的请求
- MCP核心管理对话上下文
- 服务适配器将请求转换为特定于服务的API调用
- 服务适配器返回MCP核心格式化为响应的数据
部署模型
地方发展
- 注册表和MCP服务器在本地Docker容器中运行
- 服务通过本地主机网络进行通信
- 存储在本地文件系统中的配置
混合部署
- 注册表在本地运行,一些服务在本地运行;另一些在云中运行
- 本地注册表维护与远程服务的连接
- 无论服务位置如何,都有一致的发现机制
云部署
- 部署到Kubernetes或类似平台的所有组件
- 注册表可横向扩展以实现高可用性
- 服务适配器根据负载独立扩展
- MCP服务器根据需要分布在不同地区
安全模型
身份验证层
- 客户端到注册表:使用API密钥或OAuth的初始身份验证
- 注册表到服务器:使用双向TLS或API密钥进行服务器验证
- 客户端到服务器:Registry提供的基于令牌的访问
- 服务器到服务:由Adapter处理的特定于服务的身份验证
授权模型
- 注册表维护访问控制策略
- 在服务级别管理权限
- 基于身份限制客户端功能
- 审核日志捕获所有身份验证和授权事件
