使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器,基于 Model Context Protocol(MCP)框架,向 LLM 客户端提供对 SWAT 项目的资源、分析工具、绘图能力和文档检索等能力的标准化访问。服务器端通过 JSON-RPC 风格的 MCP 调用处理请求,返回相应的结果或上下文信息,并支持多种传输方式(此实现以 stdio 为主传输)。
-
主要功能点
- MCP 核心能力
- 列出资源(如当前加载的 SWAT 项目及其输出文件);
- 读取资源内容;
- 列出可用工具(如项目发现、加载、摘要、分析、绘图等);
- 调用工具并返回执行结果或文本/图像输出;
- 通过 RAG(Retrieval Augmented Generation)系统在有文档时提供文档上下文。
- 服务器运行与集成
- 提供 SWAT 项目管理、摘要、分析与绘图等服务的后端实现;
- 与 FastAPI/REST API 组件并行工作,为非 MCP 客户端提供补充能力(非 MCP 目标)。
- 可选组件
- 可选的文档检索能力(基于 SWAT 文档索引器的 RAG 系统)。
- 交互模式
- 以 stdio 为传输底座的 MCP 服务,通过命令行启动后,LLM 客户端通过标准输入/输出与服务器通信。
- MCP 核心能力
-
安装步骤
- 克隆/获取代码并安装开发环境:
- 使用环境中的 Python 版本安装依赖并使包可本地开发使用(示例:pytest/lint 等开发依赖在 .[dev] 中)。
- 安装并把包安装到当前环境(推荐在虚拟环境中执行):
- pip install -e .
- 启动 MCP 服务器:
- 通过模块运行方式启动(命令示例见下方“服务器启动命令”),服务器默认使用 stdio 传输。
- 如需文档向量检索,请配置 SWAT 文档路径并安装相应依赖以启用 SWATRAGSystem。
- 克隆/获取代码并安装开发环境:
-
服务器配置(MCP 客户端需要,该信息用于描述如何把服务器接入到客户端) 说明:MCP 客户端需要知道服务器的启动命令及参数,以通过 MCP 协议建立连接。以下信息基于仓库内实现,字段含义解释见注释。 { "server_name": "swat-copilot", "command": "python", "args": ["-m", "swat_copilot.integrations.mcp"], "transport": "stdio", "description": "MCP 服务端,用于 SWAT-Copilot 的上下文服务与工具执行", "notes": "使用 stdio 传输,服务端会通过 MCP 协议处理请求。可在环境变量 SWAT_DOCS_PATH 启用文档检索(若启用)。" }
配置要点说明:
- server_name:MCP 服务器的唯一名称,客户端可据此标识目标服务。
- command/args:启动服务器的命令及参数;本实现建议使用 python -m swat_copilot.integrations.mcp 来启动。
- transport:传输协议,当前实现默认 STDIO(stdio),如需改为 http 等,请参考实现扩展点。
- description/notes:简要说明与使用注意事项,方便客户端理解与调试。
- 注:MCP 客户端无需了解服务器内部实现细节,只需要知道启动命令及连接方式。
-
基本使用方法
- 启动服务器:在兼容的 Python 环境中执行上述启动命令(命令等同于客户端配置中的 command/args)。
- 连接与请求:LLM 客户端通过 MCP 协议向服务器发送请求(读取资源、执行工具、获取输出等),服务器返回 JSON-RPC 风格响应或通知。
- 使用场景示例:
- 加载一个 SWAT 项目、获取项目摘要、获取输出摘要、执行时间序列绘图、检索文档上下文等。
- 运行注意事项:
- 若启用文档检索,请设置 SWAT_DOCS_PATH 环境变量并确保文档索引已构建(需要额外依赖)。
- 服务器默认使用 stdio 传输,确保客户端在同一进程间或通过管道进行通信。
-
基本定制与扩展
- 代码结构清晰,核心入口在 swat_copilot.integrations.mcp.server.SWATMCPServer,支持通过装饰器注册 MCP 请求处理(list_resources、read_resource、list_tools、call_tool、run 等)。
- 如需扩展更多工具、资源、或接入更多传输通道(如 WebSocket/HTTP),可在现有框架基础上扩展传输实现并保持与 MCP 客户端的接口兼容。
-
运行/维护要点
- 运行环境依赖:Python、mcp 框架及相关 SWAT 服务组件(项目管理、分析、绘图、数据读取等)。
- 安全与权限:此实现面向本地开发和受控环境,部署到生产时请结合认证、日志和错误处理策略进行强化。
信息
分类
AI与计算