使用说明(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 客户端通过标准输入/输出与服务器通信。
  • 安装步骤

    1. 克隆/获取代码并安装开发环境:
      • 使用环境中的 Python 版本安装依赖并使包可本地开发使用(示例:pytest/lint 等开发依赖在 .[dev] 中)。
    2. 安装并把包安装到当前环境(推荐在虚拟环境中执行):
      • pip install -e .
    3. 启动 MCP 服务器:
      • 通过模块运行方式启动(命令示例见下方“服务器启动命令”),服务器默认使用 stdio 传输。
    4. 如需文档向量检索,请配置 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与计算