2.9 KiB
2.9 KiB
技术上下文
核心技术栈
| 类别 | 技术/库 | 版本 | 用途 |
|---|---|---|---|
| 核心协议 | Model-Context-Protocol (MCP) | v1+ | 定义系统所有组件间的通信标准。 |
| 官方SDK | model-context-protocol/python-sdk |
最新 | 我们实现Host, Client, Server的基石。 |
| 核心语言 | Python | 3.8+ | 主要开发语言。 |
| AI模型 | 兼容OpenAI API的大语言模型 (LLM) | - | 作为Agent的“大脑”,负责推理和规划。 |
| HTTP客户端 | requests | 最新 | 在APICallerServer中用于执行HTTP请求。 |
| Web框架 | (可选) FastAPI / Flask | - | 或许会用于构建可通过HTTP访问的远程MCP Server。 |
开发环境设置
必要组件
- Python 3.8 或更高版本
uv或pip(用于管理Python包依赖)- Git (版本控制)
- 支持Python的IDE (推荐 VS Code 或 PyCharm)
项目安装步骤 (预期)
- 克隆代码仓库:
git clone <仓库URL> cd compliance-mcp-agent - 创建虚拟环境:
python -m venv .venv source .venv/bin/activate - 安装依赖:
我们将创建一个
requirements.txt文件,内容至少包括:
然后执行安装:model-context-protocol requests # 其他未来可能需要的依赖uv pip install -r requirements.txt - 运行项目:
- 启动所有MCP Servers: 需要编写一个脚本来并行启动所有工具服务器。
- 启动MCP Host: 运行主程序
run_mcp_tests.py来开始整个测试流程。
关键技术决策
- SDK 优先: 我们将尽可能地利用官方 Python SDK 的能力,而不是重新发明轮子。所有的 Host/Client/Server 实现都应基于该 SDK 提供的类和方法。
- Stdio 通信: 在项目初期,为了简单起见,Host 和 Client 之间的通信将主要通过标准输入/输出 (
stdio) 进行,这由stdio_client提供支持。这对于本地运行的 Agent 来说足够高效。 - 独立的 Server 进程: 每个 MCP Server 都将作为一个独立的 Python 进程运行。这确保了工具之间的完全隔离,并为未来将某个工具部署为网络服务(例如使用 FastAPI)提供了可能性。
- 异步编程: 官方 SDK 大量使用了
asyncio。因此,我们的 Host 和 Client 代码也必须是异步的,以充分利用 SDK 的性能。 - LLM 接口: Agent 与 LLM 的交互将通过一个通用的、兼容 OpenAI 的 API 客户端进行。这允许我们未来可以轻松切换不同的后端 LLM 服务。