
MCP框架(模型上下文协议框架)是一个中间件系统,旨在连接大型语言模型(LLM)服务和工具。它提供了一个与OpenAI API兼容的接口,使客户端应用程序能够通过标准API与各种LLM服务进行交互,并集成多个工具服务(MCP服务器)以增强AI助手的功能。
核心特性:
MCP框架采用模块化架构设计,主要由以下核心组件组成:
客户端应用
│
▼
┌───────────────────────────────────────────────┐
│ │
│ MCP框架 (FastAPI) │
│ │
├───────────┬─────────────┬───────────┬─────────┤
│ │ │ │ │
│ API层 │ 聊天处理器 │ 会话管理器 │ 配置管理 │
│ │ │ │ │
├───────────┴──────┬──────┴───────────┴─────────┤
│ │ │
│ LLM服务客户端 │ MCP管理器 │
│ │ │
└──────┬───────────┴────────────┬───────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌─────────────────────────┐
│ │ │ │
│ LLM服务 │ │ MCP工具服务 │
│ (OpenAI等) │ │ (文件系统、时间等) │
│ │ │ │
└─────────────────┘ └─────────────────────────┘
架构描述:
负责与各种LLM服务(如OpenAI、Anthropic、Ollama、LM Studio等)通信。其主要特点包括:
管理多个MCP工具服务器的连接和工具调用。主要功能包括:
维护客户端会话状态。主要特点包括:
处理客户端聊天请求,协调LLM服务和工具调用。主要功能包括:
提供与OpenAI兼容的REST API接口,用于客户端与系统的交互。主要端点包括:
/chat/completions - 聊天完成的主要端点/models - 获取可用模型列表/health - 系统健康检查系统使用Pydantic模型定义各种数据结构,主要包括:
ChatMessage - 聊天消息格式ChatCompletionRequest - 客户端请求ChatCompletionResponse - API响应ModelObject - 模型信息ModelListResponse- 模型列表响应run.py,在main()函数中调用main.pyconfig.json)/chat/completions端点发送聊天完成请求MCP框架支持多个工具服务器,每个服务器提供不同类型的工具。服务器通过stdio通信协议与框架交互。
当前配置的工具服务包括:
time) - 提供与时间相关的功能filesystem) - 文件和目录操作firecrawl) - 网页抓取和自动化sqlite) - 数据库操作sequential-thinking) - 增强模型的思考能力工具服务使用MCP客户端库 (mcp) 与框架通信,提供初始化、工具列表和执行功能。
系统配置使用config.json文件,主要包括:
配置由config.py模块加载和管理,提供对全局配置的访问。
系统支持模型与工具之间的多轮交互,通过tool_interactive.py实现:
这使得模型能够:
系统可以自动适应多种LLM服务
每个服务都有特定的身份验证方法和参数格式,系统自动处理这些差异。
MCP框架设计易于扩展:
系统支持多种部署方式:
run.py系统依赖项在requirements.txt中定义。
MCP框架提供了一种灵活且可扩展的架构,用于集成大型语言模型和服务工具。它使开发者能够创建强大的AI助手应用程序,同时保持系统的模块性和可维护性。
核心优势: