代理工具与数据网关

MCP Server是一个为基于LLM的代理平台设计的集中式、权限控制的工具和数据访问层,标准化代理对数据库、文件、知识库、网络数据和外部API的访问。

  • by AbrarJahin
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 AbrarJahin/custom_mcp_python

使用说明

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服务器负责:

  1. 通过标准化协议公开工具
  2. 强制每个代理的权限和策略
  3. 应用安全限制和同种异体
  4. 审核所有工具的使用情况
  5. 为调试和合规性提供可观察性

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工具法案
  • 后台工作人员摄入

每一层都保持专注、可测试和可扩展。