A middleware system that connects large language models (LLMs) with various tool services through an OpenAI-compatible API, enabling enhanced AI assistant capabilities with features like file operations, web browsing, and database management.
MCP框架(Model Context Protocol Framework)是一个用于连接大语言模型(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.py
中的main()
函数config.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助手应用,同时保持系统的模块化和可维护性。
核心优势:
Discover shared experiences
Shared threads will appear here, showcasing real-world applications and insights from the community. Check back soon for updates!