PhiFlow MCP Server
使用说明
- 项目简介
- PhiFlow MCP Server 是一个实现 MCP 协议的后端服务器,核心职责是向 LLM 客户端提供可管理的资源、工具及提示模板等上下文信息,并提供跨进程/跨主机的协作能力。服务器通过 JSON-RPC 与客户端进行请求/响应,具备会话管理、能力声明以及多传输协议支持等特性,适用于需要标准化上下文服务的 AI 应用场景。
- 主要功能点
- 资源管理:对数据资源进行托管、读取与访问控制,便于 LLM 客户端获取所需数据。
- 工具注册与执行:注册可调用的外部工具,并通过 JSON-RPC 调用执行,返回结果给客户端。
- 提示模板与渲染:定义、渲染并提供可复用的提示模板,支持多种交互模式。
- JSON-RPC 服务:实现标准的 JSON-RPC 形式请求/响应,便于客户端集成。
- 会话与能力声明:会话管理、能力声明、以及对客户端能力的自描述。
- 多传输协议支持:支持 Stdio、SSE、WebSocket 等传输介质,方便在不同环境中部署。
- 容错与队列:包括执行超时、步数限制等守护机制,以及追加日志队列用于容错传输。
- 安装步骤
- 安装依赖与构建
- 使用 Rust 的构建工具 cargo 进行构建。推荐在项目根目录执行“cargo build --release”来生成可执行的 MCP 服务器二进制。
- 启动服务器
- 通过生成的二进制启动 MCP 服务器,例如使用 release 版本的可执行文件启动。
- 服务器默认提供多传输支持,请根据部署环境选择合适传输方式(例如 STDIO、SSE、WebSocket),并在启动参数中开启相应传输。
- 安装依赖与构建
- 服务器配置(MCP 客户端需要的配置信息)
说明:MCP 客户端在连接 MCP 服务器前需要提供一份配置,包含服务器名称、启动命令及参数等信息。以下为示例配置字段及含义,实际使用中请以本仓库实际实现的命令行参数为准。
- server_name:服务器对外标识名称,便于客户端显示与区分;
- command:启动服务的完整命令或可执行路径;
- args:启动命令的参数列表,逐项描述以便客户端能正确启动并连接服务器;
- transport(可选):支持的传输协议,如 stdio、sse、websocket 等组合,客户端据此选择通信通道。 示例配置(注释用中文说明各字段含义,非代码块,仅用于理解): { "server_name": "PhiFlow MCP Server", "command": "target/release/phi_mcp", "args": [ "--host", "0.0.0.0", "--port", "6000", "--transport", "websocket" ], "notes": "该配置用于在 0.0.0.0 上监听 6000 端口,启用 WebSocket 传输。实际可用选项以仓库实现为准,若环境不支持 WebSocket,可改用 SSE 或 STDIO。" }
- 基本使用方法(操作简单,适合初次接入的开发者)
- 启动阶段
- 按照安装步骤构建并运行 MCP 服务器二进制,确保服务器正常启动且监听指定端口。
- 与客户端对接
- MCP 客户端通过 JSON-RPC 调用与服务器交互,核心请求包括读取资源、调用工具、获取 Prompt 等能力。具体的方法名及参数,请参考服务器实现的 JSON-RPC 接口文档。
- 会话与流控制
- 客户端可以通过 spawn_phi_stream 启动一个 PhiFlow 程序的执行流(stream),遇到 witness 时流会暂停并返回状态,随后可使用 resume_phi_stream 恢复执行。
- 资源与共用字段
- 不同执行流之间可以共享 resonance 字段,促进跨流协作。服务器提供 read_resonance_field 接口以查看共享字段。
- 启动阶段
- 运行示例要点
- 请确保服务器在受控网络环境中运行,避免未授权访问。
- 按需开启对应传输通道,确保客户端与服务器之间的通讯安全、稳定。
- 使用时应遵循 MCP 协议的请求/响应格式,避免自定义的非标准请求导致通讯异常。