AMReXAgent MCP Adapter
使用说明(Markdown格式)
项目简介
- 该组件是一个面向 MCP 客户端的后端服务,暴露若干上下文相关的工具(Tools),如知识查询、模拟计划、输入文件生成、结果分析与可视化等能力。
- MCP 服务器通过 JSON-RPC 与客户端通信,接收请求并返回结构化响应,支持在本地或远端以不同传输通道(如标准输入/输出流)运行。
主要功能点
- MCP 工具注册与执行:实现 list_tools 和 call_tool,允许外部客户端查询可用工具及调用指定工具。
- 请求分发与薄验证层:以 Foam-Agent 风格实现的适配层,负责对输入进行最小化验证后转发到具体服务层逻辑。
- 服务层整合:将 Knowledge、Architect、InputWriter、Runner、Validation、Visualization 等服务封装,提供端到端工作流能力(从计划生成、输入编写、提交作业到分析与可视化)。
- 多传输通道支持:设计初衷包含对 stdio、SSE、WebSocket 等传输通道的适配点,便于集成到不同的 MCP 运行环境。
- 启动与运行方式:提供 mcp_server.py 的入口,若运行环境缺少 MCP 库会给出提示,确保在具备依赖的情况下启动。
安装与运行步骤
- 安装依赖
- 安装 Python 及依赖(在需要的环境中如环境.yaml 指定的依赖)
- 安装 MCP 库:pip install mcp
- 启动 MCP 服务器
- 直接在命令行启动服务器:python mcp_server.py
- 启动后服务器会输出当前运行环境信息,并等待 MCP 客户端连接。
- 配置 MCP 客户端连接
- MCP 客户端需要知道服务器的启动命令与参数,以便通过 JSON-RPC 与服务器建立会话。
- 典型配置(示意,非代码,需按你的 MCP 客户端格式填充): { "serverName": "amrex-agent", "command": "python", "args": ["path/to/mcp_server.py"], "env": { "AMREX_DATABASE_PATH": "/path/to/database" } } 说明:以上为客户端需要读取但不要求在此输出中出现的实际连接配置信息,客户端只需要根据此信息启动对接。
- 基本使用
- 客户端启动后,可以通过 MCP 提供的工具列表接口获取服务器暴露的能力(list_tools),并按名称调用相应的工具(call_tool)。
- 工具的输入输出以 JSON 结构进行封装,支持异常返回与追踪信息,便于调试与集成。
- 运行与调试小贴士
- 确保 MCP 库版本兼容当前实现(若版本不兼容可能需要降级/升级)。
- 启动前请确保 AMReXAgent 的依赖服务(知识库、输入输出服务、运行器、可视化服务等)可用。
- 如遇到权限或环境变量问题,请按服务器日志排查并在客户端增加重试逻辑。
关键配置要点(供 MCP 客户端理解,非代码实现)
- server name:amrex-agent
- command:python
- args:[],指定运行 mcp_server.py 的实际路径
- env:可选,若需要指定数据库路径、密钥等环境变量请在 env 字段中配置
- 传输通道:默认 stdio,后续可扩展为 SSE/WebSocket 等
- 安全性与会话管理:服务器端负责身份与会话层面的基本校验,具体策略可在服务层进一步增强
工作流示意
- 客户端通过 MCP 调用 list_tools,获取可用工具列表。
- 客户端通过 call_tool 按需调用工具,如 query_knowledge、create_simulation_plan、setup_job 等。
- 服务器返回标准的 JSON-RPC 响应,含有结果、错误信息、以及必要的元数据。
注意
- 本仓库中的 mcp_server.py 提供了一个完整的 MCP 服务器入口及工具分发实现,具备服务器端代码、薄验证层以及对外暴露工具的能力,符合 MCP 服务器的核心要求。
- 如果运行环境尚未安装依赖,需先安装 mcp 包与其他服务依赖,以确保服务器能够正常启动并对接 MCP 客户端。
关键词 模型上下文, 工具注册, JSON-RPC 调用, 服务器适配, 工作流集成
分类ID 6