使用说明内容(Markdown格式)
项目简介
Fred 项目中实现了多组件级的 MCP 服务器能力,核心目标是给 LLM 客户端提供可托管的资源、可注册并执行的工具,以及可渲染的 Prompt/Template。这些 MCP 服务通过多种传输通道与客户端通信,具备会话管理、能力声明、以及对外暴露的工具集。仓库还提供了用于快速实验的最小 MCP 服务器示例,便于理解 MCP 的实际运作方式。
主要功能点
- MCP 服务端组件:将资源、工具、Prompts 等功能通过 MCP 服务器暴露给客户端,用于上下文管理与功能扩展。
- 多组件整合:知识流后端(knowledge-flow-backend)实现了完整的 MCP 服务端能力,能够通过 FastAPI+MCP 框架暴露 MCP 兼容的接口;同时提供 agentic 后端的 MCP 能力演示。
- 安全与鉴权:项目中包含 Keycloak/Token 相关的安全集成与开发模式(如开发环境下的“开发版”令牌,以便在无真实鉴权时仍保持客户端行为一致),以及对 OpenAI/Azure 等模型提供的凭据配置流程。
- 工具与资源管理:MCP 服务器支持资源、工具、以及 prompts 的注册、读取、更新和执行等能力,便于 LLM 调用外部功能。
- Prompts 与模板渲染:支持 Prompts/Templates 的元数据管理、前端 UI 的渲染,以及在 MCP 场景中的灵活使用。
- 示例与扩展:提供最小 MCP 服务器示例用于快速上手,以及在 Fred 体系内更完整的 MCP 服务端实现,便于扩展与生产化部署。
安装与运行步骤
- 环境准备
- 需要 Python 3.8+ 环境(以及部分服务对 Python 版本的要求,请结合具体子组件查看)。
- 安装依赖(各子项目有各自的依赖管理,通常在各自目录下的 README/脚本中给出步骤)。
- 运行完整 MCP 服务(知识流后端 MCP 服务)
- 启动知识流后端 MCP 服务:按照仓库提供的运行方式,通过 FastAPI+MCP 的组合暴露 MCP API。典型启动方式是通过 Web 服务启动脚本/命令(如 uvicorn)将知识流后端以工厂方式创建应用并暴露在端口上。
- 启动 Agentic 组件的后端服务以提供 Agent 对象与 MCP 服务器之间的交互能力(若需要)。
- 启动前请确保配置文件(如 config/configuration.yaml)中正确设置模型提供商、认证信息、以及 MCP 相关开关。
- 最小 MCP 服务器示例
- fred-academy/minimal-mcp-server 提供了一个可直接运行的最小 MCP 服务器示例,演示如何通过 mcp.server.FastMCP 构建工具并暴露 /mcp 传输。
- 运行示例(按照仓库中的注释指南进行):
- uvicorn fred-academy/minimal-mcp-server/minimal_mcp_server.server_mcp:app --host 127.0.0.1 --port 9797
- 你也可以使用 main.py 提供的兼容入口点启动简单服务器。
服务器配置(MCP 客户端需要的配置信息)
注意:MCP 客户端需要配置的具体信息通常在客户端侧进行,而非服务器端代码中强制存在。以下给出符合仓库实现的示例描述,便于理解配置要素;实际客户端的 JSON 配置请按下列要素组合,并放置到客户端侧的配置文件中使用。
{ "servers": [ { "name": "knowledge-flow-mcp", "command": "uvicorn", "args": [ "knowledge_flow_backend.main:create_app", "--reload", "--host", "0.0.0.0", "--port", "8000" ], "description": "Knowledge Flow MCP 服务端:暴露 Knowledge Flow 相关的 MCP 接口,供 LLM 客户端调用。", "transport": "streamable_http" // 注:仓库中不少 MCP 服务通过 HTTP 流式传输进行暴露 }, { "name": "postal-mcp-minimal", "command": "uvicorn", "args": [ "fred-academy.minimal_mcp_server.server_mcp:app", "--host", "0.0.0.0", "--port", "9797" ], "description": "最小 MCP 服务器示例,用于快速理解 MCP 的工作方式。", "transport": "http" } ] }
以上信息包含:
- server name: MCP 服务名称,便于客户端区分不同 MCP 服务
- command: 启动该服务所使用的主命令
- args: 启动命令的参数列表,确保客户端能正确连接并初始化服务
- 说明注释:简要描述该 MCP 服务的用途与暴露的能力
请注意:实际 MCP 客户端不需要直接读取服务器端的实现细节,只需要知道服务器名字、启动命令和必要参数即可与 MCP 服务建立连接并调用资源、工具、Prompts 等能力。
关键词
上下文服务, 资源管理, 工具执行, Prompts 模板, OpenAI 集成
分类ID
6
信息
分类
AI与计算