# 需求文档 ## 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` 环境)