MCP服务器——基于代理的LLM平台的工具和数据网关
本文档描述了 MCP(模型上下文协议)服务器 与现有设备一起使用 基于FastAPI的代理编排系统.
MCP服务器充当 集中式、许可的工具和数据访问层 LLM代理。它规范了代理访问数据库、文件、知识库、web数据和外部API的方式,而无需在每个代理中嵌入工具逻辑。
______________________________________________________________________
目录
- 概述
- 为什么需要MCP服务器
- MCP服务器的职责
- MCP服务器不做什么
- 系统架构
- MCP如何与FastAPI通信
- Agent交互模型
- MCP暴露的工具类别
- 安全和权限模型
- 可观察性和审计
- 故障处理和安全限制
- 部署模型
- 扩展策略
- 总结
______________________________________________________________________
概述
随着系统的发展,包括:
- 许多代理人,
- 代理到代理异步调用,
- 移动和网络客户端,
- 多个数据源和API,
专注的 工具网关 变得必要。
MCP服务器通过提供 稳定合同 在代理人和外部世界之间。
______________________________________________________________________
为什么需要MCP服务器
没有MCP:
- 每个代理都实现了自己的数据库、文件和web逻辑
- 安全规则重复或不一致
- 工具使用情况难以审计
- 对工具的更改需要更改代理代码
使用MCP:
- 工具定义一次
- 访问受到集中控制
- 记录和跟踪是一致的
- 代理保持轻量级,专注于推理
MCP改善 集成可扩展性,而不是原始LLM吞吐量。
______________________________________________________________________
MCP服务器的职责
MCP服务器负责:
- 通过标准化协议公开工具
- 强制每个代理的权限和策略
- 应用安全限制和同种异体
- 审核所有工具的使用情况
- 为调试和合规性提供可观察性
______________________________________________________________________
MCP服务器不做什么
MCP服务器不会:
- 运行LLM推理
- 生成嵌入
- 协调代理
- 向最终用户公开API
- 管理后台摄取作业
这些责任仍由以下人员承担:
- FastAPI(编排,API层)
- Ollama/vLLM(推理)
- 芹菜(背景摄入)
______________________________________________________________________
系统架构
高水位流量:
客户端(网络/移动) → FastAPI API服务器 → 规划师代理 → 子代理(2-5异步) → MCP服务器(工具) → 数据库/文件/KB/Web/API
MCP服务器位于 旁边 LLM服务器,而不是在它们前面。
______________________________________________________________________
MCP如何与FastAPI通信
- FastAPI不代理MCP调用
- FastAPI生成代理并提供上下文
- 代理使用MCP协议直接与MCP通信
FastAPI提供:
- 认证
- 请求/会话标识符
- 代理角色信息
- 短期MCP访问令牌
______________________________________________________________________
Agent交互模型
代理人:
- 使用LLM的原因
- 通过MCP工具请求数据/操作
- 永远不要直接访问数据库或文件
示例:
- 研究代理→ web.search,web.fetch
- RAG代理→ kb.search
- DB代理→ db.read\_\*
- 摄入剂→ files.read,kb.upsert
这使代理保持确定性和可审计性。
______________________________________________________________________
MCP暴露的工具类别
文件和文档工具
- 读取文本文件
- 提取PDF内容
- 返回元数据和页面映射
知识库工具
- 矢量搜索(Qdrant)
- 筛选检索
- 受控异常(受限)
数据库工具
- 结构化读取操作
- 有限的写入操作
- 默认情况下没有不受限制的原始SQL
Web工具
- 搜索引擎
- 页面抓取
- 内容清理
外部API工具
- 允许的集成
- 集中秘密管理
______________________________________________________________________
安全和权限模型
安全性是在多个层面上实施的。
FastAPI层
- 用户认证
- 租户隔离
- 请求级别速率限制
MCP层
- 每个代理工具列表
- 读写分离
- 网络出口限制
- 有效载荷大小和超时限制
权限示例:
计划代理:无工具\ 研究代理:仅限网络工具\ RAG代理:仅限KB搜索\ DB代理:DB只读\ Ingest Agent:文件读取+KB写入
______________________________________________________________________
可观察性和审计
每次MCP工具调用记录:
- 请求ID
- 代理人角色
- 工具名称
- 执行时长
- 成败
与以下内容集成:
- 开放遥测
- 度量(普罗米修斯)
- 追踪(耶格尔/Tempo)
这使得调试、合规性审计和性能调优成为可能。
______________________________________________________________________
故障处理和安全限制
MCP服务器强制执行:
- 严格超时
- 最大有效载荷大小
- 仅为安全操作重试
- 明确错误合同
- 不稳定依赖关系的断路
代理必须优雅地处理工具故障。
______________________________________________________________________
部署模型
最小部署
- MCP服务器(无状态)
- Redis(可选:缓存、速率限制)
- 网络访问数据库、KB、文件存储
扩展
- MCP服务器水平扩展
- 除Redis之外没有共享状态
- 独立于LLM扩展
______________________________________________________________________
扩展策略
MCP刻度:
- 代理人数量
- 工具数量
- 集成数量
LLM吞吐量通过以下方式单独缩放:
- vLLM
- 批处理
- 缓存
- 排队
______________________________________________________________________
总结
MCP服务器是:
- 标准化工具网关
- 安全和策略边界
- 审计和可观察性层
- 大型代理生态系统的推动者
它补充了FastAPI和LLM服务器,而不是取代它们。
在这种架构中:
- FastAPI编排
- 代理商原因
- LLM生成
- MCP工具法案
- 后台工作人员摄入
每一层都保持专注、可测试和可扩展。
