Agent-Lab MCP Server
使用说明(简要且易操作的步骤):
-
项目简介
- Agent-Lab 将 MCP 服务器能力嵌入到一个完整的后端平台中,面向 LLM 客户端提供资源读取、工具调用和提示模板获取等能力,通过基于 JSON-RPC 的 MCP 交互模式与客户端通信,并暴露了 HTTP 与 SSE 两种传输方式的接入点。
-
主要功能点
- MCP 服务器核心能力
- 注册与发现:通过 MCP 端点向客户端暴露可用的实体和接口(如代理人、对话历史、消息)。
- 资源与数据访问:提供对 agents、language models、integrations、attachments、messages 等资源的查询与操作入口。
- 工具执行:通过 MCP 端点支持 LLM 客户端调用外部功能(示例端点包含 get_agent_list、get_message_list、post_message 等操作)。
- Prompt 定义与渲染:集成多种系统提示模板,支持将提示模板渲染为前端/LLM 客户端可用的输入。
- 会话与权限管理:结合 Keycloak 中间件实现鉴权、基于配置的访问控制。
- 服务器端特性
- 多传输协议:HTTP、SSE 等传输模式,便于不同场景的客户端接入。
- 与现有微服务结构的集成:REST 风格的资源服务与 MCP 服务共同工作,提供完整的后端能力。
- 面向扩展的架构:通过依赖注入和工厂模式解耦资源、服务、工具的实现,便于扩展新的代理类型和工作流。
- MCP 服务器核心能力
-
安装步骤
- 安装依赖:在合适的虚拟环境中安装仓库所列依赖(如 FastAPI、dependency_injector、fastapi-mcp 等)。
- 配置与运行:根据需要调整环境变量与配置文件后,使用常用的 Python 服务器启动方式运行应用(如 uvicorn)。
- 测试与验证:通过 MCP 客户端侧的请求测试 MCP 接口是否按照 JSON-RPC 风格正确响应。
-
服务器配置(给 MCP 客户端的配置示例,说明性文本,不直接给出代码块)
- server_name(服务器名称,用于在客户端展示)
- command(启动命令,如用于启动应用的主命令)
- args(启动参数,例如 host、port、配置文件路径等)
- 说明:MCP 客户端通常不需要直接依赖此处的实现代码,只需通过该配置了解服务器的启动信息与对接参数。示例字段含义如下:
- server_name: Agent-Lab MCP Server
- command: uvicorn
- args: ["app.main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"] 注:以上仅为了解性配置字段示例,实际使用中请按环境部署方式准备并传递给客户端,MCP 客户端不需要直接执行此配置代码。
-
基本使用方法
- 客户端接入:使用 JSON-RPC 形式通过 MCP 服务器的暴露接口(如 get_agent_list、get_message_list、post_message)进行请求,服务器返回标准的 JSON-RPC 响应或通知。
- 资源管理:客户端可调用相应的 MCP 操作获取或操作资源(代理、语言模型、集成、消息等)。
- 安全与鉴权:若启用身份认证,将通过 Keycloak 等中间件验证请求并映射用户信息。
- 扩展性:若需新增工具、资源类型或提示模板,可在后端扩展相应的资源模型、服务层及 MCP 暴露接口,并通过依赖注入进行整合。