需求文档
1. 项目概述
本项目旨在开发一个基于 Model Context Protocol (MCP) 的服务,该服务能够通过单个网络端口提供对多个 MCP 应用程序的访问。这将简化 MCP 服务的部署和管理,并为客户端提供统一的访问入口。
2. 功能需求
2.1. 单端口多应用服务
- REQ-001: 服务必须能够通过一个指定的网络端口(例如 7860)提供服务。
- REQ-002: 服务必须能够加载和管理多个独立的 MCP 应用程序。
- REQ-003: 每个 MCP 应用程序必须能够通过其自身的唯一路径(例如
/app01/sse,/app02/sse)被访问。
2.2. MCP 应用集成
- REQ-004: 服务必须能够集成符合 MCP Python SDK 规范的应用程序。
- REQ-005: 集成的 MCP 应用程序应能够暴露其定义的工具和资源。
2.3. 任务管理功能(现有功能)
- REQ-006: 服务应支持添加、查询和管理任务的功能(通过
airs-tasks-mcp-hf服务)。 - REQ-007: 任务应包含标题、描述和截止日期等基本信息。
3. 非功能需求
3.1. 性能
- NFR-001: 服务应具备良好的响应速度,即使在处理多个并发请求时也能保持稳定。
3.2. 可扩展性
- NFR-002: 服务应易于扩展,以便未来可以轻松添加新的 MCP 应用程序。
3.3. 可维护性
- NFR-003: 代码结构应清晰,模块化程度高,便于理解和维护。
3.4. 安全性
- NFR-004: 服务应考虑基本的安全措施,例如环境变量的加载(已通过
python-dotenv实现)。
4. 技术栈
- 编程语言: Python
- Web 框架: FastAPI
- MCP SDK: FastMCP (MCP Python SDK)
- ASGI 服务器: Uvicorn
- 依赖管理:
requirements.txt - 数据库: Supabase (用于任务管理服务)
5. 部署环境
- 操作系统: Linux (兼容 Docker 部署)
- Python 环境: Conda (推荐
learning环境)